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

DFU bootloader and hrs : Not working

Hello ,

I am testing the DFU support and usage for the next phase of my project. I am using S110 softdevice 8.0 and SDK 9.0 and evaluation kit nRF51822QFAAG0.

I followed the steps:

  1. Erased the flash
  2. Programmed softdevice
  3. Compiled bootloader dual_bank_ble_s110_pca10028 project and programmed using keil
  4. Compiled ble_app_hrs_with_dfu project and programmed using keil

But either dfu_arg or nordic_hrm is not advertising. When I debugged bootloader, the following code snippet is hanging the complete application.

 if (dfu_start || (!bootloader_app_is_valid(DFU_BANK_0_REGION_START)))
{
    nrf_gpio_pin_clear(UPDATE_IN_PROGRESS_LED);

    // Initiate an update of the firmware.
    err_code = bootloader_dfu_start();
    APP_ERROR_CHECK(err_code);

    nrf_gpio_pin_set(UPDATE_IN_PROGRESS_LED);
}

Can anyone help me for the cause of this issue and to fix it? Do I have to change the address in bootloader file?

Regards,
Sowmya

Parents
  • You need to program the soft device, then boot loader and then you need to program the application via Dfu (not flashing as normal).

    If you want to flash all three like you are doing you need to write a flag in memory that tells the boot loader a valid application is present. There is doc and questions on this you can find.

Reply
  • You need to program the soft device, then boot loader and then you need to program the application via Dfu (not flashing as normal).

    If you want to flash all three like you are doing you need to write a flag in memory that tells the boot loader a valid application is present. There is doc and questions on this you can find.

Children
  • Hi Michael,

    Later I tried with only 1st, 2nd and 3rd step. But the dfu application was not hitting main. So it was not advertising to send the application using DFU.

  • By DFU application are you reffering to the bootloader or the HRS example with DFU support? The application won't boot if you program the sd+app+bl through the debug interface unless you manually set the application to valid as Michael mentioned. Are you not reaching main in your bootloader?

  • As I have to program the application via DFU, first the bootloader application should execute. So I flashed SD+bl and debugging the bootloader application. Is this correct?