基于非2的n次幂大小的trueffs文件系统的创建

基于非2的n次幂大小的trueffs文件系统的创建

ID:9707100

大小:63.50 KB

页数:8页

时间:2018-05-05

基于非2的n次幂大小的trueffs文件系统的创建_第1页
基于非2的n次幂大小的trueffs文件系统的创建_第2页
基于非2的n次幂大小的trueffs文件系统的创建_第3页
基于非2的n次幂大小的trueffs文件系统的创建_第4页
基于非2的n次幂大小的trueffs文件系统的创建_第5页
资源描述:

《基于非2的n次幂大小的trueffs文件系统的创建》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于非2的n次幂大小的TrueFFS文件系统的创建  Flash存储器以其体积小、耗电省、非易失的特性,越来越广泛地应用于嵌入式系统开发中,成为重要的程序和数据载体。TrueFFS文件系统是M-systems公司推出的Flash管理软件,它为种类繁多的Flash提供了标准的块设备接口,因此被包括VxTD(MemoryTechnologyDriver)层实现Flash底层驱动,如读、写、擦除等;Socket层提供TFFS与硬件之间的接口服务,如向系统注册Socket设备、检测插拔、硬件写保护等。  2TrueFFS文件系统算法  

2、TrueFFS能均匀使用Flash,用冗余数据结构保证可靠的数据操作,能排除损坏以避免错误,实现了FTL(FlashTranslationLayer)标准。  (1)损耗均衡算法  Flash存储器的擦除寿命有限,随着使用次数的增多,它最终会变成只读状态。为延长其寿命,行之有效的方法就是平衡使用所有的存储单元,而不让某一单元过度使用。TrueFFS使用一种基于动态维护表的block-to-flash(块对应于Flash)传输系统来实现损耗均衡技术。当块数据被修改、移动或碎片回收后,这张维护表会自动调整。  (2)碎片回收  块数

3、据的修改使得Flash的一些块区域被填满无效数据,这些区域在擦除之前变得不可写。TrueFFS使用一种碎片回收(garbagecollection)机制来回收这些块。该机制从一个预擦除单元内拷贝所有的有效数据块到一个新的单元,然后更新block-to-flash映射表,最后擦除废旧的预擦除单元。  (3)块分配和关联数据集结  TrueFFS会将关联的数据(如出自同一个文件)集结到同一个单独擦除单元(eraseunit)内的一段连续的区域中。为此,TrueFFS尽量在同一个擦除单元(eraseunit)内维持一个由多个物理上连续

4、自由的块组成的存储池。这就提高了数据的读取效率,减少碎片的产生。  (4)错误恢复  TrueFFS使用了一种先写后擦的策略。当更新Flash一个扇区的数据时,只有在更新操作完成并且新存储的数据校验成功后,先前的数据才会被允许擦掉。操作成功,新扇区的数据才有效,否则老扇区的数据有效。  3开发背景介绍  在开发中使用的硬件电路板焊接了64MBSDRAM,两片NORFlash,每片8MB。嵌入式VxB。计划借助TrueFFS创建两个磁盘C和D,C中存放bootrom.bin和VxB、2MB、4MB或8MB。由于bootrom.bi

5、n是直接固化到第一片NORFlash中,所以无法实现将该Flash全部创建TFFS,导致不仅无法存放VxB空间用于固化bootrom.bin文件,上电后可自动运行bootrom;另外6MB空间创建TFFS文件系统。构建TFFS的过程中涉及5个文件的修改:config.h、Makefile、sysTffs.c、tffsConfig.c、i28f640.c。各文件改动如下:  (1)config.h:加入必要的定义  #defineINCLUDE_TFFS  #defineINCLUDE_TFFS_DOSFS  #defineINC

6、LUDE_TFFS_SHOakefile:将生成的i28f640.o编译进系统映像,加入定义  MACH_EXTRA=i28f640.o  (3)sysTffs.c:配置TFFS各项参数  #defineINCLUDE_MTD_I28F640  /*可以调用i28f640Identify函数*/  #defineINCLUDE_TL_FTL  /*包含需要使用的翻译层*/  #undefINCLUDE_TL_SSFDC  /*去掉不使用的翻译层*/  #defineFLASH_BASE_ADRS0  /*TFFS空间从0地址开始

7、*/  #defineFLASH_SIZE0x00800000  /*共8MB*/  改写sysTffsFormat函数,完成格式化过程。此处必须弄清tffsDevFormatParams中各个参数的定义。  typedefstruct{  longintbootImageLen;  /*bootImage需要从flash开始处预留的长度*/  unsignedpercentUse;  /*Flash被格式化的百分率,为了提高TrueFFS的性能,不要设为100%,以便任何时候都有空余空间。默认值为99%*/  unsigned

8、noOfSpareUnits;  /*空余擦除单元数目,目的在于flash出现坏块时可以用它来替代,默认为1*/  unsignedlongvmAddressingLimit;  /*FTL在RAM中映射的大小,默认为61Kbytes*/  FLStatus(*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。