EDA365电子论坛网

标题: 关于ARM [打印本页]

作者: uqHZau    时间: 2021-5-28 14:22
标题: 关于ARM
/ q5 B5 l8 ^4 n
1.1 ARM 分类% B( h  x* r3 M" B
1.1.1 版本号分类( _* I) {9 O3 ~; I4 L
  以前分类的是 ARM7,ARM9... ARM11,在 ARM11 之后,就是以 Cortex 系列分类了:7 d3 E0 q  z/ A" B! v

+ c$ `* P) h1 \; H% {/ nCortex-R:应用在实时系统上的系列) |! t5 w; z5 j! ^9 o
Cortex-M:替代单片机的系列,M0  M3  M4  M7* u( i0 d, d' u% [3 K: v/ ~( |% z
Cortex-A:A8  A9  A15  A72  A53
; d+ N1 L* _  ~2 M7 ?# t  T9 R1.1.2 指令集分类: @" e) U! U( k7 S
  指令集原则上是向下兼容的。7 V2 ^* q8 c2 G1 H6 \6 G/ w3 |

5 r2 D% c7 v9 j  指令集是根据核来分的,比如 ARMv7指令集、ARMv8指令集等等
! N# U0 {: f9 ?/ c4 y' x8 S: G2 q- a4 T: h, o0 Z, k3 d, U
1.2 ARM 商业模式及半导体公司0 B; [! h9 n5 B
1.2.1 IP 核(知识产权)
5 A3 R3 y; T& f: n$ @) G* G  ARM MIPS X86 PowerPC(IBM)
6 u6 C6 O/ D1 ^6 z, N* G. [- |4 {1 U# [) [. J6 G
  ARM 出卖 IP 而不卖芯片
. j, _5 V; k! R/ o; ^2 O2 \
+ p5 l, e! H8 B2 i% s1.2.2 半导体公司
) p+ Z% n. ]* g& n* f  主流的半导体公司有三星、高通、苹果、NXP(Freescale)、TI、ST、ATMEL、Ambarella、Amlogic、MTK、海思、全志、瑞芯微、展讯(基带)、炬力、联咏等等。) v' c) b/ D* L7 l! {/ Z: ?! n: A
: y* u. f) R3 H* R: d& `: \$ F
1.2.3 芯片、处理器和架构的联系/ O5 ^4 g" g3 |* _+ {0 G* U# D
  以 S3C2440 为例子:
2 k% r2 G2 Q! E' {% q& f- a& [! Z3 J& n4 C4 }# B$ ]/ E
  
* A5 O- @2 y5 W, W+ c9 M9 H, I8 p' i. V. p' h$ }6 f+ a) G2 Q' b
1.3 ARM 处理器状态和处理器模式
. R6 c# u5 m& _, A3 Q: z4 i  在不同的体系下,有一些概念有所不同。这里主要以 S3C2440 为例子。+ @8 B. Q- L5 f; E- u5 a9 }+ W
4 h( F8 N# d. R
1.3.1 处理器状态9 j; W2 B4 T1 p4 r" d. }1 u/ [
处理器状态有两种:, l* [0 Z! ?5 P' D
ARM 状态:执行效率高
& @' \3 }* r/ W2 o& ^6 X# O' mTHUMB 状态:代码密度好
# \* Z, R+ E6 ~3 a( K& G1 {ARMV4 中,ARM 状态为32位,THUMB 状态为 16位,但是,在 ARMV7 中,ARM状态为32位,THUMB 状态为 16/32位状态,还有一种 THUMBEE状态,适用于 JAVA 运行的状态。5 s  l2 U0 R3 q
处理器状态的切换指令: BX  BLX9 M4 e% d6 p3 w
指令集:; y3 K& ?; S+ D* I: w; y# r
ARM指令:32位
( C2 `8 w1 z8 t, m3 H- X/ X. b0 PTHUMB指令:16位8 y8 C7 I3 O, a* d
THUMB2:32/16位
7 W2 y2 }; f, j( Q, {CORTEX-M 只是指令 THUMB2 指令子集
) E. c" U! Y: g' \8 n) g1.3.2 处理器模式
5 i! h' j; b6 I" |- B处理器模式共有 7 种:) {8 i6 M% L+ {0 {
usr:用户模式
. F( Z) E9 Q- N9 Q% yfiq:快速中断模式9 Y# I# _2 f; c& ?+ `& M
irq:普通中断模式
# e. Y, [  [6 n1 Vsvc:保护/特权模式9 L1 }, r. T% G: Q) v, q
abt:异常模式! j) E  }- c6 b8 U
sys:系统模式
) K. C0 ^  a$ Y, E/ H& M' Eund:未定义模式3 O) ]& N* n" |: D
设计的目的:提高相应速度+ G( i5 d5 }+ P$ Y7 K+ Z7 {9 D. O
注意:保护模式/特权模式,需要 MMU 和代码的支持
+ S3 [- S% `- j& D1.4 ARM 内部寄存器及 SFR
( o9 B& q7 ]- H  u/ O; @1.4.1 ARM 内部寄存器
. x9 P; T: m! c: ~6 B4 O/ c此类寄存器设计在 CPU 内部,特点是速度快。
" c  k8 `. c* w5 x4 \$ \一共 37 个寄存器,31 个通用寄存器 和 6 个状态寄存器% M: s" X- K( d$ N
通用寄存器:R0-R12,R13,R14,R15,R16
1 f* n  Q  }" a+ gR13(SP):栈指针,不同模式下栈空间是不一样的
  a9 s: y. n) q2 c& oR14(LR):链接寄存器,存放断点,硬件自动完成
