基于rtthread的OTA功能实现

基于rtthread的OTA功能实现

关键字:RT_Thread OTA IAP Ymodem HTTP-OTA FAL Qboot 打包 压缩 加密


软件环境:

  • RT-Thread Studio 版本: 2.2.5
  • 编译器 GNU_Tools_for_ARM_Embedded_Processors\5.4.1\arm-none-eabi
  • RT-Thread版本:4.1.0
  • qboot版本:1.0.6
  • 上位机 Visual Studio 2019
  • 下载器 stlink v2
  • 串口终端 SecureCRT 8.3

硬件环境:

  • 开发板MCU sm32f407vet6 (512k flash,128k ram)
  • 板载FLASH w25q64(w25q64将8M字节的容量分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节,最小擦除单位为一个扇区)

功能特点:
  RT-OTA 是 RT-Thread 开发的跨 OS、跨芯片平台的固件空中升级技术(Firmware Over-the-Air Technology),轻松实现对设备端固件的管理、升级与维护。 RT-Thread 提供的 RT-OTA 固件升级技术具有以下优势:

  • 固件防篡改:自动检测固件签名,保证固件安全可靠
  • 固件加密:支持 AES-256 加密算法,提高固件下载、存储安全性
  • 固件压缩:高效压缩算法,降低固件大小,减少 Flash 空间占用,节省传输流量,降低 下载时间
  • 差分升级:根据版本差异生成差分包,进一步节省 Flash 空间,节省传输流量,加快升级速度
  • 断电保护:断电后保护,重启后继续升级
  • 智能还原:固件损坏时,自动还原至出厂固件,提升可靠性
  • 高度可移植:可跨 OS、跨芯片平台、跨 Flash 型号使用,不依赖具体的 OTA 服务器

文章结构:

  1. 摘要
  2. BootLoader的设计与实现
  3. App的设计与实现
  4. Firmware固件的打包、设计、实现与使用

文章对象:

  1. 程序中具有嵌入式操作系统RT-Thread的产品,并对ota有使用的环境和需求
  2. 学习ota的工作流程和BootLoader、App、Firmware固件加密软件的设计思路
  3. 文章中所有代码均已开源,包括BootLoader、App以及上位机打包器的所有源码均已上传至github,https://github.com/refugeer

局限性:

  1. 描述具体的实现,不做详细的阐述和分析,需要有一定的RT-Thread应用基础
  2. 本文的功能实现基于stm32 f407vet6及winband w25q64 flash,仅作为示范和参考
  3. 本文采用的开源BootLoader(qboot)来自qiyongzhong0
  4. 本文的代码和实现只为演示OTA的整个流程和关键部分设定,后续因为RT-Thread的系统升级或软件包变动造成的版本兼容问题,不在做文章更新计划。

你可能感兴趣的:(rt-ota,单片机,stm32,mcu,iot)