当前位置: 首页 > news >正文

【OTA专题】16 更新Bootloader:OTA框架设计

目录

1.Bootloader升级流程:

(一)检查 Flag值

(二)解密与转移固件

(三)备份当前 APP

(四)搬移固件到片上Flash

(五)跳转与确认

2.硬件架构:

模块介绍:

架构图:

4.软件架构:

Bootloader:

5.更新后的Bootloader升级流程:


1.Bootloader升级流程:

(一)检查 Flag值

1.在Bootloader启动过程中,首先检查EEPROM上的Flag值。如果Flag值表示固件已经完整地存放在外部Flash的A区域,那么Bootloader 开始执行升级操作。

2.这个检查过程确保了只有在有合法的升级请求时才进行后续的复杂操作,提高了系统的稳定性和安全性。

(二)解密与转移固件

1.Bootloader将A区域的固件一部分一部分地解密并放到B区域。由于SRAM一般很小,不可能装下一整个固件,所以采用每次处理1K的方式,与Flash的擦除单位相匹配,提高了操作的效率和灵活性。

2.这个过程需要确保解密算法的正确性和安全性,防止固件被恶意篡改或窃取。

(三)备份当前 APP

1.将当前内部正常运行的APP存入A区域,覆盖掉原来的A区域,作为备份区域。这样在升级出现问题时,可以恢复到之前的版本,提高了系统的可靠性和可恢复性。

2.备份过程需要确保数据的完整性和准确性,避免备份数据损坏导致无法恢复。

(四)搬移固件到片上Flash

1.接着将B区域的已解密固件搬移到STM32 的片上Flash的APP区域。这个过程需要确保数据的正确传输和存储,避免出现数据丢失或错误。

2.搬移完成后,将Flag修改,表明可升级的固件已经迁移到内部Flash,防止下次重启再次进行不必要的迁移操作。

(五)跳转与确认

1.最后,进行跳转至片上flash的APP区域,进入APP后,再次修改Flag,确认已经启动成功。这个过程确保了系统能够正常启动并运行新的固件版本。

2.跳转和确认过程需要确保系统的稳定性和正确性,避免出现启动失败或异常情况。

2.硬件架构:

模块介绍:

Stm32F411CEU6:用于存放Bootloader代码和APP的主控芯片

Key:用于实现App和Bootloader切换逻辑模块

Led:用于演示App代码运行成功

Ch340:用于实现MCU与PC之间通信的中间模块

PC:使用相关上位机软件进行控制和下载芯片

Jlink:下载代码和Trace调试

W25Q64:存放下载备份App的代码

HC05:实现远程升级的必备工具,于PC端实现蓝牙通信

AT24C02:用来存放部分标志位信息,版本信息等

架构图:

4.软件架构:

Bootloader:

Key_Detect:用于上电时检测Bootloader是否进入下载模式

Download_logic:用于管理整个下载流程

Ymodem:基于上位机与MCU之间的通信协议

Gpio:外设寄存器层

Uart:外设寄存器层

Flash:外设寄存器层

W25Q_Driver:存放官方W25Q驱动库

W25Q_Handler:基于升级流程与W25Q之间的协议

AT24C02_Driver:存放Eeprom的驱动库

5.更新后的Bootloader升级流程:

http://www.jsqmd.com/news/235476/

相关文章:

  • PFC控制系统仿真(源码+万字报告+讲解)(支持资料、图片参考_相关定制)
  • ## 基于MATLAB的五次谐波滤波器系统设计(源码+万字报告+讲解)(支持资料、图片参考_相关定制)
  • 三相整流电路仿真设计(源码+万字报告+讲解)(支持资料、图片参考_相关定制)
  • 并网逆变器恒功率控制仿真(PQ控制)(仿真+波形分析报告)!(源码+万字报告+讲解)(支持资料、图片参考_相关定制)
  • 基于MATLAB的Buck降压式变换器系统设计(源码+万字报告+讲解)(支持资料、图片参考_相关定制)
  • 实时OLAP解决方案:Kylin vs Druid vs ClickHouse
  • 北京科技大学天津学院第十届智能汽车竞赛校内赛决赛成功举办
  • 前端老铁都在用的可观察对象:这玩意到底能干啥?(附实战套路)
  • lammps建模--一种实用的建模方法
  • 企业AI Agent的伦理设计与道德决策框架
  • 强烈安利!继续教育必备TOP8 AI论文工具测评
  • 大数据领域Hadoop的云部署实践
  • 关于AI编程时代的面试需求思考
  • 基于Inception-V3预训练模型实现cifar-10数据集的分类任务
  • macbert模型介绍
  • 学长亲荐2026继续教育必备TOP9一键生成论文工具测评
  • 大数据领域借助 Eureka 实现服务的快速定位
  • 数据结构2.0 线性表
  • GDPR数据主体权利在大数据环境中的技术实现方案
  • Agentic AI上下文工程隐私保护实战:提示工程架构师的5个调试技巧
  • 稳定性性能系列之十二——Android渲染性能深度优化:SurfaceFlinger与GPU
  • Android15系统中(娱乐框架和车机框架)中对摄像头的朝向是怎么定义的
  • 提示工程资源优化的边缘计算:架构师用边缘节点,减少云端资源消耗
  • AI原生应用进阶:RAG技术详解与优化
  • PDMS二次开发(二十四)关于1.0.6.0版本升级内容的说明
  • 静态综合实验~
  • ARM架构中APSR状态寄存器里的Q位
  • 学霸同款10个AI论文平台,助你轻松搞定研究生论文!
  • 2026年最好用的降AI率工具Top5:学长学姐都在用
  • 自考人必看!9个高效降AIGC工具推荐