Having problems bootloading my own application on my hardware. The application runs fine alone. Using SDK 16.0 and secure_bootloader/pca10056_uart example via Segger SES.
1. Build pca10056_uart DFU using SES
2. Erase and download DFU using SES
3. Build my firmware package (test_app and SoftDevice)
nrfutil pkg generate --application test_app.hex --application-version 0x02 --hw-version 52 --key-file ../priv.pem --sd-req 0x00 --sd-id 0x00 --softdevice s140_nrf52_7.0.1_softdevice.hex --sd-boot-validation NO_VALIDATION --app-boot-validation NO_VALIDATION test_sd.zip
4. Download my firmware - no errors
nrfutil -v dfu serial -pkg test_sd.zip -p COM22 -b 115200 -fc 0
The app however does not run. I can re-enter the DFU on power cycle using a GPIO as expected.
Here's my FLASH contents read back using nrfjprog
nrfjprog --readcode test.hex nrfutil settings display test.hex Unknown Bootloader DFU settings version: 4294967295 Bootloader DFU Settings: * File: test.hex * Family: NRF52840 * Start Address: 0x00000000 * CRC: 0x1D3B9BA7 * Settings Version: 0x00000002 (2) * App Version: 0x00000002 (2) * Bootloader Version: 0x00000000 (0) * Bank Layout: 0x00000000 * Current Bank: 0x00000000 * Application Size: 0x0002703C (159804 bytes) * Application CRC: 0x91BD21DA * Bank0 Bank Code: 0x00000001 * Softdevice Size: 0x00025598 (152984 bytes) * Boot Validation CRC: 0xACDA1BA2 * SD Boot Validation Type: 0x00000000 (0) * App Boot Validation Type: 0x00000000 (0)
and my SES linker settings for the app:
linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x27000;FLASH_SIZE=0xd9000;RAM_START=0x20002260;RAM_SIZE=0x3dda0" linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000"
Am I missing something here? Do in need to merge the application hex with settings.h? Not clear if this is needed or not based on documentation.
Please advise - TID