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

DFU update SD+BL SDK15.0 won't change bootloader start address

Hi, 

I'm using Keil development tool.

The original bootloader start address is 0xE6000 and new bootloader start address is 0xE5000.

When I update to new bootloader, it won't change start address to  0xE5000.

it will top in after bl_activate(), you could see debug message in the below.

<info> app: Valid SD + BL
<info> app: Enter nrf_dfu_sd_bl_continue
<info> app: Enter nrf_bootloader_dfu_sd_continue
<info> app: Updating SD. Old SD ver: 6, New ver: 6
<info> nrf_bootloader_wdt: WDT is not enabled
<info> app: Verifying BL: Addr: 0x000E6000, Src: 0x0004AE7C, Len: 0x0001736C
<info> app: Copying bootloader: Src: 0x0004AE7C, Len: 0x0001736C

I get start address in the below,

>nrfjprog --memrd 0x10001014
0x10001014: 000E6000

If I set two bootloader in the same start address 0xE6000, it can update successfully.

The debug message in the below.

<info> nrf_dfu_settings: Settings OK
<info> app: Valid SD + BL
<info> app: Enter nrf_dfu_sd_bl_continue
<info> app: Enter nrf_bootloader_dfu_sd_continue
<info> app: Updating SD. Old SD ver: 6, New ver: 6
<info> nrf_bootloader_wdt: WDT is not enabled
<info> app: Verifying BL: Addr: 0x000E6000, Src: 0x0004A3C8, Len: 0x00017240
<info> app: Copying bootloader: Src: 0x0004A3C8, Len: 0x00017240

start system reset

<info> app: Valid SD + BL
<info> app: Enter nrf_dfu_sd_bl_continue
<info> app: Enter nrf_bootloader_dfu_sd_continue
<info> nrf_bootloader_wdt: WDT is not enabled
<info> app: Verifying BL: Addr: 0x000E6000, Src: 0x0004A3C8, Len: 0x00017240
<info> app: No bootloader copy needed, bootloader update complete.
<info> app: nrf_dfu_sd_bl_continue finish
<info> app: Enter nrf_dfu_app_is_valid
<info> app: Return false in valid app check

Could any one can help me to figure out, why BL start address won't change.

Parents Reply
  • You are saying you are updating the bootloader via OTA DFU ? And you want to  change the address of the bootloader. I don't think it's possible. Unless you modify the bootloader to do that specific task. It would be pretty complicated and with a risk of bricking your device. Do you have a lot of devices deployed to the market that requires the bootloader update ? 

    if you don't have SWD connection to re-program the chip, how do you use IAR to erase and write new value to UICR ? 

Children
Related