ARM第一部分-S5PV210启动过程详解1

 

内存:

SRAM          静态内存          特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用

DRAM          动态内存          特点是容量大、价格低,缺点是上电后不能直接使用,需要软件初始化后才可以使用

PC            内存需求大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM.

 

外存:

NorFlash:特点是容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质。

NandFlash(跟硬盘一样):特点是容量大,价格低,缺点是不能总线式访问,也就是说上电CPU直接读取,需要CPU直接读取,需要一些初始化软件,通过时序接口读写。

 

 

 

所以一般PC机都是:很小容量的BIOSNorFlash+很大容量的硬盘(类似与NandFlash+大容量的DRAM

 

一般的单片机:        很小容量的NorFlash+很小容量的SROM

 

嵌入式系统:             因为NorFlash很贵,随意现在很多嵌入式系统倾向于不用NorFlash,

直接用:外接的大容量Nand+外接大容量DRAN+Soc内置SRAM

210使用的启动方式是:外接的大容量Nand+外接大容量DRAN+Soc内置SRAM

实际上210的启动还要更好玩一些,210内置了一块96KB大小的SRAM(叫iRAM),同时还有一块内核的64KB大小的NorFlash(叫iROM.

 

实际上210的启动还要更好玩一些,210内置了一块96KB大小的SRAM(叫iRAM),同时还有一块内置的64KB大小的NorFlash(叫iROM)。210的启动过程大致是:

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

第二步:从IRAM去运行刚上一步读取来的BL1(16KB),然后执行。BL1负责初始化NandFlash,然后将BL2读取到IRAM(剩余的80KB)然后运行

第三步:从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(ARM第一部分-S5PV210启动过程详解1)