随着物联网时代到来,越来越多的智能设备拥有了在线升级的能力,无论是系统更新,产品功能迭代还是漏洞修复都能在第一时间抵达用户手中的智能设备。
在线升级功能需要使用 OTA (Over-the-Air) 技术 ,OTA 技术简单地说就是通过网络来升级手中的智能设备,进而使用设备最新版本的功能。而 OTA 技术中必不可少的一环就是通过 Bootloader 来管理、升级设备固件。
由于 OTA 功能由多种复杂技术组成,因此添加 OTA 功能有一定的技术门槛。很多开发者遇到莫名其妙的问题,进而导致 OTA 升级失败,常见问题如下:
升级过程缺少专业的安全机制
APP 无法正常启动
程序莫名跑飞,出现 hardfault
固件搬运失败
固件解密解压错误
升级不稳定等
为了解决广大开发者在添加 OTA 功能时遇到的种种困难,RT-Thread 开发团队凭借在该领域深厚的技术积累,为开发者提供了 STM32 系列的通用 Bootloader ,开发者通过该 Bootloader 即可直接使用 RT-Thread OTA 功能。
通用 Bootloader 的功能特点
下图展示了 RT-Thread 通用 Bootloader 的软件框架:
RT-Thread 通用 Bootloader 有如下特点:
以 bin 文件的形式提供,无需修改即可使用
资源占用小,ROM 最小只需要 16KB,最大 32KB
适用于多系列 STM32 芯片(目前支持 F1 和 F4 系列 )
支持各种 SPI Flash 存储固件
支持固件加解密功能
支持多种固件压缩方式
支持恢复出厂固件功能
以上功能均可自由配置
获取方式及使用方法
在线生成 Bootloader
Bootloader 可以通过网页端在线生成的方式来获取。开发者根据自己使用的芯片,填写相关参数,然后点击生成按钮,即可在线生成 Bootloader,在线获取地址:http://iot.rt-thread.com。
Bootloader 生成页面如下所示:
填写板卡硬件配置
2. 配置分区表
3. 加密压缩配置
4. 配置 logo 和邮箱
点击生成按钮即可获取定制的 Bootloader。
制作 app 固件
可以通过阅读文档中心提供的 《STM32 通用 Bootloader 应用笔记》(https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/)来详细了解如何制作可以被用作升级的 app 固件。
开始 OTA 升级
准备好适合板卡使用的 BootLoader,然后制作好可以用作升级的 app 固件,就可以开始体验 OTA 升级功能了。下图展示了 HTTP OTA 升级方式的过程: