完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我现在使用IAP升级,升级方式是一个IAP程序+2个APP程序+标志位,开始使用JLINK下载IAP程序,IAP下载APP1,然后每次启动根据标志启动APP1或者APP2;和面APP1和APP2都可以升级对方,只有一个APP在运行都可以升级另外一个APP程序,现在的问提是APP1(或者APP2)升级完APP2(或者APP1)后STM32必须重启一下,不然运行一点时间当前的APP后死掉,不知道哪位遇见过这样的情况,当前APP不升级另外一个APP就好好的运行,只有当前APP升级另一个APP后,过一段时间就会死掉,也不知道死在那个地方,APP都升级成功了。。。。。
|
|
相关推荐
8个回答
|
|
你这个升级思路不对,所有应用程序必须由iap程序升进去。
如当前运行app1,要升级app2,并运行,应该在app1中,改写标志,然后复位跳转到iap程序中,通过iap升级app2 ,升级成功后,改写标志,映射app2 的中断向量到sram,然后跳转app2 执行。反之也一样。我们目前产品就是这么做,一直很稳定! |
|
|
|
没有远程升级过,但是升级的步骤如果不对的话,肯定不会成功
|
|
|
|
只能靠iap升级app,app自身直接升来升去的,程序运行指针搞乱套了的都,还有一些变量在升级完也不是初始状态,中断向量跳来跳去跳乱套。
|
|
|
|
|
|
|
|
主要是一些向量不能冲突,2个APP生成的BIN文件不要在同一个区域。要用实际的FLASH地址区分开。
APP BOOTLAODER 先运行,然后判断标志位是要执行哪个区域的代码。再JAMP到指定的入口地址。 |
|
|
|
我之前是采用的也是整体升级,进入升级模式后,加载代码至RAM,开始覆盖升级。
|
|
|
|
|
|
是的,这样升级后要重启的,重新设置启动地址
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
621 浏览 1 评论
1962 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1068 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1487 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1924 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 21:21 , Processed in 0.758068 second(s), Total 87, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号