1. 概念

1. 1 计算机CPU内核
1.1.1 CISC
Complex Instruction Set Comupter 复杂指令集计算机 :x86 芯片面积大、加工成本高、复杂、体积大、功耗大
1.1.2 RISC
Reduced Instruction Set Comupter 精简指令集计算机 :芯片面积小、加工成本低、功耗低、体积小(便携式设备)
1.2 Cortex
- A: Application 应用,手机、应用电子领域
- R:real time 实时性,汽车电子,航空航天
- M:Micro 微控制器 MCU 单片机领域

1.2.1 CortexA7 32位
- R0 - R12 :通用寄存器(内核) ,存放数据
- pc寄存器:program counter, 程序计数器,本质上是一个指针 指向当前代码正在执行指令的 下一条指令
- lr寄存器:linked register, 链接寄存器,保存函数返回地址
- sp寄存器:stack pointer, 栈指针寄存器,用来管理栈区
- cpsr寄存器:current program status register,当前程序状态 寄存器,保存程序运行到某一步 时的状态
- ALU:算术逻辑单元
- spsr:save program status register ,保存/备份程序状态寄存器 ,异常发生时,保存cpsr寄存器中程序状态
- MMU:Mermory Manager Unit,内存管理单元 用于管理虚拟内存到物理内存映射,从而 提高物理内存的利用率。 裸机必须要关闭MMU,打开icache,关闭dcache。
- Cache:高速数据缓存,直接从Cache访问数据,提高CPU访问数据的效率
icache:instruction cache,指令缓存,用于指令
dcache:data cache,数据缓存,用于数据
1.3 两类总线通信
1.3.1 单总线通信
通过一根线 / 一组线和外设通信,和某个外设通信时, 其他外设接不进来
1.3.2 双总线通信
AHB总线:先进高速总线(USB、网卡、RAM),连接通信速率快的外设
APB总线:先进外设总线(GPIO、UART),连接通信速率慢的外设
1.4 RAM&ROM
1.4.1 RAM
掉电数据丢失 易失性存储器
1.4.2 ROM
掉电数据不丢失 非易失性存储器
flash:
- nor flash: 每一个字节可以被寻址,地址总线和数据总线
- nand flash:无法被寻址,以固定块大小写入或读取数据 512byte
1.5 ARM的7种基本工作模式
- User:非特权模式,大部分任务执行在这种模式
- FIQ:当一个高优先级(fast)中断产生时将会进入这种模式
- IRQ:当一个低优先级(normal)中断产生时将会进入这种模式
- Supervisor:当复位或软中断指令执行时将会进入这种模式
- Abort:当存取异常时将会进入这种模式
- Undef:当执行未定义指令时会进入这种模式
- System:使用和User模式相同寄存器集的特权模式
1.6 异常处理
当ARM处理器产生异常时:
将当前程序状态寄存器CPSR拷贝到对应异常模式SPSR_<mode>中;
然后切换到ARM态和对应异常模式,必要时关闭中断;
保存返回地址到LR中;
跳转到异常向量表执行异常处理。
返回时:
从SPSR恢复CPSR;
从LR恢复PC。
异常向量表
