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

Dual Bank BLE DFU with SDK 7.2.0 and Keil Packs

I just recently upgraded to SDK 7.2.0 and am now using the keil pack installer as well. First of all, I really appreciate the ease of this new system, but I'm running into an error, and the lack of transparency in the keil pack system is making it hard for me to find the root cause.

I want my application to support dual bank DFU using BLE. In keil I include the following packs (all versions 1.1.1):

  • nRF_Libraries/DFU/dfu_app_handler
  • nRF_Libraries/DFU/dfu_bootloader [dual bank option]
  • nRF_Libraries/DFU/dfu_bootloader_settings
  • nRF_Libraries/DFU/dfu_bootloader_util
  • nRF_Libraries/DFU/dfu_transport [BLE option]

When I compile my application without these packs checked it compiles correctly and runs as expected. When I add these packs I get this error:

._build\ble_app_template.axf: Error: L6218E: Undefined symbol dfu_ble_get_peer_data (referred from dfu_transport_ble.o).

uint32_t dfu_ble_get_peer_data(...) is outlined in dfu_ble_svc_internal.h which is a part of my project and included in dfu_transport_ble.c, but nowhere in the project can I find a c file with an actual function declaration. The keil pack installer window says that there are no include issues that need to be resolved, but the compiler is still unhappy. When I switch to serial dfu instead of ble, everything compiles correctly, but that isn't the option I want.

I think I'm probably missing something obvious, but there aren't a lot of questions on here that cover using the pack installer, so if anyone can help out that would be great.

Thanks, Seth

Parents Reply Children
No Data
Related