反常会引起程序控制的改变。在反常发生时,处理器中止当时的使命,转而履行反常处理程序,反常处理完成后,会持续履行方才的使命。反常分为许多种,中止是其中之一。Cortex-M0处理器最多支撑32个外部中止(IRQ)和一个不行屏蔽中止(NMI),中止事情的处理叫做中止服务程序(ISR),中止一般由片上的IO口的外部输入发生(边缘触发和电平触发)。
Cortex-M0处理器上可用的中止数量不确定,由厂商决议,最多32个外部中止。假如体系的外设许多,因为中止数目有限,多个中止源或许运用同一个中止衔接。
除了IRQ和NMI,M0处理系还支撑许多体系反常,它们首要用于操作体系和过错处理。
反常类型 反常编号 描绘
Reset 1 上电复位或体系复位
NMI 2 不行屏蔽中止
Hard fault 3 用于过错处理,体系检测到过错后被激活
SVCall 11 恳求办理调用,在履行SVC指令被激活,首要用作操作体系
PendSV 14 可挂起服务(体系)调用
SysTick 15 体系节拍定时器反常,一般在OS种用作周期体系节拍反常
IRQ0-IRQ31 16-47 中止,可来自于外部,也可来自片上外设
每一个反常都对应一个反常编号,这在包含IPSR在内的许多寄存器种都有提现,而且这个反常编号还指明晰反常向量的地址。在设备驱动库种,反常编号和中止编号是彼此独立的。体系反常运用负数界说,中止运用0-31正数界说。
复位是一种特别的反常,数值为1,在IPSR中不行见。
除了NMI,硬件过错和复位,其他一切反常的优先级都是可编程的,NMI和硬件过错的优先级是固定的,而且比其他反常的优先级高。