ARM接口编程笔记

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ARM接口编程笔记

一、ARM编程模式

1.ARM的含义

●ARM是一家公司的名字

●ARM代表的是一种RISC技术

●ARM是一种CPU体系结构的名称,同x86、PPC、MIPS等并列

2.ARM体系结构中对字节、半字、字、双字的定义

●字节:8 bit

●半字:16 bit

●字:32 bit

●双字:64 bit

3.ARM指令集

●ARM指令集,32 bit,功能最全

●Thumb指令集,16 bit,是ARM指令集的子集,完成部分功能

●Thumb‐2指令集,16 bit和32 bit混合

●Thumb‐EE指令集,16 bit和32 bit混合

●Java指令集,直接执行绝大部分的Java字节流,但需要授权

4.ARM处理器的权限

●非特权级:部分指令不能执行,是一种硬件的保护机制,通常用户应用

程序运行在该权限级别

●特权级:能执行所有指令,通常操作系统运行在该权限级别

5.ARM的工作模式,处理对应模式下的特定事务,使得这些特定事务能够在硬

件资源的使用上部分地独立开来,这是通过各种模式下有对应的私有硬件资源来实现的。

●User:应用程序一般运行在该模式下

●Supervisor:操作系统一般运行在该模式下

●IRQ:中断处理程序一般运行在该模式下

●FIQ:快速中断处理程序一般运行在该模式下

●Abort:发生存取异常后会进入该模式

●Undef:执行未定义的指令会进入该模式

●System:为解决中断不可重入而设计的一种特殊模式

●Monitor:Cortex‐A特有的模式,执行监控代码

●除User模式外,其他7种模式都是特权模式

6.ARM寄存器

寄存器最靠近CPU中的ALU,存取速度最快,没有地址,只有编号。部分寄存器有别名,在汇编程序中本名和别名可以混用。

●R0‐R7:各模式都共用的寄存器,物理上共8个寄存器。

●R8‐R12:FIQ模式下有对应的私有寄存器,即FIQ模式下使用其私有的这

组寄存器,另外7中模式都共用另外一组寄存器,物理上共有10个寄存

●R13:User和System模式共用,另外6种模式都有各自私有的寄存器,

物理上共7个寄存器

●R14:User和System模式共用,另外6种模式都有各自私有的寄存器,

物理上共7个寄存器

●R15:各模式都共用的寄存器,物理上只有1个

●CPSR:各模式都共用的寄存器,物理上只有1个

●SPSR:User和System模式下无此寄存器,另外6种模式都有各自私有的

寄存器,物理上共6个寄存器

7.ARM寄存器使用说明

●虽然上表中各模式下的私有寄存器都跟有后缀,但在汇编中都使用统一

的名字。如,在FIQ模式下的汇编代码要表示R13寄存器,只能在汇编

中写R13,而不能写R13_fiq

●虽然总共有40个寄存器,但是处理器在某一个特定时刻,只能处于一种

模式下,所以处理器在同一时间内只能见到本模式下的寄存器,最多有

18个可见,最少有17个可见(User和System模式)

●R13寄存器的别名为SP,是栈指针,各模式有私有的栈指针,则意味着

各模式下的栈空间可以彼此独立。通常由编译器和CPU来维护,使用前

需初始化

●R14寄存器的别名为LR,链接寄存器,用于自动保存返回地址。特别需

要注意的是:如果程序执行流程的改变不涉及模式的切换,则返回地址

保存在当前模式下的LR寄存器中;如果程序执行流程的改变伴随着模式

的切换,则返回地址保存在被切换后的模式下的LR寄存器中。注意对

LR寄存器的保护

●R15的寄存器别名为PC,程序计数器,用于指示被取指令的地址,通常

由CPU自动维护,也可以通过程序手动修改

●CPSR寄存器,用于反映当前的程序状态,如处理器所处的模式,处理器

所处的状态,中断是否被屏蔽,数据运算的结果是否发生了借位、进位,

结果是否为0,结果是否为负,是否发生溢出等

●SPSR寄存器,定义同CPSR寄存器。在模式发生切换后用于保存模式切

换前的模式下的CPSR寄存器,如果要切换回以前的模式,则可用切换后

所在模式的SPSR去恢复切换前模式的CPSR,需要由特殊的指令来实现

8.ARM指令特点

●定长32 bit

●大部分为单周期指令

●大部分指令可条件执行,即在常规指令后跟上执行条件

●采用Load/Store架构,典型的限制是不能在存储器和存储器间直接拷贝,

必须通过寄存器中转

9.ARM处理器核

●流水线使得指令流可并行处理,提高效率

●PC指向正被取指的指令,而非正在执行的指令

●Cache因为存取速度高于内存,用于缓存指令和数据,提高执行速度

●Write Buffer用于暂存向内存写入的数据

●MMU用于程序的保护和实现虚拟内存

●CP15协处理器用于控制Cache、Write Buffer和MMU等

10.SoC的概念:片上系统,将CPU核同其他外围接口电路(如串口,LCD控制

器等)集成在一片芯片上

二、ARM指令集

1.条件码

CMP r3, #0 CMP r3, #0

BEQ Skip ADDNE r0,r1,r2

ADD r0,r1,r2

Skip: Skip:

合理使用条件码,可以提高代码密度,减少分支跳转指令的数目(避免清空流水线),提高了性能

相关文档
最新文档