sistema de archivos flash

los principios de programación flash sólo se escriben como 0 a 1, 0, no se puede escribir 1. Así que antes de la programación Flash, asegúrese de que el correspondiente bloque de borrado, proceso de borrado es procesar todos los bits se escriben como 1, todos los bytes del bloque en 0xFF . se puede decir, el proceso de programación es escribir el bit correspondiente a 0, el bit correspondiente es borrar el proceso de escritura 1, la ejecución de los dos opuesta .

(1) de viruta de unidades de flash de escritura sustancialmente diferentes        aplicaciones en el chip opera para Norflash "palabra" como la unidad básica. Con el fin de facilitar la gestión de la memoria Norflash de flash de gran capacidad, memoria flash NOR se divide típicamente en un tamaño de bloque lógico es 128 KB o 64 KB veces el bloque sectorizada más. especificar el número de bloque lógico y desplazamiento dentro de la lectura de bloque y la escritura al mismo tiempo. operación de chip NandFlash de la aplicación es "bloque" como un bloque básico de flash unidad .NAND es relativamente pequeño, por lo general de 8 KB, entonces cada bloque se divide en páginas, el tamaño de página es típicamente 512 bytes. para modificar un chip de bytes NandFlash, todo el bloque debe ser reescrito. 


(2) el medio de almacenamiento aleatorio Norflash es una memoria flash, una menor cantidad de datos para la ocasión; flash continuo de medio de almacenamiento NandFlash adecuado para almacenar datos de gran tamaño.


(3) Dado que Norflash direcciones y de datos separada líneas, que puede ser como chips de Norflash SDRAM conectados a la línea de datos es generalmente similar al chip utilizado chip de memoria .NOR, de alta eficiencia de transmisión, un programa ejecutable puede ser ejecutado (XI P en el chip , ejecute en su lugar), por lo que las aplicaciones pueden ejecutarse directamente en el flash de la memoria flash no es necesario leer el código a continuación, la RAM del sistema. Norflash Debido a esta característica, los incorporados sistemas a menudo hacen NOR chip de empezar el chip usando la dirección común y .NandFlash bus de datos, la vinculación de algunos de la necesidad de un control adicional de entrada y salida, por lo que un chips NAND directos comenzarán a fabricar chips más difícil.

 
(. 4) de Nandflash chips de memoria flash debido a la dirección común y bus de datos, un byte de datos no permite incluso un bloque de vaciado, sólo la región de un tamaño fijo será operación de borrado; el chip Norflash puede operar en palabras. por lo tanto, cuando la velocidad de la pequeña cantidad de datos de procesamiento de operaciones de E / S a la rápida Norflash Norflash como un chip normalmente requiere escribir una palabra 10us, 512 bytes de escritura en el bus 32 necesidad 1280us; NandFlash escribir flash 512 palabras tiempo requerido para la sección incluye: 512 × 50 ns + 10us por byte buscador de la página de borrado en el tiempo el tiempo rebanada + 200us = 234us.


(. 5) de NandFlash relativamente grande de memoria flash capacidad, 8G bytes ha llegado a la capacidad máxima. Con el fin de facilitar la gestión, el almacenamiento de Nandflash bloques y páginas usando dos sistemas de almacenamiento, medios de espacio de almacenamiento que es de dos dimensiones, tales como K9F5608UOA tamaño del bloque flash es de 16 K, cada tamaño de página es de 512 bytes, 16 bytes zona de reserva por página también se utiliza para almacenar error de espacio de código de control (también conocido como fuera de banda, espacio fuera de banda). durante una operación de escritura , NandFlash parpadea cada vez que un byte de datos en el buffer interno, y luego emitió una operación de escritura "comando de escritura" debido a la operación del bloque de memoria flash NandFlash y son unidades de páginas, por lo que el flash de NandFlash cuando un gran número de datos de lectura y escritura, NAND es más rápido que flash NOR.


