打印
[STM32WBA]

【NUCLEO-WBA55CG测评】蓝牙OTA测试

[复制链接]
1676|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
NUCLEO-WBA55CG的核心板提供了蓝牙功能,官方文档说明:支持Bluetooth® 5.3规范的2.4 GHz射频收发器。同时,NUCLEO-WBA55CG还具有1 MB的Flash存储器和128 KB的SRAM。基于这样的配置,可以实现通过蓝牙来做设备固件更新,也就是OTA。
ST提供的官方演示代码STM32Cube_FW_WBA_V1.5.0中,提供了WBA55CG的OTA样例,可以用于实际测试和参考。

一、OTA升级基本原理
先看一张图:


再来看看官方提供的样例:


在这三个样例中,BLE_ApplicationInstallManager负责OTA升级管理和应用程序跳转,BLE_HeartRate_ota和BLE_p2pServer_ota则是具体的应用。

他们在Flash中的存储位置如下:
  • 0x08000000:BLE_ApplicationInstallManager
  • 0x08006000:BLE_HeartRate_ota或者BLE_p2pServer_ota


当系统启动的时候,首先从0x08000000运行用户程序,进入BLE_ApplicationInstallManager,然后由BLE_ApplicationInstallManager负责检查是否要进行OTA升级或者跳转到具体的应用程序。

因为从 0x08006000 开始存放实际的App,所以BLE_ApplicationInstallManager的bin文件大小不能超过0x6000

二、BLE_ApplicationInstallManager浅析
BLE_ApplicationInstallManager的代码结构如下:


在main.c中,关键函数调用如下:
  • BootModeCheck:运行模式检查,确定跳转到app还是执行ota处理
  • CheckFwAppValidity:检查固件程序是否有效
  • JumpFwApp:跳转到App
  • DeleteSlot:删除存储区域
  • MoveToActiveSlot:将下载的区块移动活动区块
  • JumpSelectionOnPowerUp:上电跳转选择



BLE_ApplicationInstallManager启动后,首先会进入BootModeCheck,检查当前的启动状态,然后决定下一步的处理流程。
具体的处理流程如下:



在对应的ld文件中,可以看到FLash的定义:


三、App中ota的处理
在 BLE_HeartRate_ota 和 BLE_p2pServer_ota调用了ota_app部分的代码,来进行ota数据接收和写入Flash的处理。
ota_app部分的核心调用为:OTA_Notification,刚兴趣可以详细查看了解。

在 BLE_HeartRate_ota 和 BLE_p2pServer_ota 项目的对应ld文件中,也有FLash的具体定义:



四、编译烧录测试
分别编译三个项目BLE_ApplicationInstallManager、BLE_HeartRate_ota、BLE_p2pServer_ota。
如果是用STM32CubeIDE打开编译,需要注意设置:

否则编译时会出错。

编译完成后,先烧录BLE_ApplicationInstallManager,然后烧录BLE_HeartRate_ota、BLE_p2pServer_ota两者之一。
这里烧录BLE_ApplicationInstallManager 和BLE_HeartRate_ota。

烧录前,先将开发板自带的STLink升级到最新版本:


然后依次烧录:
BLE_ApplicationInstallManager:


BLE_HeartRate_ota:



并将 BLE_HeartRate_ota、BLE_p2pServer_ota的bin文件发送到手机上:



然后在手机安装ST BLE Sensor APP软件:


安装ST BLE Sensor APP后,打开点击下放的刷新,即可找到当前开发板运行状态的设备:


直接点击设备名称,就可以连接并进入功能界面:


BLE_HeartRate_ota提供了模拟数据供演示,可以点击Heart Rate查看:


如果点击FUOTA,则进入OTA升级界面:

在这个界面,选择之前上传到手机上的bin文件,即可进行升级:


等待升级完成:


升级完成后,开发板会自动运行新的App,到ST BLE Sensor APP的首界面即可查看到:


同样可以进入其管理界面:


BLE_p2pServer_ota提供了一个LED可以用于管理点亮:




同样的,也可以再次进入FUOTA界面进行升级:


借助于蓝牙的支持,通过FUOTA方式,就可以很方便的升级固件了。

使用特权

评论回复
沙发
发顺丰更大nc| | 2024-12-23 16:52 | 只看该作者
利用 NUCLEO-WBA55CG 的 OTA 示例,可以轻松实现通过 BLE 的设备固件更新。

使用特权

评论回复
板凳
V853| | 2024-12-24 17:39 | 只看该作者
流程图是不是都用的png格式?背景怎么是黑色的。

使用特权

评论回复
地板
Amazingxixixi| | 2024-12-27 16:12 | 只看该作者
过来学习学习

使用特权

评论回复
5
HonestQiao|  楼主 | 2025-1-15 08:35 | 只看该作者
V853 发表于 2024-12-24 17:39
流程图是不是都用的png格式?背景怎么是黑色的。

不好意思,到处的是Png,背景透明了。
暂时ctrl+a,可以看到了。

后面会导出带背景的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

108

帖子

2

粉丝