20250919的学习笔记
一、计算机部分基本概念
(1)计算机系统基本组成:硬件系统 软件系统(应用软件、系统软件)
(2)计算机硬件系统基本组成:运算器 控制器 存储器 输入设备 输出设备
(3)CPU(Center Processing Unit):中央处理单元 ---是一种强大通用型处理器
(4)GPU(Graphics Processing Unit):图形处理单元
(5)FPU(Float Processing Unit):浮点型运算单元
(6)在嵌入式领域:
MPU(Mirco Processing Unit):微处理器 ---通用型,偏向处理
MCU(Mirco Contral Unit):微控制器 ---偏向控制
单片机:单片微型计算机系统
DSP(Digital Signal Processing):数字信号处理器 ---是为了高强度数学运算而设计的一种专用芯片
SOC(System On Chip):片上系统
---是一种集成和设计的理念,像一个蓝图,将市政府(MPU)警察局(MCU)研究所(DSP)机场(调制解调器)放在同一片土地(芯片)上,组成了一个功能完善的芯片
Kernal:架构:X86 ARM
CISC(complex instruction set computer):复杂指令集架构 X86
RISC(reduce instruction set computer):精简指令集架构 ARM
RAM(Random Access Memory)
①可以被直接寻址
②访问速度快
③价格昂贵
④掉电丢失(易失性存储)
ROM(Read-Only memory)
①不可以被直接寻址
②访问速度慢
③价格便宜
④掉电不丢失(非易失性存储)
(7)ALU:算数逻辑单元
(8)CPSR:当前程序状态寄存器
(9)SPSR(Saved Program Status Register):程序状态备份寄存器
(10)MMU:内存管理单元
(11)sp(stack pointer):栈指针寄存器
(12)lr(linked register):链接寄存器
(13)pc(program counter):程序计数器
二、冯·诺伊曼架构和哈佛架构的比较(ARM属于哈佛架构)
特性 | 冯·诺伊曼架构 | 哈佛架构 |
核心设计 | 共享总线、统一存储器 | 分离总线、分离存储器 |
存储结构 | 程序指令和数据存放在同一存储器中,共享同一内存空间 | 程序指令和数据分别存放在两个独立的存储器中 |
总线结构 | 单一总线用于传输指令和数据(冯·诺伊曼瓶颈) | 两条独立总线:一条用于指令,一条用于数据 |
执行流程 | 取指、译码、执行 sequentially 串行进行 | 可以并行操作(如同时取指和读写数据) |
性能 | 相对较低,存在“冯·诺伊曼瓶颈” | 相对更高,避免了总线冲突,支持并行访问 |
硬件复杂度 | 相对简单,成本较低 | 相对复杂,成本较高(需要更多总线和支持电路) |
灵活性 | 较高,指令和数据可同样处理,空间分配灵活 | 较低,存储器大小在硬件设计时固定 |
安全性 | 相对较低,程序可能被作为数据修改 | 相对更高,指令存储器通常为只读,防止意外修改 |
典型应用 | 通用计算机(如PC、服务器) | 嵌入式系统、DSP(数字信号处理器)、单片机(如ARM9+、许多MCU) |
代表产品 | Intel x86, ARM7, 大多数通用处理器 | 许多单片机(如PIC, AVR, 8051),哈佛结构的ARM(如Cortex-M系列),DSP芯片 |
地址空间 | 单一的线性地址空间 | 两个或多个独立的地址空间(指令地址空间、数据地址空间) |
三、ARM基本工作模式
(1)ARM有7个基本工作模式:
User:非特权模式,大部分任务执行在这种模式
FIQ:当一个高优先级(fast)中断产生时将会进入这种模式
IRQ:当一个低优先级(normal)中断产生时将会进入这种模式
Supervisor:当复位或软中断指令执行时将会进入这种模式
Abort:当存取异常时将会进入这种模式
Undef:当执行未定义指令时会进入这种模式
System:使用和User模式相同寄存器集的特权模式
(2)Cortex-A特有模式:
Monitor:是为了安全而扩展出的用于执行安全监控代码的模式:
也是一种特权模式。
四、异常处理
(1)当异常产生时,ARM core:
①拷贝 CPSR 到 SPSR_<mode>
②设置适当的 CPSR 位:
1.改变处理器状态进入ARM态
2.改变处理器模式进入相应的异常模式
3.设置中断禁止位禁止相应中断(如果需要
③保存返回地址到LR <mode>
④设置 PC 为相应的异常向量
(2)返回时,异常处理需要
①从 SPSR_<mode>恢复CPSR
②从LR <mode>恢复PC
Note:这些操作只能在 ARM态执行。