嵌入式学习日记(42)ARM
什么是RISC, CISC? ARM属于哪种?
CISC (复杂指令集计算机):指令系统复杂,指令长度不固定,单条指令可完成复杂操作,但执行效率可能较低。代表:Intel x86架构。
RISC (精简指令集计算机):指令系统精简,指令长度固定,采用流水线技术,追求单周期执行指令,效率高。ARM属于RISC架构。
ARM内核中都有哪些部分组成?
核心组成部分通常包括:
算术逻辑单元(ALU):执行运算。
寄存器组:用于存储数据和指令。
控制单元:控制指令的执行和流水线。
流水线:提高指令执行效率。
内存管理单元(MMU)或内存保护单元(MPU):管理内存访问和保护(MMU用于实现虚拟内存)。
ARM9有多少种工作模式?Cortex A有几种?名称和作用?
ARM9 (基于ARMv5架构) 有 7种 工作模式:
用户模式 (User):正常程序执行模式,权限受限。
快速中断模式 (FIQ):处理高速数据传输、通道处理等快速中断。
外部中断模式 (IRQ):处理普通中断请求。
管理模式 (Supervisor):操作系统保护模式,复位和软中断指令进入。
中止模式 (Abort):处理内存访问失败(预取指中止、数据中止)。
未定义模式 (Undefined):处理未定义指令异常。
系统模式 (System):运行特权级操作系统任务(ARMv4及以上版本才有)。
Cortex-A (如A8/A9, 基于ARMv7-A架构) 有 8种 工作模式(增加了1种):
用户模式 (User)
快速中断模式 (FIQ)
外部中断模式 (IRQ)
管理模式 (Supervisor):也是复位和软件中断(SVC)的入口。
监视模式 (Monitor):这是新增的模式,用于实现安全扩展(TrustZone),在安全世界和非安全世界之间切换。
中止模式 (Abort)
未定义模式 (Undefined)
系统模式 (System)
ARM9、Cortex A有多少个寄存器?
寄存器数量与架构版本和工作模式相关,程序员可见的通常是 37个(32个通用寄存器 + 5个状态寄存器,不包括PC)。
不同模式下有自己专属的备份寄存器(Banked Registers),但总数是37个。这个数量在ARM9 (ARMv5) 和 Cortex-A (ARMv7-A) 中是相同的。
当异常产生时,ARM内核会做哪些工作?
将下一条指令的地址保存到相应异常模式下的链接寄存器
LR(R14)
中。将当前程序状态寄存器CPSR复制到异常模式下的程序状态保存寄存器SPSR中。
根据异常类型,强制改变CPSR中的模式位,进入特定的异常模式(如IRQ、FIQ等)。
强制将PC指针指向异常向量表中对应的异常入口地址。
禁止中断(如果需要,例如自动禁止IRQ以防止嵌套中断)。
什么是异常向量表?
异常向量表是一块固定的内存地址区域(通常位于地址
0x00000000
或高端地址0xFFFF0000
)。表中每一项存放的是一条跳转指令或者一个异常入口地址,对应一种特定的异常(如复位、未定义指令、IRQ、FIQ等)。
当异常发生时,处理器会自动跳转到向量表中对应的固定位置开始执行指令。
冯诺依曼架构:冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构
哈佛架构:哈佛结构是一种将程序指令存储和数据存储分开的存储器结构
AHB总线:先进高速总线
APB总线:先进外设总线
RAM分类
ROM分类