1. 计算机基础理论
1.1 计算机的组成
输入设备:将数据转换成计算机可以识别,存储,处理的形式,发送到计算机中
输出设备:将计算机对程序和数据的运算结果输送到外部的设备
存储器:用于将数据保存的模块。
有寄存器,存在于CPU内部,用于暂时存放数据。CPU访问没有延时。
高速缓存
内存
外部存储
运算器:运算器由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和 状态条件寄存器组成,它是数据加工处理部件,完成计算机的各种算术和逻辑运算。
控制器:控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成。 它是计算机指挥系统,完成计算机的指挥工作,也是计算机实现“程序存储控制”的基础
2.指令和指令集
机器指令:机器指令是处理器能够识别的计算机指令,当处理器获取到一个机器指令,就可以让机器实现某一个特定的运算
汇编指令:每一个汇编指令都是一条机器指令的标识,当一条汇编指令被执行时,也可以让机器实现某一个特定的运算
指令集:汇编指令的集合
3.编译的基本原理
编译过程:
预处理:展开以“#”开头的文件展开
编译:检查语法错误,没有错误会将程序编译为汇编文件 s
汇编:将汇编文件编译为二进制文件
链接:将文件中调用的函数的库信息链接到当前文件里,生产一个可执行的二进制文件
4.精简指令集和复杂指令集
基于精简指令集(RISC)设计cpu核心时,选取一些使用最为频繁比较简单的指令组成指令集,对于精简指令集来说具备以下特性:
1.精简指令集每一天指令的执行周期固定,基本都是单周期指令
2.精简指令集每一条指令的长度也是固定的
复杂指令集(CISC)追求核心功能的完善性,将实现所以计算的各个指令都放在一起组成指令集 复杂指令集有以下特征:
1.指令的执行周期不固定
2.指令的长度不固定
基于复杂指令集生产的芯片在功耗、体积、成本方面都要高于精简指令集芯, 但是复杂指令集芯片性能比精简指令集更强。
2. ARM的相关理论
2.1 ARM架构
不同的ARM精简指令集组成不同的ARM架构
2.2 ARM内核
基于不同的ARM架构设计出的不同的CPU核心就是ARM内核
2.3 SOC(system on chip)
将系统关键部件集成到一块芯片上
2.4 ARM的工作模式
2.5 ARM处理器的寄存器组织
2.6 ARM处理器中的一些特殊功能寄存器
R15寄存器又被称为(PC:program counter)程序计数器。
PC寄存器保存即将被从内存中取出来的指令的地址
当PC保存的指令地址被处理器发送给内存之后PC的值会自动向下加一条指令的大小, 这也是程序可以继续向下顺序执行的原因
R14又被称为(LR:link register)链接寄存器 LR寄存器的作用是当执行指令时进行程序跳转时,LR会保存跳转指令下一条指令的地址,方便程序返回
R13寄存器又被称为(SP:stack pointer)栈指针寄存器 SP寄存器保存栈内存栈顶的地址,对一些临时数据进行压栈出栈操作时需要使用SP的值来找到栈区位置
CPSR寄存器又叫(current program status register)当前程序状态寄存器
这个寄存器的作用是保存当前程序的工作状态
工作状态中包含程序的工作模式、中断禁止位以及程序的运算结果条件位等信息
SPSR寄存器又叫(saved program status register)被保存的程序状态寄存器
这个寄存器当处理器因为各种异常切换到异常模式工作时会将CPSR值提前保存到SPSR中,处理器处理完异常之后会将SPSR的值 赋值给CPSR,用于恢复处理器的工作状态