|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在学习与开发ARM处理器的过程中,一个不能绕开的话题就是异常处理流程。它在ARM的体系架构中,占据着不可动摇的重要地位。此处就以Coterx-A系列的ARM处理器简单分析一下异常中断处理流程。
; r; p" T. v9 w& X. _" J" v, A/ l" N0 a4 e( |1 }
说异常处理流程之前,我们先说一下ARM处理器的工作模式和异常源。
$ N, h. l9 f% u& @; [/ k) d
: j+ j" G4 u1 ?在Coterx-A系列之前的ARM处理器,一共有个基本工作模式:, B% k- Q! H$ T# r) h
+ I0 {; _8 r2 p6 iUser : 非特权模式,大部分任务执行在这种模式;
y2 I5 I% s# k3 r4 N/ C4 {3 _" J) ]# p
FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式;
% Z+ j' N+ o& J. r( N5 W7 R5 Z2 J, A: z! ?3 r6 G
IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式;
# v7 Z4 Q% v. b* ]+ v7 t& \
3 n/ i% E% i2 e8 T3 Y2 k; `Supervisor :当复位或软中断指令执行时将会进入这种模式;& W9 B8 m o) h1 ]
- d% s6 @6 E& r- g0 Z1 f9 x1 YAbort : 当存取异常时将会进入这种模式;
( H9 L1 p3 @; o2 p3 N% c& y
8 ^& h; F' X4 ^( E$ d2 Q! }Undef : 当执行未定义指令时会进入这种模式;7 l6 o n* x5 s f% n# q9 ?
: `- t; C0 ]3 x/ B/ m, p( K @
System : 使用和User模式相同寄存器集的特权模式;
$ l* a) _& f: N3 F$ T" o& i* ?6 }# i; @. ^
而Coterx-A系列处理器则多了一种工作模式:
1 }! E8 K: }% X- r1 u- F
* e! O8 t- r9 x m& Y2 T0 B- IMonitor : 是为了安全而扩展出的用于执行安全监控代码的模式;3 M' i2 a! S+ e& V2 z
5 }' p7 f5 c! r f+ r
, h# E+ Q8 W8 I; h2 q
) _' m; n. w( J. J/ Y( u6 ^& y |
|