Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

secure_bootloader_ble_s132_pca10040_debug fails in SES

Hi,

I build secure_bootloader_ble_s132_pca10040_debug example (SDK17.1) on SES 6.30.

The only modification to the project is excluding SEGGER_RTT_Syscalls_SES.c.

The project builds but fails to run. The same project builds and runs well in Keil 5.28 !

This is the log in the debug terminal:

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

I tried to single step the code (not that easy with release config optimization).

I traverse through the following functions:

main() > nrf_bootloader_init() > nrf_dfu_init() > nrf_dfu_transports_init()  > trans->init_func() > ble_dfu_transport_init() > ble_stack_init() > nrf_dfu_mbr_init_sd() > sd_mbr_command()

It seems as if the later softdevice function sd_mbr_command() fails with error code 9 (again, only is SES)

What am I missing here ???

Thanks

Related