EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
目 录( a+ V; M( V" h
第1章 ARMv8简介. 3
. ~1 Q, y& s! @0 w R% [( I' ?, T1.1基础认识. 3
+ b5 L3 r0 N& [1.2 相关专业名词解释. 3% {1 x& b/ E3 c9 B
第2章 Execution State 4
' B3 O2 Y! L/ W) v/ h2.1 提供两种Execution State 4
/ U# v" Y( D9 W1 u- A2.2 决定Execution State的条件. 43 M$ U2 {7 R1 t) ?# F: B; Y! w
第3章 Exception Level 5
5 f6 x4 k7 W) f9 T, o3.1 Exception Level 与Security 54 l; _( ~) ^% l" O/ m+ K# D7 ?
3.1.1 EL3使用AArch64、AArch32的对比. 53 e" g \9 u6 i( B }
3.2 ELx 和 Execution State 组合. 6' `- J4 z$ A2 D( k3 n5 t+ o0 t
3.3路由控制. 7! e! i2 r: V: n& L9 u
3.3.1 路由规则. 7- k/ [+ `% f" ^7 ?
3.3.2 IRQ/FIQ/SError路由流程图. 8
0 | |8 B" R8 j2 i; x1 }8 p第4章 ARMv8寄存器. 98 k. n1 a4 W+ C
4.1 AArch32重要寄存器. 9
k; `7 l# a8 Q# J+ b& U/ N; a2 q' b4 x4.1.1 A32状态下寄存器组织. 105 P1 |- u H+ x, X' ^( t
4.1.1 T32状态下寄存器组织. 109 A8 `+ g* q5 i% Z9 L& T: b; j
4.2 AArch64重要寄存器. 11
- z9 X- O8 c! n, n7 T) z, J9 _( \, z4.3 64、32位寄存器的映射关系. 11% c$ x; A% l1 t2 u/ f2 x! O' |8 I
第5章 异常模型. 128 H# o0 v1 C J- u# K) G
5.1 异常类型描述. 12
7 i( p7 |9 R4 C6 t/ \4 j5.1.1 AArch32异常类型. 12
3 _9 ]9 W2 o; M; _; @5.1.2 AArch64异常类型. 12
* |! T" {2 r6 S& a$ R" b( _5.2异常处理逻辑. 13
! Y8 ?9 q' J+ Z8 C( \2 |5.2.1 寄存器操作. 13) o p: C, @6 {' |1 N+ s
5.2.2 路由控制. 14
* Y0 c! B5 I- f/ u/ ?; `& j6 a5.3流程图对比. 14
2 b5 W0 R3 U, y% H: u5.3.1 IRQ 流程图. 15: M3 w/ b3 S. }6 |% p5 u% }# y
5.3.2 Data Abort 流程图. 18$ s3 a# k3 [) ?* m1 |# t
5.4 源代码异常入口. 209 B- X' ~: f: | q/ R
5.4.1 C函数入口. 20
5 T& g! `& O P; |5.4.2 上报流程图. 20
) y6 F U# q+ L1 ?; |5.4.3 异常进入压栈准备. 21
9 @ A0 ]. f ~8 X8 _0 [! q0 n5.4.4 栈布局. 21( {& a- k6 g5 Y- s# w$ q
第6章 ARMv8指令集. 22. _! V9 D, X$ Y5 {+ J
6.1 概况. 225 c; |8 D: Z' J' U
6.1.1 指令基本格式. 22
$ L, y- S5 z* V3 ^6 S+ h4 O! k6.1.2 指令分类. 228 U2 f/ }( H: x, s
6.2 A64指令集. 222 l- |& v5 }; {1 X( o
6.2.1 指令助记符. 235 R( G3 ]5 Z( O9 B6 K, Z
6.2.2 指令条件码. 23
4 [' C$ q$ {/ P0 u+ D" j7 P! B6.2.3 跳转指令. 24
) E* v* d( m- G; W% a# ^6.2.4 异常产生和返回指令. 24
% B, X+ c. ^8 m6 _5 k9 @' P+ A6.2.5 系统寄存器指令. 24
* p, H! V/ ~5 }; _; I* M$ H: L+ C E6.2.6 数据处理指令. 250 r' W1 @7 x! Q
6.2.7 Load/Store指令. 27
5 X8 l9 R1 F& i V% Z9 F7 \5 L" A6.2.8 屏障指令. 31
/ T+ X# e$ U* \1 I6.3 A32 & T32指令集. 31
7 H/ E6 y$ K) u6.3.1 跳转指令. 310 \3 a) |$ z: z% {. z" C
6.3.2 异常产生、返回指令. 32
6 O; Y e4 M; m1 k2 @* V8 k6.3.3 系统寄存器指令. 322 w6 V% z9 @$ o% d* A4 `+ ]1 X
6.3.4 系统寄存器指令. 32
) F: A3 ~/ Z- g0 E" y' o# y3 |) A6.3.5 数据处理指令. 329 W; p; c' Z5 x' S, r1 x* R" l
6.3.6 Load/Store指令. 32
. P% ^: \+ V, j4 V7 \5 `6.3.7 IT(if then)指令. 34" K+ Z- o q$ Y
6.3.8 协处理器指令. 34! A4 v' j& @ N' |9 P, C
6.4 指令编码. 34
j+ c( F# e: _1 x5 N; ?2 D2 n6.4.1 A32编码. 34
2 [3 x' Z( ^' B$ P) Q& q6.4.2 T32-16bit编码. 352 h0 T2 K3 r/ ]3 g+ A1 C
6.4.3 T32-32bit编码. 35
+ S+ Q1 X2 ?( f- r' r5 o6 T6.4.4 A64编码. 35" X3 z% N5 a. }' [2 `( ^3 L4 \2 s
第7章 流水线. 36! @& F, ^' `& {7 I4 N6 o
7.1 简介. 36* b! u, r, V- W( C
7.1.1 简单三级流水线. 36
! F6 r# r0 f7 W# E7 x7.1.2 经典五级流水线. 36: Z/ n. d: i' G0 s; d" @
7.2 流水线冲突. 37
( Q6 S+ [9 h2 s, M8 W0 z% S) E4 W7.3 指令并行. 37
8 i0 K7 L) B8 d) V: {3 N
. a/ I1 r- g7 j, j& p0 ?. B$ p6 Q5 O3 a
0 y/ B2 {- Q8 ]$ W! q* X
; h/ ] O) L7 F2 A* f1 I2 M+ V' E8 Q4 c$ X/ p4 w
9 |+ `: D5 f6 Q9 f) b$ \# C. E
第6章 ARMv8指令集 6.1 概况 • A64指令集 • A32 & T32指令集 • 指令编码 6.1.1 指令基本格式 <Opcode>{<Cond>}<S> <Rd>, <Rn> {,<Opcode2>} • 其中尖括号是必须的,花括号是可选的 • A32: Rd => {R0–R14} • A64: Rd =>Xt => {X0–X30}
/ d7 o/ ~* ?2 \$ U/ G& W2 E 9 U2 r- Q. Z% I4 j! d( ~
- ~+ I+ R& f' b2 X
3 K+ A' Z/ _! q+ k B, K' F
% Y+ N& F0 _8 H; U: o( Z) j1 x* X5 F8 g
j. n$ Y% Y+ A+ G# Q; z( f
' r/ u |) ]) \$ b& ]5 O5 y; g# y0 I
4 c& B- Q1 F& `
) S9 w8 ^1 w. O2 A
( r1 G' z# w. K4 O" W" z
) P5 D7 ~7 B0 J9 X. f5 c
& v+ Q5 C% e* Q- ]2 w
|