1.2.1:讲解了程序是如何演化的并一步一步演化到今天的多种语言的,从01纸条打孔,到汇编指令替代二进制,到C语言,再到如今的java,python,c++,其语言效率递减,但编程复杂度降低,可合作性移植性提高
1.2.2 &1.2.3:RISC精简指令集,CISC复杂指令集,复杂指令集的硬件复杂,因为要通过硬件开发实现大部分的功能,而程序员只需对流出的指令惊醒变成即可,逻辑部分少于精简指令,而RISC的指令集可能只有二十几条,其余的可能都要通过程序实现,灵活度更高,功耗更低
1.2.4统一编址 独立编址 统一编址指的是内存与IO的地址,由于有些是是使用CPU特定指令访问外设,故称之为独立编址,内存通过CPU的数据总线进行寻址定位ARM的特殊功能寄存器,例如gpio寄存器地址,通过统一编址使得我们可以使用地址操作各个外设寄存器, CPU挂载的内存也打不到最大地址的大小,因为还有一些其他寄存器占用总线地址
哈佛结构与冯诺依曼结构的区别在于数据的存储方式,哈佛结构的代码与数据是分开存储的,程序存在Flash或ROM中,数据存储一般都在RAM中,而冯诺依曼结构则不进行区分,代码与数据都在内存中
1.2.5 1.2.6一个cpu主要由寄存器,控制器,三种总线构成,寄存器也包括两种,通用寄存器和特殊功能寄存器,ARM特性
1.2.7 主要讲解S5PV210的内存结构,IROM,IRAM的地址,具体观察数据手册可得
1.2.8-11 此节为下节做基础知识铺垫,DRAM,NandFLASH,这类的容量较大价格较低的存储器需要先初始化才能使用,所以根据用途的不同分成了三种情况,
单片机需要内存量小,所以全部使用SRAM,SRAM的特性是上电即可使用,所以用于启动的程序出厂就被固化到SRAM中,而不需要写boot启动
PC机使用内存量大,所以全部使用DRAM,通过集成到总线上的Nor Flash里的程序引导cpu,并初始化DRAM,然后DRAM可以初始化外存
嵌入式系统需要内存量大,因此通过cpu通过片上norflash先加载BL0到SRAM上,然后在BL0阶段通过硬件选择的方式初始化响应的nandflash(统称),通过nandflash中的boot并加载BL1段,BL2段会进行初始化DRAM,分段的主要原因是SRAM大小有限,而设计人员并没法预测开发者的boot会占多大
BL0,BL1,BL2的启动流程,待机
1.2.12-13 spsr用于保存cpsr lr(r14)保存pc寄存器
ARM指令(32位) Thump1指令 16位 Thump2指令16+32位 即ARM+Thump指令,这正是目前ARM使用的方式
ARM的模式分为两种模式,普通模式和特权模式(privilege)特权模式除系统模式外都属于异常模式
ARM的37个通用寄存器,r0-r14 cpsr 16个+spsr+r15(pc)+ 影子寄存器(banked register)19个
User模式占17个,r0-r15,cpsr,
FIQ模式占r8-r14 spsr 8个
IRQ模式占r13(sp)-r14(lr)spsr 3个
Abort/SVC/Undef 同上也是每个占3个
System模式与User模式相同