STM32/STM8技术william hill官网
直播中

李天氍

7年用户 252经验值
私信 关注
[问答]

请问为什么要对STM32的中断向量表进行重映射?

网上看了很多关于STM32的中断向量表的帖子,估计也就那几个帖子抄来抄去的。但是始终有个问题:为什么要对中断向量表进行重新映射?
​           我看了宋岩的COREM3权威指南上讲“然而,为了动态重分发中断, CM3 允许向量表重定位——从其它地址处开始定位各异常向量。这些地址对应的区域可以是代码区,但也可以是 RAM 区。在 RAM区就可以修改向量的入口地址了。”。但是,感觉说了跟没说一样,没有回答问题的本质。
​           我的疑惑:
​                             1.如果不重新映射的话,中断向量表的地址应该是这样的:0X0000 0000是SP;0X0000 0004是复位向量;0X0000 0008是NMI;后面按照中断编号的顺序依次按4递增。这样的话,不也能存得下中断向量表吗?反正存的是一些函数指针,占不了多少空间,干嘛还要重新映射到其他的地方呢?
​                             2.如果重新映射的话,中断向量表的入口地址就变成0x0800 0000了。但是一开始已经开辟的那部分空间(0x0000 0000......)存放的中断向量表不是就​等于没用吗?
​                             请好心人帮我解答下,在下不甚感激!

回帖(10)

张倩

2018-9-30 10:05:31
重新映射中断向量表是为了IAP!
就悬赏1金币,楼主好小气!
举报

李悛

2018-9-30 10:18:04
重新映射的话,不存在开辟的空间没用的问题,因为这个开辟的空间被整好映射过去了。
举报

李天氍

2018-9-30 10:33:09
引用: 7762642422d 发表于 2018-9-30 09:30
重新映射的话,不存在开辟的空间没用的问题,因为这个开辟的空间被整好映射过去了。

那不重新映射不是更好吗?
举报

李天氍

2018-9-30 10:42:20
引用: 亲爱的娜娜 发表于 2018-9-30 09:17
重新映射中断向量表是为了IAP!
就悬赏1金币,楼主好小气!

新人,第一次发帖子,后续会加奖励的。我想问的是可以不重新映射吗?
举报

张倩

2018-9-30 10:54:53
引用: maqyun 发表于 2018-9-30 09:54
新人,第一次发帖子,后续会加奖励的。我想问的是可以不重新映射吗?

可以不重映射。
举报

刘英

2018-9-30 11:02:42
蹭个金币。。。
举报

李开心

2018-9-30 11:12:20
你可以看一看william hill官网 的关于内核的哪几节视频,里面有讲。将的很清楚。应该是这个视频《Cortex-M内核系列和STM32-讲座1》。第slide12开始讲。

其实你通过boot0和boot1启动就是地址重映射的一部分,但不是全部。楼上说的IAP是另一部分。具体你再看看。
举报

姬房有

2018-9-30 11:20:41
学习了!
举报

黄敏

2018-9-30 11:35:22
学习了     
举报

李悛

2018-9-30 11:46:36
引用: maqyun 发表于 2018-9-30 09:45
那不重新映射不是更好吗?

creep不是也提到了嘛,
IAP时显出作用,但貌似还有其它原因。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分