Other Parts Discussed in Thread: UNIFLASH
Hey
My question is regarding flash functionality vs. image upgrade:
I am storing some parameters on persistent storage using
osal_snv_write(BLE_NVID_CUST_START...
Api.
BLE_NVID_CUST_START defined as follows :
// Customer NV Items - Range 0x80 - 0x8F - This must match the number of Bonding entries
#define BLE_NVID_CUST_START 0x80 //!< Start of the Customer's NV IDs
#define BLE_NVID_CUST_END 0x8F //!< End of the Customer's NV IDs
and my flash NVS flash region is :
#define NVS_REGIONS_BASE 0x32000
#pragma LOCATION(flashBuf, NVS_REGIONS_BASE);
#pragma NOINIT(flashBuf);
static char flashBuf[REGIONSIZE];
(I am using ProjectZero based code )
As far as i underst and from documentation my flash record is maximum 255 bytes user data + 1 byte for internal meta data.
So i am writing to 0x80* 0x100 = 0x8000 address and customer area is 16 * 256 chunks .
For upgrades I am using swra466 application (SBL Application ) provided by TI .
My goal is to skip customer flash area completely while upgrading the image
(i don't want to erase it and i don't want to overtire it while upgrading the image to be safe in case of power fail during upgrade)
So i skip from 2 pages:
#define BLE_START_OF_SKIP_WRITE_REGION 0x32000
up to :
#define BLE_END_OF_SKIP_WRITE_REGION 0x36000
while erasing / writing new image.
Which means that i write 2 chunks of image (from 0x0 up to 0x32000 and from - 0x36000 up to 0x58000)
My upgrade software (SBL Application )is crashing on retriving CRC from bootloader and BLE image can not be burned anymore
even with JTAG (my guess is something to do with TAP?)
Since i don't have Bootloader code or logs it is hard to see the problem.
Any help/ suggestion will be highly appreciated
BR
Alik