STM32 IAP成功跳转APP ,能进入用户程序,但所有跟中断有关系的外设全部失灵,全部中断处理函数都没进

2019-07-21 01:23发布

STM32 IAP成功跳转APP ,能进入用户程序,但所有跟中断有关系的外设全部失灵,全部中断处理函数都没进

IAP程序里代码如下图:
QQ截图20170928150834.png QQ截图20170928150848.png


APP程序里代码如下图:
QQ截图20170928151216.png QQ截图20170928151047.png

各位大神们帮我看一下什么问题,急等!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
24条回答
东海之郊
2019-07-21 05:52
午夜狼嚎 发表于 2018-8-28 21:55
没有

中断向量表只有一个,要么IAP里使用,要么APP里使用,一般我们都是在APP里使用,如果IAP里一定要使用,那么在APP跳转到IAP时不要使用Jump跳转代码,直接对内核复位,复位前在内部flash某一位置做一个标志,复位后首先进入的是IAP,在IAP里读取标志位,判断是否升级,不需要就使用Jump跳转代码跳转到APP(APP第一句记得修改中断向量表偏移地址),需要升级就进入升级程序,升级完清除升级标志,然后内核复位,千万不要升级完跳转,跳转会导致APP里中断找不到中断向量表入口地址,尽管你在APP里设置了偏移地址也没用。为何复位内核能够使IAP和APP里的中断能正常使用,是因为复位内核后中断向量表会被重置。下面是内核复位代码,调用NVIC_CoreReset();即可。

一周热门 更多>