Received an error: 0x00000003 after programming softdevice, bootloader, and application hex files

I am testing secure DFU with hex files under D:\nRF5_SDK_16\examples\dfu\secure_dfu_test_images\ble\nrf52832 folder. After programming softdevice, bootloader, and application hex files through J-Link Commander script, Received an error: 0x00000003 occurred.

 0> <info> app: Inside main
 0> <debug> app: In nrf_bootloader_init
 0> <debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
 0> <debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
 0> <debug> nrf_dfu_settings: Using settings page.
 0> <debug> nrf_dfu_settings: Copying forbidden parts from backup page.
 0> <debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
 0> <info> nrf_dfu_settings: Backing up settings page to address 0x7E000.
 0> <debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
 0> <debug> app: Enter nrf_bootloader_fw_activate
 0> <info> app: No firmware to activate.
 0> <info> app: Boot validation failed. No valid app to boot.
 0> <debug> app: DFU mode because app is not valid.
 0> <info> nrf_bootloader_wdt: WDT is not enabled
 0> <debug> app: in weak nrf_dfu_init_user
 0> <debug> app: timer_stop (0x20005980)
 0> <debug> app: timer_activate (0x20005980)
 0> <info> app: Entering DFU mode.
 0> <debug> app: Initializing transports (found: 1)
 0> <debug> nrf_dfu_ble: Initializing BLE DFU transport
 0> <debug> nrf_dfu_ble: Setting up vector table: 0x00072000
 0> <debug> nrf_dfu_ble: Enabling SoftDevice.
 0> <debug> nrf_dfu_ble: Configuring BLE stack.
 0> <debug> nrf_dfu_ble: Enabling the BLE stack.
 0> <error> app: Received an error: 0x00000003!

Parents Reply Children
  • I can see RTT log messages if I use nRF5_SDK_16.0.0\examples\dfu\secure_bootloader\pca10040_s132_ble_debug. What is difference between pca10040_s132_ble and pca10040_s132_ble_debug project?

     0> <info> app: Inside main
     0> <debug> app: In nrf_bootloader_init
     0> <debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
     0> <debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
     0> <debug> nrf_dfu_settings: Using settings page.
     0> <debug> nrf_dfu_settings: Copying forbidden parts from backup page.
     0> <debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
     0> <info> nrf_dfu_settings: Backing up settings page to address 0x7E000.
     0> <debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
     0> <debug> app: Enter nrf_bootloader_fw_activate
     0> <info> app: No firmware to activate.
     0> <info> app: Boot validation failed. No valid app to boot.
     0> <debug> app: DFU mode because app is not valid.
     0> <info> nrf_bootloader_wdt: WDT is not enabled
     0> <debug> app: in weak nrf_dfu_init_user
     0> <debug> app: timer_stop (0x20005980)
     0> <debug> app: timer_activate (0x20005980)
     0> <info> app: Entering DFU mode.
     0> <debug> app: Initializing transports (found: 1)
     0> <debug> nrf_dfu_ble: Initializing BLE DFU transport
     0> <debug> nrf_dfu_ble: Setting up vector table: 0x00072000
     0> <debug> nrf_dfu_ble: Enabling SoftDevice.
     0> <debug> nrf_dfu_ble: Configuring BLE stack.
     0> <debug> nrf_dfu_ble: Enabling the BLE stack.
     0> <debug> nrf_dfu_ble: No advertising name found
     0> <debug> nrf_dfu_ble: Using default advertising name
     0> <debug> nrf_dfu_ble: Advertising...
     0> <debug> nrf_dfu_ble: BLE DFU transport initialized.
     0> <debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
     0> <debug> app: Enter main loop

  • Hi,

    Are you flashing the bootloader with bonds? You'll get an error if you program bootloader with bonds without a valid application + settings page. 

    Can you try to program the:

    1.  Application: ble_app_buttonless_dfu_without_bonds_s132_with_setting_page.hex
    2.  Softdevice: softdevice_s132.hex
    3. Bootloader: bootloader_secure_ble_debug_without_bonds_s132.hex

    $ nrfjprog --program ble_app_buttonless_dfu_without_bonds_s132_with_setting_page.hex --chiperase
    
    $ nrfjprog --program softdevice_s132.hex
    
    $ nrfjprog --program bootloader_secure_ble_debug_without_bonds_s132.hex
    

    regards

    Jared 

  • After I program secure bootloader, no error code 0x03.

  • Thanks for your support! No error code 0x3 issue now. But I encounter another issue, after using iOS nRF Connect APP to do nRF523832 DFU. The following error occurred.

    <error> app: Received a fault! id: 0x00004002, pc: 0x00000000, info: 0x2000C160

    The following is log messages of nRF523832 device:

    00> <info> app: Inside main
    00>
    00> <debug> app: In nrf_bootloader_init
    00>
    00> <debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
    00>
    00> <debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
    00>
    00> <debug> nrf_dfu_settings: Using settings page.
    00>
    00> <debug> nrf_dfu_settings: Copying forbidden parts from backup page.
    00>
    00> <debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
    00>
    00> <info> nrf_dfu_settings: Backing up settings page to address 0x7E000.
    00>
    00> <debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
    00>
    00> <debug> app: Enter nrf_bootloader_fw_activate
    00>
    00> <debug> app: Valid App
    00>
    00> <debug> app: Enter nrf_dfu_app_continue
    00>
    00> <error> app: Received a fault! id: 0x00004002, pc: 0x00000000, info: 0x2000C160

Related