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

BLE Peripheral HR OTA

1 功能概述

此项目演示从机heartrate以及用于BLE升级的SMP服务,可以配合手机nrf connect进行演示该OTA功能。

2 环境要求

  • board: pan107x evb

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

  • 手机app nrf connect

3 编译和烧录

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

使用keil进行打开项目进行编译烧录。

4 演示说明

  1. 分别编译和烧录pan107x_mcu_bootbleprph_hr_ota工程,上电后log如下。

    Try to load HW calibration data.. DONE.
    - Chip Type         : 0x80
    - Chip CP Version   : None
    - Chip FT Version   : 8
    - Chip MAC Address  : D0000C0CBBF5
    - Chip Flash UID    : 32313334320EAC834330FFFFFFFFFFFF
    - Chip Flash Size   : 512 KB
    LL Spark Controller Version:d7c4bfa
    app started
    
  2. 然后编译用于升级的测试固件,任意工程均可用于升级,但是其他工程暂无OTA功能,为了模拟实际应用中的连续更新OTA升级,我们将bleprph_hr_ota修改启动log,以便生成的固件不一样。 如果升级的固件和运行的固件是一样的,nrf connectapp检查校验签名一致则不进行升级,校验签名和bin文件内容有关

    void app_main(void)
    {
        int rc;
    
        printf("app started ota success\n");/*此处为修改处,升级后将打印该log*/
    
        #if CONFIG_SMP_OTA
        img_mgmt_module_init();
        #endif
    
  3. 生成的image在路径bleprph_hr_ota\keil\Images路径下,找到ndk_app.signed.bin文件,将该文件导入到手机APP。

  4. nrf connect扫描连接ble_hr设备,连接上会显示SMP Service,同时右上角会DFU标示。点击该DFU标示选则待升级的``ndk_app.signed.bin`文件,点击Test and Confirm,启动OTA升级流程。

    image

    nrf connect连接ble_hr,显示SMP服务

    image

    nrf connect选则待升级文件

    image

    nrf connect SMP OTA升级中

  5. 升级完成后设备会自动复位,并且打印对应bin文件启动log。

Try to load HW calibration data.. DONE.
- Chip Type         : 0x80
- Chip CP Version   : None
- Chip FT Version   : 8
- Chip MAC Address  : D0000C0CBBF5
- Chip Flash UID    : 32313334320EAC834330FFFFFFFFFFFF
- Chip Flash Size   : 512 KB
LL Spark Controller Version:d7c4bfa
app started ota success /*此处为我们修改后的启动log*/
connection established; status=0

5 RAM/Flash资源使用情况

PAN107x:

RAM Size:34.11 k
Flash Size: 120.33k