7.1.启动涉及的内存和外存
(1)内存:SRAM即静态内存,缺点是容量小、价格高,一般是几十K或几百K;优点是不需要软件初始化直接上电就能使用。DRAM即动态内存,优点是容量大、价格低;缺点是上电后不能直接使用,需要软件初始化后才可以使用。
(2)单片机:内存需求量小,而且希望开发尽量简单,适合全部使用SRAM;嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质;PC机:内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM。
(3)外存:NorFlash的缺点是容量小、价格高;优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般做启动介质。NandFlash的优点是容量大、价格低;缺点是不能总线式访问,即不能一上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。
(4)PC机:很小容量的BIOS(NorFlash)+很大容量的硬盘(类似于NandFlash)+大容量的DRAM;单片机:很小容量的NorFlash+很小容量的SRAM;嵌入式系统:因为NorFlash很贵,现在的嵌入式系统倾向于不用NorFlash而是使用:外接大容量的Nand+外接大容量的DRAM+SoC内置SRAM。
7.2.S5PV210启动方式
(1)210内置了96KB大小的SRAM(叫iRAM)和64KB大小的NorFlash(叫iROM)。
(2)第1步:CPU上电后先从内部IROM中读取预先设置的代码(BL0)到IRAM中执行。该段IROM代码首先执行基本的初始化(CPU时钟、关看门狗、初始化块设备拷贝函数…)(该段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM和NanFlash,因此该段IROM代码不能负责初始化外接的DRAM和NandFlash的,则该段IROM代码只能初始化SoC内部的东西);然后该段代码会判断我们选择的启动模式(我们通过硬件跳线可更改板子的启动模式),然后从相应的外部存储器去读取第1部分启动代码(BL1,大小为16KB)到IRAM。
(3)第2步:从IRAM中去运行读取来的BL1(16KB),BL1负责初始化NandFlash,然后将BL2(剩