Chinaunix首页 | 论坛 | 博客
  • 博客访问: 830864
  • 博文数量: 281
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2770
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-02 19:45
个人简介

邮箱:zhuimengcanyang@163.com 痴爱嵌入式技术的蜗牛

文章分类
文章存档

2020年(1)

2018年(1)

2017年(56)

2016年(72)

2015年(151)

分类: 嵌入式

2017-01-05 11:29:06

内存:
    SRAM    静态内存    特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用
    DRAM    动态内存    特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。
    
单片机中:  内存需求量小,而且希望开发尽量简单,适合全部用SRAM
嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质
PC机:        内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM

外存:
    NorFlash:特点是容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质。
    NandFlash(跟硬盘一样):特点是容量大,价格低,缺点是不能总线式访问,也就是说不能上电CPU直接读取,
        需要CPU先运行一些初始化软件,然后通过时序接口读写。

区别:
所以一般PC机都是:很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量的DRAM
一般的单片机:    很小容量的NorFlash + 很小容量的SRAM
嵌入式系统:      因为NorFlash很贵,随意现在很多嵌入式系统倾向于不用NorFlash,
                  直接用:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM

            
S5PV210使用的启动方式是:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM

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

第一步:
    CPU上电后先从内部IROM中读取预先设置的代码(BL0)执行。这一段IROM代码首先做了一些基本的初始化
    (CPU时钟、关看门狗···)(这一段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM,
    因此这一段IROM是不能负责初始化外接的DRAM的,因此这一段代码只能初始化SoC内部的东西);
    
    然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式),然后从相应的外部存储器
    去读取第一部分启动代码(BL1,大小为16KB)到内部SRAM(也就是IRAM)。
    
第二步:
    从IRAM去运行刚上一步读取来的BL1(16KB),然后执行。BL1负责初始化NandFlash,然后将BL2读取到IRAM
    (剩余的80KB)然后运行。
    [注释:这里说明中关于Nandflash的初始化,是不是在第一步就执行了呢?因为第一步操作也需要从nandflash
    中读取BL1到IRAM中。有待考证....]
    
第三步:
    从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束。

思路:因为启动代码的大小是不定的,有些公司可能96kb就够了,有些公司可能1MB都不够。所以刚才说的2步的启动方式不合适。
三星的解决方案是:把启动代码分为2半(BL1和BL2),这两部分协同工作来完成启动。



阅读(963) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~