Showing the error state when running dfu to nRF5340

Hi,

Our product is based on nRF5340 and will run DFU over BLE.

Now I am testing the DFU function via the "Firmware Upgrade" in device manager APP.

In the current architecture, there are two kinds of dfu image should be sent to device:

app_update.bin(app core only) and dfu_application.zip(app_core and net_core).

When updating the dfu_application.zip,  the device can receive the whole image and

do the updating successfully.

The log below shows the image has been swapped to the primary partition.

But the "device manager" still shows an error "Invalid value(3)".

*** Booting Zephyr OS build aec156f2fe71  ***
I: Starting bootloader
I: Swap type: none
I: Swap type: test
I: Image upgrade secondary slot -> primary slot
I: Erasing the primary slot
I: Copying the secondary slot to the primary slot: 0x2be5c bytes
I: Turned on network core
I: Turned off network core
I: Bootloader chainload address offset: 0xc000
*** Booting Zephyr OS build aec156f2fe71  ***
[00:00:00.005,004] <inf> mcumgr_zephyr_grp: Registering Zephyr basic mgmt group

The device manager shows the error:

If I just updated the app_update.bin, all the process is good.

Our SDK version v2.1.0.

Please help us to check this issue.

Thanks.

  • Hi Jacob,

    The issue is with selecting "Test & Confirm". For multicore uploads you must use "Confirm Only" instead. This is because the network core does not have a way to swap images, so it can only overwrite the existing one. "Test" assumes swapping, verifying and confirming, but also allows restoring the original, which is not possible on the network core. 

    "Confirm Only" mode is also faster.

    Best regards,

    Marte

Related