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

Bootloader DFU Register and Flash Changes

I have been having issues with bootloader launching my application on a custom nRF52832 based hardware device.

The bootloader itself seems to be successfully completing the DFU process but the app fails to start after the download. Various other versions of modified example projects get successfully launched after dfu download with the same bootloader. However, the final application that has all features enabled fails to launch and resets back into the bootloader.

I have been looking at the various dfu and bootloader settings/changes that could have a bearing on how the bootloader-to-app transition happens. The following is what I see as the relevant changes:

  1. UICR register modifications:

After Erase All, programming the SoftDevice changes 0x10001000 to 0x0001C000

-- this is the correct start address of my application Code 0 section.

After programming the bootloader, 0x10001014 to 0x00075000, and 0x10001018 to 0x0007E000

-- booloader is located at 0x75000 and the boot-settings block is at 0x7E000.
  1. 0x7F000 page modifications:

    After successful, DFU of an application using the bootloader,

nrfjprog -s 203201034 --memrd 0x0007f000 --w 32 --n 0x30

0x0007F000: 00000001 000000FF 0001C9CC 00000000

0x0007F010: 00000000 00000000 00000000 FFFFFFFF

The value, 0x1C9CC at address 0x7F008 is the correct size of the application.

My question is, "Are these all the changes to UICR and flash areas that happens during the bootloader DFU process, other than the actual flashing of the application code?"

-- Also, I do not use bonding for DFU
-- I use the zip package generated by nrfutil for the DFU download.

Thanking for any input on this.

Milton

Parents
  • I am having a similar issue. The app will not launch, and the device reboots into DFU_TARG mode again after the DFU service reports a success.

    However, with the pca10040 DK the same Bootloader, Softdevice, and App work with no problems.

    I have already adjusted the clock speed for ble_init to work for both platforms, and am stumped by this issue.

    So it seems like BANK_VALID_APP is not being written to as it should by the DFU service on completion.

    I am not in the office right now, but can provide more information on Monday or Tuesday.

Reply
  • I am having a similar issue. The app will not launch, and the device reboots into DFU_TARG mode again after the DFU service reports a success.

    However, with the pca10040 DK the same Bootloader, Softdevice, and App work with no problems.

    I have already adjusted the clock speed for ble_init to work for both platforms, and am stumped by this issue.

    So it seems like BANK_VALID_APP is not being written to as it should by the DFU service on completion.

    I am not in the office right now, but can provide more information on Monday or Tuesday.

Children
No Data
Related