当前文档版本为 NDK-v0.9.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

BLE Peripheral OTA

1 功能概述

ble_periph_ota例程演示了如何使用通过SMP服务进行OTA固件升级。

2 环境要求

  • board: pan107x evb

  • uart(option): 用来显示串口log(波特率921600,选项8n1

  • 手机app nrf connect

3 编译和烧录

ble_periph_ota 例程位置:<home>\nimble\samples\bluetooth\ble_periph_hr_ota\keil_107x

bootloader工程位置:<home>\nimble\mcu_boot\keil

使用keil打开项目并编译和烧录。

4 运行说明

  1. 分别编译mcu_bootble_periph_hr_ota工程,并烧录这两个固件,给设备上电,通过串口助手可以查看程序运行log。通过手机App NRF Connect可以搜索到名字为pan_ble_ota的设备。

    注意:

    1. 第一次烧录的app image必需是带签名的固件(可以在工程的Images文件夹中找到),带签名的固件带有 “signed”字样,并且通过J-Flash或者PLink烧录。

    2. bootloader 固件可以通过keil烧录

  2. 编译用于升级的测试固件,任意工程均可用于升级,但是其他工程暂无OTA功能,为了演示OTA固件升级,可以将ble_periph_ota工程中蓝牙设备名修改为其他名称,例如:pan_ble_ota_2

    Note: 如果升级的固件和运行的固件是一样的,nrf connect检查校验签名一致则不进行升级,校验签名和bin文件内容有关

  3. 生成的测试固件在路径ble_periph_ota\keil\Images路径下,找到ndk_app.signed.bin文件,将该文件导入到手机APP。

  4. nrf connect扫描并连接名称为pan_ble_ota的设备,连接上会显示SMP Service,同时右上角会DFU标示。在进行DFU之前先在Request connection priority中选择HIGH(11.25-15ms,0,20s),然后点击DFU标示选则待升级的ndk_app.signed.bin文件,点击Test and Confirm,启动OTA升级流程。

    image

    nrf connect连接, 显示SMP服务

    image

    nrf connect选则待升级文件

    image

    nrf connect SMP OTA升级中

  5. 升级完成后,设备将自动重启

5 RAM/Flash资源使用情况

PAN107x:

RAM Size:37.47 k
Flash Size: 145.78k