I generate my keys add the dfu_public key to the example found in examples/dfu/secure_bootloader/pca10056_s140_debug. I then connect the board, erase all and program my nrf52840 dk successfully with the example. I then head over to examples/peripheral/blinky to create my DFU package. I execute:
<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. <warning> nrf_dfu_settings: Resetting bootloader settings since neither the settings page nor the backup are valid (CRC error). <debug> nrf_dfu_settings: Writing settings... <debug> nrf_dfu_settings: Erasing old settings at: 0x000FF000 <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FF000, len=1 pages), queue usage: 0 <debug> nrf_dfu_flash: Flash erase success: addr=0x000FF000, pending 0 <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000FF000, src=0x2000A6E4, len=896 bytes), queue usage: 1 <debug> nrf_dfu_flash: Flash write success: addr=0x000FF000, pending 0 <info> nrf_dfu_settings: Backing up settings page to address 0xFE000. <debug> nrf_dfu_settings: Writing settings... <debug> nrf_dfu_settings: Erasing old settings at: 0x000FE000 <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FE000, len=1 pages), queue usage: 1 <debug> nrf_dfu_flash: Flash erase success: addr=0x000FE000, pending 0 <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000FE000, src=0x2000A364, len=896 bytes), queue usage: 1 <debug> nrf_dfu_flash: Flash write success: addr=0x000FE000, pending 0 <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 (0x20005994) <debug> app: timer_activate (0x20005994) <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: 0x000F1000 <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 <debug> nrf_dfu_ble: Connected <debug> nrf_dfu_ble: Received BLE_GAP_EVT_CONN_PARAM_UPDATE <debug> nrf_dfu_ble: max_conn_interval: 12 <debug> nrf_dfu_ble: min_conn_interval: 12 <debug> nrf_dfu_ble: slave_latency: 0 <debug> nrf_dfu_ble: conn_sup_timeout: 600 <debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST. <debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE (251, max_rx_time 2120). <debug> nrf_dfu_ble: Received BLE_GAP_EVT_PHY_UPDATE_REQUEST. <debug> nrf_dfu_ble: Received BLE_GAP_EVT_PHY_UPDATE (RX:2, TX:2, status:0) <debug> nrf_dfu_ble: Received BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST (request: 527, reply: 247). <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (command) <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> app: Shutting down transports (found: 1) <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command) <debug> app: timer_stop (0x20005994) <debug> app: timer_activate (0x20005994) <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_ble: Set receipt notif <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_ble: Buffer 0x200092C8 acquired, len 140 (244) <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (command) <debug> nrf_dfu_ble: Freeing buffer 0x200092C8 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (command) <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (command) <debug> nrf_dfu_validation: PB: Init packet data len: 63 <info> nrf_dfu_validation: Signature required. Checking signature. <info> nrf_dfu_validation: Calculating hash (len: 63) <info> nrf_dfu_validation: Verify signature <info> nrf_dfu_validation: Image verified <debug> app: Enter nrf_dfu_cache_prepare() <debug> app: required_size: 0x5D4. <debug> app: single_bank: false. <debug> app: keep_app: false. <debug> app: keep_softdevice: true. <debug> app: SD_PRESENT: true. <debug> app: Bank contents: <debug> app: Bank 0 code: 0x00: Size: 0x0 <debug> app: Bank 1 code: 0x00: Size: 0x0 <debug> app: pass: 0. <debug> app: cache_address: 0x27000. <debug> app: cache_too_small: false. <debug> app: keep_firmware: false. <debug> app: delete_more: false. <debug> nrf_dfu_validation: Write address set to 0x00027000 <debug> nrf_dfu_settings: Writing settings... <debug> nrf_dfu_settings: Erasing old settings at: 0x000FF000 <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FF000, len=1 pages), queue usage: 1 <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000FF000, src=0x2000A6E4, len=896 bytes), queue usage: 2 <info> nrf_dfu_settings: Backing up settings page to address 0xFE000. <debug> nrf_dfu_settings: Writing settings... <debug> nrf_dfu_settings: Erasing old settings at: 0x000FE000 <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FE000, len=1 pages), queue usage: 3 <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000FE000, src=0x2000A364, len=896 bytes), queue usage: 4 <debug> nrf_dfu_req_handler: Writing valid init command to flash. <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_ble: Set receipt notif <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (data) <debug> nrf_dfu_req_handler: crc = 0x0, offset = 0x0, max_size = 0x1000 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_flash: Flash erase success: addr=0x000FF000, pending 4 <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (data) <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x00027000, len=1 pages), queue usage: 4 <debug> nrf_dfu_req_handler: Creating object with size: 1492. Offset: 0x00000000, CRC: 0x00000000 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_flash: Flash write success: addr=0x000FF000, pending 4 <debug> nrf_dfu_flash: Flash erase success: addr=0x000FE000, pending 3 <debug> nrf_dfu_flash: Flash write success: addr=0x000FE000, pending 2 <debug> nrf_dfu_flash: Flash erase success: addr=0x00027000, pending 1 <debug> nrf_dfu_ble: Buffer 0x200092C8 acquired, len 244 (244) <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data) <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x00027000, src=0x200092C8, len=244 bytes), queue usage: 1 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_ble: Buffer 0x200093BC acquired, len 244 (244) <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data) <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000270F4, src=0x200093BC, len=244 bytes), queue usage: 2 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_ble: Buffer 0x200094B0 acquired, len 244 (244) <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data) <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000271E8, src=0x200094B0, len=244 bytes), queue usage: 3 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_ble: Buffer 0x200095A4 acquired, len 244 (244) <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data) <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000272DC, src=0x200095A4, len=244 bytes), queue usage: 4 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_ble: Buffer 0x20009698 acquired, len 244 (244) <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data) <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000273D0, src=0x20009698, len=244 bytes), queue usage: 5 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_flash: Flash write success: addr=0x00027000, pending 5 <debug> nrf_dfu_ble: Freeing buffer 0x200092C8 <debug> nrf_dfu_ble: Buffer 0x200092C8 acquired, len 244 (244) <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data) <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000274C4, src=0x200092C8, len=244 bytes), queue usage: 5 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_flash: Flash write success: addr=0x000270F4, pending 5 <debug> nrf_dfu_ble: Freeing buffer 0x200093BC <debug> nrf_dfu_ble: Buffer 0x200093BC acquired, len 28 (244) <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data) <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000275B8, src=0x200093BC, len=28 bytes), queue usage: 5 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (data) <debug> nrf_dfu_req_handler: Offset:1492, CRC:0x1A9366CD <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_flash: Flash write success: addr=0x000271E8, pending 5 <debug> nrf_dfu_ble: Freeing buffer 0x200094B0 <debug> nrf_dfu_flash: Flash write success: addr=0x000272DC, pending 4 <debug> nrf_dfu_ble: Freeing buffer 0x200095A4 <debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (data) <debug> app: timer_stop (0x20005994) <debug> app: timer_activate (0x20005994) <debug> nrf_dfu_flash: Flash write success: addr=0x000273D0, pending 3 <debug> nrf_dfu_ble: Freeing buffer 0x20009698 <debug> nrf_dfu_flash: Flash write success: addr=0x000274C4, pending 2 <debug> nrf_dfu_ble: Freeing buffer 0x200092C8 <debug> nrf_dfu_flash: Flash write success: addr=0x000275B8, pending 1 <debug> nrf_dfu_ble: Freeing buffer 0x200093BC <debug> nrf_dfu_req_handler: Whole firmware image received. Postvalidating. <debug> nrf_dfu_validation: Hash verification. start address: 0x27000, size: 0x5D4 <debug> nrf_dfu_validation: Invalidating old application in bank 0. <debug> nrf_dfu_settings: Writing settings... <debug> nrf_dfu_settings: Erasing old settings at: 0x000FF000 <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FF000, len=1 pages), queue usage: 1 <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000FF000, src=0x2000A6E4, len=896 bytes), queue usage: 2 <info> nrf_dfu_settings: Backing up settings page to address 0xFE000. <debug> nrf_dfu_settings: Writing settings... <debug> nrf_dfu_settings: Erasing old settings at: 0x000FE000 <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FE000, len=1 pages), queue usage: 3 <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000FE000, src=0x2000A364, len=896 bytes), queue usage: 4 <debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1 <debug> nrf_dfu_flash: Flash erase success: addr=0x000FF000, pending 4 <debug> nrf_dfu_flash: Flash write success: addr=0x000FF000, pending 3 <debug> nrf_dfu_flash: Flash erase success: addr=0x000FE000, pending 2 <debug> nrf_dfu_flash: Flash write success: addr=0x000FE000, pending 1 <debug> nrf_dfu_r<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_fstor<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 0xFE000. <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. <debug> app: App is valid <debug> nrf_dfu_settings_svci: Erasing settings page additional data. <info> nrf_dfu_settings: Backing up settings page to address 0xFE000. <debug> nrf_dfu_settings: Writing settings... <debug> nrf_dfu_settings: Erasing old settings at: 0x000FE000 <debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FE000, len=1 pages), queue usage: 0 <debug> nrf_dfu_flash: Flash erase success: addr=0x000FE000, pending 0 <debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x000FE000, src=0x2000A364, len=896 bytes), queue usage: 1 <debug> nrf_dfu_flash: Flash write success: addr=0x000FE000, pending 0 <debug> app: Running nrf_bootloader_app_start with address: 0x00001000 <debug> app: Disabling interrupts. NVIC->ICER[0]: 0x0
FLASH_PH_START=0x0
FLASH_PH_SIZE=0x100000
RAM_PH_START=0x20000000
RAM_PH_SIZE=0x40000
FLASH_START=0x1000
FLASH_SIZE=0xff000
RAM_START=0x20000008