赞
踩
驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗。
------------------------------------------------------------黄金分界线----------------------------------------------------------------------------------------
ram和rom:
rom:制作是写入
prom:可写一次
eprom/eeprom:可写多次
flash rom:闪存(Flash Memory) 非易失闪存技术:NOR flash、NAND flash
实际应用:
RAM:
RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使
用,譬如CPU的一级缓冲cache。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,
但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。
ROM:
手机的ROM和传统的ROM(Read Only Memory)又有些不一样,它分为两部分,一部分是用于系统,另外一部分是用作用户存储数据。而存储卡则很好理解了
,常用的有tf卡,用于存储用户数据。
在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储
Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
实际应用:
NOR Flash 的读取和我们常见的 SDRAM 的读取是一样,用户可以直接运行装载在 NOR FLASH 里面的代码,这样可以减少 SRAM 的容量从而节约了成本。
NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的, 通常是一次读取 512 个字节,采用这种技术的 Flash 比较廉价
。用户 不能直接运行 NAND Flash 上的代码,因此好多使用 NAND Flash 的开发板除了使用 NAND Flah 以外,还作上了 一块小的 NOR Flash 来运行启动
代码。
NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。
NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据
存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC(多媒体存储卡Multi Media Card)存储卡市场上所占份额最大。
手机市场:
在手机市场中NOR FLASH是当之无愧的领导者,目前大部分手机使用的是NOR+PSRAM的XiP存储架构,其中NOR FLASH用来存储代码和数据,PSRAM作为MCU
和 DSP执行运算时的数据缓存。随着手机功能的日益丰富,需要更大的代码和数据存储空间,这时如果选择大容量的NOR FLASH,成本将非常昂贵,因此,一
些高端手机 中开始加入NAND来作为多媒体数据的一个存储载体。从性价比来看,NOR FLASH的最大存储容量不能超过1GB,否则就没有竞争优势了;并且,以
PSRAM的结构和特性,它的容量很难超过256MB,这种组合将成 为多媒体手机的一个限制。造成这个问题的原因主要是早期手机基带等IC技术掌握在欧美公司
手中,他们对于成本考量并不是非常关注,而今,国内IC厂商的崛 起和手机市场的激烈竞争,使得所有的设计师开始考虑如何降低BOM COST。
和大部分手机采用的存储结构对比。XiP架构是现在使用最多的,而新的高速处理平台正在向代码映射存储器架构发展,也就是NAND+SDRAM方式。 虽然
NAND闪存有一些应用问题,但是NAND闪存单位bit成本加上其缺点导致的额外成本仍然要比NOR闪存的单位bit成本低。
RAM的容量又分标称容量、实际容量和可用容量三种,标称容量即我们看手机参数的容量,即1G、2G这些。实际容量会比标称容量少一些,这其除了一些小量
的损耗(算法、颗粒的不同)之外,部分手机还会被GPU占用一部分RAM,所以一些2G的手机看到的实际容量会是1.7G~1.8G。而可用容量又会比实际容量再少
一些,是由于系统占用以及后台程序的占用的原因,一般2G的手机刚开机的时候可用RAM会有1.3G左右,而1G的手机可用有400M左右。
存储卡的标称容量和实际容量比较接近,例如16G的存储卡可用容量都会达到14G甚至15G。
------------------------------------------------------------黄金分界线----------------------------------------------------------------------------------------
查看了实际应用中小米手机,是使用的NAND+SDRAM方式,小米手机2:2GB DDR2 533运行内存(RAM)+ 闪迪出品16G储存芯片(ROM);
三星S3C2440A开发板:
内存 | 64M,可根据需要扩展到128M |
NAND Flash | 支持大容量NAND Flash,标配256M(首家推出,真正解决大页驱动难题,尤其适用于产品开发) |
NOR Flash | 一片4M NOR Flash |
启动代码是系统上电或者复位后运行的第一段代码 他的作用是在用户程序运行之前 对系统的硬件与软件运行环境进行必要的初始化 并在最后使程序跳转到用户程序 他直接面对ARM处理器内核以及硬件控制器进行编程。
S3C2440 支持从 NOR flash 或者 NAND Flash中启动。NOR Flash 的特点是 程序可以直接在芯片内执行 不必将程序读取到RAM中运行 NOR FLASH虽有这个优点 但是它的性价比远低于NAND FLASH
NOR FLASH启动: NOR FLASH --》映射到 nGCD0 其地址被映射为0x00000000
NAND_FLASH启动:S3C2440内部自带一块容量为4K的bootSRAM(叫做起步阶石“Steppingstone”)映射到nGCS0 其地址被映射为0x00000000
但系统上电或启动后 程序会从0地址处开始执行 因此我们需要把启动代码放在0地址处
NOR FLASH启动:程序可以在FLASH芯片中 直接被CPU执行
NAND FLASH启动:上电或复位后 0地址处为bootSRAM 启动前他里面是空的 启动后S3C2440 先通过硬件机制将NANDFLASH的前4K内容拷贝他里面去
如果系统的所有程序 编译链接后大小小于4K 那么系统的启动代码中无需考虑将程序从NANDFLASH 搬运到SDRAM 中去执行这个问题
如果系统中所编的程序编译后大于4K 那么系统的启动代码中需要包含一段将系统的全部程序从NANDFLASH 搬运到SDRAM的代码
系统启动时 只将NANDFLASH 的前4K 拷贝到了BootSRAM中,还有部分程序保存在NAND FLASH中 是无法内执行的 所以前4K被拷贝到BootSRAM中需要有能将程序拷贝到SDRAM中的代码。
因此从NAND FLASH中启动 牵涉到两次拷贝
1:nandflash前4K --> BootSAM 自动 无需人为干扰
2:从nandflash中搬运系统到SDRAM 需要程序员 控制
//
======================开发板NAND FLASH 启动===================================
//这一个真正的全裸代码。具体原理是这样的:
//首先是设置到NAND Flash 启动。当ARM 上电后,会自动读取NAND Flash
// 0x0000000地址处执行代码。我们将代码编译联接地址也设为0x0000000
//然后,用Jflash 烧写时,烧写到NAND Flash的0x0000000。那么上电后就会
//执行你的代码。
1:交叉环境的建立
2:连上开发板与PC上的JTAG线.开发板接上电源,
=========================开发板NOR FLASH 启动================================
编译u-boot,把编译生成的新的u-boot.bin烧写到NorFlash中。开发板上电启动后,则在超级终端(或类似的软件)中显示的结果为:
U-Boot 2011.06 (Jul 30 2011 - 23:40:44)
DRAM: 64 MiB
Flash: 2 MiB
NAND: raise: Signal # 8 caught
raise: Signal # 8 caught
raise: Signal # 8 caught
raise: Signal # 8 caught
raise: Signal # 8 caught
raise: Signal # 8 caught
No NAND device found!!!
0 MiB
*** Warning - bad CRC, using defaultenvironment
In: serial
Out: serial
Err: serial
Net: CS8900-0
ZHAOCJ2440 #
从上述显示的内容可以看出本开发板的一些基本的信息,如DRAM为64M,NorFlash为2M,由于我没有设置NandFlash,因此系统没有检测到NandFlash,命令提示符也已经修改为“ZHAOCJ2440 # ”。
总结:nor flash启动和nand flash启动都需要选择启动方式并把程序烧到相应的flash中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。