
无线/空中升级(FOTA) ![]() 接下来,我们看看无线的,空中升级的原理。升级对象是Nucleo板子。它的FUS已经是1.0.1,可以不用在升级了;我们把BLE stack从1.1.0升到最新的1.2.0;用户程序就更加直观了,从心跳 profile,升级成P2P server profile。上位机采用PC上的STM32CubeProgrammer,并搭配运行TransparentVCP(虚拟串口透传功能)的USB dongle板,一起工作。 使用STM32CubeMonitorRF触发BLE连接的OTA ![]() ?$ g2 W6 y# } _- U 左边是上位机,FOTA客户端,通过BLE,发起OTA请求,并提供新版本image;右边是Nucleo板,FOTA server端,通过BLE,接收OTA请求,并接收新版本的image。可以升级用户程序本身,也可升级RF stack,如图中两个红色箭头所示。 ; {% t" Y! O2 q 升级用户应用 ![]() 2 O8 Q: ?9 g2 K3 O" w" V p9 Q 我们先来升级用户应用,目标是从当前的心跳profile,升级到P2P server,升级成功后,效果非常直接,运行手机app, ST BLE sensor,连接设备,界面完全不同。为了达到这个目标,使用STM32CubeWB固件包中的三个项目。先把BLE_OTA和BLE_HeartRate_ota下载到nucleo板子上;把BLE_heartrate_ota下载到0x0800 7000处。ble_ota是编译链接在0x0800,0000地址处,是Nucleo板子上电就运行的;它要是没有查到ota请求标志,并且0x0800,7000处有有效代码,则跳转到0x800,7000运行,执行heart rate的心跳profile了。否则继续执行ota本身,开始准备接收来自FOTA 客户端的新固件。 这样看下来,整个过程,逻辑上跟我们以前的IAP by USB, IAP by Ethernet没有什么区别。 ![]() 对于Nucleo板,要把两个分别链接在两个不同flash地址的项目下载下去,可以使用IAR里的Download active application功能;当然STM32CubeProgrammer也有类似功能,大家按照自己的喜好使用不同工具都可以。 对于Dongle板,它只有USB口,没有jtag/swd调试口暴露出来,因此要使用它的系统bootloader,使用DFU的形式,把透传VCP的程序下载下去,上位机,就用我们的STM32CubeProgrammer即可。烧写好了之后,dongle板记得恢复到从用户flash启动。连到PC会看到一个虚拟串口。 8 Y1 C# R. ~) r1 _' @6 T; T. r% {' G |
Nucleo-STM32WB09KE测评-蓝牙调试并使用OLED显示数据
【NUCLEO-WB09KE评测】创建BLE工程和开启调试信息
【NUCLEO-WB09KE评测】+2.串口打印
【NUCLEO-WB09KE评测】+5.实现标准电量服务
【NUCLEO-WB09KE评测】BLE例程HeartRate及工具探索
【NUCLEO-WB09KE评测】+3.蓝牙广播
STM32WB系列MCU低功耗测试
Nucleo-STM32WB09KE测评--IIC传感器读取
【NUCLEO-WB09KE评测】+4.蓝牙控制LED
【NUCLEO-WB09KE评测】+1.点灯