文章目录
第一章 ARM概述及其基本编程模型
1.1 ARM技术的应用领域与其特点
1.2 ARM体系结构的版本和命名方法
ARM体系结构的版本
3.版本3
- 处理器的地址扩展到32位
- 当前的程序状态信息从原来的R15寄存器移到一个新的寄存器CPSR(Current Program Status Register)。
- 增加SPSR(Saved Program Status Register),用于在程序异常中断程序时,保存被中断的程序状态。
- 增加了指令MRS和MSR,用于访问CPSR和SPSR。
4.版本4
- 增加了T变种,可以从处理器状态切换到Thumb状态,在该状态下指令集是16位的Thumb指令。
- 增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器。
5.版本5
- 增加了前导零计数指令:使整数除法和中断优先级排队操作更为有效。
- 增加软件断点指令
6.版本6
增加SIMD功能。SIMD功能扩展为包括音频/视频在内的应用系统提供了优化功能,可以使
ARM体系的变种
thumb指令集(T变种)
Thumb指令集是将ARM指令集的一个子集重新编码而形成的一个指令集。ARM指令长度为32位,Thumb指令长度为16位。Thumb指令集可以得到密度更高的代码。
长乘法指令(M变种)
增加两条长乘法操作的ARM指令
- 实现32位整数乘以32位整数
- 实现32位整数乘以32位整数+32位整数
增强型DSP指令(E变种)
增强处理器对DSP算法的处理性能
Java加速器(J变种)
java加速功能
ARM媒体功能扩展(SIMD变种)
ARM媒体功能扩展为嵌入式应用系统提供了高性能的音频/视频处理技术。
ARM的SIMD媒体功能扩展为包括音频/视频在内的应用系统提供了优化功能,可以使音频/视频处理性能提高4倍
1.3 ARM处理器系列
- ARM7
- ARM9
- ARM9E
- ARM10E
- SecurCore
1.3 ARM处理器系列
ARM处理器共有7种运行模式
处理器模式 | 描述 |
---|---|
用户模式(User,usr) | 正常(用户)程序执行的模式 |
快速中断模式(FIQ,fiq) | 用于高速数据传输和通道处理 |
外部中断模式(IRQ,irq) | 用于通常的中断处理 |
管理模式(Supervisor,sve) | CPU上电后默认模式,主要用来做系统的初始化 供操作系统使用的一种保护模式 |
数据访问中止模式(Abort,abt) | 用于虚拟存储及存储保护 |
未定义指令中止模式(Undefined,und) | 用于支持通过软件仿真硬件的协处理器 |
系统模式(System,sys) | 用于运行特权级的操作系统任务 |
- 特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。
- 处理器模式的切换 by
- 软件控制
- 外部中断或异常处理
- 大多数的用户程序运行在用户模式下,不能访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器模式的切换。
- 系统模式不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存器组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时任务状态不被破坏。
1.5 ARM寄存器介绍
ARM处理器有37个寄存器,其中包括
- 31个通用寄存器 [ 32位寄存器 ] 。
- 6个状态寄存器
用户模式 | 系统模式 | 管理模式 | 中止模式 | 未定义模式 | 外部中断模式 | 快速中断模式 |
---|---|---|---|---|---|---|
R0 | R0 | R0 | R0 | R0 | R0 | R0 |
R1 | R1 | R1 | R1 | R1 | R1 | R1 |
R2 | R2 | R2 | R2 | R2 | R2 | R2 |
R3 | R3 | R3 | R3 | R3 | R3 | R3 |
R4 | R4 | R4 | R4 | R4 | R4 | R4 |
R5 | R5 | R5 | R5 | R5 | R5 | R5 |
R6 | R6 | R6 | R6 | R6 | R6 | R6 |
R7 | R7 | R7 | R7 | R7 | R7 | R7 |
R8 | R8 | R8 | R8 | R8 | R8 | R8_fiq |
R9 | R9 | R9 | R9 | R9 | R9 | R9_fiq |
R10 | R10 | R10 | R10 | R10 | R10 | R10_fiq |
R11 | R11 |