This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Porting S130 bootloader to NRF51822

Hello,

I'm pretty much new to NRF development and I'm having lots of questions trying to get a custom board to work with the provided BLE bootloader example in SDK 11.

I'm using GCC and most of the answers in this forum are using Keil I think. I see that I need to change the IROM and IRAM settings to match the ones for nrf51822_xxaa, but I have no idea where to do that. If somebody could point me out the basics I would be extremely grateful!

Parents
  • As Roger said, you need to adjust the linker settings to limit RAM usage to the 16K boundary. The linker file (*.ld) is located in the bootloader directory and can be changed as follows:

    /** RAM Region for bootloader. This setting is suitable when used with s110, s120, s130, s310. */
    RAM (rwx) :  ORIGIN = 0x20002C00, LENGTH = 0x1380
    
    /** Location of non initialized RAM. Non initialized RAM is used for exchanging bond information
    *  from application to bootloader when using buttonluss DFU OTA. 
    */
    NOINIT (rwx) :  ORIGIN = 0x20003F80, LENGTH = 0x80
    
Reply
  • As Roger said, you need to adjust the linker settings to limit RAM usage to the 16K boundary. The linker file (*.ld) is located in the bootloader directory and can be changed as follows:

    /** RAM Region for bootloader. This setting is suitable when used with s110, s120, s130, s310. */
    RAM (rwx) :  ORIGIN = 0x20002C00, LENGTH = 0x1380
    
    /** Location of non initialized RAM. Non initialized RAM is used for exchanging bond information
    *  from application to bootloader when using buttonluss DFU OTA. 
    */
    NOINIT (rwx) :  ORIGIN = 0x20003F80, LENGTH = 0x80
    
Children
No Data
Related