一、CPU分类:CISC 与 RISC
CISC 复杂指令集计算机(代表:x86)
特点:指令功能丰富,芯片复杂;成本高、体积大、功耗大。
RISC 精简指令集计算机(代表:ARM、51、MIPS)
特点:指令功能少,芯片结构简单;成本低、体积小、功耗低。
ARM公司只设计RISC架构CPU内核,不生产芯片;把内核授权给半导体厂商。
例:STM32F103,ST意法半导体拿到ARM内核授权,生产芯片。
二、ARM内核版本分类
ARM7、ARM9、ARM11 → 旧一代内核。
1.Cortex系列
分为三大方向
1)Cortex‑A:Application 应用处理器
面向操作系统、安卓、Linux。
Cortex‑A5:智能手表
Cortex‑A7:IMX6ULL、STM32MP157(课程使用)
Cortex‑A8:三星旧款手机
Cortex‑A9:三星Exynos4412
Cortex‑A75:高端移动端
2.)Cortex‑R:Real‑Time 实时处理器
面向汽车电子,强实时性场景。
3) Cortex‑M:MCU 单片机
单片机领域,常用型号:
Cortex‑M3:STM32F103
Cortex‑M4:STM32F407、STM32MP157(多核)
三、IMX6ULL芯片内部框图(SOC)

SOC片上系统:内核和外设集成在一块芯片内部,内部通过总线通信。
AHB总线(高速总线):连接高速外设,如USB、网卡、DDR内存控制器
APB总线(低速总线):连接低速外设,GPIO、UART、TIMER定时器
引脚:VCC供电、GND地、OSC晶振、RESET复位。
四、Cortex‑A7 32位内核寄存器
ALU
算术逻辑单元,完成算术、逻辑运算
R0~R12
通用寄存器,存放临时数据
SP(R13)
Stack Pointer 栈指针寄存器,管理栈空间
入栈:SP先自减,数据存入SP指向新位置
出栈:从SP指向位置取出数据,SP自增
栈特性:先进后出,后进先出
LR(R14)
Link Register 链接寄存器,保存函数/异常的返回地址
PC(R15)
Program Counter 程序计数器,保存下一条将要执行指令的地址
三级流水线流程:PC取指令 → 译码器翻译指令 → CPU执行指令
PSR
状态寄存器
CPSR 当前程序状态寄存器
保存程序运行时状态:溢出、进位、中断使能、模式位,记录当前处理器状态。
SPSR 备份程序状态寄存器
特权模式才有;发生异常时,把CPSR的值保存到SPSR,异常退出时恢复。
MMU
内存管理单元
作用:把虚拟地址转换为物理地址。
裸机开发:关闭MMU
Linux驱动开发:打开MMU,开启虚拟内存
CACHE
高速缓存
提升CPU访问内存效率,分为两类:
I-CACHE: Instruction Cache 指令缓存
**D-CACHE:**Data Cache 数据缓存
五、冯诺依曼架构和哈佛架构
-
冯·诺依曼架构:数据和指令共用同一块存储空间
-
哈佛架构:数据和指令拥有独立的存储空间
六、异常向量表
本质是一个数组,数组里面存放的是异常服务函数的入口地址。
中断向量表:存放中断服务函数入口地址;
异常向量表:存放跳转到异常服务函数的指令。
七、大小端存储
ARM处理器默认小端存储
大端: 高地址存放低数据位,低地址存放高数据位
**小端:**高地址存放高数据位,低地址存放低数据位
八、NOR Flash 与 NAND Flash
NOR Flash :可以按字节寻址,带有地址总线和数据总线
**NAND Flash:**块设备,以512字节为一块进行存储
九、ARM 7种基础工作模式
1) User:用户模式,非特权模式,大部分任务运行在此模式
2) FIQ:快速中断模式,高优先级快速中断触发进入
3) IRQ:普通中断模式,低优先级常规中断触发进入
4) Supervisor(SVC):管理模式,上电/软中断进入
5)Abort:中止模式,取指/数据访问异常进入
6)Undef:未定义指令模式,执行未知指令时进入
7)System:系统模式,和User使用相同寄存器组的特权模式
Cortex-A额外还有Monitor监控模式,用于安全扩展,属于特权模式。
寄存器数量:Cortex-A体系下一共40个32bit寄存器,不同模式下会切换分组寄存器。
十、ARM异常处理流程
异常发生时,CPU硬件自动完成:
-
拷贝CPSR到SPSR_<mode>
-
设置CPSR的模式位,切换到对应异常模式
-
屏蔽中断(按需设置中断禁止位)
-
保存返回地址到LR_<mode>
-
设置PC跳转到对应的异常向量表地址
异常返回时需要做:
-
从SPSR_<mode>恢复CPSR
-
从LR_<mode>恢复PC
注意:以上动作全部由ARM硬件自动执行。
