你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何防止MCU通过串口IAP升级后变砖

[复制链接]
奏奏奏 提问时间:2019-6-10 17:43 /
目前计划的MCU串口IAP升级方案是这样的:
(1)串口通讯符合IAP升级指令,则转换为升级模式;
(2)升级模式中不断接收升级数据,每包数据最多100个字节,包含包头、校验码、写入FLASH地址、写入数据有效长度、写入数据内容;
(3)接收到的数据搬运到 程序备份区(与目前运行程序区一样大),将升级标记保存到FLASH中指定区域;
(4)重启,重新上电后从升级标记读取程序备份区开始地址,通过Bootloader跳转到这个开始地址运行程序;
(5)将程序备份区的数据复制搬运到 FLASH中 主程序区域;
(6)重启,重新上电后从升级标记读取知道本次切换回主程序区域运行。

但是,上面过程中,我最担心的就是因为升级数据包出错,导致步骤(4)或者步骤(6)无法正常工作,变成一开机就变砖了。
看各位有MCU升级经验的大佬带带我。先谢谢各位

收藏 评论4 发布时间:2019-6-10 17:43

举报

4个回答
yklstudent-1794 回答时间:2019-6-10 18:31:29
本帖最后由 yklstudent-179403 于 2019-6-10 18:33 编辑

保留或者预留一种方式可以强制进入bootloader区,运行bootloader程序即使APPlication挂了,还可以运行bootloader进行升级
然后就是对整各application程序进行校验,如果传输中断某一帧出错,可以识别出来

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

奏奏奏 回答时间:2019-6-10 19:03:57
yklstudent-1794 发表于 2019-6-10 18:31
保留或者预留一种方式可以强制进入bootloader区,运行bootloader程序即使APPlication挂了,还可以运行bootl ...

整个APP程序所有数据进行校验和校验吗?
检验和应该是最简单的,相加后取低位就可以了。
回答时间:2019-6-11 08:29:41
加和校验是最差的。可能会发生一致的时候。最好是加CRC校验,或者其他的高级校验方式。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

奏奏奏 回答时间:2019-6-11 09:24:51
安 发表于 2019-6-11 08:29
加和校验是最差的。可能会发生一致的时候。最好是加CRC校验,或者其他的高级校验方式。 ...

目前串口协议中用的是CRC16的校验方式,得到这个宝贵意见后我还是决定保持CRC16校验。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版