学习嵌入式的第三十八天——ARM——概述
1、什么是RISC、CISC
CISC:复杂指令集,能支持大量的指令操作,所以电路十分复杂,但软件十分精简
RISC:精简指令集,能支持的指令较为精简,所以电路也比较精简,但软件就比较复杂
2、冯.诺伊曼架构和哈佛架构有何区别?ARM内核属于哪一种?
冯.诺伊曼架构:单总线结构,速度不同的外设使用通用的总线,结构简单,但会影响效率
哈佛架构:多总线结构,使用多总线把高速和低速外设区分,结构复杂,但效率高
ARM内核属于哈佛结构,但现在许多都是混合使用的
3、ARM内核中都有什么?
处理器核心
:负责指令的取指、译码和执行,是实现计算功能的核心单元
指令集架构(ARM,Thumb)
:指令集是内核可执行的指令集合,定义了软件与硬件的交互接口。
寄存器
:通用寄存器(r0~r15)
:r13——栈指针寄存器(sp)
r14——链接寄存器(lr)
r15——程序计数器(pc)
各工作模式中独立的寄存器:
状态寄存器
:
程序状态寄存器(cpsr):
程序状态备份寄存器(spsr):备份模式切换前的cpsr值
运算单元
算术逻辑运算单元(ALU)
:进行基本算术和逻辑运算
浮点数运算单元(FPU)
:进行浮点数运算
数字信号处理单元(DSP)
:优化数字信号处理任务
控制单元
:负责协调指令执行的全过程,确保各模块按序工作
高速缓存(Cache)
:减少内核访问内存的次数,提升数据读取速度
指令缓存(l—cache)数据缓存(d—cache)速度极快
存储管理单元
:
内存管理单元(MMU):实现虚拟内存与物理内存的映射,支持内存分页、权限控制(如只读 / 读写)、缓存管理,是多任务操作系统(如 Linux)的基础
内存保护单元(MPU):通过划分内存区域并设置访问权限(如禁止用户程序访问内核内存),防止非法内存操作导致系统崩溃,但不支持虚拟内存
中断与相应处理单元
负责响应外部中断(如按键、传感器触发)和内部异常(如除零错误、未定义指令),确保系统及时处理紧急事件
总线接口单元(BIU)
:内核通过总线接口与外部外设(如 GPIO、UART、SPI)和内存(RAM、Flash)通信,是数据传输的 "高速公路"
AHB(Advanced High-performance Bus):高性能总线,用于连接高速外设(如 DMA、MMU)
APB(Advanced Peripheral Bus):低功耗总线,用于连接低速外设(如 GPIO、UART)
AXI(Advanced eXtensible Interface):ARMv7 及以上架构的高性能总线,支持多主设备、乱序传输,提升数据吞吐量(如 Cortex-A 系列)
4、ARM有几种工作模式?
7种基本工作模式:
User(普通用户):无特权模式,大部分任务都工作在这个模式
Supervisor(超级用户):当复位或者软中断产生时
FIQ(快 中断 请求):当高级(快)中断产生时
IRQ(中断 请求):当低级(普通)中断产生时
Undef(未定义):当执行未定义的指令时(如指令集与编译器版本不匹配)
Abort(终止):当存取异常时
System:使用与User模式相同寄存器集的特权模式
37个32位寄存器
在Cortex——A架构种还有 2种:Monitor:安全监视
Hyp:测试
与上共40个寄存器
5、什么是异常向量表?
异常向量表是硬件异常触发与软件处理程序之间的桥梁,其核心功能是:
统一管理所有可能发生的异常类型,为每种异常分配一个唯一的 "入口地址"
当异常发生时,处理器无需软件干预,可直接通过硬件机制定位到向量表中对应的地址,快速跳转至处理程序,保证响应的实时性