1,RAM的分类
RAM分为两大类,第一种称为静态RAM(static RAM/SRAM),这种RAM读写速度非常快,但价格昂贵,通常在要求苛刻的地方使用,比如CPU的一级二级缓冲;
第二种为动态RAM(Dynamic RAM/DRAM),DRAM的速度比SRAM慢很多,但依然远比ROM快,且价格比SRAM便宜,计算机的内存就是DRAM;
计算机使用的内存称为DDR RAM(Date-Rate RAM),它的基本特性与DRAM相同,区别是它可以在一个时钟读写两次数据,这样数据传输速度就加倍了。(我们常说的“内存”基本等同于DRAM)
2,两种FLASH
由于FLASH本身具备电子可擦除可编程(EEPROM)的性能,不会断电丢失数据且可以快速读取数据,因此几乎全面替代了ROM,被用于存储bootloader或者操作系统或者直接当U盘使用;
FLASH分为Nor flash与Nand flash,Nor flash与DRAM类似,用户可以直接运行装载在nor flash中的代码,由于价格比SRAM便宜,因此可以减少SRAM容量进而节约成本;
用户使用NorFlash还是Nand Flash取决于成本与空间,通常,容量不大且要求读取速度的,会使用Nor Flash,而容量较大的信息则存储于Nand Flash;
举例
已知:这块开发板来自三星,它的存储包括:一块4MB NOR FLASH,一块256MB NAND Flash,64M 内存;
方法一:从NOR Flash启动
Nor Flash启动模式下,将编译完成的bin文件烧入NorFlash,Nor Flash的基地址是0地址,片内RAM的0地址的0x40000000,Nor Flash直接与CPU传输数据,不需要通过片内RAM的中转就可以启动并运行;
方法二:从NAND Flash启动
上一种方法可以正常启动,但NorFlash价格较高,性价比低,因此可以采用方法二,S3C2440内部自带一块容量为4K的bootSRAM(叫做起步阶石“Steppingstone”),0地址处为bootSRAM, 启动前他里面是空的,启动后S3C2440 先通过硬件机制将NANDFLASH的前4K内容拷贝他里面去,之后从0地址处开始执行。
S3C2440的NAND控制器会自动把NAND FLASH中的前4K代码数据搬到内部SRAM中(地址为0x40000000),同时还把这块SRAM地址映射到了0x00000000地址,CPU从0x00000000位置开始运行程序。
注:
如果程序编译链接后大小小于4K,那么系统的启动代码中无需将程序从NANDFLASH 搬运到SDRAM 中后再去执行,因为所有的程序在启动时即全部由NANDFLASH 拷贝到了bootSRAM中执行了;
如果系统中所编的程序编译后大于4K,那么系统的启动代码中需要包含一段将系统的全部程序从NAND FLASH 搬运到SDRAM的代码,系统启动时 只将NAND FLASH 的前4K 拷贝到BootSRAM中;由于程序在NAND FLASH中是无法被执行的,所以前4K被拷贝到BootSRAM中需要有能将程序拷贝到SDRAM中的代码。
审核编辑:刘清
-
嵌入式
+关注
关注
5068文章
19008浏览量
302968 -
RAM
+关注
关注
8文章
1367浏览量
114517 -
EEPROM
+关注
关注
9文章
1010浏览量
81395 -
Flash存储
+关注
关注
0文章
38浏览量
8277
原文标题:RAM,ROM与Flash(2)
文章出处:【微信号:嵌入式的那些事儿,微信公众号:嵌入式的那些事儿】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论