[STM32WBA] 【NUCLEO-WBA55CG测评】蓝牙OTA测试

[复制链接]
2767|4
 楼主| HonestQiao 发表于 2024-12-17 23:55 | 显示全部楼层 |阅读模式
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升级基本原理
先看一张图:
2483067618eb091e45.png

再来看看官方提供的样例:
6005767618ed9b1710.png

在这三个样例中,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的代码结构如下:
2714467618f97e3f62.png

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



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


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

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

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


四、编译烧录测试
分别编译三个项目BLE_ApplicationInstallManager、BLE_HeartRate_ota、BLE_p2pServer_ota。
如果是用STM32CubeIDE打开编译,需要注意设置:
62238676196ac1c2b4.png
否则编译时会出错。

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

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

然后依次烧录:
BLE_ApplicationInstallManager:
15948676198e64b1d6.png

BLE_HeartRate_ota:
4777067619936d0013.png


并将 BLE_HeartRate_ota、BLE_p2pServer_ota的bin文件发送到手机上:
4032767619d57a9549.png
618867619d6871433.png

然后在手机安装ST BLE Sensor APP软件:
4520867619d7f32254.png

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

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

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

如果点击FUOTA,则进入OTA升级界面:
5970267619e2c2b773.png
在这个界面,选择之前上传到手机上的bin文件,即可进行升级:
2082467619e41b4017.png

等待升级完成:
1042867619e48dd966.png

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

同样可以进入其管理界面:
1672967619e7037d3e.png

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

6910267619e740d3cf.png


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

借助于蓝牙的支持,通过FUOTA方式,就可以很方便的升级固件了。
发顺丰更大nc 发表于 2024-12-23 16:52 | 显示全部楼层
利用 NUCLEO-WBA55CG 的 OTA 示例,可以轻松实现通过 BLE 的设备固件更新。
V853 发表于 2024-12-24 17:39 | 显示全部楼层
流程图是不是都用的png格式?背景怎么是黑色的。
Amazingxixixi 发表于 2024-12-27 16:12 | 显示全部楼层
过来学习学习
 楼主| HonestQiao 发表于 2025-1-15 08:35 | 显示全部楼层
V853 发表于 2024-12-24 17:39
流程图是不是都用的png格式?背景怎么是黑色的。

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

后面会导出带背景的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

115

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部