S5PV210使用的启动方式
2017年12月25日
1. S5PV210存储配置:
+内置64KB NorFlash(上电不需要初始化)(叫IROM 内部外存):用于存储预先设置的BL0;
+ SoC内置96KB SRAM(上电不需要初始化)(叫IRAM) : 用于加载,存储,运行BL1;
+外接的大容量NandFlash (硬盘,上电需要初始化) --如SD卡,iNand等,用于存储uboot
+ 外接大容量DRAM(动态内存,上电需要初始化) :被BL1初始化,并通过BL2将OS从NandFlash读取到DRAM中;
2.S5PV210内置:
一块内置的64KB大小的NorFlash(内部外存,不需要初始 化,上电可以直接使用)(叫IROM)
一块96KB大小的SRAM(静态内存,不需要初始化)(叫IRAM)。
3. 210的启动过程大致是:
第一步:CPU上电后先从内部IROM(内置的64KB大小的NorFlash)中读取预先设置的代码(BL0),执行;
————>首先做了一些基本的初始化(CPU时钟、关看门狗...)(这一段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM,因此这一段IROM是不能负责初始化外接的DRAM的,因此这一段代码只能初始化SoC内部的东西);
————>然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式);
————>然后从相应的外部存储器去读取第一部分启动代码(BL1,大小为16KB)到内部SRAM(IRAM)中。
第二步:从IRAM(SRAM)去运行刚上一步读取来的BL1(16KB),然后执行。
BL1负责初始化和DRAM相关的部分时钟、初始化DRAM、从SD等存储介质上讲BL2读取到DRAM中;
第三步:从(DRAM )运行BL2;
BL2就是指传统意义上的bootloader,也就是我们这里的uboot的主体,负责flash操作、uboot命令操作等等,并且最终目标是启动内核。
思路:因为启动代码的大小是不定的,有些公司可能96kb就够了,有些公司可能1MB都不够。所以刚才说的2步的启动方式不合适。三星的解决方案是:把启动代码分为2半(BL1和BL2),这两部分协同工作来完成启动。

http://blog.csdn.net/ooonebook/article/details/52916202
4. 再来分析uboot的SD卡启动细节
(1) uboot编译好之后有200多KB,超出了16KB。uboot的组织方式就是前面16KB为BL1,剩下的部分为BL2.
(2) uboot在烧录到SD卡时是这样的:
先截取uboot.bin的前16KB(实际脚本截取的是8KB)烧录到SD卡的 block1~bolck32;然后将整个uboot烧录到SD卡的某个扇区中(譬如49扇区)
(3) 实际uboot从SD卡启动时是这样的:
iROM先执行,根据OMpin判断出启动设备是SD卡,然后从SD卡的block1开始读取16KB(8KB)到SRAM中执行BL1,BL1执行时负责初始化DDR,并且从SD卡的49扇区开始复制整个uboot到DDR中指定位置(0x23E00000)去备用;然后BL1继续执行直到ldr pc, =main时BL1跳转到DDR上的BL2中接着执行uboot的第二阶段。
总结:uboot中的这种启动方式比上节讲的分散加载的好处在于:能够兼容各种启动方式。
S5PV210使用的启动方式的更多相关文章
- Redis的三种启动方式
转载:http://www.tuicool.com/articles/aQbQ3u Part I. 直接启动 下载 官网下载 安装 tar zxvf redis-2.8.9.tar.gz cd red ...
- spring有三种启动方式
spring有三种启动方式,使用ContextLoaderServlet,ContextLoaderListener和ContextLoaderPlugIn spring3.0及以后版本中已经删除Co ...
- android service两种启动方式
android service的启动方式有以下两种: 1.Context.startService()方式启动,生命周期如下所示,启动时,startService->onCreate()-> ...
- Redis的三种启动方式【转】
Part I. 直接启动 下载 官网下载 安装 tar zxvf redis-2.8.9.tar.gz cd redis-2.8.9 #直接make 编译 make #可使用root用户执行`make ...
- android activity的启动方式
1.Standard正常启动,默认的启动方式,没什么说头 2.SingleTop 意思就是在栈顶只能存在一个相同的activity 不能叠加,如果再A上继续启动A的话,只会调用A的onNewInten ...
- android服务之启动方式
服务有两种启动方式 通过startService方法来启动 通过bindService来开启服务 布局文件 在布局文件中我们定义了四个按键来测试这两种方式来开启服务的不同 <?xml versi ...
- Android service介绍和启动方式
1.Android service的作用: service通常是用来处理一些耗时操作,或后台执行不提供用户交互界面的操作,例如:下载.播放音乐. 2.Android service的生命周期: ser ...
- 第一章 Mybtais的两种启动方式
Mybatis的两种启动方式如下: 1.xml实现: xml的实现方式中,主要是通过手动创建SqlSession,然后调用session.selectOne()方法实现来实现. 首先是创建Config ...
- mysql 4种启动方式
mysql 4种启动方式 都是去调用mysqld文件 1. mysqld 启动 进入mysqld文件所在目录(/../libexec/mysqld) ./mysqld --defaults-file= ...
随机推荐
- ubuntu系统更换源
一:问题概述 ubuntu,我们在使用apt新装软件的时候,会使用官方的网站去下载软件,但是会因为国内的转接点太多,而导致下载的速度非常慢 ,我们可以通过换成一些中间的节点来进行下载,比如阿里源,中科 ...
- The Cave
The Cave 题目描述 给定一棵有n个节点的树,相邻两点之间的距离为1. 请找到一个点x,使其满足所有m条限制,其中第i条限制为dist(x,a[i])+dist(x,b[i])<=d[i] ...
- poj 2723 Get Luffy Out-2-sat问题
Description Ratish is a young man who always dreams of being a hero. One day his friend Luffy was ca ...
- Nodejs 基础知识 浅析
1. 模块化 ①常用模块化规范 CommonJS + nodejs AMD(Asynchronous Module Definition) + RequireJS CMD(Common Module ...
- jquerydom对象和字符串之间的转换
字符串转jquery对象:var tmp = $('<div>dd</div>').attr('id','bbq'); //用$符包裹起来即可 jquery对象转字符串: tm ...
- FIRST SCRAPY PRJ
zpc@Lenovo-PC:/prj/pyscrapy/a$ scrapy startproject helloword New Scrapy project 'helloword' created ...
- (九)ubuntu解决resolv.conf被重写问题
解决resolv.conf被重写问题 来源:http://www.cnblogs.com/lanxuezaipiao/p/3613497.html 第二步中你虽然配置了DNS,但是每次重启虚拟机或重启 ...
- Unicode 和 ANSI
Project Properties -> General-> Character set,里面显示了是不是unicode. Unicode处理String的方式不一样,一定要注意!! ...
- jQuery中的each关键词
#转载请留言联系 从一个简单的例子引入,jQuery里的each有什么作用? <!DOCTYPE html> <html lang="en"> <he ...
- java模拟生日发祝福
1.新建customer表生日都选为当天 所需jar包 2.使用c3p0连接到数据的xml配置文件 3.连接数据库的工具类 package com.cc.birthday; import java.s ...