Hello,
In my application I use BT DFU to update a Nordic 52840. The new fw is flashed starting from 0x26000 (i.e. the end of the softdevice) and after the update the application starts correctly.
I would like now to leave a space between the end of the softdevice and the start of the application fw, where I can copy some custom data. Let's say I want to start the application fw from 0x27000. I can correctly manipulate the hex files to obtain this, and I can verify that after the DFU the application fw starts from 0x27000 by reading the MCU content with a j-link. However the application won't start cause the bootloader (which is the official Nordic DFU bootloader) has not been informed that it should not point at the end of the softdevice space when starting the application, but it should rather add 0x1000 to that value.
Looking on the internet, I found that until sdk 14.2 the application address was explicitly passed to the nrf_bootloader_app_start, but in later sdk's (I am using sdk 16.0.0, which cannot be upgraded) a nrf_bootloader_app_start call points to the softdevice, which in turn takes care of starting the application by addressing the space immediately after the softdevice space: NRF52 S132 and application with custom address
My question is: how can I execute an application shifted by n*0x1000 (with n strictly greater than 0 :) ) with respect to the end of the softdevice in sdk's > 14.2, thus leaving some space for custom data? These data cannot be at the end of the application fw, cause I want to access them from the fw itself (and so with a future larger fw their address would be different) while at the same time keeping the application fw size as small as possible (so I don't want to put them, say, at the end of the flash space).
Thank you.
Regards,
Stefano