PCA课件第五章嵌入式文件系统_第1页
PCA课件第五章嵌入式文件系统_第2页
PCA课件第五章嵌入式文件系统_第3页
PCA课件第五章嵌入式文件系统_第4页
PCA课件第五章嵌入式文件系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章嵌入式文件系统5.1嵌入式文件系统1第5章嵌入式文件系统5.1嵌入式文件系统15.1文件系统简介文件系统的定义文件系统是操作系统中组织、存储和命名文件的结构,是操作系统中统一管理信息资源的一种方式,可以管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,方便用户使用。大部分应用程序都是基于文件系统进行操作,在不同的文件系统上是不能工作的。文件系统的存储媒质:磁盘、光盘、FLASH盘等FAT(文件分配表)系统是最常用的文件系统,主要优点是可以允许多种操作系统访问。25.1文件系统简介文件系统的定义25.1文件系统简介文件系统主要功能方便的文件访问和控制:以符号名称作为文件标识,便于用户使用;并发文件访问和控制:在多道程系统中支持对文件的并发访问和控制;统一的用户接口:在不同设备上提供同样的接口,方便用户操作和编程;多种文件访问权限:在多用户系统中的不同用户对同一文件会有不同的访问权限;优化性能:存储效率、检索性能、读写性能;差错恢复:能够验证文件的正确性,并具有一定的差错恢复能力;35.1文件系统简介文件系统主要功能35.1文件系统简介文件系统的结构45.1文件系统简介文件系统的结构45.1文件系统简介文件系统的主要内容:文件的格式目录的格式磁盘的分配回收访问方式和权限目录也是一个特殊的文件。55.1文件系统简介文件系统的主要内容:5DOS1.0(1981)DOS3.0(1984)Win95(1995)Win95Osr2(1996)Win98(1998)Win3.1(1992)FAT12FAT16VFATFAT32FAT文件系统FAT文件系统的发展6DOS1.0(1981)DOS3.0(1984)WiFAT12FAT16FAT32SizeofFATentry12bits16bits32bitsMaxnumofclusters4,08665,526268,435,456Clustersizeused0.5KB-4KB2KB-32KB4KB-32KB最大磁盘容量16,736,256

(16M)2,147,123,200

(2G)about2^41

(2T)FAT12/FAT16/FAT32比较7FAT12FAT16FAT32SizeofFATentFAT文件系统由下面四部分组成保留区Reservedregion存放引导记录,BIOS信息等FAT区FAT信息列表

(12/16/32bits)根目录区目录信息列表

(32bytes)文件和目录数据区存放簇信息reservedFAT(p)FAT(b)RootdirFileanddirectory……FAT文件系统基本结构8FAT文件系统由下面四部分组成reservedFAT(p)引导记录基本信息

……引导代码BIOS参数块

(BPB)字节/扇区(512,1024,2048,4096)扇区/簇(1,2,4,8,16,32,64,128)根目录数总扇区值介质类型

(硬盘,软盘,FLASH)reservedFAT(p)FAT(b)RootdirFileanddirectory……保留区ReservedRegion

