ARM 有8个基本工作模式: ' B W& S+ | v* j& n User:非特权模式,大部分任务执行在这种模式7 ~6 @9 C/ ]% _9 f; r" i7 J% C
FIQ:当一个高优先级(fast) 中断产生时将会进入这种模式 9 C& ^1 ?/ D' V. S1 V$ w IRQ:当一个低优先级(normal) 中断产生时将会进入这种模式. a( h; ^, p$ c' r H
Supervisor:当复位或软中断指令执行时将会进入这种模式,上电时处于这种模式,权限最高。/ Q. O: |0 C: l
Abort:当存取异常时将会进入这种模式0 r5 A7 ~/ V" r6 q J6 S5 `
Undef:当执行未定义指令时会进入这种模式 G. |1 |/ ~4 }
System:使用和User模式相同寄存器集的特权模式/ {2 e! U+ `5 n* r
Cortex-A特有模式: - ~: k' I8 M0 N. ?2 D+ AMonitor:是为了安全而扩展出的用于执行安全监控代码的模式,也是一种特权模式 3 u2 O/ _( r7 T. z; p) Y 对于不同模式, 可以用一句话来总结:特定的模式执行特定的代码,完成特定的功能,具有特定的权限。 ~, h u' d5 m6 X# M+ P
模式之间可以通过软件控制进行转换,也可以通过外部中断或异常处理过程进行切换。/ {' O' E" {+ Y I