ARM_Cortex-M3内核结构(13)
发布时间:2021-06-07
发布时间:2021-06-07
表 2.7 抢占优先级和次优先级分组位置的关系
器的优先级,则寄存器的低位始终为 0,例如,如果使用 3 个位来配置优先级,则 PRI_N[7:5]用来配置 优先级,而 PRI_N[4:0]为 4‵b0000。
2.5.3 中断向量表
当发生了异常并且要响应它时,Cortex-M3 需要定位其服务例程的入口地址。这此入口地址存储在 所谓“异常向量表”中。缺省情况下,
Cortex-M3 认为该表位于零地址处,且各向量占用 4 字节。因此 每个表项占用 4 字节,复位后的向量表如表 2.8 所列。
表 2.8 复位后向量表
向量表
的基地址可以通过 NVIC 中的向量偏移寄存器(0xE000ED08)来设置,如表 2.9 所示。从表 中可以看出,可以将异常向量表放在 Code 区也可以将其放在 RAM 区,起始地址也可改变,起始地址是 有要求的:必须先求出系统中共有多少个向量,再把这个数字向上记到 2 的整次幂,而起始地址必须对 齐到后者的边界上。例如,如果一共有 32 个中断,则共有 32+16(系统异常)=48 个向量,向上记到 2 的整数次幂后值为 64,因此向量表重定位的地址必须能被 64 X 4=256 整除。