9引导记录reservedFAT(p)FAT(b)Rootd通常有FAT(P)(primary)和FAT(B)(backup)每一个簇都有一个对应的FAT表项Cluster2Cluster3Clustern-1Clustern……FAT数据区reservedFAT(p)FAT(b)RootdirFileanddirectory………FAT区10通常有FAT(P)(primary)和FAT(B)(bacFAT链表(以FAT16为例)……目录树11FAT链表(以FAT16为例)……目录树115.2嵌入式文件系统嵌入式文件系统与桌面文件系统有较大区别:嵌入式文件系统要为嵌入式系统的设计目的而服务的,不同用途的嵌入式操作系统下的文件系统在许多方面各不相同。嵌入式Linux常用文件系统:第二版扩展文件系统(Ext2ft)、JFFS、YAFFS125.2嵌入式文件系统嵌入式文件系统与桌面文件系统有较大区别嵌入式Linux常用文件系统FlashMemory简介FlashMemory上的两种技术NAND:串行;顺序读取;适合大容量;通常需MTDNOR:并行;随机读取;适合数据或程序存储;XIP;Xsbase开发平台上所使用的闪存IntelStrataFlashMemory28F128J3A

Ext2fs、JFFS和YAFFSext、ext2、xia、vfat、minix、msdos、umsdos、proc、smb、ncp、iso9660、sysv、hpfs、affs、ufs、vfs等13嵌入式Linux常用文件系统FlashMemory简介嵌入式Linux常用文件系统第二版扩展文件系统(Ext2fs)的优点Ext2fs支持达4TB的内存(Ext是2G)。Ext2fs文件名称最长可以到1012个字符。当创建文件系统时,管理员可以选择逻辑块的大小(通常大小可选择1024、2048和4096字节)。Ext2fs实现快速符号链接:不需要为此目的而分配数据块,并且将目标名称直接存储在索引节点表中,这使性能有所提高,特别是在速度上。14嵌入式Linux常用文件系统第二版扩展文件系统(Ext2fs

基于FLASH的嵌入式文件系统

嵌入式系统中常使用FLASH作为存储介质,有其特定的结构特点:基本存储单位是Page,每个Page有512+16个字节;32个Page为一个Block;所有的Block组成一个Device,代表整个存储体。主要有两种技术:NAND和NOR三星K9F2808U0A-YCB0FLASH(NAND技术)有16M字节的存储容量:有1024个Block,Device的总容量是:528Bytes*32Pages*1024Blocks=132MbitsIntel公司的28F128J3AFlash(NOR技术)15基于FLASH的嵌入式文件系统嵌入式系统中常使NAND和NOR两种技术比较16NAND和NOR两种技术比较16FLASH的存储结构17FLASH的存储结构17FLASH的读写特点和FAT组织读写特点:(1)必须以Page为单位进行读写;(2)写之前必须先擦除原有内容;(3)擦除操作必须对Block进行,即一次至少擦除一个Block的内容FAT组织将Flash的一个Page定为1个扇区,2个Block-64个扇区定为一个簇(也可以定义32个扇区为一个簇),这样,簇的容量刚好为512*64=32K,满足FAT16对簇大小的要求。18FLASH的读写特点和FAT组织读写特点:18FLASH文件系统的特殊要求(1)掉电安全:

嵌入式系统的运行环境一般比较恶劣,但同时又要求有较高的可靠性。这就对FLASH文件系统进出了较高的要求,无论程序崩溃或系统掉电,都不能影响文件系统的一致性和完整性,文件系统的写入、垃圾回收等操作对系统异常中止都非常敏感,极易造成数据丢失和数据垃圾,在文件系统设计和选用时应考虑;(2)平均使用(wear-leveling):

由于FLASH扇区的擦除次数有限制,要求能够均匀使用各扇区,以延长FLASH的使用寿命;19FLASH文件系统的特殊要求(1)掉电安全:19(3)高效垃圾回收(garbagecollection):任何存储器在分配使用一段时间后,都会出现空区和碎片数据,为保证存储空间的使用率。方法是先移动扇区数据,再擦除整个扇区;(4)低空间消耗(lowoverhead):指文件系统管理结构在FLASH存储器上的空间消耗,该空间用于FS建立,而不能用于实际数据的存储,可以提高有用数据的存储空间。FLASH文件系统的特殊要求20(3)高效垃圾回收(garbagecollection):(1)集中管理文件系统特点:存储器空间的使用信息集中存放在存储器的某个地方,存储器的其它区域用于存放数据,数据必须依赖关键信息区才能被索引和使用缺点:需要大量缓存空间,当某扇区需要更新时,先将扇区数据备份到RAM中,再进行擦除操作,最后将修改后的备份写入FLASH,缺点是难以保证掉电安全,不能均匀使用存储器空间,特别是关键信息区,对文件系统的使用都会改写该区,导致FLASH快速损坏;FLASH文件系统的分类21(1)集中管理文件系统FLASH文件系统的分类21FLASH文件系统的分类(2)线性文件系统概述:每个文件相关的信息都连续存放在存储器中,实现简单,读写快速,文件系统的关键信息分布存放;优点:安全性好;能保证存储器的平均使用,延长了FLASH的使用寿命;缺点:对文件操作效率低,不易实现添加、插入、剪切等操作;22FLASH文件系统的分类(2)线性文件系统22(3)日志文件系统基本思想:跟踪文件系统的变化而不是文件系统的内容概述:日志结构的文件系统使用顺序的、只增的日志作为磁盘上唯一的组织文件系统数据的结构,文件的描述可以仍采用传统的索引组织方式。方法是在内存中将几次FS的修改汇集成一个大的日志条目(被称为段映像),然后动态分配磁盘空间并通过一次写操作写到磁盘上的一个连续的、固定大小的日志段(Segment)中。并定时或当系统发出同步写请求时保证日志同步写到磁盘上FLASH文件系统的分类23(3)日志文件系统FLASH文件系统的分类23系统纪录(SR,SystemRecord)文件分配表(FAT,FileAllocationTable)文件登记表(FRT,FileRegisterTable)数据区域(DataArea)典型FLASH文件系统的结构(1)系统记录(SR,SystemRecord)

存放媒质信息和最重要的文件系统信息。媒质信息诸如Flash存储器的类型、容量,划分成多少个区块,每区块包含多少个页面等。文件系统信息包括版本信息、保留区块的数目和位置、文件分配表和文件登记表所在的位置和大小、数据区域的位置和大小等。(2)文件分配表(FAT,FileAllocationTable)

存放着Flash存储器上所有区块的占用与空闲情况以及每个文件的存储连接结构,采用FAT16文件格式。24系统纪录文件分配表文件登记表数据区域典型FLASH文件系统(3)文件登记表(FRT,FileRegisterTable)存放着Flash文件系统中每一个文件的文件代号、文件长度、文件属性以及该文件的存储链在文件分配表中的入口。(4)数据区域(DataArea)用于存放文件的数据内容。本Flash文件系统中,数据分配的最小单位是Flash存储器的一个基本擦除单元,即一个物理区块(Block)。系统纪录(SR,SystemRecord)文件分配表(FAT,FileAllocationTable)文件登记表(FRT,FileRegisterTable)数据区域(DataArea)25(3)文件登记表(FRT,FileRegisterTabLBABlock/Page长度内容说明00/0512字节MBR=BPB+ExcutableCode+55AA1~20/1~0/21024字节FAT区(第一份FAT)3~40/3~0/41024字节FAT区备份(第二份FAT)5~39H0/5~0/3130K字节目录区(在BPB中调整目录项数,使其刚好占尽本block)40H1/1512字节数据区(因目录区占尽一个簇,故数据区始于新block首page)FLASH的前两个BLOCK26LBABlock/Page长度内容说明00/0512字节MBFILE结构体typedefstruct{ U8Buffer[BLOCK_SIZE]; //文件缓冲区 U32fileblock; //文件当前的簇的位置 U32filemode; //打开文件的模式 U32filebufnum;//文件缓冲区中已经读取/写入的字节数 U32fileCurpos; //读写的当前位置 U32filesize; //文件的大小}FILE;27FILE结构体typedefstruct{27与FLASH存储器的接口函数块擦除:unsignedcharErase_Cluster(unsignedintcluster)页写入:intWritePage(unsignedintblock,unsignedintpage,unsignedchar*pPage)页读出:voidReadPage(unsignedintblock,unsignedintpage,unsignedchar*pPage)28与FLASH存储器的接口函数块擦除:unsignedcha文件系统的相关API函数始始化文件系统:voidinitOSFile()以读取或者写入模式打开文件:File*OpenOSFile(Charfilename[],U32OpenMode)读文件到缓冲区:U32ReadOSFile(FILE*pfile,U8*ReadBuffer,U32nReadbyte)把缓冲区内容写入文件:U32WriteOSFile(FILE*pfile,U8*WriteBuffer,U32nWritebyte)关闭文件,释放缓冲区:voidCloseOSFile(FILE*Pfile)29文件系统的相关API函数始始化文件系统:voidinitOpenOSFile的工作的流程图30OpenOSFile的工作的流程图30ReadOSFile函数的程序流程图31ReadOSFile函数的程序流程图31WriteOSFile函数的程序流程图32WriteOSFile函数的程序流程图32否CloseOSFile函数的程序流程图33否CloseOSFile函数的程序流程图335.3常用的基于Flash文件系统1、JFFS文件系统

2000年Axis公司发布了他们开发的日志式Flash文件系统JFFS文件系统是开放源代码的文件系统,可以说是专门用于嵌入式Linux等系统的

JFFS是直接在Flash设备上实现的文件系统JFFS2没有为Flash设备专门设计一个转换层来模拟普通的文件系统,而是直接对Flash进行操作345.3常用的基于Flash文件系统1、JFFS文件系统34主要针对NORFlash设计,是一种基于Flash的JFFS文件系统日志文件系统JFFS的底层驱动(MTD)主要完成文件系统对Flash芯片的访问控制,如读、写、擦除操作JFFS2是JFFS的改进版,35主要针对NORFlash设计,是一种基于Flash的JJFFSJFFS2MTD驱动(MemoryTechnologyD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论