IT技术互动交流平台

VxWorks文件系统、Flash的TFFS设计与实现

来源:IT165收集  发布日期:2011-11-02 18:22:52

0 引言

在VxWorks的应用系统中,基于flash的文件系统通常都采用DOS+FAT+FTL的结构。

一般情况下,磁盘文件系统大多是基于sector的文件系统,磁盘按照物理上分为柱面、磁盘、扇区,扇区是基于块的文件系统操作的基本存储单位,磁盘的容量都是根据这些数据计算出来的,每个扇区大小通常都是512bytes。

VxWorks文件系统中的DOSFS是MS-DOS兼容的文件系统,可基于块对物理介质进行操作。由于Fish的物理特性,对Flash作基于块(不同于Flash的擦除块)的操作必须由软件作封装实现,这就是TFFS所起的作用。

1 VxWorks文件系统的总体结构

VxWorks文件系统的总体结构以及TFFS在整个文件系统的位置如图l所示。



Tomado下的TFFS文件系统是Tornado的一个可选组件,它可为种类繁多的Flash设备提供一个统一的块设备接口。在Tornado2.2版本中自带的TFFS版本为2.0,在文件系统中,TFFS的功能相当于磁盘驱动,通过TFFS可使上层的DOSFS或RTll文件系统像操作普通的标准磁盘一样来操作Flash。

2 TFFS文件系统的分层

图2所示为TFFS文件系统的分层图。图中的Core Layer内核层可将其他层连接起来协同工作;翻译层主要实现DOS和TFFS之间的交互、管理文件系统和Flash各个物理块的关系,同时支持TFFS的各种功能,如磨损均衡、错误恢复等;MTD层执行底层的程序驱动(map、read、write、erase等);socket层的名称来源于可以插拔的socket存储卡,主要提供与具体的硬件板相关的驱动。



3 FTL层分析

FTL是TFFS文件系统的核心,它是PCMCIS的一项标准,意思是Flash Translation Laycr Specification,这种类型的文件系统是目前嵌入式系统中最流行的,很多公司都提供这种文件系统的相关解决方案。

PTL为DOS BPB/FAT与Flash之间的中间层,FTL利用现成的基于块的文件系统(例如DOSFS)来实现应用层的操作,实质上就是在Flash设备上模拟磁盘块设备的实现,为基于块的文件系统提供统一的接口。FTL通过以下几步来模拟磁盘驱动:首先是在Flash擦除块之外定义小的读写块(相当于磁盘扇区);其次是逻辑扇区(对块文件系统如DOSFS呈现的地址)和物理地址(Flash的实际地址)之间的转换;然后管理Flash,使得能在空闲的地方写入数据。其核心就是将DOS上的扇区映射到Flash上去。

为了实现DOS层从逻辑上看扇区是连续的,可随时对任意bit读写操作,FTL必须提供对Flash芯片的管理,包括向上层(DOS层)提供可以任意读写的操作接口,向下对Flash的擦除、写入、读取统一管理,同时还必须提供磨损均衡,以防止一个擦除块提前损坏。
 

Tag标签: VxWorks   文件系统   Flash  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规