【ARM 架构基础知识】 ARM 架构是广泛应用于嵌入式系统和移动设备的一种精简指令集(RISC)架构。它以其低功耗、高性能的特点被许多微控制器和智能手机处理器所采用。以下是 ARM 架构的一些核心知识点: 1. **CPU 模式**:在 ARM 架构中,处理器在复位后会启动于管理模式,这是系统初始化和执行关键任务时使用的模式。CPU 模式包括用户模式(USR)、系统模式(SYS)、中断服务模式(IRQ)、快速中断模式(FIQ)、管理模式( SVC)和未定义模式等。 2. **指令编码与移位操作**:ARM 指令集允许使用立即数进行操作,但受到指令长度的限制。对于立即数,如在 MOV 指令中,8 位图立即数是指一个 0-255 之间的数通过循环右移偶数位来表示。例如,0xF0000001 是 0x1F 循环右移 4 位得到的,这是合法的因为移位偶数位可以保持 8 位数值的完整性。 3. **LDR 指令**:LDR 用于从内存中加载数据到寄存器。在示例中,`LDR R0, [R1], #-4` 是一种后索引寻址方式,意味着先读取 R1 指向的内存内容到 R0,然后将 R1 减 4 存回 R1,即先读后修改。 4. **CPSR 寄存器**:Current Program Status Register (CPSR) 保存了处理器状态,包括工作模式、中断标志等。读取 CPSR 可以确定当前代码段运行在哪种模式下。 5. **过程调用标准**:在 ARM Thumb 模式中,为了节省资源,只保护 R0-R3 和 R12 寄存器,其他寄存器的保存和恢复取决于特定的过程调用标准,如 AAPCS (ARM Application Binary Interface, Abstract State)。 6. **指令错误分析**:错误 `out of the range of operation` 表示操作数超出了指令支持的范围。在 ARM 中,某些指令如 MOV 只能处理 8 位位图数。 7. **用户可见寄存器**:在 ARM7TDMI-S 中,37 个用户可见寄存器指的是程序员可以直接访问的寄存器,例如 R8 和 R8_fiq 分别对应普通模式和快速中断模式,它们是独立的物理寄存器。 8. **工作模式的限制**:USR 模式(用户模式)通常用于应用程序执行,不允许直接访问 CPSR 寄存器。SVC 模式(服务模式)通常用于系统调用和内核服务,IRQ 模式用于处理中断事件,其权限高于用户模式。 9. **堆栈初始化与工作模式**:初始化堆栈时,通过设置 CPSR 内的模式位来决定处理器后续运行的工作模式。 10. **文字池(Constant Pool)**:在 ARM 汇编编程中,文字池是一个存储常量和地址的地方,程序在运行时可以引用这些值,减少指令中立即数的使用,提高代码效率。 以上是 ARM 架构中关于 CPU 模式、指令编码、寄存器使用、工作模式切换、堆栈初始化以及汇编编程概念的一些基本知识。了解这些知识点有助于深入理解和开发基于 ARM 的 Linux 系统。
剩余63页未读,继续阅读
- micheal75002013-11-14还可以吧,有部分参考价值!
- dudumummy2012-07-10关于ARM控制器的,LINUX部分几乎没有
- 粉丝: 18
- 资源: 392
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于OVMS v3的无线控制台系统(WifiConsole).zip
- (源码)基于Arduino和ESP32的IoT计算机开关系统.zip
- (源码)基于Qt框架的PX4飞行控制器固件升级系统.zip
- (源码)基于Spring Boot和Vue的需求管理系统.zip
- 基于深度学习YOLOv5的车牌检测与识别项目源码
- (源码)基于Python的CSGO饰品价格分析与比较系统.zip
- ccs3.3安装补丁SR12-CCS-v3.3-SR-3.3.82.13 2
- (源码)基于Spring Boot框架的攀枝花物流系统.zip
- (源码)基于Spring Boot和Vue的权限管理系统.zip
- (源码)基于Python和HMM的酵母起始密码子预测系统.zip