转载 MTK存储系统相关
NOR和NAND都是flash, 掉电数据不丢失的,掉电数据丢失的叫RAM
flash上分两块,code区域和文件系统区域(又分系统盘和用户盘)。
NVRAM是一套机制,它的数据部分:default存在flash的code区,NARAM文件存在文件系统区域(系统盘)
phone的电话本数据是以NVRAM文件的形式保存在文件系统区域的(系统盘),SIM卡的电话本就在SIM卡上了T卡是扩展的flash,都是文件系统区。
NAND flash、NORflash及普通flash 有什么区别
NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。
相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。
NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。
NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。
MTK FLASH 对应64+32是什么意思
手机MCP芯片的型号,主要用于加速处理图像的能力有
64+32、128+32、128+64、 256+64、 1G+256、1G+512系列FLASH,广泛应用于MTK6225、6235平台,主要产地是TOSHIBA日本
多数的手机的存储器是二合一的,即FLASH和SRAM包在同一片芯片里。64+32是指8M byte(64M bit)的NOR FLASH+4M
ROM是只读存储器,断电后能保证数据不会丢失,一般保证比较重要的数据.
RAM是随机存储器,断电后数据会丢失.
ROM和RAM指的都是半导体存储器。本来的含义是:ROM是Read Only Memory的意思,也就是说这种存储器只能读,不能写。而RAM是Random Access Memory的缩写。这个词的由来是因为早期的计算机曾经使用磁鼓作为内存,而磁鼓和磁带都是典型的顺序读写设备。RAM则可以随机读写
现在ROM通常指非挥发的存储器,或者说,不掉电。系统停止供电的时候它们仍然可以保持数据。所以光盘也有CD-ROM或者DVD-ROM的说法。而RAM通常都是没电之后就没有数据的,典型的就象计算机的内存,需要系统重新启动的时候从硬盘重新载入数据。有的时候,如果数据可以擦写,也会借用RAM这个概念,譬如DVD-RAM,其实只是可以擦写的DVD光盘而已,并非真正的半导体存储器
关于智能手机ROM和RAM的区别
存储器分为随机存储器(RAM)和只读存储器(ROM)两种。其中ROM通常用来固化存储一些生产厂家写入的程序或数据,用于启动电脑和控制电脑的工作方式。而RAM则用来存取各种动态的输入输出数据、中间计算结果以及与外部存储器交换的数据和暂存数据。设备断电后,RAM中存储的数据就会丢失。
对于手机而言
运行游戏、程序速度快慢看的是RAM,也就是动态内存,不是看ROM。ROM是静态空间,用来存储东西的,相当于手机的Z盘。RAM和ROM就好比是电脑的内存和硬盘。C盘准确的来讲也不应该叫ROM只读存储器。C盘应该叫FLASH,因为C盘是可擦写的,而FLASH的大小并不影响运行速度。
128 bit M = 16MB 一般划分 14M 的资源区,包含了图片,字符串,NVRAM等。
{
1KB等于1024B,B是英文Byte(比特)的缩写,KB即kilobyte,字面意思就是千比特。
byte是文件大小的一个计量单位,大家都知道在计算机里面,文件都是以二进制方式存储的,这样一个最小的存储单元(譬如10、11、01、00)叫做一个bit(位,位元),八个位元等于一个比特。
转换关系:
8bit=1b
1024byte=1kb
1024kb=1mb
1024mb=1gb
1024gb=1tb
以上单位k指千、m指百万、g指10亿,t指万亿,大小写均可。
因为1024≈1000,所以1024b,也称为1k,以下类似。
}
还有2M有用到ARM 的启动和部分的内存,运行速度相当快。相当于PC的硬盘
32 sdram bit M = 4MB,一般用来存储动态内存,全局变量什么的,相当于PC的内存。
mtk25平台默认的是128Mbit flash memory 和 32Mbit SRAM,因为1BYTE等于8BIT,所以就是我们通常所说的是16M ROM和4M RAM,不过由于文件系统占用2M,这2M一般又被分为系统盘和用户盘,系统盘存储NV文件和MMS相关文件,对用户不可见,用户盘用户连上电脑就可以看到,但由于一些原因,有不少手机是不设用户盘的,用户盘过大,会导致彩信等一些模块不稳定,所以很多使用NORFALSH时不设用户盘,但NAND FALSH一般都会设置一定的用户盘。如果需要设置,只要修改宏PARTITION_SIZE值就可以控制。所以我们能够使用的就只剩下14,这一点可以从BUILD目录下的scatWINGTECH25_GEMINI.txt文件的声明部分看到,在SCAT文件中,有一行是SCHEME
由于用户需求不同,有些时候我们会修改RAM和ROM大小,一般就要相应的修改SCAT文件。在SCAT文件中,我们可以看到行ROM 0x00000000 0x00e00000,就是说可以使用的ROM从0x00000000开始,到0x00e00000结束,共计0x00e00000字节,在下面又可以看到这些ROM被分成四个4M的段使用。在SCAT的行EXTSRAM_LARGEPOOL_NORMAL 0x08000000处我们可以看到RAM的使用情况,地址从0x08000000开始, 到0x08400000 结束,共计0x00400000BYTE,即4MBYTE,如果你是32MROM,8MRAM,就要修改ROM 0x00000000 0x00e00000为
ROM 0x00000000 0x01c00000,修改DUMMY_END 0x08400000 0x04为
其实有时RAM紧张时不一定非要采用增加RAM来实现,这样成本较大,可以采用复用内存也可以节约大量内存。 在SCAT文件中,很多时候,我们可以看到关健字overlay,这是一些手机的应用中为节省内存使用的复合内存,如INTSRAM_MULTIMEDIA 0x40000000
如果RAM或者ROM编绎到最后出错,提示ROM超了或者RAM超过了,这时就要精确计算超出部分的大小,然后再根据计算的大小寻找解决办法。计算的方法是打开LIS文件,把RAM或者ROM加起来,减去14或者4,超过的字节数,就是需要调整的内存大小
================================================================================
================================================================================
================================================================================
RAM 大小看起来已经超过4M(4318761)了,怎么编译没有报错,并且使用正常?
内存复用
要了解RO,RW和ZI需要首先了解以下知识:
(1)ARM程序的组成
(2)ARM映像文件的组成
(3)ARM程序的执行过程