文档章节

嵌入式开发手记(一)嵌入式系统启动过程 (S5pv210)

 每天在改变
发布于 2016/12/21 19:46
字数 762
阅读 47
收藏 0

                           S5pv210启动详解

 soc详解。

 

1.cortex A8: arm(cpu)

2.BL1,BL2:为bootloder1,bootloder

  2.1

    (1)CPU上电后先从内部IROM(类似SRAM)中读取预先设置的代码(BL0),执行。这一段IROM代码首先做了一些基本的初始化(CPU时钟、关看门狗···)(这一段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM,因此这一段IROM是不能负责初始化外接的DRAM的,因此这一段代码只能初始化SoC内部的东西);

注:然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式),

(2)然后从相应的外部存储器去读取第一部分启动代码(BL1,大小为16KB)到内部SRAM。

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

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

 

注:因为启动代码的大小是不定的,有些公司可能96kb就够了,有些公司可能1MB都不够。所以刚才说的2步的启动方式不合适。

三星的解决方案是:把启动代码分为2半(BL1和BL2),这两部分协同工作来完成启动。

 

内存知识点

 

 

内存:

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

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

 

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

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

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

 

外存:

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

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

 

所以

(1)一般PC机都是:很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量的DRAM

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

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

直接用:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 9
码字总数 13757
作品 0
淮安
私信 提问
新手必看,学习Linux重要八招

嵌入式Linux系统开发学习步骤,深圳嵌入式Linux培训高薪一路相伴  最近在嵌入式论坛上经常遇到一些嵌入式linux初学者在询问:嵌入式Linux如何入门?嵌入式Linux开发都需要学习什么?等等。其...

educn114
2014/05/28
0
0
日常生活 -- 专业能力和项目经验

最近要开始为找工作做准备了,第一件事就是写简历。而其中的专业技能和项目经验是值得考虑的部分。 CSDN博客写了两年,原创博文也有270多篇。现在根据专业技能部分和项目经验部分,将其总结一...

qq_29350001
01/06
0
0
嵌入式之S5PV210地址映射详解与外部存储器的接口

一:地址映射详解 哈哈 注意不是内存映射 而是地址映射 大家都知道 S5PV210芯片是基于arm 的cortex-A8架构的 32位的cpu 拥有32位的地址总线和32位的数据总线 因为有32位的地址总线 那么表示的...

zw1996
03/16
0
0
日常生活 -- 专业能力和项目经验

最近要开始为找工作做准备了,第一件事就是写简历。而其中的专业技能和项目经验是值得考虑的部分。 CSDN博客写了两年,原创博文也有270多篇。现在根据专业技能部分和项目经验部分,将其总结一...

qq_29350001
2017/12/04
0
0
新手学习嵌入式开发的几个步骤

对于很多的嵌入式新手来说,嵌入式学习过程中如果能得到前辈们的一些指点是再幸运不过的事了。例如包括:嵌入式开发如何入门?如何一步步学习?包括每个阶段学习中需要重点学习的环节等等。接...

mcu2011
2013/08/29
28
0

没有更多内容

加载失败,请刷新页面

加载更多

从源码入手,一文带你读懂Spring AOP面向切面编程

之前《零基础带你看Spring源码——IOC控制反转》详细讲了Spring容器的初始化和加载的原理,后面《你真的完全了解Java动态代理吗?看这篇就够了》介绍了下JDK的动态代理。 基于这两者的实现上...

公众号_Zack说码
8分钟前
1
0
maven 常用命令

mvn deploy -Dmaven.test.skip=true mvn source:jar deploy -Dmaven.test.skip=true mvn dependency:tree -Doutput=1.txt...

yzzzzzzzz
9分钟前
0
0
JavaScript之Promise对象

Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 Promise 对象。 Pr...

前端攻城老湿
10分钟前
0
0
mysql事务,select for update,及数据的一致性处理

在MySQL的InnoDB中,预设的Tansaction isolation level 为REPEATABLE READ(可重读) 在select 的读取锁主要分为两种方式 select .... lock in share mode select ..... for update   这两...

细节探索者
12分钟前
0
0
python 将txt文件转换成excel

emmm,作为一个小白,不会的东西真的太多了,这两天好头大啊!加油坚持吧! #file_affilication = open('Affiliations.txt','r')import xlwtimport os import sysdef txt_xls(...

BellaYu
17分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部