(6) la fiabilidad es más alto que el flash Norflash NandFlash flash, debido a que la memoria flash interfaz Norflash simple, menos manipulación de datos, intercambio de bits de funcionamiento, y por lo tanto una alta fiabilidad, mala bloque muy raro, la fiabilidad se utiliza generalmente en flash tipo de interfaz .NandFlash local y requisitos de funcionamiento son relativamente alta complejidad, operación de intercambio de bits es también una gran cantidad que se requiere más para asegurar críticos de detección de errores de datos / corrección de errores (EDC / ECC) algoritmos para asegurar la integridad de datos, y por lo tanto problemas la probabilidad es mucho mayor, mala bloque es inevitable, y debido a las malas bloques se distribuyen al azar, y la corrección de error incluso no puede hacer.

 
(. 7) de Nandflash dirección general común y líneas de datos, tiene alguna influencia en la velocidad de lectura y escritura; Norflash visualización de datos separadas y líneas de dirección, lectura y velocidad de escritura es relativamente común y algunos de .NANDFlash Norflash de chip

        los datos de escritura en el primer lugar en el chip primero deben vaciarse el contenido del chip correspondiente y, a continuación, escribe, es decir, de escritura-borrado antes. chips Norflash pero con sólo una palabra de borrado, mientras flash NAND requiere todo el bloque. A continuación, el número de memoria flash regrabable está limitada al utilizar el flash cerca de la vida, sería la operación menudo escritura fallado; cuando la vida se ha completado, los datos almacenados en la memoria flash interna, aunque se puede leer, pero no se puede escribir en un fin de prevenir. la aparición de los problemas anteriores, no a un área particular escribe repetidamente. Nandflash resistencia generalmente más alta que la viruta Norflash, sino porque Nandflash generalmente borrar página entera en el bloque si hay un fallo de todo el bloque en fallará, y el proceso de borrado se complica porque, relativamente alta probabilidad de fracaso, por lo que el conjunto de la NI vida más larga. 
        otra memoria flash común leer y operaciones de escritura sólo una operación física, de hecho, se almacena en la memoria flash algoritmo de datos debe ser utilizado, este módulo es generalmente controlador de MTD (conductores Memory Technology) módulo o FTLZ (flash T interior) capa para lograr Capa raducción, algoritmos específicos y los fabricantes de chips y modelos de chips están relacionados. Por comparación se puede encontrar, NAND es más adecuado para aplicaciones de documentos complejos, pero debido a la utilización de chips NAND es relativamente compleja, así que hay un sistema de archivos más alto requisitos.

(8) la interfaz comparativo  
       interfaz SRAM con Norflash genérico, fácilmente se puede montar en la dirección de CPU, bus de datos, los requisitos de interfaz CPU baja. Norflash función se ejecuta (XIP, eXecute In Place) de chip, por lo que las aplicaciones pueden ejecutarse directamente en el flash de la memoria flash no es necesario leer el código a continuación, la RAM del sistema. La sección ro uboot puede ejecutar directamente en Norflash, solamente rw y segmentos zi necesitan ser copiado en la memoria RAM para ejecutar.

       de dispositivos Nandflash utilizan puertos de e / S en serie complejos accede a los datos, ocho pernos para pasar el control, la dirección y la información de datos. Dado que el tiempo es más complejo, en general se integra preferentemente controlador NandFlash CPU. Además, como NandFlash no montado en el bus de direcciones, si se desea utilizar como un sistema de arranque del disco NandFlash, se requiere la CPU para tener características especiales, como ser seleccionado S3C2410 NandFlash modo de inicio se lee de forma automática cuando el poder NandFlash 4k de datos a una dirección en la SRAM 0 Si la CPU no tiene esta función especial, el usuario no puede ejecutar el código en NandFlash directamente, puede ser otro medio, como mucho utilizar tarjeta de desarrollo NandFlash excepto NandFlash que, además utiliza un pequeño código de arranque para ejecutar Norflash. 


(9)容量和成本对比  
       相比起NandFlash来说,NorFlash的容量要小,一般在1~16MByte左右,一些新工艺采用了芯片叠加技术可以把NorFlash的容量做得大一些.在价格方面,NorFlash相比NandFlash来说较高,如目前市场上一片4Mbyte的AM29lv320 NorFlash零售价在20元左右,而一片128MByte的k9f1g08 NandFlash零售价在30元左右.  NandFlash生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,这样也就相应地降低了价格.

(10)可靠性性对比  
       NandFlash器件中的坏块是随机分布的,以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算.Nand器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用.在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。而坏块问题在NorFlash上是不存在的.
       在Flash的位翻转(一个bit位发生翻转)现象上,NAND的出现几率要比NorFlash大得多.这个问题在Flash存储关键文件时是致命的,所以在使用NandFlash时建议同时使用EDC/ECC等校验算法.

