前期准备
1、生成secure_bootloader
由于编译BootLoader需要安全加密,按照网上大多数教程基本可以完成
注意初始生成的秘钥key 在之后的升级过程中应该始终保持一致,否则无法升级
2、移植dfu生成ble-uart-with-dfu 固件
为了让ble_app_uart具有DFU功能,有2种做法,一是把NUS服务移植到ble_app_buttonless_dfu中,这种方法相对来说更简单,但不利于理解DFU的移植原理;二是把DFU服务移植到ble_app_uart中,现在把DFU服务移植到ble_app_uart中。
1)打开如下工程:\examples\ble_peripheral\ble_app_uart\pca10040\s132\arm5_no_packs
- 在nus服务函数中 添加DFU服务。代码如下:
#ifdef DFU_SUPPORT
ble_dfu_buttonless_init_t dfus_init = {0};
// Initialize the async SVCI interface to bootloader.
err_code = ble_dfu_buttonless_async_svci_init();
APP_ERROR_CHECK(err_code);
dfus_init.evt_handler = ble_dfu_evt_handler;
err_code = ble_dfu_buttonless_init(&dfus_init);
APP_ERROR_CHECK(err_