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

SoftDevice is not enabled in dfu

I want to flash in dfu sample.

*nrf_dfu_flash_erase
*nrf_dfu_flash_store
Called nrf_dfu_flash_init (true) to execute the above function.
Since true is set in the argument of init, erase and store are set to use functions in SoftDevice.

To enable SoftDevice, the following call was made in dfu.
     ret_val = nrf_sdh_enable_request ();

However, sd_softdevice_enable (& clock_lf_cfg, app_error_fault_handler) in this function resulted in a return value of 0x1 (NRF_ERROR_SVC_HANDLER_MISSING).

I don't know why this is the return value.
SoftDevice is also flashed.
Each version is as follows, so there should be no problem.
SDK : 15.3.0
SoftDevice : s140 6.1.1

Parents
  • Hi,

    You need to enable forwarding of interrupts to the Softdevice before using any of the SD API by calling nrf_dfu_mbr_init_sd(). Otherwise, the SV call will be forwarded directly from the MBR to the bootloader. However, you must not invoke the Softdevice too early in case there is an ongoing DFU of the Softdevice. So if possible, I'd recommend leaving the SD initialization to the BLE transport. 

    Can you use the NVMC backend while the Softdevice is disabled?

Reply
  • Hi,

    You need to enable forwarding of interrupts to the Softdevice before using any of the SD API by calling nrf_dfu_mbr_init_sd(). Otherwise, the SV call will be forwarded directly from the MBR to the bootloader. However, you must not invoke the Softdevice too early in case there is an ongoing DFU of the Softdevice. So if possible, I'd recommend leaving the SD initialization to the BLE transport. 

    Can you use the NVMC backend while the Softdevice is disabled?

Children
No Data
Related