[其他ST产品] STM32 IAP升级,KEIL下如何一份代码可以运行于两个APP区。

[复制链接]
 楼主| shskaoanc 发表于 2022-8-30 16:28 | 显示全部楼层 |阅读模式
我的想法是一个IAP+APP1+APP2。上电运行IAP。会检测当前有效APP,跳转有效APP运行。在APP运行期间,收到升级指令,直接dowm固件,到另外一个APP区,下载会对固件进行安全校验。目前的问题是,没办法使用一份代码运行两个APP。两个APP,则IAP跳转不同的APP,跳转的地址不一样,则代码中需要设置的中断向量表及链接地址。这样,一份代码就不行了,而且两份代码还需要注意当前到底应该使用哪份代码的固件。在实际生产中几乎没办法处理。但是我在工作中有接触到使用M4的原厂,实现了两个APP区,一份代码。故,请问要如何实现?
hfaouhfoa 发表于 2022-8-30 16:28 | 显示全部楼层
APP1和APP2也就是一个偏移地址差异,这个管理很难嘛
shjuturt 发表于 2022-8-30 16:28 | 显示全部楼层
你找下带2个BANK的mcu试试,可以分2个区,地址好像一样的。
zyj213 发表于 2022-8-30 16:29 | 显示全部楼层
可以考虑将IAP部分多分配一个SECTOR, 用来保存当前使用的APP信息,包括验证的证书等信息。
或者像大家建议的,使用双bank的MCU。 比如G4系列,可以实现双BANK启动。
ljxh401 发表于 2022-8-30 23:17 | 显示全部楼层
本帖最后由 ljxh401 于 2022-8-30 23:22 编辑

一个app区,一个download区,
在boot运行时候检测 download区数据是否正确,复制去更新app区,擦除download区
app区可以去网上下载新的内容到 download区
不就ok了吗
求关注我的问题
stm32使用串口isp 故障
https://bbs.21ic.com/icview-3249368-1-1.html
moticsoft 发表于 2022-8-31 08:31 | 显示全部楼层
专门分出来一个扇区,用来保存IAP跳转执行的APP地址,由IAP程序根据APP的下载升级情况来管理这个扇区里面的地址。
e21 发表于 2022-8-31 11:43 | 显示全部楼层
中断向量可以放RAM, 加个偏移地址不是很简单.
selongli 发表于 2022-9-5 13:01 | 显示全部楼层
升级指令直接运行的
abotomson 发表于 2022-9-5 15:13 | 显示全部楼层
这个实现不了的
jimmhu 发表于 2022-9-7 18:39 | 显示全部楼层
这个有什么问题吗
iyoum 发表于 2022-9-8 16:15 | 显示全部楼层
iap升级可以校验的
温室雏菊 发表于 2022-9-22 15:47 | 显示全部楼层
一份代码运行在两个APP的区域?好像不太行吧

风凉 发表于 2022-9-22 16:09 | 显示全部楼层
这个估计是bin,需要你自己设置地址才行

西洲 发表于 2022-9-22 16:31 | 显示全部楼层
一般都是固件的偏移量,设置一下就好了

捧一束彼岸花 发表于 2022-9-22 16:53 | 显示全部楼层
用标记的方式实现一下,应该是可以的

失物招領 发表于 2022-9-22 17:15 | 显示全部楼层
你可以把MCUflash分成2块,试试

一只眠羊 发表于 2022-9-22 17:37 | 显示全部楼层
应该是可以的,有效与否用个标记实现一下

未说出口的像你 发表于 2022-9-22 17:59 | 显示全部楼层
你可通过将升级的app2读取,复制到APP1之中就行吧,在重启的时候

在曼谷的春 发表于 2022-9-22 18:21 | 显示全部楼层
我记得ST的有蓝牙单片机好像就支持这种OTA升级

我吃小朋友 发表于 2022-9-22 18:43 | 显示全部楼层
你参考一下ST的新双核MCU或者蓝牙MCU呗,稳的很

您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

118

帖子

1

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