This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Can't see application running after OTA DFU

Hi everyone,

I'm using the nrf52832 Dev Kit PCA10040

SDK version: 15.3.0

OS: Fedora

I try to use DFU following this tutorial but I can't see my application on the nRF Connect application after an OTA DFU.

1. I created my own public and private key.

2. I downloaded uECC library and compiled it correclty.

3. I replaced the dfu_public_key.c SDK by mine.

4. I compiled with Makefile from <SDK>/examples/dfu/secure_bootloader/pca10040_ble/armgcc with the command line :
'make erase && make flash_softdevice && make flash' (I removed a compilation flag to get the DFU Targ as advised in this issue).

5. I created a .zip file from a working .hex file from ble_app_blinky project.

6. I created a bootloader_settings.hex file based from my ble_app_blinky .hex file.

7. I merged my bootloader .hex file and my bootloader_settings .hex file and flashed it (DFU is running and not my app).

8. I put on my phone the .zip file and tried to flash it thanks to nRF Connect application DFUTarg OTA DFU. It displayed 'Initializing', 'Starting DFU' and 'Disconnecting'. Then my DFUTarg is always running instead of my application.

 

I've probably misunderstood something...

Any ideas of what I'm doing wrong?

Regards,

Louis

  • Hi Louis, 

    can you post the linker script of the ble_app_blinky project? If it is the default example, then you will have to modify the FLASH settings to free up space for the bootloader. The default settings reserves the entire flash from 0x26000 (end of SD) to 0x80000 ( end of flash)

    MEMORY
    {
      FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0x5a000
      RAM (rwx) :  ORIGIN = 0x200022b8, LENGTH = 0xdd48
    }
    
    /* Modify to the following to free up space for the bootloader, 
    / which starts at 0x78000. Hence, the FLASH LENGTH must be 0x78000-0x26000= 0x52000
    */
    
    MEMORY
    {
      FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0x52000
      RAM (rwx) :  ORIGIN = 0x200022b8, LENGTH = 0xdd48
    }

    Best regards

    Bjørn

Related