Please tell me how to change the bootloader start address for OTA-DFU.

Hello,

I am developing a product using the nRF52805. Various functions such as OTA-DFU, FDS, and 6-axis sensor have been implemented.
However, the flash memory capacity is insufficient.
Data needs to be saved using fds, but fds_init fails due to insufficient space.
After all, I am testing without downloading the bootloader for functional testing.

Current application address is 0x19000 ~ 0x27237
Bootloader address is 0x28000 ~ 0x2DABB
MBR addresses are 0x2E000 ~ 2E05B
Bootloader_Settings addresses are 0x2F000 ~ 0x2F05B

What I want to know is,
When creating bootloader_settings.hex, add --no-backup to not create MBR area (0x2E000 ~ 2E05B),
Instead, I would like to raise the bootloader starting address a bit.
In other words, the current bootloader starting address is 0x28000, but what if we change it to 0x29000?
Please tell me how to change the bootloader start address.

Thanks,

  • Hi SunBae, 

    I afraid  you can't move the bootloader. To do that you would need to reduce the size of the bootloader and it's most likely that the size of 23kB was already the smallest you can get. Of course you can think of having smaller bootloader by removing some of the features of the bootloader, but it's not recommended. 

    If you still want to try, you can change the start address of the bootloader by just editing the start address of the bootloader in the project setting. Don't forget to change the size as well because there is a upper limit in the flash. 

    After that you need to do a chip erase to remove any information about start address of the previous bootloader in flash. 

    Note that the space for the MBR info page can't be re-used as bootloader space. The MBR info page is needed for the MBR to work. 

Related