NVIC Nested vectored interrupt controller。嵌套向量中断控制器。它是STM32 core peripherals的其中之一,其余为system timer, system control block和memory protect unit。 从NVIC的vector table中看出,NVIC type按照优先级从高到低的顺序,可以分为Reset, NonMaskable Interrupt(NMI), Hard Fault, Memory management fault, Usage Fault, ..., SysTick, Interrupt(IRQ)。整理表格如下。 由此可见,EXTI是NVIC中的一个成员。NVIC中,IRQ分为level-sensitive和pulse两种。前者的中断需要相应外设来取消,因此外设可以控制处理器重复执行相应的ISR;后者由处理器时钟的上升沿同步采集,因此需要外设将中断保持至少一个时钟周期。对于软硬件控制中断挂起和取消中断信号的条件等,参见<PM0056 Programming manual: STM32F10xxx Cortex-M3 programming manual> 4.3.9 Level-sensitive and pulse interrupts。 寄存器 NVIC IRQ的主要寄存器为set enable, clear enable, set pending, clear pending, active bit,每种均有三个元素,分别控制第0~31,32~63,64~67号IRQ;以及设置优先级和软件中断的寄存器。
|