Firmware固件的打包、设计、实现与使用

本文详述了基于RT-Thread的OTA功能实现,包括Firmware固件的打包、设计、实现与使用。通过使用RBL打包器,进行加密、压缩配置,然后进行上传验证,确保固件能够正确升级。文中还介绍了打包器的设计,并提供了开源的C#实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于rtthread的OTA功能实现

文章结构:

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

第三章 Firmware固件的打包、设计、实现与使用


前言

  在《App的设计与实现》一章中,编译器编译出来的应用程序rtthread.bin 属于原始固件,并不能用于 RT-Thread OTA的升级固件,需要用户使用 OTA 固件打包器 打包生成 .rbl 后缀名的固件,然后才能进行 OTA 升级。


关键步骤

在这里插入图片描述

可以根据需要,选择是否对固件进行加密和压缩,提供多种压缩算法和加密算法支持 ,基本操作步骤如下:

  1. 选择待打包的固件
  2. 选择生成固件的位置
  3. 选择压缩算法
  4. 选择加密算法
  5. 配置加密密钥(不加密则留空)
  6. 配置加密 IV (不加密则留空)
  7. 填写固件分区名
  8. 填写固件版本
  9. 开始打包
  10. OTA 升级

重要:

  • 加密密钥和 加密 IV 必须与 BootLoader 程序中的一致,否则无法正确加密固件
  • 固件打包过程中有 固件分区名 的填写,这里注意需要填入 Flash 分区表中对应分区的名称,不能有误
    (本文中应用程序区名称为 app)

RBL打包器原理

打包软件可以设置代码加密和压缩,其配置信息都存在rbl文件前96字节中:

rt-fota />fota show fm_area 0 96
00000000: 52 42 4C 00 00 02 00 00 5E A9 A4 5D 61 70 70 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 31 2E 30 2E
00000020: 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030: 00 00 00 00 31 2E 30 2E 36 00 00 00 00 00 00 00
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 43 33 29 0A
00000050: 47 08 F6 DA 84 BB 00 00 1C 84 00 00 C4 3D E3 B5

typedef struct {
   
        char type[4];
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值