发新帖我要提问
12
返回列表
打印
[STM32F1]

请教stm32 IAP多个app的问题

[复制链接]
楼主: terminator-04
手机看帖
扫描二维码
随时随地手机跟帖
21
terminator-04|  楼主 | 2016-10-22 10:49 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 terminator-04 于 2016-10-22 10:52 编辑
Thor9 发表于 2016-10-21 21:44
从APP1跳转到APP2之前,把APP1内所有开启的硬件模块都关闭/复位

我试了一下,也是不行,不过我关闭所有使用的模块的方法是关闭他们的时钟,这样可以吗?或者有其他关闭的方法?
我用了IWDG,由于IWDG一旦开启是无法关闭的,我怕最后是不是还剩下这个造成的,最后我改程序压根就不用iwdg了,但还是不行。。很费解。

使用特权

评论回复
22
shashaa| | 2016-10-22 10:50 | 只看该作者
看下API 应该需要进行复位操作的吧

使用特权

评论回复
23
terminator-04|  楼主 | 2016-10-22 19:49 | 只看该作者
shashaa 发表于 2016-10-22 10:50
看下API 应该需要进行复位操作的吧

我看了一下ST官网上的例程,它在完成升级后,是可以直接选择跳转到新程序的复位中断的,不需要复位。

使用特权

评论回复
24
xmshao| | 2016-10-24 14:43 | 只看该作者
terminator-04 发表于 2016-10-20 23:32
APP1跳到APP2最先不是先跳到APP2复位函数里吗?我仿真了一下,地址是对的。
我还有一个疑问,APP1和APP2 ...

嗯,当你从APP1跳到APP2时,堆和栈都重新初始化了,运行的是另外一套程序环境。
所以RAM这里不存在共用的问题。
建议你检查确认下中断矢量表的配置。
之前就碰到有人外边正确配置一次,结果systeminit()里又按错误的配置运行一次。

使用特权

评论回复
25
ren0zhe| | 2017-5-8 17:19 | 只看该作者
你好,你生成的bin文件,需要修改IROM1的地址吗?需要和将要放置的flash区域相对应吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则