Hi.
I am trying to update soft_device version 6.0.0 to 7.0.1.
I read that because of the major version change (from 6 to 7), i must update the bootloader as well.
I created a zip file using the nrfutil, containing the same bootloader hex file with the new SD version and the application.
The problem: when the entire download process is finished (SD_BL+APP), the bootloader try to jump to the new application but get a reset instead.,
something is wrong with the application address. After the system wakes up from the reset, everything works fine.
I add the following log describing the software update while debugging the bootloader:
1. First of all, the SD_BL.hex is downloaded.
2. When download is finished the device shuts down.
3. Bootloader wakes up and reach the sd_bl_activate().
4. The activation is success and the device is shut down.
5. bootloader wakes up and waits for the application to be downloaded.
6. application download is finished and the device is shut down.
7. bootloader wakes up and reach the app_activate().
8. the activation is success and the device is shut down.
9. bootloader wakes up and tries to jump to the valid application and a reset occurs instead.
10. after reset the device wakes up and the application loads successfully.
My question is, why the jump operation fails in step #9 ?
Each time of ACTIVATION_SUCCESS and inside the dfu_observer in case of both NRF_DFU_EVT_DFU_COMPLETED and NRF_DFU_EVT_DFU_ABORTED,
We are using the NRF_POWER->SYSTEMOFF = 0x1; command to be able to wake up automatically (we don't want to reset the GPIOs because we
use the LDO pin - for the voltage regulation in the circuit).
Each time we get an unplanned reset, our device doesn't wake up automatically and we must turn it on manually.
Thank you,
Nir Barniv