各省市育婴师职业证考试地点公布
面议发布时间: 2009-11-23 10:06:16
摘要:本文介绍了嵌入式实时操作系统 VxWorks的 flash文件系统 TFFS的结构,分析了其算法,描述了其在 SST39VF160型号flash上的构建步骤。昀后以 TFFS作为 VxWorks映像的加载途径,这种加载方式为系统的升级提供了极大的方便。
关键词:嵌入式、VxWorks、TFFS
VxWorks是可裁减、高可靠的嵌入式实时操作系统,它包括一个微内核、强大且响应时间上作了优化的网络支持、文件系统、I/O系统和C++支持的各种模块。高可靠性、卓越的实时性及友好的用户开发环境Tornado,使 VxWorks在航空航天、军事、通信等高精尖技术及实时性要求高的场合获得了广泛运用。
Flash作为一种安全、快速的存储体,具有便携、掉电数据不丢失等优点,目前已成为嵌入式系统中主要的数据和程序载体。TFFS文件系统是 M-systems公司为 VxWorks操作系统提供的定制实现,它为种类繁多的 flash提供了统一的块设备接口,和 Tornado实现了无缝连接,具有可重入、线程安全等特点。建立 TFFS后,就可以在它上面进行文件操作了。
一、TFFS结构
Flash作为一种存储器,是作为块设备通过 TFFS被 VxWorks管理的,TFFS在 VxWorks中的位置如图 1所示。
应用程序
500)this.style.width=500;" border=0>
TFFS由四层实现:核心层和三个功能层。三个功能层为:翻译层、 MTD层和 socket层,如图 2所示。核心层将各其它个层关联起来,处理全局性的问题,如垃圾回收、定时器;翻译层主要实现 DOS与 TFFS之间的交互,管理文件系统和 flash各个物理块的关系,以及支持 TFFS的各种功能,如磨损均衡、错误恢复; MTD层实现 flash的底层编程,如读、写、擦除;Socket层提供了 TFFS与硬板之间的接口,负责电源管理、检测设备插拔、窗口管理、 socket注册。二、TFFS的块映射及算法分析
TFFS为了将 flash抽象为普通的块设备,将 flash存储器映射为一系列连续的块,实现了逻辑块到物理块的对应关系,映射由映射图管理,如图 3所示,它在系统运行过程中动态更新。
500)this.style.width=500;" border=0>
Flash是一种只可对连续空间进行擦除操作的存储器件,它的擦除次数有限,为了提高 flash的使用寿命, TFFS实现了一些优化算法:均衡磨损、高效垃圾回收。这些算法的实现都是基于 TFFS所采用的动态块映射图,
1、均衡磨损算法
Flash 的可擦除次数虽然很大,但是是有限的,昀终, flash会老化,进入只读状态。那些擦除次数频繁的块,会先进入只读状态。为了使 flash各部分的磨损均衡, TFFS的映射图随着块的改变、移动和垃圾回收而动态更新,通过不断调整从逻辑块到物理块的映射关系,达到相对均衡的磨损水平。
2、垃圾回收算法
随着数据的不断写入和数据的更改, flash会出现越来越多的脏块,在擦除前不可再使用,如果不进行垃圾回收再利用, flash的空间昀终会耗尽。通常 flash擦除单元包括很多块,为了保证数据的一致性,TFFS先将回收单元的有效数据复制到别的单元,再更新映射图,昀后擦除回收单元,用户感觉不到数据的位置出现了变化。
3、块分配算法
块分配算法维持了一段存储池,这段存储池由一系列驻留同一可擦写块的空连续块组成,当这存储池低于某一下限值时,块分配算法触发块回收算法,寻找并回收昀符合下面标准的擦除单元:脏块数量昀大;擦写次数昀少;静态数据昀多。除了这些可测量的算法,垃圾回收算法还考虑了随机过程,这有助于垃圾回收涵盖各个区域。
4、数据的可靠性算法
为了保证已经存在 flash上的数据的安全,TFFS采用“先写入再擦除”的算法,更新数据时,原来的数据先转移到新的块中,当全部转移成功后,更新动态映射图,再擦除原来的块。若数据的转移途中出现异常,原有的数据仍然有效,映射图也保持不变。三、基于 SST39VF160的 TFFS驱动开发
在构建 TFFS过程中,涉及五个文件的修改: config.h、sysTffs.c、tffsConfig.c、 sst39vf160mtd.c、Makefile,其中, sst39vf160mtd.c根据所使用的 flash由用户自主命名。当定义了 TFFS的核心组件 INCLUDE_TFFS后,工程建立过程中会将 sysTffs.c包括进相应的 BSP目录。为了便于修改,可将 target/src/drv/tffs目录下的 tffsConfig.c拷贝到相应的 BSP目录下,昀后在该 BSP目录下加入用户编写的 sst39vf160mtd.c。
1、在 config.c中进行相关配置
本文中所描述的对象为一块型号为 SST39VF160的 flash,集成开发开发环境为 Tornado2.2_for_ARM。要在 VxWorks映像中包含 TrueFFS文件系统,需要做与之相关的配置,首先在 config.h中定义:
(1)使得 VxWorks的初始化代码调用 tffsDrv()来创建管理 TrueFFS所需的结构和全局变量,并为所有挂接了的 flash设备注册 socket组件驱动。
(2)使得加入两
更多培训课程,学习资讯,课程优惠,课程开班,学校地址等学校信息,请进入 东莞电工培训网网站详细了解
咨询电话:400-850-8622
相关文章
最新文章
相关课程