S5PV210的启动过程

内存和外存

内存

SRAM(静态内存):容量小,价格高,优点是不需要软件初始化直接上电就能用
DRAM(动态内存):容量大,价格低,缺点是需要软件初始化,上电后不能直接使用

单片机中: 内存需求量小,而且希望开发尽量简单,适合全部用SRAM
PC机: 内存需求量大,不在乎DRAM的初始化开销,适合全部用DRAM

外存

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

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

总结

所以一般PC机都是:小容量的BIOS(NorFlash)+大容量的硬盘(类似于NandFlash)+大容量的DRMA

一般的单片机:很小容量的NorFlas+很小容量的SRAM

嵌入式系统:因为NorFlash很贵,所以现在很多嵌入式系统倾向于不用NorFlash,直接用外接的NandFlash + 外接的DRAM + SoC内置SRAM

S5PV210使用的启动方式是:外接的NandFlash + 外接的DRAM + SoC内置SRAM
实际上210的启动还有更好玩一些,210内置了一块96KB大小的SRAM(叫iRAM),同时还有一块内置64KB大小的NorFlash(叫iROM)

210的启动过程

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

思路:因为启动代码的大小是不固定的,所以刚才说的2步的启动方式不合适。三星的解决方案是:把启动代码分为2半(BL1和BL2),这两个部分协同工作完成启动

第二步:从SRAM去运行刚上一步读取来的启动代码,然后执行。这一段启动代码就会负责初始化Nand,初始化DRAM,初始化板卡,然后将OS从Nand读取到RAM,然后运行;BL1负责初始化NANDFlash,然后将BL2读取的IRMA然后运行。

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

BL0做了什么?

1、关闭看门狗
2、初始话指令cache
3、初始化栈
4、初始化堆
5、初始化块设备复制函数deviece copy function
6、设置SoC时钟系统
7、复制BL1到IRAM
8、检查BL1的校验和
9、跳转到BL1去执行

S5PV210的所有启动

1、先1st启动,通过OMpin选择启动介质
2、再2st启动,从SD2
3、再Uart启动
4、再USB启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值