|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在学习与开发ARM处理器的过程中,一个不能绕开的话题就是异常处理流程。它在ARM的体系架构中,占据着不可动摇的重要地位。此处就以Coterx-A系列的ARM处理器简单分析一下异常中断处理流程。1 f: J4 p& t. u- R
3 T* n) B6 y; ~8 \9 P说异常处理流程之前,我们先说一下ARM处理器的工作模式和异常源。* z" [2 R2 V* d* h( @4 H
0 w; m7 P8 t: f
在Coterx-A系列之前的ARM处理器,一共有个基本工作模式:) S% [' P* ^0 v" K6 Q3 F- h
/ N# i9 g) Y9 O. P8 R3 r: s" }* eUser : 非特权模式,大部分任务执行在这种模式;
0 f; F% F( {% Y. y1 G
3 Q! F7 K6 L( z) sFIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式;$ u4 Y( x4 Q) g% J9 J5 M4 L( F
$ z, s$ g& D: q8 w" H0 v( j
IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式;; s/ Z& j" Q5 I* s: T8 A) ^; V5 n8 N
( W* {5 m1 e0 }6 ^
Supervisor :当复位或软中断指令执行时将会进入这种模式;
' }' T; [1 n; W5 ~1 }8 m P6 L$ W, q! @- H
Abort : 当存取异常时将会进入这种模式;
7 w- E3 w8 H1 R1 I% a
3 z8 j& A* z: c8 UUndef : 当执行未定义指令时会进入这种模式;
8 R" E0 G( C1 H" Z/ l
6 G7 g& n- f8 Z6 a9 v& G4 Y0 MSystem : 使用和User模式相同寄存器集的特权模式;
+ P1 f9 K% |, b5 s7 \ d, A2 _. Y0 s" {6 y
而Coterx-A系列处理器则多了一种工作模式:. @' g- j) [7 q) U; k0 C. S/ j
8 c: Y+ _+ o9 @9 W' G" d* _
Monitor : 是为了安全而扩展出的用于执行安全监控代码的模式;
# P( d1 O8 i3 s0 ^& {$ O. r3 S) z" j" X+ E2 @
u; O2 H' D( ?0 I I0 e9 U3 p* z" q; B" ~- h6 |8 d/ M1 \, h
|
|