(11)升级对比  
       NorFlash的升级较为麻烦,因为不同容量的NorFlash的地址线需求不一样,所以在更换不同容量的NorFlash芯片时不方便.通常我们会通过在电路板的地址线上做一些跳接电阻来解决这样的问题,针对不同容量的NorFlash.  而不同容量的NandFlash的接口是固定的,所以升级简单.

 

(12)读写性能对比  
       写操作:任何flash器件的写入操作都只能在空或已擦除的单元内进行.NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1.擦除NOR器件时是以64~128KB的块进行的,执行一个擦除/写入操作的时间约为5s.擦除NAND器件是以8~32KB的块进行的,执行一个擦除/写入操作最多只需要4ms. 读操作:NOR的读速度比NAND稍快一些.

(13)文件系统比较  
       Linux系统中采用MTD来管理不同类型的Flash芯片,包括NandFlash和NorFlash.支持在Flash上运行的常用文件系统有cramfs、jffs、jffs2、yaffs、yaffs2等.cramfs文件系统是只读文件系统.如果想在Flash上实现读写操作,通常在NorFlash上我们会选取jffs及jffs2文件系统,在NandFlash上选用yaffs或yaffs2文件系统.Yaffs2文件系统支持大页(大于512字节/页)的NandFlash存储器. 

Flash编程原理都是只能将1写为0,而不能将0写成1.所以在Flash编程之前,必须将对应的块擦除,而擦除的过程就是将所有位都写为1的过程,块内的所有字节变为0xFF.因此可以说,编程是将相应位写0的过程,而擦除是将相应位写1的过程,两者的执行过程完全相反.

(1)闪存芯片读写的基本单位不同 
       应用程序对NorFlash芯片操作以“字”为基本单位.为了方便对大容量NorFlash闪存的管理,通常将NOR闪存分成大小为128KB或64KB的逻辑块,有时块内还分扇区.读写时需要同时指定逻辑块号和块内偏移.应用程序对NandFlash芯片操作是以“块”为基本单位.NAND闪存的块比较小,一般是8KB,然后每块又分成页,页大小一般是512字节.要修改NandFlash芯片中一个字节,必须重写整个数据块.


(2)NorFlash闪存是随机存储介质,用于数据量较小的场合;NandFlash闪存是连续存储介质,适合存放大的数据.


