STM32中断向量重映射?

2019-07-21 06:07发布



STM32中断向量可以重映射,   


具体咋映射?

比如开始地址是  0X0800 0000   我想给映射到地址  0X00800 1000    咋做?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
LIGONG004
2019-07-21 08:38
为了动态重分发中断,CM3 允许向量表重定位——从其它地
址处开始定位各异常向量。这些地址对应的区域可以是代码区,但也可以是RAM 区。在RAM
区就可以修改向量的入口地址了。为了实现这个功能,NVIC 中有一个寄存器,称为“向量
表偏移量寄存器”(在地址0xE000_ED08 处),通过修改它的值就能定位向量表。但必须注
意的是:向量表的起始地址是有要求的:必须先求出系统中共有多少个向量,再把这个数字
向上增大到是2 的整次幂,而起始地址必须对齐到后者的边界上。例如,如果一共有32 个
中断,则共有32+16(系统异常)=48 个向量,向上增大到2 的整次幂后值为64,因此地址
地址必须能被64*4=256 整除,从而合法的起始地址可以是:0x0, 0x100, 0x200 等。

一周热门 更多>