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

DFU OTA with RTX on Keil

I am working with nrf51, SDK 11, S130, Keil uVision 5 and have an Application with RTX and want to use DFU OTA. The bootloader works with the app_hrs_dfu example.

When starting the bootloader from my app, the bootloader is starting (LEDs are set), but the transfer doesn't start.

Do I have to stop RTX first? And how? How must the memory layout be? Is there a given order of the characteristics used? Can I reuse the running stack or do I have to restart?

Many thanks from some hints. Chris

Parents
  • Yes I followed the instructions, and used the ble_app_hrs_s130_with_dfu_pca10028 as template for modification. With this example DFU OTA works fine. But I use RTX! Is this a problem?

    For information: The macro mentioned in the documentation has no function for code generation in the example ble_app_hrs_s130_with_dfu_pca10028 #define IS_SRVC_CHANGED_CHARACT_PRESENT 1

    The enabling is hard coded in the ble_stack_init() function

    #ifdef BLE_DFU_APP_SUPPORT
        ble_enable_params.gatts_enable_params.service_changed = 1;
    #endif // BLE_DFU_APP_SUPPORT
    
Reply
  • Yes I followed the instructions, and used the ble_app_hrs_s130_with_dfu_pca10028 as template for modification. With this example DFU OTA works fine. But I use RTX! Is this a problem?

    For information: The macro mentioned in the documentation has no function for code generation in the example ble_app_hrs_s130_with_dfu_pca10028 #define IS_SRVC_CHANGED_CHARACT_PRESENT 1

    The enabling is hard coded in the ble_stack_init() function

    #ifdef BLE_DFU_APP_SUPPORT
        ble_enable_params.gatts_enable_params.service_changed = 1;
    #endif // BLE_DFU_APP_SUPPORT
    
Children
No Data
Related