BootLoader

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

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

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

应对方案:
上位机
RAM
FLASH
  1. 构成如上三级结构
  2. 上位机下发固件代码到RAM,在RAM 中进行验证,确保RAM 中内容是正确的,再通过BootLoader将RAM 中的固件数据固定到FLASH中。并且验证数据有效性,确认数据是有效的,切换APP区域。运行新的APP。
FLASH结构图:
FLASH
BootLoader
APP1
APP2
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

应对方案:
上位机
EEPROM
FLASH
  1. 构成如上三级结构
  2. 上位机下发固件代码到EEPROM,在EEPROM 中进行验证,确保EEPROM 中内容是正确的,再通过BootLoader将EEPROM 中的固件数据下载到FLASH中,EEPROM 在流程中充当了RAM的作用,也能作为冷备份。
Flash结构图
FLASH
BootLoader
APP1
BootLoader流程:
  1. 进入BootLoader 读取标志位 选择升级还是等待上位机通讯
  2. 判断 Flash 校验和与EEPROM校验和是否相同 不同则升级
  3. 写入FLASH后读取FLASH校验和 判断写入是否有错误
  4. 若升级失败 记录升级失败的次数 若次数大于N 则擦除存储在EEPROM中的FirmWare和校验和 并置标志位 等待下次在BootLoader中与上位机通讯
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值