当前位置: 代码迷 >> 综合 >> 使用 STM32 通用 Bootloader ,让 OTA 更加 Easy
  详细解决方案

使用 STM32 通用 Bootloader ,让 OTA 更加 Easy

热度:34   发布时间:2023-12-21 15:17:43.0

随着物联网时代到来,越来越多的智能设备拥有了在线升级的能力,无论是系统更新,产品功能迭代还是漏洞修复都能在第一时间抵达用户手中的智能设备。

在线升级功能需要使用 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 生成页面如下所示:

  1. 填写板卡硬件配置

    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 升级方式的过程:

其他相关说明

  • RT-Thread 文档中心:《STM32 通用 Bootloader 应用笔记》:https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/

  • 你可以加入QQ群:340822587,交流相关技术或者使用问题

 

RT-Thread线上活动

1、【RT-Thread能力认证考试12月——RCEA】经过第一次考试的验证,RT-Thread能力认证得到了更多社区开发者和产业界的大力支持!(点此查看)如果您有晋升、求职、寻找更好机会的需要,有深入学习和掌握RT-Thread的需求,欢迎垂询/报考!

能力认证官网链接:https://www.rt-thread.org/page/rac.html(在外部浏览器打开)

立即报名

#题外话# 喜欢RT-Thread不要忘了在GitHub上留下你的STAR哦,你的star对我们来说非常重要!链接地址:https://github.com/RT-Thread/rt-thread

你可以添加微信18917005679为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群

RT-Thread


让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。

长按二维码,关注我们

看这里,求赞!求转发!

点击阅读原文进入GitHub