内存/外存及S5PV210启动方式

1 内存与外存

 内存是RAM : 如DRAM、SRAM、DDR等,内存的特点是CPU通过地址总线和数据总线来访问。
 外存是ROM : 如FLASH(NOR FLASH、NAND FLASH)、硬盘等

2 常用外存

2.1 NOR FLASH
 像内存一样,可以总线随机访问。成本较高,但是稳定性也高,不易坏。
2.2 NANDFLASH
 不提供地址总线式的访问,要在外部加主控和电路设计才能进行读写访问,且必须以区块的方式读写,不能随机访问。关键是容易出现坏块和位翻转等问题,所以需要进行ECC校验等管理手段。NANDFLASH用的多的主要原因是:便宜。
 
NANDFLASH从工艺上分为SLC、MLC、TLC

  • SLC = Single-Level Cell ,即1bit/cell,速度快寿命长,价格超贵(约MLC
    3倍以上的价格),约10万次擦写寿命
  • MLC = Multi-Level Cell,即2bit/cell,速度一般寿命一般,价格一般,约3000—10000次擦写寿命
  • TLC = Trinary-Level
    Cell,即3bit/cell,速度慢寿命短,价格便宜,约500次擦写寿命,目前还没有厂家能做到1000次。性能较前面两种较差!

NANDFLASH具体的应用有以下几种:

  1. eMMC(iNAND、MoviNAND)
    eMMC是指满足MMC协议的芯片,eMMC=NANDFLASH+控制器+标准封装接口。而iNAND和MoviNAND则是两个公司生产的eMMC。前者是SanDisk公司的,MoviNAND是三星的,但是前者更便宜所以用的更多。
    eMMC中的e代表的就是embeded。
  2. SD卡、TF卡、MMC卡
    eMMC是闪存芯片,而这几个是卡片。这三个之间大同小异。
  3. eSSD
    属于SSD固态硬盘的嵌入式MLC的NandFlash。

2.3 ONENAND
OneNand既实现NOR Flash的高速读取速度,又保留了Nand Flash的大容量数据存储的优点。但是由于所使用的接口线太多了,所以未广泛使用。

3 内外存总结

内存:
 SRAM:可以直接上电使用;贵!
 DRAM:上电后需要初始化才能使用;便宜
外存:
 NorFlash:CPU可以直接总线访问,不需要初始化;贵!
 NandFlash:需要初始化以后才能访问;便宜。
 
4 启动过程

 无论是单片机还是PC机或是ARM设备,程序下载存储在外存(Flash)中的,如果CPU要开始执行程序,就需要把外存中的程序复制到内存(RAM)中。这就是启动过程的核心目的。
 对于单片机:使用SRAM+NorFlash的组合。都是不需要初始化就可以直接使用的,由于程序不大,所以直接用SRAM和NorFlash就可以(贵点就贵点吧)
 对于PC:由于所需要的内存和外存都很多,所以采用DRAM (即内存条)+NandFlash(即硬盘),这两者都是需要初始化才能使用的,所以PC中都有一块BIOS,它是一块NorFlash,BIOS中的固件程序完成内存条和硬盘的初始化,并将操作系统从硬盘加载到内存中,以此完成启动过程。
 对于嵌入式ARM:所需要的内存和外存也是较多的,所以采用的是外部DRAM + eMMC(NandFlash),这两者是需要初始化才能使用的。但是与PC不同的是,嵌入式采用的是一种更加省钱的方式来启动:ARM芯片内部有一个内置SRAM(即iRAM),将eMMC中的初始化程序(bootloader)映射到SRAM中执行来完成启动。具体的启动过程如下所示。
 

这里写图片描述

从上图可可以看出,启动过程分成了5步,依次是:

  1. 上电以后,CPU被设定首先执行iROM中的程序(即BL0),BL0的作用是:关看门口、设置系统时钟、使能堆栈、检查启动方式等。
  2. iROM使用设备复制函数(Device Copy Function)将BL1从外存(如iNAND或SD卡等)复制到SRAM中,并跳到BL1的起始地址出开始执行。BL1的大小为16K。
  3. BL1将剩下的bootloader即BL2从外存加载到iRAM中。BL2为80K。
  4. BL2开始执行,初始化DRAM控制器并将OS从外存加载到DRAM中。
  5. OS开始执行,启动过程结束。

启动过程的详细流程图可以从文档中查到,在此不再赘述。在启动过程中有两点需要特别说明的地方:

  1. 启动过程的第一步讲到,iROM的功能之一是检查启动方式。S5PV210支持多种启动方式,如SD/MMC、eMMC、OneNand、Norflash、eSSD以及UART/USB,通过OM[5:0]引脚来设置启动方式是哪种。
    下图左侧对应的是OM[5:0]引脚的取值,右侧部分则是不同取值时对应的启动方式。
    这里写图片描述

  2. S5PV210首次启动,如果校验出现错误,则会从SD的通道2启动,如果又出现错误的话,启动即失败。

  3. 上面讲述的启动过程实际上是可能有变化的,因为一般的bootloader编译完以后都超过200M,而iRAM只有96M放不下的,所以实际中会将BL1加载到iRAM,BL1初始化DRAM,并将BL2加载到DRAM中执行,然后BL2加载OS到DRAM。

Note:
0x1000_0000 : 256M
0x2000_0000 : 512M
规律:0x后面的第一位*256M = 代表的内存空间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值