完善资料让更多小伙伴认识你,还能领取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,开始覆盖升级。
|
|
|
|
|
|
是的,这样升级后要重启的,重新设置启动地址
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1390 浏览 1 评论
1132 浏览 1 评论
MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记
648 浏览 0 评论
自定义系统时钟频率后,用库函数和微带两种方式点亮LED灯,为什么灯的闪烁频率不一致?
1658 浏览 2 评论
1893 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-28 13:51 , Processed in 0.903754 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号