体验OTA
首先找到官方OTA的例程

- BLE_HeartRate_ota
- BLE_Ota
- BLE_p2pServer_ota
- 首先需要下载BLE_Ota,这个是OTA的固件运行在bootloader中,它负责擦写FLASH来实现IAP编程,以及后续的BLE_HeartRate_ota和BLE_p2pServer_ota程序的切换。
2.再下载BLE_HeartRate_ota或者BLE_p2pServer_ota,bootloader会引导程序进入到APB1程序中也就是用户程序。下载完成之后打开ST BLE ToolBox,可以看到已经在广播了,而且可以看有OTA标识的,意味着它是可以OTA的。

然后点击reboot

这时候就会出现
OTA的程序

连接OTA程序
然后

这样就可以实现官方例程循环OTA了
如何让自己的代码实现OTA
自己的的程序直接烧录是不能直接OTA的,在bootloader中有官方的魔术标志,我们需要把这个标志加入到自己的代码中,然后再改一些其他配置
1.修改用户程序下载到APB1区域

2.注释中断向量表
因为已经被bootloader中的ota程序设置为正确的地州

3.添加关键魔术
const uint32_t MagicKeywordValue = 0x94448A29 ;
const uint32_t MagicKeywordAddress __attribute__((at(0x08007140))) = (uint32_t)&MagicKeywordValue;