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

DFU migration to 14.1

I have a bootloader compiled from SDK 14.0, and when I try to upgrade to 14.1, the new linker script (secure_dfu_ble_gcc_nrf52.ld) does not contain the UICR_BOOTLOADER memory region nor the sections that write the values there, so the resulting hex file does not contain instructions to fill in the UICR. Am I supposed to do this myself now? The new script does contain a read-only UICR memory region, and my bootloader doesn't run, so it's clear that those are still being used. They just aren't being set. Should I put the addresses in sdk_config.h or something now? There's no 14 -> 14.1 migration document that I can find, and no comments in the code or Makefiles about the change.

Also, 14 had a short NOINIT region at the end of ram that it shared with the app. Is that no longer necessary?

Parents
  • Hi Lee,

    It's just the change of the name, from UICR_BOOTLOADER to uicr_bootloader_start_address in the .ld file

    Note that you need to check for the .ld file inside the PCA10040 folder.

    Also please be aware that the configuration in the .ld file is only the place holder. The actual writing to flash is done by the code. Please have a look at nrf_bootloader_info.c , we use the attribute keyword to assign a value to the address in the section.

Reply
  • Hi Lee,

    It's just the change of the name, from UICR_BOOTLOADER to uicr_bootloader_start_address in the .ld file

    Note that you need to check for the .ld file inside the PCA10040 folder.

    Also please be aware that the configuration in the .ld file is only the place holder. The actual writing to flash is done by the code. Please have a look at nrf_bootloader_info.c , we use the attribute keyword to assign a value to the address in the section.

Children
Related