1.2.1.可编程器件的编程原理
电子器件的发展方向
ASIC -> 可编程器件
可编程器件的特点
CPU可以通过总线读取外部存储设备中的二进制指令集,然后解码执行。
这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU的设计者(ARM公司)定义的,本质上是一串由1和0组成的数字。这就是CPU的汇编指令集。
整个编程及运行过程
如果程序员用C语言等高级语言编程,则编译器先将C语言程序编译为汇编程序,再进行上面的后续部分。
从源代码到CPU执行过程
1.2.2.指令集对CPU的意义
1.2.3.RISC和CISC的区别
1.2.4.统一编址&独立编址&哈佛结构&冯诺依曼结构
1.2.5.软件编程控制硬件的关键-寄存器
寄存器的演示
两类寄存器
3、SFR(special function register,特殊功能寄存器)不在CPU中,而存在于CPU的外设中,我们通过访问外设的SFR来编程操控这个外设,这就是硬件编程控制的方法。
编程访问寄存器的方法
ldr r1, =0xE0200280 #把0xE0200280放到r1这个寄存器中
str r0, [r1] #把r0中的数放到以r1这个数为地址的内存中去
mov r0, #0 #把0这个数字放到r0这个寄存器中
int *p = (int *)0x30008000;
*p = 16;
1.2.6.ARM体系结构要点总结
1.2.7.S5PV210的内存映射详解
什么是内存映射
1、S5PV210属于ARM Cortex-A8架构,32位CPU,CPU设计时就有32根地址线&32根数据线。2、32根地址线决定了CPU的地址空间为4G,那么这4G空间如何分配使用?这个问题就是内存映射问题(好像准确点应该叫地址映射吧,我懒的改标题了,大家注意这个小坑)。
S5PV210 datasheet中内存映射位置
一些专业术语
RAM:ramdom access memory 随机访问存储器
IROM:internal rom 内部ROM,指的是集成到SoC内部的ROM
IRAM:internal ram 内部RAM,指的是集成到SoC内部的RAM
DRAM:dynamic ram 动态RAM
SRAM:static ram 静态RAM
ONENAND/NAND:
SFR:special function register
1.2.8.CPU和外部存储器的接口
内存 内部存储器 用来运行程序的 RAM 举例(DRAM SRAM DDR)
外存 外部存储器 用来存储东西的 ROM 举例(硬盘 Flash(Nand iNand···· U盘、SSD) 光盘)
CPU连接内存和外存的连接方式不同。内存需要直接地址访问,所以是通过地址总线&数据总线的总线式访问方式连接的(好处是直接访问,随机访问;坏处是占用CPU的地址空间,大小受限);外存是通过CPU的外存接口来连接的(好处是不占用CPU的地址空间,坏处是访问速度没有总线式快,访问时序较复杂)
SoC常用外存:
NorFlash 总线式访问,接到SROM bank,优点是可以直接总线访问,一般用来启动。
NandFlash: 分为SLC和MLC
eMMC/iNand/moviNand eMMC(embeded MMC)iNand是SanDisk公司出产的eMMC,moviNand是三星公司出产的eMMC
oneNAND oneNand是三星公司出的一种Nand
SD卡/TF卡/MMC卡
eSSD
SATA硬盘(机械式访问、磁存储原理、SATA是接口)
外部总线接口(EBI)被用作S5PV210外围。它依赖于内存控制器释放 外部请求外部总线空闲内存控制器时,因为它没有当内存的知识 访问将开始或完成。它使一个SROM控制器、一个OneNAND控制器和一个快闪记忆体 控制器、分享外部内存总线、内存端口0。
S5PV210支持的外部存储器
见datasheet Section5全部,memory
见datasheet Section8.7 SD/MMC部分
X210开发板支持的外部存储器
S5PV210共支持4个SD/MMC通道,其中 通道0和2依次用作启动。X210开发板中 SD/MMC0通道用于连接板载MMC,因此外部启动时只能使用SD/MMC2通道(注意 通道3不能启动)。见《S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf》中P6
1.2.9.S5PV210的启动过程详解1
内存:
SRAM 静态内存 特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用
DRAM 动态内存 特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。
单片机中:内存需求量小,而且希望开发尽量简单,适合全部用SRAM
嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质
PC机: 内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM
外存:
NorFlash:特点是容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质。
NandFlash(跟硬盘一样):特点是容量大,价格低,缺点是不能总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。
所以一般PC机都是:很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量的DRAM
一般的单片机: 很小容量的NorFlash + 很小容量的SRAM
嵌入式系统:因为NorFlash很贵,随意现在很多嵌入式系统倾向于不用NorFlash,
直接用:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM
S5PV210使用的启动方式是:外接的大容量Nand + 外接大容量