|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
S; _ k) ?, Z* N& K1.1 ARM 分类" M( R! i" c$ ~1 {
1.1.1 版本号分类" {) E; x2 Z. d3 }5 ]( M; R
以前分类的是 ARM7,ARM9... ARM11,在 ARM11 之后,就是以 Cortex 系列分类了:
( T* V4 P& |- { q+ l& M) C; T- A& v" Y% f$ r: \
Cortex-R:应用在实时系统上的系列
+ X4 D! C6 |% A( ?. fCortex-M:替代单片机的系列,M0 M3 M4 M7
% [- L( }4 z! |- W0 O( l; zCortex-A:A8 A9 A15 A72 A535 V$ F. P1 t) T
1.1.2 指令集分类
+ C* E, ` Y6 D( p! e( Y6 d/ F 指令集原则上是向下兼容的。. z" a% g( d, E8 p+ t4 `: H+ @
) y/ Z( s3 a; S2 A0 I# H0 L 指令集是根据核来分的,比如 ARMv7指令集、ARMv8指令集等等
" X6 i4 P. f( N8 ?7 V
1 U7 c. b6 x W6 Z- Z- Y1.2 ARM 商业模式及半导体公司
) @9 d8 M: @* w0 C1.2.1 IP 核(知识产权)
h! V' c8 H6 N$ s0 V ARM MIPS X86 PowerPC(IBM)3 D* S X. d2 |9 Y: ^7 X' F
7 B: r3 p9 I6 ^' X$ @3 r1 {
ARM 出卖 IP 而不卖芯片
5 k; x* i z5 T# F- V# D9 D1 \* r" U8 j; U2 ]2 A" }) g8 |
1.2.2 半导体公司/ w, b. F7 ]- z& E
主流的半导体公司有三星、高通、苹果、NXP(Freescale)、TI、ST、ATMEL、Ambarella、Amlogic、MTK、海思、全志、瑞芯微、展讯(基带)、炬力、联咏等等。
D1 V$ |" t, Z$ v- i# C5 d* N
1.2.3 芯片、处理器和架构的联系
0 N! }+ n$ e$ p' ] 以 S3C2440 为例子:7 Z6 j0 d4 q# T* L! f
1 }+ b$ U4 z/ j4 O; n, _* a- \# N
5 i6 d6 u3 a8 ^3 W- P) g( W" @$ |( I( u0 o# o, ]* L* g$ N. N
1.3 ARM 处理器状态和处理器模式0 X; v3 R% F( O: k% H; i
在不同的体系下,有一些概念有所不同。这里主要以 S3C2440 为例子。
( t e0 L0 v/ u y: F- Y- V( ^" P3 N. n" p% g2 J0 o$ h
1.3.1 处理器状态0 c$ R9 P1 L2 A4 u0 e( K }" _7 ]
处理器状态有两种:+ S& i, S$ \4 V2 k6 R- J
ARM 状态:执行效率高' M; H3 Z; B8 G' K# G; r3 h# Q& o
THUMB 状态:代码密度好
- v) C& ~5 v3 _& ]1 B: sARMV4 中,ARM 状态为32位,THUMB 状态为 16位,但是,在 ARMV7 中,ARM状态为32位,THUMB 状态为 16/32位状态,还有一种 THUMBEE状态,适用于 JAVA 运行的状态。2 a) N: U' N. }
处理器状态的切换指令: BX BLX
2 H* n4 F: n8 |1 j+ Z指令集:4 F* |9 F% G7 t( t8 E
ARM指令:32位
7 j" X+ Y/ B* c% X) ^, yTHUMB指令:16位
& t( N5 Z) ?' T! c C L; cTHUMB2:32/16位
& y4 |; P% {" d2 \: q! wCORTEX-M 只是指令 THUMB2 指令子集' \# c- B) \1 o; B: |
1.3.2 处理器模式% e/ P5 i" \6 W: _. q
处理器模式共有 7 种:
: w8 o+ p# x( a& a/ ~6 Kusr:用户模式
; | K% \: V) G. A" a' Z+ ~: h4 b- {fiq:快速中断模式
0 R/ p; ? n) }" R& _$ f1 Sirq:普通中断模式! @" n) \$ D p( [) Q9 l: Q
svc:保护/特权模式
9 g% K1 N0 |: D+ T6 oabt:异常模式
0 q2 O3 |# h$ Y4 m; Y) V2 V. S2 rsys:系统模式2 v2 [5 o6 D. e3 j
und:未定义模式
' P. |7 `) x, `设计的目的:提高相应速度' }. H; a1 e, v: k g- M. B
注意:保护模式/特权模式,需要 MMU 和代码的支持" R. `- d8 |2 B& G! p' R* G- u
1.4 ARM 内部寄存器及 SFR. m- j2 z1 S( b" s! h7 D
1.4.1 ARM 内部寄存器
9 i& a4 Z# y8 k: ~) J" M此类寄存器设计在 CPU 内部,特点是速度快。
! r) w) s5 o: h! v2 O+ x8 |2 |一共 37 个寄存器,31 个通用寄存器 和 6 个状态寄存器" z% \- X' W3 ~3 d" x5 F
通用寄存器:R0-R12,R13,R14,R15,R16
! c" @( a8 V+ U' i/ ER13(SP):栈指针,不同模式下栈空间是不一样的
% Z- G M) z+ i9 x- g' A4 x4 I6 PR14(LR):链接寄存器,存放断点,硬件自动完成
0 @. E0 O$ m; T. w) uR15(PC):程序指针,取指令的位置: A. v1 ]+ P |# `0 O
状态寄存器:PSR 分为 CPSR、SPSR3 P; x# V! n' i% j0 t& h
条件状态:NZCV* U1 ~7 H: t0 t8 D/ C- @
保留位
# {* `4 ]$ N% ^+ h1 ~+ l. mIFT
5 i) `: o5 F+ c4 I* Q+ W. Y: z模式位:M4-M0
* ~1 Z" K% N7 R$ W6 o$ R# ^! W
2 N8 C+ U3 `/ |
7 D# ^8 a% T4 @" }* B2 z, J
( j% I$ a* C$ s, D: Q/ Q8 A
4 O: n& N, q* F# i1.4.2 SFR 特殊功能寄存器
& |& q% a; t( A: _' {" D4 pIO 端口/寄存器,它属于外设的组成部分。9 U; \5 r- P' I
) f( e/ t% l* l9 y9 l7 f/ R
ARM 是采用与存储器统一编址的方式使用软件编程控制某一硬件,起使就是编程读写该硬件的寄存器
. Z- j D" |- l" O: |
! y# b8 Q$ W9 i0 l y6 L! R2 v1.5 ARM 异常处理和存储系统! d3 E7 W4 `9 M) u9 j2 x
1.5.1 模式与异常" T" t+ _( l5 U% a- p0 \3 u. L1 V
异常的类型:Reset、undefined instruction、swi、prefetch/bort、data/abort、Reserved、IRQ、FIQ
7 x) G4 r9 l. ?, a' d. s; i4 Y处理器的模式:每一个异常对应一种模式,但不是一一对应关系
8 f( U4 w3 G# h$ Z1.5.2 中断向量表
; Y/ s& n7 S- I( c
: }8 d* e0 X6 M6 \/ i. U
. Y k, `* D2 c% [
~6 E0 x4 v8 W1.5.3 大端与小端存储
9 e6 |5 m8 N3 S1 P% ~. j 在大端格式中,字中最高有效位 MSB(Most Significant Byte)存储在编号最低的字节中,最低有效位 LSB(Least Significant Byte)存储在编号最高的字节中。因此存储器系统的字节 0 关联到数据行的 24 到 31。
) Y P7 J( D+ ^* [# ?$ T. B5 x1 }! z( {1 E, r( s' n6 S; e
& C" w( B8 `5 v# u' S5 b/ N+ t1 k# P* \9 F* ~
, @% O% _" {/ I( z" P! B$ d
% M2 ~6 U( U- N: H8 s在小端格式中,字中编号最低的字节被认为是最低有效位 LSB,编号最高的字节为最高有效位 MSB。因此存储器系统的字节 0 关联到数据行的 0 到 7。
' ]2 N' j& B- f9 ]$ e0 {( M! {" l( P9 k5 l, W' Q- p5 G! u' U5 P
P! g. @$ Q6 G, e/ b
|
|