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

第二期:进来聊聊在应用编程(IAP)升级固件程序设计流程吧

[复制链接]
一代睡神的崛起 提问时间:2018-11-2 08:24 /
阅读主题, 点击返回1楼
收藏 6 评论24 发布时间:2018-11-2 08:24
24个回答
jiaxiaokui 回答时间:2018-11-2 15:56:29
为了理解OTA固件升级,可将存储器分为引导加载区和应用程序区。与UART 引导加载程序相比,此处最大的不同是用于从主机接收新固件的接口。OTA固件升级使用一个无线通信接口接收更新后的固件映像。取决于具体应用,逐个接口可能是WiFi、ZigBee、蓝牙或任何其它无线接口。无论何种接口,其过程和基本原理都是相同的。

点评

这个表示还没去尝试过诶,谢谢分享,有机会去试着玩一下  发表于 2018-11-2 16:05
az158 回答时间:2018-11-2 18:32:48
基本就是分成引导和应用程序区,要注意的恐怕也只有中断入口偏移了吧。一般程序会留出一个很大的空间作为升级备份(防止断电和数据中断,我们一般时使用以太网作为传输的)。

点评

是的,有的工程确实需要这么去做的  发表于 2018-11-3 17:39
dsjsjf 回答时间:2018-11-3 13:36:47
IAP,一般需要把MCU内的Flash分为两个区,一个为Bootloader,一个为APP。
我常用的有两种思路,两种各有优缺点。
第一种:在APP运行程序中接收到固件升级指令,跳转到Bootloader中,在Bootloader中接收待更新的固件数据,并且校验其正确性,把数据写到APP区,全部接收完成后,跳转到APP运行。这个方法的好处是,不需要额外的Flash区域,缺点是升级的端口协议相对固定、不自由。
第二种:在APP中接收待更新的固件数据,并且检验其正确性,再把数据写到备份区,完成后,跳转到Bootloader,在Bootloader中对备份区检查,如果有新数据,则把它搬到APP区,最后跳转到APP运行。这个方法的好处是,在APP中接收数据,APP里可以自由更换升级端口,比如串口,CAN,以太网等,应用中使用的什么端口,升级就可使用什么端口,Bootloader中只负责从备份区往APP区搬运数据。缺点就是需要使用和APP空间同样大小的备份区。

12
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版