S5PV210的启动过程

一、内存与外存

1、内存:(内存就是一块电路)

1.1、SRAM  静态内存

       优点:不需要软件初始化直接上电就能用    

       缺点:容量小、价格高

1.2、DRAM 动态内存(平时所说的内存条)

       优点:容量大,价格低

       缺点:上电后不能直接使用,需要软件初始化之后才可以使用

1.3、应用:

(1)单片机中:内存需求量小,而且希望开发尽量简单,适合全部用SRAM。

(2)嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质。

(3)PC机中:内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部使用DRAM.

2、外存

2.1、NorFlash

       缺点:容量小,价格高

       优点:可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质。

2.2、NandFlash(与硬盘一样)

       优点:容量大,价格低

       缺点:不能总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。

2.3、应用

       (1)一般PC机:很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash) +  大容量的DRAM(动态内存)。

先给CPU上电后直接读取BIOS中的启动硬盘代码和启动内存(DRAM)代码,然后才启动硬盘,读取硬盘中的代码。

       (2)一般的单片机:很小容量的NorFlash + 很小容量的SRAM

       (3)嵌入式系统:因为NorFlash很贵,所以现在很大嵌入式系统倾向于不用NorFlash,直接使用:外接的大容量Nand + 外接的大容量DRAM + SoC内置的SRAM。

       (4)S5PV210使用的启动方式是:外接的大容量的Nand + 外接大容量DRAM + SoC内置SRAM。210内置了一块96KB大小的SRAM(叫iRAM),同时还有一块内置的64KB的NorFlash(叫iROM)。

二、S5PV210的启动过程是 :

1、资料显示

①iROM可以做初始启动:初始化系统时钟,设备特定的控制器和启动设备。

②iROM引导代码可以加载引导载入SRAM。引导加载程序称为BL1。然后在安全引导模式下,iROM验证BL1的完整性。

③BL1将执行,BL1引导代码可以加载引导载入SRAM,引导加载程序称为BL2,然后在安全引导模式下验证BL2的完整性。

④BL2将执行,BL2 控制DRAM控制器初始化,加载操作系统数据更快。

⑤最后,跳转到操作系统的起始地址。这将为系统的使用创造良好的环境。

2、 S5PV210的启动过程

       第一步:首先,CPU上电后先从内部IROM(NorFlash)中读取预先设置的代码(BL0),执行。这一段IROM代码做了一些基本的初始化(CPU时钟、关看门狗···),这一段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM,因此这一段代码是不能负责初始化外接的DRAM的,只能初始化SoC内置的东西。这一段代码(BL0)会判断我们选择的启动模式(我们通过硬件的跳线(即拨码开关)可以选择不同的启动方式),然后从相应的外部存储器中读取第一部分启动代码(BL1,大小为16K)到内置SRAM中。

      第二步:从内置SRAM中去运行刚才上一步读取来的启动代码(BL1,16KB),然后执行,代码BL1负责初始化NandFlash,然后将代码BL2读取到SRAM中(剩余的80KB)。

       第三步:从内置SRAM中运行刚才读取到的BL2(80KB),BL2负责初始化DRAM,然后将OS(操作系统)从外部存储器读取到DRAM,然后运行OS(操作系统),启动过程结束。

2.1  S5PV210的所有启动

    1. 先1st启动,通过OMpin选择启动介质
    2. 再2nd启动,从SD2
    3. 再Uart启动(串口启动)
    4. 再USB启动

2.2 iROM(BL0)启动顺序(参见2.3 V210启动图)

1、关看门狗定时器

2、初始化指令缓存

3、初始化栈区域(参见第2.5章的“内存映射”)

4、初始化堆区域。(参阅第2.5章“记忆地图”)

1—4一般都是用汇编语言写的。后边才能用C语言写。

5、初始化块设备复制函数。(参阅《装置复制功能》第2.7章)

6、设置系统时钟。(参阅第2.11章的“时钟配置”)

7、将BL1复制到内部SRAM区域(参见第2.7章的“设备复制功能”)

8、验证BL1的校验和。如果校验失败,iROM将尝试第二次启动。(SD / MMC通道2)

9、检查它是否是安全引导模式。

如果安全键值是用S5PV210编写的,那么它就是安全引导模式。

如果是安全引导模式,请验证BL1的完整性。

10、跳转到BL1的开始地址

2.3、 V210引导图

2.4、第1次启动失败时的第2次启动顺序

2.5、SoC通过OMpin来识别外部启动介质

2.6、开发板上的拨码开关

2.7、体验从SD0的eMMC启动

开发板收到默认就是从eMMC启动,内部预先烧录了android。

 

101100


2.8、从SD2启动

  • 可以使用外置SD卡从SD2通道启动,但这需要先破坏板载的eMMC中的android镜像。破坏方法见九鼎官方的裸机教程文档《x210v3开发板裸机教程.pdf》中2.5.2节(P19)
  • OMpin设置和SD0启动一样

2.9、USB调试模式

2.10、总结

  • 拨码开关设置我们只需动OM5即可,其他几个根本不需要碰。需要SD启动时OM5打到GND,需要USB启动时OM5打到VCC
  • 可以先不销毁eMMC中的android,而使用USB启动来做裸机调试。之后课程中我们会使用USB启动和SD卡启动两种方式共同来完成实验,让大家对比学习。

猜你喜欢

转载自blog.csdn.net/m0_37884601/article/details/81557942