ARM中有5种异常模式,有7种中断源。这7种中断源中有些中断是我们希望发生的,但有些中断是我们不希望发生的。
我们希望发生的中断:
软中断:属于svc模式,通过SWI指令便可以产生软中断,进入到svc模式。
irq中断:属于irq模式,当产生普通的外部中断时,处理器便进入到IRQ模式。
fiq中断:属于fiq模式,当产生高优先级外部中断时,处理器便进入到FIQ模式。
我们不希望发生的中断:
复位:属于svc模式,当系统上电时便会产生复位中断,系统进入到svc模式。复位中断不需要中断返回。
取指中止中断:属于abt模式,当预取指发生错误时,便产生取指中止中断,进入到abt模式。
数据中止中断:属于abt模式,当访问数据存储器时,便产生数据中止中断,进入到abt模式。
未定义指令中断:属于und模式,当执行到一条未定义指令时,便产生未定义指令中断,系统进入到und模式。
中断的优先级:
ARM中有6个优先级。各个中断的优先级顺序如下:(1 6 6s 5 2 4 3)