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

bad application behavior after bootloader DFU

Hi all,

I'm using SD S132 v5.0.0 with SDK 14.0.

I'm testing now the BL buttonless DFU (and later the SD buttonless DFU) after working well with the app buttonless DFU.

The app DFU is working well (dual bank and single bank). For the BL DFU, after the DFU procedure, the application gets into some weird behavior (looks like too fast freertos ticks). and that requires reset to recover (soft or power reset)

Using some comparing BL logs between the app DFU and the BL DFU, I'm seeing that the BL is missing some soft reset before launching into application according to code documentation, that should be triggered in this procedure:

        // Upon successful completion, the callback function will be called and reset the device. If a valid app is present, it will launch.
    NRF_LOG_DEBUG("Writing settings and reseting device.");
    ret_val = nrf_dfu_settings_write(reset_device_callback);

However, the last lines of the log are the following: pastebin

Meaning, that nrf_dfu_reset_timeout_handler is never called and the app is launched without this reset.

More parameters:

  • Secure bootloader is the same as in example, except for setting 3 GPIOs to HIGH and removing the button.
  • NRF_DFU_POST_SD_BL_TIMEOUT_MS is set to 10000 (default value)

Am I interpreting this correctly? Do I need this missing reset for the application to boot up cleanly?

Thanks

Parents
  • Hi gkovelman_tap. Sorry for the delayed response. Could you explain your comment "the application gets into some weird behavior (looks like too fast freertos ticks) and that requires reset to recover" in more detail please? I talked to a colleague of mine, and he believes that you maybe should not be expecting a timeout, but instead that the application starts running directly after the bootloader is updated. I will test this same setup tomorrow. Also, I am not sure if this will help, but could you try using SDK 14.2 instead of 14.0? Not sure if it makes a difference, but it might be worth trying out.

Reply
  • Hi gkovelman_tap. Sorry for the delayed response. Could you explain your comment "the application gets into some weird behavior (looks like too fast freertos ticks) and that requires reset to recover" in more detail please? I talked to a colleague of mine, and he believes that you maybe should not be expecting a timeout, but instead that the application starts running directly after the bootloader is updated. I will test this same setup tomorrow. Also, I am not sure if this will help, but could you try using SDK 14.2 instead of 14.0? Not sure if it makes a difference, but it might be worth trying out.

Children
No Data
Related