I have an nRF52DK board (PCA10040 3.0.0) and try to run the pre-built secure_bootloader examples from nRF5 SDK 17.1.0 (ddde560). What can possibly go wrong?
From the folder nRF5_SDK_17.1.0_ddde560/examples/dfu/secure_dfu_test_images/ble/nrf52832 I have programmed the softdevice* softdevice_s132.hex (using nrfjprog --family nrf52 --verify --program) and then the hrs_application_s132.hex example app. After reset, this works fine, I can connect to the HRS app, so it seems that the hardware is OK. But after programming the bootloader bootloader_secure_ble_debug_without_bonds_s132.hex (and reset) there is no bootloader advertising. LED1 and LED2 are constantly lit.
Same goes, after a --recover, installing only the softdevice and bootloader (without app).
I also tried building myself the examples/dfu/secure_bootloader (make -C pca10040_s132_ble_debug/armgcc). Using the debug build, I can see that it enters DFU mode (and prints "Advertising..." on the RTT debug channel), but I don't see it advertise (using nRF Connect mobile app). Every few minutes the debugger says "external reset detected".
Can anyone confirm that these examples have been tested and work on a nRF52DK board?
Tormod
*) I also tried the components/softdevice/s132/hex/s132_nrf52_7.2.0_softdevice.hex - it differs by two bytes (0101 instead of cafe) at one place in the hex files.
Debug log:
<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 (0x20005974)<debug> app: timer_activate (0x20005974)<info> app: Entering DFU mode.<debug> app: Initializing transports (found: 1)<debug> nrf_dfu_ble: Initializing BLE DFU transport<debug> nrf_dfu_ble: Setting up vector table: 0x00071000<debug> nrf_dfu_ble: Enabling SoftDevice.<debug> nrf_dfu_ble: Configuring BLE stack.<debug> nrf_dfu_ble: Enabling the BLE stack.<debug> nrf_dfu_ble: No advertising name found<debug> nrf_dfu_ble: Using default advertising name<debug> nrf_dfu_ble: Advertising...<debug> nrf_dfu_ble: BLE DFU transport initialized.<debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.<debug> app: Enter main loop