上文中提到,除了 CMSIS-Core 中的 NVIC 数据结构,系统控制块(SCB)中还包含了一些用于中断控制的寄存器,下表为 SCB 数据结构中的寄存器列表,其中一部分与中断或异常控制有关:

下面我们对上表中与中断和异常有关的寄存器来逐一进行分析。
中断控制和状态寄存器 ICSR
ICSR 寄存器可在应用程序中用于:
-
设置和清除系统异常的挂起状态,其中包括 SysTick、PendSV 和 NMI。
-
通过读取 VECTACTIVE 可以确定当前执行的异常或中断编号。
另外,调试器还可以利用该寄存器确定中断状态。其中VECTACTIVE 域和 IPSR 相同,ICSR 整体结构如下表所示:

该寄存器中的多个位域可被调试器使用以确定系统异常的状态。多数情况下,只有挂起的位对于应用开发来说是有用的。
向量表偏移寄存器 VTOR
VTOR 的相关概念已在下文中进行了详细说明,可以点击下方链接直接阅读:



被折叠的 条评论
为什么被折叠?



