OTA初识

OTA
1.OTA初识,OTA有以下特征:
1.1. 一个中心可向多个设备分发更新资料(固件);
1.2. 更新资料一旦发送便不可被更改;
1.3. 设备可以拒绝更新;
1.4. 中心可以排除指定的设备,使其不会接收到更新资料。

2.OTA的具体功能:MCU 设备上的 OTA 升级可理解为 IAP (In Application Programming) 技术,
MCU 通过外设接口(如 UART, IIC, SPI, CAN, USB 等接口),连接具备联网能力的模块、器件、设备。

3.bootloader
3.1.业务逻辑
3.1.1 固件的检测和处理
3.1.2 固件的被动更新检测:
(1)由主机决定是否更新,优先级最高。
(2)上电的时候,收到的第一个数据包非指令包或超时未收到任何数据认为非固件更新模式
多分区方案会进行固件的检测和处理
单分区方案会在有FW的情况夏进行APP完整性检查然后可选择的执行APP
3.1.3 固件自动更新检测,以下两个方案都可以进行配置选择
3.1.3.1 方案一
(1)上电后,检测到download分区存在完整的FW,自动开始更新
(2)更新完成且校验通过后擦除download分区
3.1.3.2 方案二
(1)对比download分区的FW header的新旧版本是否一致,不一致自动更新到APP
(2)更新完成且通过校验后,以flash的最小擦除粒度为单位读取出download分区从首地址开始的固件包数据
(3)更新读取到的数据的header的旧FW信息更新成新的
(4)擦除读取到的数据到对应的flash空间
(5)将更新后的数据写入到擦除的flash空间
3.1.4 主机下发的指令处理:从机的固件更新流程是主机的指令进行引导的,但不能有非法的更新流程
(1)发送文件信息SOH包 做好固件更新前的准备
(2)发送固件分包(STX包),第一个分包是Fw header
(3)发送结束帧(包含EOT和空包),开始fw update 完成恢复后的init,然后运行app
3.1.5 固件的更新流程
3.1.5.1 单分区方案
(1)接收固件包头 校验成功暂存储在RAM
(2)擦除APP分区
(3)接收FW pack,校验成功后,加解密ok才可以写入App分区
(4)校验固件数据的正确性:
因为是单分区方案无法打包FW进行check,只能处理且写入APP后才能进行FW check
数据有误需要重新进行固件更新流程
数据校验通过后需要讲首地址的4个字节数据写回分区
(5)执行App
3.1.5.2 多分区方案
(1)接收FW header并且校验
(2)擦除需要放置的固件分区,放置的分区由FW header决定,分区为NULL的时候无需擦除
(3)固件包头写入到对应的分区,首地址的四个字节数据暂存且先不写入
(4)接收固件包体校验成功后写入对应分区
(5)校验固件的准确性,如果有误需要重新进行固件更新流程,校验通过后再将暂存的4个字节数据写入对应分区的首地址中
(6)擦除app分区,分区为空的时候无需擦除
(7)将固件包更新至App分区,如果FW已经加密必须按照4096byte个单位解密后才能写入app分区,固件包首地址的4个字节数据暂存且先不写入(必须是解密后的数据)
(8)擦除或者修改download分区的数据,如果是factory分区则无需擦除,download分区的擦除和修改需要FW自动更新的方案来决定
(9)校验APP分区固件的数据正确性,需要校验
(10)Run APP
3.1.5.3 恢复出厂固件:按键中断,cmd恢复,计数器恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sumerking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值