Hi,
I am using sdk13 with a nrf52832 dev kit. I have two separate projects one with a bootloader and other with an application. I use the following configuration in the bootloader linker:
FLASH (rx) : ORIGIN = 0x76000, LENGTH = 0x8000
RAM (rwx) : ORIGIN = 0x20002060, LENGTH = 0xdfa0
NOINIT (rwx) : ORIGIN = 0x20007F80, LENGTH = 0x80
BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x0007F000, LENGTH = 0x1000
UICR_BOOTLOADER (r) : ORIGIN = 0x10001014, LENGTH = 0x04
MBR_PARAMS_PAGE (rw) : ORIGIN = 0x0007E000, LENGTH = 0x1000
UICR_MBR_PARAM_PAGE(r) : ORIGIN = 0x10001018, LENGTH = 0x04
In the app linker:
FLASH (rx) : ORIGIN = 0x1f000, LENGTH = 0x57000 RAM (rwx) : ORIGIN = 0x20002800, LENGTH = 0xd800
BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x0007F000, LENGTH = 0x1000
After flashing the bootloader and without changing the size of the bootloader settings I create the hex of the app, merge with the bootloader settings generated by nrfutil and flash the application and the bootloader recognizes the app and can boot it.
When I try to increase bootloader settings with the following changes:
Bootloader:
FLASH (rx) : ORIGIN = 0x75000, LENGTH = 0x8000
BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x0007E000, LENGTH = 0x2000
MBR_PARAMS_PAGE (rw) : ORIGIN = 0x000D000, LENGTH = 0x1000
App:
FLASH (rx) : ORIGIN = 0x1f000, LENGTH = 0x56000
RAM (rwx) : ORIGIN = 0x20002800, LENGTH = 0xd800
BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x0007E000, LENGTH = 0x2000
nrf_types.h:
define NRF_MBR_PARAMS_PAGE_ADDRESS (0x0007E000UL)
define BOOTLOADER_SETTINGS_ADDRESS (0x0007F000UL)
When i flash, the app settings are still written to the 0x7f000 position so the bootloader does not recognize the app.
Does anyone know if it is necessary to change anything else?