ARM Cortex-M4中断

1. ARM Cortex-M4异常(exception)与中断(interrupt)

ARM Cortex-M4中断_第1张图片

Reset :  上电or热复位会进入Reset中断。
NMI    :  外设信号触发or软件触发不可屏蔽中断。永远是使能的且优先级固定为-2.NMI不可以被屏蔽或者在activation时被其他exception阻止。且除了Reset外无exception可以抢占。
HardFault : 在exception处理过程中出现了错误,或者不能够被其他的exception机制所管理,则触发HardFault中断。有固定的优先级-1,比其他可配置优先级的exception有更高的优先级。
MemManage:            
BusFault:            
UsageFault:            
SVCall  : Supervisor call由SVC指令触发。在有OS的环境中,应用可以通过SVC指令来访问OS内核的functions和设备驱动。
PendSV: 为系统级服务提供的中断驱动请求,当无其他exception时使用PendSV用于上下文切换。
SysTick: 当system timer到达0时,会产生SysTick exception.在OS环境中用做系统的system tick节拍。

Interrupt(IRQ):由外设产生的exception信号,或者是软件生成的请求。在系统中,外设使用中断来用于与处理器进行通信。

2.与异常中断相关的寄存器

Exceptions and registers
  Exception Number IRQ Number Priority En/Disable Active or Set/ClrActive Pending/Set Pending Clr Pending
Reset 1 - -3 PermanentEn      
NMI 2 -14 -2 PermanentEn   ICSR ICSR
HardFault 3 -13 -1 PermanentEn      
MemManage 4 -12 SHPR SHCSR SHCSR SHCSR SHCSR
BusFault 5 -11 SHPR SHCSR SHCSR SHCSR SHCSR
UsageFault 6 -10 SHPR SHCSR SHCSR SHCSR SHCSR
- 7-10 - - - - - -
SVCall 11 -5 SHPR PermanentEn SHCSR SHCSR SHCSR
- 12-13 - - - - - -
DebugMonitor         SHCSR    
PendSV 14 -2 SHPR PermanentEn SHCSR ICSR ICSR
SysTick 15 -1 SHPR SYST_CSR SHCSR ICSR ICSR
WWDG 16 0 NVIC_IPR NVIC_ISER/ICER NVIC_IABR NVIC_ISPR NVIC_ICPR
PVD 17 1 NVIC_IPR NVIC_ISER/ICER NVIC_IABR NVIC_ISPR NVIC_ICPR
... ... ... ... ... ... ... ...

3.异常的状态

Inactive   :  未激活的,无中断发生
Pending  :  挂起的,有中断产生,但是由于一些原因(中断Enable未打开、CPU正在处理别的更高级的中断等)未进入active阶段
Active     :   激活的,exception正在被CPU处理,但是还未处理完。
Active and Pending  :  exception正在被CPU处理的同时,此中断源又被触发了。

4.异常与中断的响应过程

 

 

 

5.参考资料:

(1) ARM cortex-M4Processor(r0p1) Technical Reference Manual

(2) ARMv7-M Architecture Reference Manual

(3) STM32F3_F4_L4_Cortex-M4 Programming manual

(4) Cortex-M4 Devices Generic User Guide

你可能感兴趣的:(ARM,MCU_STM8_STM32)