欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

对STMG474RE Flash 空间大小不同BootLoader方法

程序员文章站 2022-03-06 20:51:58
1.1 FLASH空间足够大,能放下多APP+BootLoader主要针对STMG474RE FLASH空间有512KB状态图状态机系统下发固件RAM验证片内FLASH升级片内FLASH验证1××××2✔×××3✔✔××4✔✔✔×5✔✔✔✔应对方案:#mermaid-svg-zLUlI0eRpii1tM7t .label { font-family: 'trebuchet ms', v...

1.1 FLASH空间足够大,能放下多APP+BootLoader

  • 主要针对STMG474RE FLASH空间有512KB

状态图


状态机 系统下发固件 RAM验证 片内FLASH升级 片内FLASH验证
1 × × × ×
2 × × ×
3 × ×
4 ×
5

应对方案:

  1. 构成如上三级结构
  2. 上位机下发固件代码到RAM,在RAM 中进行验证,确保RAM 中内容是正确的,再通过BootLoader将RAM 中的固件数据固定到FLASH中。并且验证数据有效性,确认数据是有效的,切换APP区域。运行新的APP。

FLASH结构图:

BootLoader流程:

  1. 进入BootLoader 读取标志位 选择升级还是等待上位机通讯
  2. 判断 Flash 校验和与EEPROM校验和是否相同 不同则升级
  3. 写入FLASH后读取FLASH校验和 判断写入是否有错误
  4. 若升级失败 记录升级失败的次数 若次数大于N 则擦除存储在EEPROM中的FirmWare和校验和 并置标志位 等待下次在BootLoader中与上位机通讯

2.1针对FLASH放不下两个APP应用,使用外部EEPROM作为暂存区

  • 主要针对STMF334RBT6 FLASH空间仅有64KB

状态图


状态机 系统下发固件 EEPROM验证 片内FLASH升级 片内FLASH验证
1 × × × ×
2 × × ×
3 × ×
4 ×
5

应对方案:

  1. 构成如上三级结构
  2. 上位机下发固件代码到EEPROM,在EEPROM 中进行验证,确保EEPROM 中内容是正确的,再通过BootLoader将EEPROM 中的固件数据下载到FLASH中,EEPROM 在流程中充当了RAM的作用,也能作为冷备份。

Flash结构图

BootLoader流程:

  1. 进入BootLoader 读取标志位 选择升级还是等待上位机通讯
  2. 判断 Flash 校验和与EEPROM校验和是否相同 不同则升级
  3. 写入FLASH后读取FLASH校验和 判断写入是否有错误
  4. 若升级失败 记录升级失败的次数 若次数大于N 则擦除存储在EEPROM中的FirmWare和校验和 并置标志位 等待下次在BootLoader中与上位机通讯

本文地址:https://blog.csdn.net/qq_36142248/article/details/107908657

相关标签: 电源 STM32