5 H1 `7 _6 |4 Y# CR15(PC):程序指针,取指令的位置, }. o6 i# @. d) J+ h2 r# G  B
状态寄存器:PSR 分为 CPSR、SPSR9 w8 S. a( S" c
条件状态:NZCV
0 h3 a1 ^- \, l, T保留位
- X3 j5 Y2 h1 I7 j* B, f$ O& z% z3 PIFT1 R  }  |& T. {
模式位:M4-M0& ^! I1 t, K: V4 q* C5 C- ]$ c: {
  
  A5 b/ f7 v: b% l% R# ~9 r$ e* w/ s! l1 {- d6 k4 ^6 T

5 r- k3 n$ G, `" [
; X2 L! a( @5 X4 u4 F* v1.4.2 SFR 特殊功能寄存器
4 u; \+ W8 ~4 x+ i3 ]. I) VIO 端口/寄存器,它属于外设的组成部分。
. c3 f& o+ e) z" J$ w9 x  f5 v2 R9 @; L
ARM 是采用与存储器统一编址的方式使用软件编程控制某一硬件,起使就是编程读写该硬件的寄存器! N4 ~# B" Q1 \( \$ G  U+ c
5 r# p9 A; [" k8 J" H) ^
1.5 ARM 异常处理和存储系统
& ^, ?+ q! K, J  N( @) r7 m1.5.1 模式与异常
( c) q/ P9 ~# `1 F异常的类型:Reset、undefined instruction、swi、prefetch/bort、data/abort、Reserved、IRQ、FIQ
" f5 n+ e' k/ u# T1 w3 U处理器的模式:每一个异常对应一种模式,但不是一一对应关系9 w# L6 k% E& Y$ z8 G. b; T
1.5.2 中断向量表: B: b7 _" q% n4 E3 g/ p

* o" v8 j  P2 f  a  
  u1 j3 a4 b, g0 |8 \
. ^" S1 j" @- r: D% s1.5.3 大端与小端存储6 I% s- V6 @, |2 ]. l
在大端格式中,字中最高有效位 MSB(Most Significant Byte)存储在编号最低的字节中,最低有效位 LSB(Least Significant Byte)存储在编号最高的字节中。因此存储器系统的字节 0 关联到数据行的 24 到 31。
: Q' e2 H! z2 Z5 h0 d$ F) F4 _7 Y
9 t! z- c& }6 Q8 i   ( @6 N" ~! K( T2 P: G3 N0 p6 _

" S; s0 U$ d: c' R. r- O; n
/ J1 ^) L/ v5 j6 r$ e2 |" M8 _. _) D
  {2 ?6 C0 M* D: ?3 O在小端格式中,字中编号最低的字节被认为是最低有效位 LSB,编号最高的字节为最高有效位 MSB。因此存储器系统的字节 0 关联到数据行的 0 到 7。5 ~6 x- H% Y& f& l6 P, Q' [

# p; M$ d% L9 `+ s3 P   7 T5 l% B' e0 j! ?6 _

作者: younicp    时间: 2021-5-28 15:27
关于ARM
作者: NingW    时间: 2021-5-28 15:28
挺详细的资料
作者: greensmile    时间: 2021-5-28 15:29
这是总结的ARM精华啊




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2