嵌入式学习day44-硬件—ARM体系架构

一、ARM处理器概述

ARM处理器特点

  • RISC架构:精简指令集计算机
  • 低功耗设计:适合移动设备和嵌入式系统
  • 高性能:优化的流水线设计
  • 可扩展性:支持多种配置和扩展

二、ARM处理器核心组件

1. 处理器核心 (Core)

  • ALU (算术逻辑单元)

    • 执行算术运算
    • 执行逻辑运算
    • 数据处理的核心部件
  • 寄存器组 (Register File)

    • 通用寄存器:R0-R15
    • 特殊寄存器:SP(堆栈指针)、LR(链接寄存器)、PC(程序计数器)
    • 状态寄存器:CPSR(当前程序状态寄存器)

2. 存储系统层次结构

缓存系统 (Cache)
  • L1 Cache (一级缓存)

    • 指令缓存 (I-Cache)
    • 数据缓存 (D-Cache)
    • 容量小但速度最快
  • L2 Cache (二级缓存)

    • 统一缓存设计
    • 容量较大,速度中等
    • 减少对主存的访问
存储器管理单元 (MMU)
  • 地址转换:虚拟地址到物理地址
  • 存储保护:访问权限控制
  • 缓存管理:缓存一致性维护

3. 总线系统

AHB (Advanced High-performance Bus)
  • 高性能总线
  • 连接处理器核心与高速外设
  • 支持突发传输和流水线操作
APB (Advanced Peripheral Bus)
  • 外设总线
  • 连接低速外设
  • 功耗优化设计

三、ARM指令集架构

1. 指令类型分类

  • 数据处理指令

    • 算术运算:ADD、SUB、MUL等
    • 逻辑运算:AND、OR、XOR等
    • 比较指令:CMP、TST等
  • 数据传输指令

    • 加载指令:LDR、LDRB、LDRH
    • 存储指令:STR、STRB、STRH
    • 多数据传输:LDM、STM
  • 分支指令

    • 无条件分支:B
    • 条件分支:BEQ、BNE、BGT等
    • 子程序调用:BL、BLX

2. 寻址模式

  • 立即寻址:操作数直接在指令中
  • 寄存器寻址:操作数在寄存器中
  • 间接寻址:通过地址访问操作数
  • 相对寻址:基于PC的偏移寻址

四、ARM处理器工作模式

1. 处理器模式

  • 用户模式 (User):普通程序运行模式
  • 系统模式 (System):特权模式,与用户模式共享寄存器
  • 监管模式 (Supervisor):软中断和复位后的模式
  • 中断模式 (IRQ):外部中断处理模式
  • 快速中断模式 (FIQ):快速中断处理模式
  • 中止模式 (Abort):数据/指令预取中止模式
  • 未定义模式 (Undefined):未定义指令异常模式

2. 状态寄存器 (CPSR)

  • 条件标志位
    • N:负数标志
    • Z:零标志
    • C:进位标志
    • V:溢出标志
  • 控制位
    • I:IRQ中断禁止位
    • F:FIQ中断禁止位
    • T:Thumb状态位
    • M:模式位

五、ARM流水线技术

1. 三级流水线

  • 取指 (Fetch):从存储器取指令
  • 译码 (Decode):解析指令操作
  • 执行 (Execute):执行指令操作

2. 流水线优化

  • 分支预测:减少分支跳转延迟
  • 指令预取:提前取指提高效率
  • 数据前递:解决数据相关问题

六、存储器系统

1. 存储器映射

  • 代码区:存放程序代码
  • 数据区:存放全局变量和静态变量
  • 堆区:动态内存分配
  • 栈区:局部变量和函数调用

2. 存储器保护

  • 访问权限控制:读、写、执行权限
  • 域访问控制:不同域的访问策略
  • 虚拟存储管理:地址空间隔离

七、中断和异常处理

1. 中断类型

  • IRQ:普通中断请求
  • FIQ:快速中断请求
  • 软中断:SWI指令触发

2. 异常处理流程

  1. 保存当前程序状态
  2. 切换到相应的异常模式
  3. 跳转到异常向量表
  4. 执行异常处理程序
  5. 恢复原程序状态并返回

八、Thumb指令集

1. Thumb特点

  • 16位指令格式:节省代码空间
  • 与ARM指令兼容:可混合使用
  • 高代码密度:适合存储空间受限的应用

2. Thumb-2技术

  • 混合16位和32位指令
  • 保持高代码密度
  • 提供更丰富的指令功能

九、协处理器接口

1. 协处理器作用

  • 浮点运算协处理器:执行浮点运算
  • 存储管理协处理器:CP15,系统控制
  • 用户定义协处理器:扩展特定功能

2. 协处理器指令

  • CDP:协处理器数据处理
  • LDC/STC:协处理器数据传输
  • MCR/MRC:ARM核心与协处理器间数据传输

十、调试和测试支持

1. JTAG接口

  • 边界扫描测试
  • 在线调试支持
  • 芯片测试功能

2. 跟踪支持

  • ETM (Embedded Trace Macrocell):指令跟踪
  • 实时调试:不停机调试
  • 性能分析:程序执行分析

学习要点总结

  1. 掌握ARM的RISC特点:理解精简指令集的优势
  2. 熟悉寄存器组织:重点掌握特殊寄存器的作用
  3. 理解存储系统层次:缓存、MMU的工作原理
  4. 掌握指令集分类:数据处理、传输、分支指令
  5. 了解处理器模式:各模式的特点和切换机制
  6. 理解流水线技术:提高处理器性能的关键技术
  7. 掌握中断异常处理:系统可靠性的重要保障
相关推荐
微露清风4 小时前
系统性学习数据结构-第三讲-栈和队列
java·数据结构·学习
77qqqiqi6 小时前
学习字符串
学习
滴滴滴嘟嘟嘟.6 小时前
Qt动画功能学习
开发语言·qt·学习
淮北4946 小时前
计算机网络学习(七、网络安全)
学习·计算机网络·web安全
萘柰奈7 小时前
Unity学习----【进阶】Input System学习(一)--导入与基础的设备调用API
学习
天天开心a7 小时前
OSPF基础部分知识点
网络·笔记·学习·智能路由器·hcip
淮北4947 小时前
计算机网络学习(六、应用层)
linux·学习·计算机网络
落羽的落羽9 小时前
【C++】简单介绍lambda表达式
c++·学习
charlie1145141919 小时前
前端三件套简单学习:HTML篇1
开发语言·前端·学习·html