Hi,
We have developed a wearable device using the following config: nRF52832, SDK14.2, freertos based app, SD5.0.0 and secure_dfu_bootloader
Our device is headless hence we use 'buttonless dfu' method
Everything works well including app OTA.
Now we need apply a minor modification to the existing bootloader and OTA the modified bootloader.
Here is the sequence of operations:
- I've built the modified version of the secured bootloader
- I've generated a dfu package using the following command:
nrfutil pkg generate --hw-version 52 --bootloader-version 1 --bootloader bootloader.hex --sd-req 0x9D --key-file private.key bl_dfu_package.zip
Note that I had to promote --bootloader-version to 1 (it was 0 in the original bl), otherwise it didn't work - I've put a working device into (buttonless) dfu mode and did OTA dfu of the above package (bl_dfu_package.zip)
- The dfu procedure completed successfully and the bootloader resets the device to reboot in the recently updated configuration
- The freertos based app starts running at increased speed. I estimate that the freertos scheduler clock runs approx. x30 times faster than it should (I guess at 32KHz tick interval instead of 1024 Hz)
- After forcing a soft reset using sd_nvic_SystemReset() or hard reset (reset button), everything boots up and runs at normal speed
What can be the reason that the first reset (after dfu completes) boots the system differently than the 2nd one?
Thanks