|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在学习与开发ARM处理器的过程中,一个不能绕开的话题就是异常处理流程。它在ARM的体系架构中,占据着不可动摇的重要地位。此处就以Coterx-A系列的ARM处理器简单分析一下异常中断处理流程。
4 y2 ]) h7 l: u: o1 Z
% `; p2 n* k( J0 W说异常处理流程之前,我们先说一下ARM处理器的工作模式和异常源。7 }) l8 @$ y, T5 g5 a
$ U* E# H c; `在Coterx-A系列之前的ARM处理器,一共有个基本工作模式:
0 B. M$ {3 F6 K" q& k* H
$ o6 U0 j% ~7 z! X. A0 a, r" PUser : 非特权模式,大部分任务执行在这种模式;
0 m5 ^0 e+ m7 S
# z$ f4 |1 G3 JFIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式; ~. e4 c/ G: q# N# L% S- F: ^
& I8 v: b: @# P' v" X, p
IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式;/ S; j1 p( z; \! }/ c! [) r
! t3 F2 B% p. qSupervisor :当复位或软中断指令执行时将会进入这种模式;$ ~( H7 N- U2 U4 l
, Q# u7 g3 C. \& c$ e hAbort : 当存取异常时将会进入这种模式;4 h) M" ^) H, I7 j" \
8 a4 Z/ P0 g' F9 Y. U
Undef : 当执行未定义指令时会进入这种模式;
/ f$ V+ |- [1 g! B, N5 M& H9 |: O# \5 a5 R& d) J, i
System : 使用和User模式相同寄存器集的特权模式;
0 l: ` ]* J) N+ v, D+ [) b; ^" M7 X0 }5 @" r
而Coterx-A系列处理器则多了一种工作模式:) w$ e# c6 {5 L* d: z
4 U k# X) W* b& Y+ \Monitor : 是为了安全而扩展出的用于执行安全监控代码的模式;
& C; ~% I& t1 y3 K9 p3 W+ V! Z/ f6 G1 p# \1 s
3 ?! c7 S ^3 t- O3 J6 G y; m# X+ D$ Q# a9 r) T
|
|