一、ARM的CPU介绍
ARM最小系统

RAM:随机存储,访问效率高(快)。
RAM : SRAM DRAM SDRAM DDR内存
静态 动态 同步
ROM:只读存储 ,掉电数据不丢失。
ROM: PROM EPROM EEPROM
可编程 可擦除 电
flash:闪存,掉电数据不丢失,访问效率高(快)

ALU:运算单元,实现运算的硬件电路。
RO~R12:通用寄存器,一般用来存储数据。
PC:程序计数器,一般指向正在运行的下下条指令(默认自加运算),复位值为0。
LR:链接寄存器存储函数的返回地址。
SP:栈指针寄存器指向栈顶。
CPSR:当前程序状态寄存器,进借位、溢出、中断使能、工作模式、大小端控制。
SPSR:保存程序状态寄存器,是CPSR的备份。
Cache:缓存,访问速率介于寄存器和内存之间,提高程序执行的效率。
MMU:内存管理单元,用于虚拟地址到物理地址的映射。
冯・诺依曼结构(数据和指令一起存放)
-
指令 和 数据 放在同一片存储器里
-
共用同一套总线
-
取指令的时候,就不能同时取数据
-
代表:电脑 CPU、早期 51 单片机
哈佛结构(数据和指令单独存放)
-
指令存储器 、数据存储器 → 完全分开
-
有两套独立总线
-
可以同时取指令 + 取数据
-
速度更快
-
代表:ARM、DSP、STM32、现代单片机
增栈(Ascending) :栈向高地址生长
减栈(Descending) :栈向低地址生长
满栈(Full Stack) :SP 永远指向最后入栈的有效数据
空栈(Empty Stack) :SP 永远指向下一个将要存放的空位置
常用满减栈
二、ARM系统(不涉及中断嵌套
| 东西 | 定位 | 擅长 | 例子 |
|---|---|---|---|
| ARM Cortex‑M | 高性能、偏控制 | 简单任务、外设、低功耗 | STM32、单片机 |
| ARM Cortex‑R | 实时控制 | 硬实时、高可靠、低延迟 | 汽车 ECU、工业控制 |
| ARM Cortex‑A | 运算系统 | 跑 Linux、界面、多任务 | 手机 CPU、平板 |
| DSP | 数字信号处理 | 数学、滤波、FFT | 音频、雷达、基站 |
| FPGA | 硬件可编程 | 高速并行、自定义电路 | 通信、AI 加速 |
| 异构多核 | 组合架构 | 又控制、又算、又快 | 手机 SoC、智能驾驶芯片 |
AHB:高速总线。
APB:外设(低速)总线。
地址总线:传输地址(单向);
数据总线:传输数据(双向);
控制总线:读写/忙控制信号。

CPU:中央处理单元
SOC:片上系统
MCU:微控制器
MPU:微处理器
RISC:精简指令集
CISC: 复杂指令集
ARM采用的是32位架构
ARM约定:
Byte :8 bits
Halfword :16 bits (2 byte)
Word :32 bits (4 byte)
Doubleword 64-bits (8byte)(Cortex-A处理器)
大部分ARM core提供: ARM指令集(32-bit); Thumb指令集(16-bit)(紧急)



流水线:取指 解码 执行。(PC指向读取的指令,而不是正在执行的指令)。