一、CPU内核
1.CISC
Complex Instraction Set Computer 复杂指令集 计算机
芯片面积大、成本高、复杂、体积大、功耗大
2.RISC
Reduce Instraction Set Computer 精简指令集 计算机
芯片面积小、成本低、简单、体积小、功耗小
3.ARM
|-----------|------------|-------|
| 处理器 | 内核 | 指令集版本 |
| imx6ull | Cortext A7 | armv7 |
| S3C2440 | ARM920T | armv4 |
| exnoy4412 | CortexA8 | armv8 |ARM9(37个寄存器)
Cortex-A(40个寄存器)
|---|-------------|-----------|
| A | Applacation | 手机应用电子领域 |
| R | Realtime | 汽车电子;航空航天 |
| M | Micro | 单片机 |在ARM中
1.ALU:
算数逻辑单元,搭配寄存器来使用
2.R0-R12:
通用寄存器(内核),用来存放数据
3.SP(R13):
栈指针寄存器(stack pointer), 管理栈区
4.LR(R4):
连接寄存器(linked regster)保存函数返回地址
5.PC(R15):
程序计数器(program counter),是一个指针,指向当前代码执行指令的下一条指令;指向哪,程序就执行到哪
6.CPSR:
当前程序状态寄存器(crrunt program status register),保存程序运行到某一步时的状态
7.SPSR:
保存/备份程序状态寄存器,异常发生,备份cpsr寄存器中程序状态
8.MMU:
内存管理单元(memory mannager unit),用于管理虚拟内存到物理内存映射,从而提高物理内存的利用率
9.Cache:
高速数据缓存,直接从cache访问数据,提高cpu访问数据效率
哈弗架构:
icache:指令缓存(instruction cache)
dcache:数据缓存(data cache)
二、总线
1.单总线通信
通过一根/一组线与外设通信,和某个外设通信时,其他外设无法接入
2.双总线通信
AHB总线:
先进高速总线(USB、网卡、RAM)连接通信速率快的外设
APB总线:
先进外设总线(GPIO、UART)连接通信速率慢的外设
三、编译
编译程序流程
1.预处理
展开头文件
替换宏定义代码
据条件编译增加或删除代码
2.编译
将C语言编译为汇编语言
3.汇编
将汇编语言转换为机器语言
4.链接
将代码与系统中的库连接成一个可执行程序
交叉编译:
在一个平台编写编译程序,能够在另外一个平台运行程序
四、Flash
ROM的一种类型
Flash 是一种可擦写的存储器,它结合了 ROM 和 RAM 的优点。它的数据可以被任意读取和写入,并且可以擦除和重新写入。Flash 的数据在断电后仍然能够保持
nor flash
每一个字节都可以被寻址,地址线和数据总线
nand flash
无法被寻址,以固定块大小写入或读取数据
五、处理器工作模式
1.User
非特权模式,大部分任务执行在该模式
2.FIQ
产生高优先级中断,进入该模式
3.IRQ
产生低优先级中断
4.Supervisor
复位或软中断执行执行时,进入该模式
5.Abort
存取异常,进入该模式
6.Undef
执行了未定义指令,进入该模式
7.System
和user模式使用相同寄存器集的特权模式
六、异常处理
一>异常向量表
数组,存放跳转到对应异常服务函数的指令
二>处理流程
产生异常:
1.拷贝CPSR到SPSR_<mode>
2.设置CPSR
- 进入ARM状态
- 改变处理器模式进入对应的异常模式
- 设置中断禁止位
3.保存返回地址到LR_<mode>
4.设置PC为相应的异常向量
返回:
1.从SPSR_<mode>恢复CPSR
2.从LR_<mode>恢复PC
"只能在ARM态执行该操作"

一>异常向量表