S5PV210 启动过程详解
一、常见的内存与外存的分类
内存
内部存储器 : 用来运行程序的 RAM , 举例(DRAM SRAM DDR)
外存
外部存储器 : 用来存储东西的 ROM ,举例(硬盘、 Flash(Nand iNand···· U盘、SSD)、 光盘)
CPU 与内存外存的连接
CPU 连接内存和外存的连接方式不同。
内存需要直接地址访问,所以是通过地址总线&数据总线的总线式访问方式连接的(好处是直接访问,随机访问;坏处 是占用CPU的地址空间,大小受限);
外存是通过CPU的外存接口来连接的(好处是不占用CPU的地址空间,坏处是访问速度没有总线式快,访问时序较复杂)
SoC 常用的外存(存放boot-loader 和OS)
1、NorFlash
总线式访问,接到SROM bank,优点是可以直接总线访问,一般用来启动。
2、NandFlash:(分为SLC和MLC)
3、eMMC(相当于 NandFlash+主控IC )
iNand是SanDisk公司出产的eMMC
moviNand是三星公司出产的eMMC
4、oneNAND
oneNand是三星公司出的一种Nand
5、SD卡/TF卡/MMC卡
6、eSSD
7、SATA硬盘
机械式访问、磁存储原理、SATA是接口
二、PC、单片机、 嵌入式系统中内存与外存的特点
内存:
SRAM 静态内存
特点:容量小、价格高
优点:不需要软件初始化直接上电就能用
DRAM 动态内存
特点:容量大、价格低,
缺点就是上电后不能直接使用,需要软件初始化后才可以使用。
SDRAM 同步动态随机存储器
英文全称是’Synchronous DRAM’,翻译成中文就是“同步动态随机存储器”,它比一般DRAM速度快,它已经逐渐成为PC机的标准内存配置。 (SDRAM:同步动态随机访问存储器 SDRAM的发展已经经历了五代:分别是SDR SDRAM、 DDR SDRAM、 DDR2 SDRAM、 DDR3 SDRAM、 DDR4 SDRAM。)
单片机:
内存需求量小,而且希望开发尽量简单,适合全部用SRAM
嵌入式系统:
内存需求量大,而且没有NorFlash等可启动介质
PC机:
内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM
外存:
NorFlash:
特点是容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质(2440)。
NandFlash(跟硬盘一样):
特点是容量大,价格低,缺点是不能总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。
所以一般
PC机:
很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量SDRAM
单片机:
很小容量的NorFlash + 很小容量的SRAM
嵌入式系统:
因为NorFlash很贵,所以现在很多嵌入式系统倾向于不用NorFlash,直接用 :外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM
例如 S5PV210核心板使用的启动方式:
外接的大容量Nand + 外接大容量DDR2(SDRAM )+ SoC内置SRAM(iRAM)+ SoC内置ROM(iROM)
实际上,210的启动还要更好玩一些,210内置了一块96KB大小的SRAM(叫iRAM),同时还有一块内置的64KB大小的NorFlash(叫iROM)。如下图所示:
三、S5PV210的启动过程:
有以上的铺垫,我们再来看一下S5PV210 的启动过程
这是三星官方数据手册的截图
图1所示为 整体启动图解
BL1/BL2:它可以从启动设备复制可变大小的启动代码到内部SRAM区域。
BL1 最大为16 KB,BL2最大为80 KB
第一步:iROM可以做初始启动:初始化系统时钟,设备特定控制器和启动设备(Booting Device)也就是核心板上4G的iNAND(eMMC)。然后这一段代码会判断我们选择的启动介质(我们通过硬件跳线(0Ω电阻)可以更改板子的启动介质核心板上使用的iNAND)。
第二步:iROM引导代码(boot code)可以将相应的外部存储器(iNAND) 中的引导加载程序(boot-loader)加载到SRAM(IRAM)。引导加载程序(boot-loader)称为BL1,然后iROM验证BL1在安全引导模式下的完整性。
第三步:执行BL1: BL1将加载SRAM上剩余的名为BL2的引导加载程序(boot-loader),然后BL1验证BL2在安全引导模式下的完整性。
第四步:执行BL2: BL2初始化DRAM控制器(核心板上的DDR2),然后将iNAND中的操作系统等数据加载到SDRAM。
四、核心板上的配置
说了这么多,最后再来看一下核心板的配置,说实话,我第一次看到核心板上的一块块排布规整的高大上的黑色芯片的时候是敬佩和感叹的,然后就剩下一脸懵逼了。
说了这么多,回头再来看一下这些SoC就能和前面讲的对应起来了,还是有点小激动的。
直接上图
然后就是一些厂家的配置信息
可以看到核心板上用了四片SDRAM,每片的大小为256MB,一共4片,1GB,这也就是我们前面说的内存,运行程序的地方。
然后是一片4GB大小的iNAND(eMMC),BL1 BL2 OS就在其中。
注:以上内容参考了 朱有鹏老师的PPT和文档
还有这位博主的文章 :链接: link.
本人初学嵌入式Linux,内容如有错误,欢迎指出评论交流,谢谢支持