分享到:
关于STM32的中断向量表,有一些不明白的地方,请大家帮忙指导一下
我理解是:有两个中断向量表,IAP中断向量表,APP中断向量表,在IAP程序中,
我们使用0x8000000中的IAP向量表。发生中断后,CPU通过中断向量表跳转到IAP的中断函数中去执行。
在APP程序中,我们把APP中断向量表重映射一下,那么CPU在发生中断时,虽然到0X8000000中去取中断函数地址,
但是取的内容是APP中断向量表的内容,所以就跳到了APP的中断函数中去了,是这个意思吗?
CPU复位后,由于中断向量表没有重映射,所以还是用的IAP的中断向量表,所以程序正常运行。
我理解是:有两个中断向量表,IAP中断向量表,APP中断向量表,在IAP程序中,
我们使用0x8000000中的IAP向量表。发生中断后,CPU通过中断向量表跳转到IAP的中断函数中去执行。
在APP程序中,我们把APP中断向量表重映射一下,那么CPU在发生中断时,虽然到0X8000000中去取中断函数地址,
但是取的内容是APP中断向量表的内容,所以就跳到了APP的中断函数中去了,是这个意思吗?
CPU复位后,由于中断向量表没有重映射,所以还是用的IAP的中断向量表,所以程序正常运行。
(0 )
(0 )


回复于 2018-06-20
沙发
CPU复位的时候,根据Boot引脚来决定从哪里引导,一般的从Flash引导。
启动以后CPU获取栈顶地址和Reset异常地址,并不是中断向量表没有映射,而是我们编译的程序把向量表放到了Flash的开头,这样CPU可以正确的获取到Reset地址。
可以做个试验,把程序编译到0x08002000地址,做出bin文件烧录到0x08000000 Flash区里面,你看看程序能跑起来不。
(0 )
-
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
发表回复
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