一、RAM 分类
-
SRAM (Static RAM)
-
用 触发器/晶体管 存储 0/1。
-
特点:速度快、功耗低(静态保持),但成本高、容量小。
-
应用:片上缓存、寄存器文件、单片机内存。
-
-
DRAM (Dynamic RAM)
-
用 电容充放电 存储 0/1。
-
特点:存储密度高、成本低,但需要刷新电路,速度低于 SRAM。
-
应用:PC 内存、大容量存储。
-
-
SDRAM (Synchronous DRAM)
- 在 DRAM 上增加时钟同步,提高读写速度。
-
DDR RAM (Double Data Rate SDRAM)
-
SDRAM 的升级版,在时钟上升沿和下降沿均可传输数据。
-
发展分支:DDR → DDR2 → DDR3 → DDR4 → DDR5。
-
-
IRAM (Internal RAM)
-
本质上是 片上 SRAM,直接集成在 SoC 内部,速度快、可直接被内核访问。
-
二、ROM 分类
-
ROM (Read Only Memory)
- 出厂时数据固定,不可更改。
-
PROM (Programmable ROM)
- 用户可写入一次数据。
-
EPROM (Erasable PROM)
- 可通过紫外线擦除后重新写入。
-
EEPROM (Electrically Erasable PROM)
- 电擦写方式,速度较慢,但方便修改少量数据(如配置参数)。
-
Flash 闪存
-
NOR Flash:字节寻址,可直接执行(XIP, Execute In Place)。
-
NAND Flash:页寻址,容量大、寿命长,需控制器管理。
-
eMMC:嵌入式 NAND,带控制器,简化接口。
-
UFS(Universal Flash Storage):新一代高速存储接口。
-

三、ARM 内核结构(Cortex-A7 为例)
-
基本信息
-
32 位架构,数据宽度 4 字节。
-
RISC(精简指令集)设计,流水线执行。
-
-
功能单元
-
ALU:算术逻辑运算。
-
通用寄存器 R0-R12:主要运算与数据存储。
-
专用寄存器:
-
PC (R15):程序计数器。
-
LR (R14):连接寄存器,保存返回地址。
-
SP (R13):栈指针寄存器。
-
CPSR:当前程序状态寄存器。
-
SPSR:保存的 CPSR(用于异常返回)。
-
-
-
存储与控制
-
MMU (Memory Management Unit):虚拟地址 → 物理地址映射。
-
Cache:
-
I-Cache(指令缓存)
-
D-Cache(数据缓存)
-
-
总线:
-
AHB:高性能总线(CPU ↔ 内存)。
-
APB:外设总线(低速外设)。
-
-
四、ARM 工作模式
Cortex-A7 有 9 种模式:
-
User:非特权模式,普通应用运行。
-
FIQ:快速中断模式,高优先级,专用寄存器多,适合实时处理。
-
IRQ:普通中断模式。
-
Supervisor (SVC):上电复位或软中断进入。
- 上电默认进入 SVC 模式,由启动代码切换到 User 模式。
-
Abort:存取异常模式。
-
Undef:未定义指令模式。
-
System:与 User 共用寄存器,但具备特权。
-
Monitor:安全监控模式(TrustZone)。
-
Cortex-A 特有模式(部分扩展架构支持)。
说明:
每种模式都有 独立 SP、LR,保证中断/异常隔离。
ARM 将 中断统一视为异常。
五、异常处理
-
异常类型
-
Reset(复位)
-
Undefined Instruction(未定义指令)
-
SWI(软中断)
-
Prefetch Abort(指令取指异常)
-
Data Abort(数据访问异常)
-
IRQ(普通中断)
-
FIQ(快速中断)
-
-
异常向量表
-
固定地址存放不同异常入口。
-
例如:复位向量通常在
0x00000000
或0xFFFF0000
。
-
-
底层流程
- 保存 CPSR → 切换模式 → 修改 PC → 跳转异常向量表地址。
六、CPSR 程序状态寄存器
-
Mode 位:工作模式选择。
-
条件标志位:
-
N(Negative):结果为负数 → 1。
-
Z(Zero):结果为 0 → 1。
-
C(Carry):无符号运算进位/借位。
-
V(Overflow):有符号数溢出。
-
-
E 位:大小端标志(0 = 小端,1 = 大端)。
-
IRQ/FIQ 屏蔽位:控制中断响应。
七、ARM 指令
-
数据传送
-
MOV Rd, #const
:立即数赋值。 -
MOV Rd, Rm
:寄存器传值。 -
MVN Rd, #const
:立即数取反。
-
-
算术运算
-
ADD Rd, Rn, #const
-
SUB Rd, Rn, #const
-
MUL Rd, Rn, Rm
-
-
移位操作
-
LSL:逻辑左移。
-
LSR:逻辑右移。
-
ASL:算术左移(等价于 LSL)。
-
ASR:算术右移(符号位保持)。
-
ROR:循环右移。
-
-
立即数规则
-
ARM 立即数 = 8-bit 常数 + 4-bit 旋转。
-
可通过右旋实现更多常数表示。
-