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

Parents
  • Hi eyalasko,

    The nRF5 SDK v17.1.0 was developed and tested with SES v5.42a. Ever since, there has been a number of changes to the IDE that causes incompatibility with the SDK. Therefore, our recommendation is that you continue using SES v5.42a instead.

    For an alternative, some weeks ago another DevZone user had the same problem here:  (Missing Ticket) 
    Our solution then was to switch to a GCC toolchain instead.

    However, if I understand correctly, you want to use SES. In that case, please use SES v5.42a.

    Hieu

Reply
  • Hi eyalasko,

    The nRF5 SDK v17.1.0 was developed and tested with SES v5.42a. Ever since, there has been a number of changes to the IDE that causes incompatibility with the SDK. Therefore, our recommendation is that you continue using SES v5.42a instead.

    For an alternative, some weeks ago another DevZone user had the same problem here:  (Missing Ticket) 
    Our solution then was to switch to a GCC toolchain instead.

    However, if I understand correctly, you want to use SES. In that case, please use SES v5.42a.

    Hieu

Children
Related