Hi
I am integrating BLE with LESC into a legacy sensor product using SDK v11.
The problem I am running into are errors in the FDS module when trying to make a secure connection. Also during reset I am receiving bank invalid messages from our internal api for accessing flash memory. I am trying to make these things coexist and have a question about where the Flash Storage module stores data.
From the Nordic documentation I have found the following statement:
"Flash storage assigns flash space with the highest memory address (right below the bootloader, if present) to the module with the highest priority. So if, for example, module 1 has low priority and needs one page and module 2 has high priority and needs two pages, fstorage assigns two pages starting with the highest memory address to module 2 and one page, starting after the two pages, to module 1."
Below is our memory map. Note there is a bootloader but it is not located in the highest memory location.
#define MEMORY_MAP_ROM_ADDRESS_SOFTDEVICE 0x0
#define MEMORY_MAP_ROM_ADDRESS_BANK_0 0x1b000
#define MEMORY_MAP_ROM_ADDRESS_BOOTLOADER 0x3b400
#define MEMORY_MAP_ROM_ADDRESS_NVM 0x3e800
#define MEMORY_MAP_ROM_ADDRESS_BANK_INFO 0x3ec00
#define MEMORY_MAP_ROM_ADDRESS_PSTORAGE_SWAP 0x3f000
#define MEMORY_MAP_ROM_ADDRESS_HIGHEST 0x3f400
Bank 0 is where our application goes. Bootloader is a custom bootloader we authored. NVM is where we store application data.
I assumed fstorage would allocate memory above what we call MEMORY_MAP_ROM_ADDRESS_HIGHEST. The addresses you see are the values after I subtracted 3 pages worth of memory from the size of bank 0, shifting the higher order addresses.
So with this memory map, where would fstorage allocate space? Can I control this location?