一:CPU工作模式
ARM CPU分为7种工作模式,每个模式下都有一组寄存器对应,每种模式下有至少17个寄存器相对应
在中断中出栈入栈时只需要保存R0-R12及R14,R13为SP,R14为LR(链接寄存器),R15为PC
二:中断处理流程
如图所示当request source(with sub register)中断发生时,SUBSRCPND相应位置1,如果没有被SUBMASK屏蔽,SRCPND相应位也被置1,如果此时没有被MASK屏蔽或者没有被设为快速中断时,就进入优先级仲裁,多个中断源中选出优先级最高的中断,并在INTPEND相应位置1,然后CPU进入中断处理程序。
多个中断源中,只有一个中断能被设为快速中断。
三:中断优先级
优先级分为两种,固定优先级和自动变化优先级,在固定优先级下,通过设定ARB_SEL来设定优先级顺序,在自动变化优先级下,当其中的某个中断被服务时,ARB_SEL会自动变化,来改变优先级顺序。