(3)由于NorFlash地址线和数据线分开,所以NorFlash芯片可以像SDRAM一样连在数据线上.NOR芯片的使用类似于通常内存芯片,传输效率高,可执行程序可以在芯片内执行(XI P, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中.由于NorFlash的这个特点,嵌入式系统中经常将NOR芯片做启动芯片使用.NandFlash共用地址和数据总线,需要额外联结一些控制的输入输出,所以直接将NAND芯片做启动芯片比较难.

 
(4)NandFlash闪存芯片因为共用地址和数据总线的原因,不允许对一个字节甚至一个块进行的数据清空,只能对一个固定大小的区域进行清零操作;NorFlash芯片可以对字进行操作.所以在处理小数据量的I/O操作的时候的速度要快与NorFlash的速度.比如一块NorFlash芯片通常写一个字需要10us,在32位总线上写512字节需要1280us;NandFlash闪存写512字节需要的时间包括:512×每字节50ns+10us的寻页时间+200us的片擦写时间=234us.


(5)NandFlash闪存的容量比较大,最大容量己达到8G字节.为了方便管理,NandFlash的存储空间使用了块和页两级存储体系,也就是说它的存储空间是二维的,比如K9F5608UOA闪存块的大小为16K,每页大小是512字节,每页还16字节空闲区用来存放错误校验码空间(也称为out-of-band,OOB空间).在进行写操作时,NandFlash闪存每次将一个字节的数据放入内部的缓存区,然后再发出“写指令”进行写操作.由于对NandFlash闪存的操作都是以块和页为单位的,所以在向NandFlash闪存进行大量数据的读写时,NAND的速度要快于NOR闪存.


(6)NorFlash闪存的可靠性要高于NandFlash闪存,是因为NorFlash型闪存的接口简单,数据操作少,位交换操作少,因此可靠性高,极少出现坏区块,一般用在对可靠性要求高的地方.NandFlash型闪存接口和操作均相对复杂,位交换操作也很多,关键性数据更是需安错误探测/错误更正(EDC/ECC)算法来确保数据的完整性,因此出现问题的几率要大得多,坏区块也是不可避免的,而且由于坏区块是随机分布的,连纠错也无法做到.

 
(7)NANDFlash一般地址线和数据线共用,对读写速度有一定影响;NORFlash闪存数据线和地址线分开,相对而言读写速度快一些.NANDFlash和NORFlash芯片的共性

        首先表现在向芯片中写数据必须先将芯片中对应的内容清空,然后再写入,即先擦后写.只不过NORFlash芯片只用擦写一个字,而NAND需要擦写整个块.其次,闪存擦写的次数都是有限的.当闪存使用接近使用寿命时,经常会出现写操作失败;到达使用寿命时,闪存内部存放的数据虽然可以读,但不能再进行写操作了.所以为了防止上面问题的发生,不能对某个特定的区域反复进行写操作.通常NANDFlash可擦写次数高于NORFlash芯片,但是由于NANDFlash通常是整块擦写,块内的页面中如果有一位失效整个块就会失效,而且由于擦写过程复杂,失败的概率相对较高,所以从整体上来说NOR的寿命较长. 
        另一个共性是闪存的读写操作不仅仅是一个物理操作,实际上在闪存上存放数据必须使用算法实现,这个模块一般在驱动程序的MTD'(Memory Technology Drivers)模块中或者在FTLZ (Flash Translation Layer)层内实现,具体算法和芯片的生产厂商以及芯片型号有关系.通过比较可以发现,NAND更适用于复杂的文件应用,但是由于NAND芯片的使用相对复杂,所以对文件系统有较高的要求.

(8)接口对比  
       NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。NorFlash的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中.如uboot中的ro段可以直接在NorFlash上运行,只需要把rw和zi段拷贝到RAM中运行即可.

       NandFlash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制、地址和数据信息。由于时序较为复杂,所以一般CPU最好集成NandFlash控制器.另外由于NandFlash没有挂接在地址总线上,所以如果想用NandFlash作为系统的启动盘,就需要CPU具备特殊的功能,如s3c2410在被选择为NandFlash启动方式时会在上电时自动读取NandFlash的4k数据到地址0的SRAM中.如果CPU不具备这种特殊功能,用户不能直接运行NandFlash上的代码,那可以采取其他方式,比如好多使用NandFlash的开发板除了使用NandFlash以外,还用上了一块小的NorFlash来运行启动代码. 


(9)容量和成本对比  
       相比起NandFlash来说,NorFlash的容量要小,一般在1~16MByte左右,一些新工艺采用了芯片叠加技术可以把NorFlash的容量做得大一些.在价格方面,NorFlash相比NandFlash来说较高,如目前市场上一片4Mbyte的AM29lv320 NorFlash零售价在20元左右,而一片128MByte的k9f1g08 NandFlash零售价在30元左右.  NandFlash生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,这样也就相应地降低了价格.

(10)可靠性性对比  
       NandFlash器件中的坏块是随机分布的,以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算.Nand器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用.在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。而坏块问题在NorFlash上是不存在的.
       在Flash的位翻转(一个bit位发生翻转)现象上,NAND的出现几率要比NorFlash大得多.这个问题在Flash存储关键文件时是致命的,所以在使用NandFlash时建议同时使用EDC/ECC等校验算法.

(11)升级对比  
       NorFlash的升级较为麻烦,因为不同容量的NorFlash的地址线需求不一样,所以在更换不同容量的NorFlash芯片时不方便.通常我们会通过在电路板的地址线上做一些跳接电阻来解决这样的问题,针对不同容量的NorFlash.  而不同容量的NandFlash的接口是固定的,所以升级简单.

 

(12)读写性能对比  
       写操作:任何flash器件的写入操作都只能在空或已擦除的单元内进行.NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1.擦除NOR器件时是以64~128KB的块进行的,执行一个擦除/写入操作的时间约为5s.擦除NAND器件是以8~32KB的块进行的,执行一个擦除/写入操作最多只需要4ms. 读操作:NOR的读速度比NAND稍快一些.

(13)文件系统比较  
       Linux系统中采用MTD来管理不同类型的Flash芯片,包括NandFlash和NorFlash.支持在Flash上运行的常用文件系统有cramfs、jffs、jffs2、yaffs、yaffs2等.cramfs文件系统是只读文件系统.如果想在Flash上实现读写操作,通常在NorFlash上我们会选取jffs及jffs2文件系统,在NandFlash上选用yaffs或yaffs2文件系统.Yaffs2文件系统支持大页(大于512字节/页)的NandFlash存储器. 



嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs
    Linux 支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统 进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。

Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。

  不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为 RAM(DRAM, SDRAM)和ROM(常采用FLASH存储器),常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。

  1. 基于FLASH的文件系统

  Flash(闪存)作为嵌入式系统的主要存储媒介,有其自身的特性。Flash的写入操作只能把对应位置的1修改为0,而不能把0修改为1(擦除Flash就是把对应存储块的内容恢复为1),因此,一般情况下,向Flash写入内容时,需要先擦除对应的存储区间,这种擦除是以块(block)为 单位进行的。

  闪存主要有NOR和NAND两种技术(简单比较见附录)。Flash存储器的擦写次数是有限的,NAND闪存还有特殊的硬件接口和读写时序。因此,必须针对Flash的硬件特性设计符合应用要求的文件系统;传统的文件系统如ext2等,用作Flash的文件系统会有诸多弊端。

  在嵌入式Linux下,MTD(Memory Technology Device,存储技术设备)为底层硬件(闪存)和上层(文件系统)之间提供一个统一的抽象接口,即Flash的文件系统都是基于MTD驱动层的(参见上面的Linux下的文件系统结构图)。使用MTD驱动程序的主要优点在于,它是专门针对各种非易失性存储器(以闪存为主)而设计的,因而它对Flash有 更好的支持、管理和基于扇区的擦除、读/写操作接口。

  顺便一提,一块Flash芯片可以被划分为多个分区,各分区可以采用不同的文件系统;两块Flash芯片也可以合并为一个分区使用,采用一个文件系统。即文件系统是针对于存储器分区而言的,而非存储芯片。

  (1) jffs2

  JFFS文件系统最早是由瑞典 Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux, uCLinux中。

  Jffs2: 日志闪存文件系统版本2 (Journalling Flash FileSystem v2)

  主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。

  目前jffs3正在开发中。关于jffs系列文件系统的使用详细文档,可参考MTD补丁包中mtd-jffs-HOWTO.txt。

  jffsx不适合用于NAND闪 存主要是因为NAND闪存的容量一般较大,这样导致jffs为维护日志节点所占用的内存空间迅速增大,另外,jffsx文件系统在挂载时需要扫描整个FLASH的内容,以找出所有的日志节点,建立文件结构,对于大容量的NAND闪存会耗费大量时间。

 

   (2) yaffs:Yet Another Flash File System

  yaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。与jffs2相比,它减少了一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。另外,它还是跨平台的文件系统,除了Linux和eCos,还支持WinCE, pSOS和ThreadX等。

  yaffs/yaffs2自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD与VFS,直接对文件系统操作。当然,yaffs也可与MTD驱动程序配合使用。

  yaffs与yaffs2的主要区别在于,前者仅支持小页(512 Bytes) NAND闪存,后者则可支持大页(2KB) NAND闪存。同时,yaffs2在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升。

 

  (3) Cramfs:Compressed ROM File System

  Cramfs是Linux的创始人Linus Torvalds参与开发的一种只读的压缩文件系统。它也基于MTD驱动程序。

  在cramfs文件系统中,每一页(4KB)被单独压缩,可以随机页访问,其压缩比高达2:1,为嵌入式系统节省大量的Flash存储空间,使系统可通过更低容量的FLASH存储相同的文件,从而降低系统成本。

  Cramfs文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP(eXecute In Place,芯片内执行)方式运行,所有的应用程序要求被拷到RAM里去运行,但这并不代表比Ramfs需求的RAM空间要大一点,因为Cramfs是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,Cramfs文件系统自动计算压缩后的资料所存的位置,再即时解压缩到RAM中。

  另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。

  由于以上特性,Cramfs在嵌入式系统中应用广泛。

  但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩充。

Cramfs映像通常是放在Flash中,但是也能放在别的文件系统里,使用loopback 设备可以把它安装别的文件系统里。

 

  (4) Romfs

  传统型的Romfs文件系统是一种简单的、紧凑的、只读的文件系统,不支持动态擦写保存,按顺序存放数据,因而支持应用程序以 XIP(eXecute In Place,片内运行)方式运行,在系统运行时,节省RAM空间。uClinux系统通常采用Romfs文件系统。

  

其他文件系 统:fat/fat32也可用于实际嵌入式系统的扩展存储器(例如PDA, Smartphone, 数码相机等的SD卡),这主要是为了更好的与最流行的Windows桌面操作系统相兼容。ext2也可以作为嵌入式Linux的文件系统,不过将它用于 FLASH闪存会有诸多弊端。

 

  2. 基于RAM的文件系统

  (1) Ramdisk

  Ramdisk是将一部分固定大小的内存当作分区来使用。它并非一个实际的文件系统,而是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统。将一些经常被访问而又不会更改的文件(如只读的根文件系统)通过Ramdisk放在内存中,可以明显地提高系统的性能。

  在Linux的启动阶段,initrd提供了一套机制,可以将内核映像和根文件系统一起载入内存。

  (2)ramfs/tmpfs

  Ramfs是Linus Torvalds开发的一种基于内存的文件系统,工作于虚拟文件系统(VFS)层,不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大 小。(实际上,VFS本质上可看成一种内存文件系统,它统一了文件在内核中的表示方式,并对磁盘文件系统进行缓冲。)

  Ramfs/tmpfs文件系统把所有的文件都放在RAM中,所以读/写操作发生在RAM中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数据,例如/tmp和/var目录,这样既避免了对Flash存储器的读写损耗,也提高了数据读写速度。

  Ramfs/tmpfs相对于传统的Ramdisk的不同之处主要在于:不能格式化,文件系统大小可随所含文件内容大小变化。

  Tmpfs的一个缺点是当系统重新引导时会丢失所有数据。

  3. Sistema de archivos de red NFS (Network File System)

  NFS fue desarrollado por Sun y desarrolló una red de tecnología para compartir archivos entre diferentes máquinas, diferentes sistemas operativos. En el desarrollo y la depuración de fase del sistema Linux embebido, puede utilizar la tecnología para construir un sistema de archivos raíz basada en NFS, montar en el dispositivo incorporado, puede modificar fácilmente el contenido del sistema de archivos raíz en el host.


  Se basa en el sistema de archivos del dispositivo de almacenamiento (sistema de archivos basado en memoria), que puede ser utilizado como sistema de archivos raíz de Linux se discutió anteriormente. De hecho, Linux también soporta sistema lógico o pseudo archivo (sistema lógico o archivo pseudo), por ejemplo procfs (sistema de archivos proc), para la adquisición de información del sistema, y ​​devfs (sistema de archivos del dispositivo) y los sysfs, para mantener el archivo de dispositivo.

 

  Apéndice: flash NOR y NAND de memoria flash comparación


NOR FLASH NAND FLASH
Interfaz con el tiempo SRAM, fácil de usar De direcciones / datos de multiplexación, bits de datos estrechos
leer más rápido lee lentamente
velocidad Borrado es lento, en unidades de un bloque 64-128KB Borrado de velocidad, en unidades de un bloque 8-32KB
Velocidad de escritura lenta (debido a que la necesidad general de primera borrado) velocidad de escritura
Un acceso aleatorio rápido, XIP apoyo (eXecute en su lugar, la realización de chips) para el almacenamiento de códigos. En los sistemas integrados, que se utiliza comúnmente para almacenar el programa de arranque, el sistema de archivos raíz. velocidad de lectura secuencial, la velocidad de acceso aleatorio es más lento para el almacenamiento de datos (como una gran capacidad de aplicaciones multimedia). En los sistemas integrados, que se utiliza comúnmente para almacenar el sistema de archivos de usuario.
Monolítica menor capacidad, 1-32MB Monolithic mayor capacidad, 8-128MB, aumento de la densidad celular
La resistencia máxima de 100.000 Los resistencia máxima millón de veces


Publicado 18 artículos originales · ganado elogios 86 · vistas 160 000 +

Supongo que te gusta

Origin blog.csdn.net/u013178472/article/details/72864428
Recomendado
Clasificación