[STM32F0] 谈谈对ST 的IAP功能的改进

[复制链接]
1459|14
 楼主| xutong1 发表于 2020-9-9 15:08 | 显示全部楼层 |阅读模式
谈谈对ST 的IAP功能的改进

ST的IAP 设计的不是很好。  为什么, 第一,默认IAP与APP是分开设计,分开编译链接的。是两个独立的程序。   这样来说,生产的时候就要两次烧写代码,很麻烦。

改进方法, IAP+APP都在一个程序代码里面。这个本人以前用的其他公司的芯片IAP方案就是这样的。

IAP+APP一体化后, 程序通过串口通信监测上级。如果收到升级指令,就开始接收串口发来的代码,一包一包接收,一包一包写入FLASH. 最后复位。简单的这么说。


ST的方案, IAP+APP是分开设计的。两个独立的代码, 要用工具把编译的BIN/HEX文件链接为一个BIN文件。 这样 就一次烧写这个BIN文件就可以了。


 楼主| xutong1 发表于 2020-9-9 15:20 | 显示全部楼层
另外  IAP 和APP 互相跳转到问题。 ST的方案 是要中断重映射,靠背代码等等。  如果RAM足够大,是否可以把IAP代码整部分放入RAM中运行?

ufbycd 发表于 2020-9-9 15:42 | 显示全部楼层
本帖最后由 ufbycd 于 2020-9-9 15:47 编辑

一、可以将两个HEX合并,然后单次烧录;
二、ST的烧录工具软件可以同时加载多个目标文件,然后单次烧录;
三、将IAP的运行空间定在RAM内,APP运行时接收IAP固件数据将其保存到指定的RAM区域,然后跳转到IAP。

Diyer123 发表于 2020-9-9 18:24 | 显示全部楼层
楼主想法欠妥
IAP要求的是安全、短小、通用。
你把IAP和用户程序合并在一起,以上任意一个都满足不了……

评论

你说的没有任何根据  发表于 2020-9-9 20:00
yklstudent 发表于 2020-9-11 19:31 | 显示全部楼层
分散加载就可以实现,关键看你想不想去研究和折腾,ST也不是不可以实现
jekey 发表于 2020-9-11 23:23 | 显示全部楼层
可以慢慢体会IAP+APP分开的好处。
way2888 发表于 2020-9-12 07:51 来自手机 | 显示全部楼层
楼主为了烧写这么做一点都不明智,你不会写软件的话,可以把一个升级好的程序读出来,后面烧写就用那个就好了,会写软件就写个小软件合并一下就好了
character 发表于 2020-9-14 14:50 | 显示全部楼层
guanjiaer 发表于 2020-10-10 12:05 | 显示全部楼层
感谢楼主的分享
heimaojingzhang 发表于 2020-10-10 12:07 | 显示全部楼层
感谢无私的分享啊
keaibukelian 发表于 2020-10-10 12:08 | 显示全部楼层
方法很不错
labasi 发表于 2020-10-10 12:09 | 显示全部楼层
第一次了解
paotangsan 发表于 2020-10-10 12:09 | 显示全部楼层
没有十全十美的办法 呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

210

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部