基于STM32的IAP:FLASH里的标志位不能跳转到程序区2

2019-07-14 18:16发布

最近在做基于STM32的IAP,我想把FALSH分为4个区,1个BOOT区(8002000H开始),2个应用程序区(1区:8002000H开始,2区:8008000开始),1个存储标志位的区(800F000H开始)。在BOOT里面通过读取FLASH里的标志位,来决定跳到应用程序区1还是跳转到应用程序区2。现在能够正常跳转到应用程序区1,不能跳转到应用程序区2,大致问题应该是中断向量表的问题。我应用程序里面的中断向量表设置也是通过读取FLASH标志位来设置,如果APP在1区,则设置为8002000H,在2区设置为8008000。keilc里面设置的编译段为8002000H。

请问哪里不对
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
小呆瓜子
1楼-- · 2019-07-14 22:49
 精彩回答 2  元偷偷看……
ywewywf
2楼-- · 2019-07-15 01:20
设置了NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);能够正常运行APPI,但是不能正常执行APP2啊,并且在Keilc里面也只能设置一个偏移地址啊
 
quanmeng86
3楼-- · 2019-07-15 01:53
我晕,你一个芯片里面一个IAP两个APP,这个复杂度挺高的阿,围观你什么时候放弃。
quanmeng86
4楼-- · 2019-07-15 07:24
劝你尽早放弃这种想法,否则光中断向量就够你受的
rstech_rd
5楼-- · 2019-07-15 08:28
两个app还是建立两个工程文件,放在同一个workspace里就行,这样keil设置方便
shanba31
6楼-- · 2019-07-15 09:25
 精彩回答 2  元偷偷看……

一周热门 更多>