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

DFU not working from application

Hi, I loaded S110 v8 to nrf51. Then I loaded dfu_dual_bank_ble_s110_pca10028 bootloader.

With this setup, I'm able to download my application via the bootloader.

The problem is: When I trigger bootloader from my application, it almost immediately resets back to my application.

I examined that the bootloader is launched (main function of dfu_dual_bank_ble_s110_pca10028) with NRF_POWER->GPREGRET = 0xB1 which is correct.

bootloader_dfu_start() function in bootloader is called however, something inside the function causes reset almost immediatelly after the function is entered.

Can you please help?

Bootloader project: dual_bank_ble_s110.zip

Parents
  • I can confirm that bootloader's sd_softdevice_vector_table_base_set() (in ble_stack_init() function) doesn't return any error with ble_app_hrs/pca10028/s110_with_dfu example. with my application, it does. The bootloader launching procedure is the same, both ble_app_hrs/pca10028/s110_with_dfu example and my application call bootloader_start() function in dfu_app_handler.c . I made no modification to DFU part of my app (just added BLE_DFU_APP_SUPPORT to preprocessor definitions). My device is nrf51822 QFAAH00 on Raytac MDBT40 module.

Reply
  • I can confirm that bootloader's sd_softdevice_vector_table_base_set() (in ble_stack_init() function) doesn't return any error with ble_app_hrs/pca10028/s110_with_dfu example. with my application, it does. The bootloader launching procedure is the same, both ble_app_hrs/pca10028/s110_with_dfu example and my application call bootloader_start() function in dfu_app_handler.c . I made no modification to DFU part of my app (just added BLE_DFU_APP_SUPPORT to preprocessor definitions). My device is nrf51822 QFAAH00 on Raytac MDBT40 module.

Children
No Data
Related