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

Segger 5.42: DFU link error section .uicr_bootloader_start_address VMA [0000000000000ff8,0000000000000ffb] overlaps section .reserved_flash VMA [0000000000000000,00000000000f7fff]

After upgrading segger to 5.42 we are now getting the following error when compiling the Bluetooth DFU bootloader part of our existing projects

 section .uicr_bootloader_start_address VMA [0000000000000ff8,0000000000000ffb] overlaps section .reserved_flash VMA [0000000000000000,00000000000f7fff]

As far as I can tell they have always overlapped.

It compiles and works fine with segger 5.10 and before.

Is this is a problem with segger or with my project settings please?

regards

Liam

Parents
  • Interesting, Im getting this error for nrf5_sdk_15.3.0 and SES 5.50a

    Downgrading to 5.10d did not help.

    This problem manifests itself in a way that the bootloader never loads the application code and is stuck in DFU mode. The bootloader itself was compiled long time ago and now compiling the app using SES 5.50a (or SES 5.10d) never loads. Im not sure how to properly progress from here. The way Im using bootloader + DFU is in gpregret mode.

    Linking secure_bootloader_ble_s112_pca10056e.elf
    section .uicr_bootloader_start_address VMA [0000000000000ff8,0000000000000ffb] overlaps section .reserved_flash VMA [0000000000000000,0000000000027fff]

    I can confirm that installing SES 4.12 is not an option since the license always says its expired. 

  • The SDK 15.x projects write the bootloader start address to the MBR page (address 0xFF8), and this is within the .reserved_flash. Older and newer nRF5 SDK versions does not do this, but write it to UICR instead (0x10001014). You can fix this by modifying the .reserved_flash to start at 0x1000 instead of 0, by changing the line that defines reserved_flash in flash_placement.xml so that it reads like this:

        <ProgramSection load="no" name=".reserved_flash" start="$(FLASH_PH_START)+0x1000" size="$(FLASH_START)-$(FLASH_PH_START)-0x1000" />
    

  • I can confirm that this fixes the building of the bootloader with DFU code for sdk 15.3 on SES 5.50a

    Thanks @eith 

Reply Children
No Data
Related