嵌入式培训
达内IT学院
400-996-5531
而嵌入式系统中的RAM,一般也就是和PC上的(DDR)SDRAM一样,掉电丢失。
嵌入式系统特别是手机中ROM的构成,可能是NorFlash也可能是NandFlash,速度较快,但是掉电不丢失。
而之所以之前疑惑地方在于,
一、现在很多时候手机都标榜自己的ROM很大。而大多数情况下,在PC上厂商都是标榜自己产品的RAM很大,从而造成了误解。
原因在于:这里的嵌入式上的ROM类似于PC上的硬盘,但是比硬盘读写速度应该要快一些。嵌入式上的ROM造价单位上肯定比硬盘要贵的多,如果有更多的ROM空间,即可以存储更多的程序代码,所以嵌入式厂商才会不断提升并提供不同的ROM的空间,比如苹果的8G,16G,32G。
二、如果是ROM只是存储的话,为什么又有些说法是程序可以直接在ROM上运行?ROM不是只读吗?
原因在于ROM上说的可执行,是指cpu可以直接把ROM中的NorFlash部分的程序代码当做RAM中程序代码段,不需要载入RAM中才能让cpu直接读取。但是中间的处理数据和最终结果数据都是存放在RAM中的。这里涉及到一个芯片内执行的概念即XIP。
在NOR器件上运行代码不需要任何的软件支持即XIP,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。
即norflash在读操作上,是不需要MTD的,但是擦除和写操作还是需要MTD。对比之下,nanflash虽然有擦除和写操作快的优势,但是其读写及擦除操作都全部依赖于MTD,原因在于NAND器件使用复杂的I/O口来串行地存取数据,又比norflash更多的要注意坏块。
XIP的示意图如下:
关于XIP,首先需要了解的是嵌入式系统中代码的执行方式主要有3种,XIP是其中一种:
①完全映射(fullyshadowed)。嵌入式系统程序运行时,将所有的代码从非易失存储器(Flash、ROM等)复制到RAM中运行。
②按需分页(demandpaging)。只复制部分代码到RAM中。这种方法对RAM中的页进行导入/导出管理,如果访问位于虚存中但不在物理RAM中会产生页错误,这时才将代码和数据映射到RAM中。
③eXecuteInPlace(XIP)。在系统启动时,不将代码复制到RAM,而是直接在非易失性存储位置执行。RAM中只存放需要不断变化的数据部分,如下图所示。
如果非易失性存储器的读取速度与RAM相近,则XIP可以节省复制和解压的时间。NORFlash和ROM的读取速度比较快(约100ns),适合XIP;而NANDFlash的读操作是基于扇区的,速度相对很慢(μs级),因此不宜实现XIP系统。而NAND闪存写入速度比NOR快,更适合SND(存储和下载)系统。
三、为什么norflash可以实现XIP,而nandflash就不适合?
(1)NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。
NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。
(2)NORflash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。
NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。
由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved