硬件开篇——体系架构
1、驱动开发分类:
裸机驱动(无操作系统)——由寄存器控制;Linux驱动。
硬件:
计算机系统:
计算机架构:①冯诺依曼(指令、数据一起)②哈佛(指令、数据分开)
2、s3c2440
系列为ARM920T(32位),指令集为ARMV5TE。
ARM11后有3个系列{cortex - A(Application)、cortex -R(实时性)可用于飞行器等、cortex -M(MCU)单片机。
SOC处理器——8051、DSP、MIPS、PPC、ARM、RISCV。(CPU、MCU、MPU、GPU)
3、存储器分类:
易失性:RAM;非易失性:ROM。
nor flash 可寻址;nadd flash 不可寻址。
4、封装方式:
TSOP:可见引脚;BAG:一体成型;COB。
5、总线结构:
单总线结构;多总线结构。
(1)ARM 有37个32-Bits长的寄存器.
1 个用作PC( program counter)
1个用作CPSR(current program status register)
5个用作SPSR(saved program status registers)
30 个通用寄存器
(2)Cortex体系结构下有40个32-Bits长的寄存器
Cortex-A多出3个寄存器,Monitor 模式 r13_mon , r14_mon, spsr_mon
当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取:
相应的r0-r12子集
相应的 r13 (the stack pointer, sp) and r14 (the link register, lr)
相应的 r15 ( the program counter, pc)
相应的CPSR(current program status register, cpsr)
特权模式 (除system模式) 还可以存取;
相应的 spsr (saved program status register)
6、异常处理(初始化向量表)(低5位切换)
当异常产生时, ARM core:
拷贝 CPSR 到 SPSR_<mode>
设置适当的 CPSR 位: 偏移量
改变处理器状态进入 ARM 态
改变处理器模式进入相应的异常模式
设置中断禁止位禁止相应中断 (如果需要)
保存返回地址到 LR_<mode>
设置 PC 为相应的异常向量
返回时, 异常处理需要:
从 SPSR_<mode>恢复CPSR
从LR_<mode>恢复PC
Note:这些操作只能在 ARM 态执行.
注:有7种异常类型。
3级流水线:F取址、D解码、E执行。