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:
- 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.
-
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