|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
目 录
# v& T g, q v6 b: d第1章 ARMv8简介. 3
) @% W2 C' B# a9 |8 [' ^1.1基础认识. 3: Y f5 h' z4 G v, ^
1.2 相关专业名词解释. 3
3 |* `- e/ h7 a第2章 Execution State 4
% g3 c4 h" U$ d9 C f$ z2.1 提供两种Execution State 41 a7 b1 W! c+ H) s
2.2 决定Execution State的条件. 4
$ \; b0 u0 J2 b& ~3 N* r+ w第3章 Exception Level 5' |$ r9 E5 T& c1 l- `$ |$ V& F; l
3.1 Exception Level 与Security 5
& X1 p R8 j% ^3.1.1 EL3使用AArch64、AArch32的对比. 5 R$ J0 n: E' o% L9 o$ \9 g
3.2 ELx 和 Execution State 组合. 6
* ^( a, r9 G# T3.3路由控制. 77 d8 }" w( y+ V. C1 H R
3.3.1 路由规则. 7( z1 |% h6 P, o
3.3.2 IRQ/FIQ/SError路由流程图. 8
9 V& h: _ w/ [# l M第4章 ARMv8寄存器. 9
& A0 W& I4 T: A6 ^' I: t% y9 _4.1 AArch32重要寄存器. 9
# I7 x5 O4 j$ u' s5 V0 A6 L8 c' r4.1.1 A32状态下寄存器组织. 10% l9 U6 v! E6 ^% f
4.1.1 T32状态下寄存器组织. 10
8 b- \8 u5 j1 {4.2 AArch64重要寄存器. 11( U6 U7 \4 U Y( K6 D( m3 r! Q
4.3 64、32位寄存器的映射关系. 11
% T! V# G% c0 r8 g% h- I第5章 异常模型. 127 r. A& G/ Y1 L
5.1 异常类型描述. 12
6 Y0 E/ H4 A' v5.1.1 AArch32异常类型. 12$ F8 ^- g# _3 p; c( V; Y" }" p
5.1.2 AArch64异常类型. 12
: a* s& n. P0 A/ y) M* c2 ^9 t5.2异常处理逻辑. 13, _6 D! W2 K0 J& }
5.2.1 寄存器操作. 13
o0 K( k& m! Y. J; F- F( F, y. s5.2.2 路由控制. 14
: ]6 o8 @6 \2 ?' a1 n5.3流程图对比. 143 u+ b8 r( h4 P8 \$ f7 P
5.3.1 IRQ 流程图. 15( `% n; B! `6 f! x' q1 K& h3 }
5.3.2 Data Abort 流程图. 18
6 Y- L0 |$ ^( f# D5.4 源代码异常入口. 20
' ]9 E* g- [; E+ @& S/ E5.4.1 C函数入口. 20* q9 U: A5 x6 F0 k1 y8 G- H
5.4.2 上报流程图. 20
/ U0 Y7 U$ _/ }& v8 l7 `8 {5 ]6 R5.4.3 异常进入压栈准备. 21# h6 w/ }; H& ^ F2 |6 i0 ? F: r' l( f$ u
5.4.4 栈布局. 21$ F: p* \3 m5 T6 P8 W: e
第6章 ARMv8指令集. 22. r5 }+ A0 O0 H9 V- T3 y; k2 [9 ~
6.1 概况. 22" S. p) E# E& u" @
6.1.1 指令基本格式. 22 s2 \& P6 }, m, y2 ]
6.1.2 指令分类. 22
4 m1 ^/ z1 `; X: `- |% ~( k; n6.2 A64指令集. 22) ]" z, e" h) e& _+ R+ w
6.2.1 指令助记符. 23
m8 H- O- R4 {' {0 z% m. q6.2.2 指令条件码. 23
5 `. ~- O9 _6 F, v6.2.3 跳转指令. 24# X o" y: C+ V
6.2.4 异常产生和返回指令. 245 w. p/ v4 E9 u. U
6.2.5 系统寄存器指令. 24
" A# \% e$ R; w6.2.6 数据处理指令. 25
5 z; K& @) n5 o/ |* }2 n; b) u: Y6.2.7 Load/Store指令. 27
; p' |, X2 ~# o6 ^* E; d6.2.8 屏障指令. 31. I& _) G2 `* u! H' `6 i4 J! H
6.3 A32 & T32指令集. 31
1 C5 P0 i' v- O5 M: W6.3.1 跳转指令. 31: u8 K Y. X: t
6.3.2 异常产生、返回指令. 32
/ }7 X- l9 v: {3 |6.3.3 系统寄存器指令. 328 [* g, e9 w& V( L; [% p
6.3.4 系统寄存器指令. 320 z+ h/ Z6 m- V, b3 x' r
6.3.5 数据处理指令. 32$ G) G, l/ B6 M7 |6 F# j8 @+ y4 D
6.3.6 Load/Store指令. 32
) [" j8 v8 b8 O6.3.7 IT(if then)指令. 34" j: W8 K1 b/ S; @" O
6.3.8 协处理器指令. 34
: J) C/ B4 Q% K- G) n6.4 指令编码. 345 j4 v$ b w8 }, I- O/ i, L4 t `
6.4.1 A32编码. 34
$ b, N1 U& x8 l1 H8 U6.4.2 T32-16bit编码. 35
* J9 V; {- |# V; O' e4 D6.4.3 T32-32bit编码. 35 y9 M0 d; S2 c
6.4.4 A64编码. 356 z0 v" @4 L% ?+ j; n4 O
6.4 汇编代码分析. 35: V- P* c$ x) d {3 q9 B
第7章 流水线. 368 o& H$ k* @! _7 U e; I
7.1 简介. 36' o/ h8 @& p: D2 z2 h" C. f9 m( Y' @
7.1.1 简单三级流水线. 36
( W. \' _8 W- s' Y2 l' M( V, `7.1.2 经典五级流水线. 36
7 G: w3 b: A2 ~7.2 流水线冲突. 37( H w- s" Q8 o0 H2 d7 V: Y
7.3 指令并行. 37' {7 Z, @& ?" {; t
- Y& t7 J- m: I( R; T! }7 y9 G
6 Y+ R2 O4 `# H8 e. J9 z+ k
8 f9 M7 M2 O% w3 g
- K4 q( }! r+ _3 r
/ e+ o; r1 l3 ]( t9 d) }0 W. z( k6 N) q, J
3 }9 \+ [' i7 P3 P+ O
第3章 Exception Level+ P, z; n; H, o; ~5 h7 a, J' O
. |+ O6 V7 e' ~- v) `
9 x, s7 y* V! o( X+ F
• ARMv8定义EL0-EL3共 4个Exception Level来控制PE的行为.
7 h* j1 j7 \ w' d/ n+ C" _6 c( b7 ?5 b
' r5 _: g% \6 h+ M: w$ ?4 f( M# E
( r; x4 ?' F+ w+ W( [
- P) z3 t& T1 G# m
3.1 Exception Level 与Security
: z6 D7 T' A8 @
5 T) i& x9 @2 Y5 }2 X3 l- U- I1 p( W7 A
( ~6 K @6 e" I6 Z- g0 K
1 k) u* l4 w _, W) P3 @
, p7 w. i$ D: l# Y3.1.1 EL3使用AArch64、AArch32的对比+ R! O+ Y" P ^/ F9 |
% Q$ |6 t: L3 v$ p; w0 ]$ M
: p6 ?% `- Q1 ]
3 _: x5 {; q9 I N; e% ~* a0 W q
% F k$ ^: S6 B* Z0 d. \5 A( S( R( T- w& ]: |! `2 y5 m. \
- Y& ]3 _; R& |. i- S& P- @* X9 h- B
% ~% A. {+ O5 ~, ]% ? |
|