在嵌入式系统中实现文件系统的方法

文档序号:6581286阅读:149来源:国知局
专利名称:在嵌入式系统中实现文件系统的方法
技术领域
本发明涉及文件操作方法,尤其是涉及一种在嵌入式系统中实现文件系统的方法。
背景技术
在已有的嵌入式文件系统技术中,大部分是FAT或Ext2fs文件系统,由于FAT和 Ext2fs等文件系统是以IDE只支持像IDE那样的块设备,不但代码比较庞大,而且没有考虑 设备擦写时序和时间要求,没有掉电保护。而对于专用于嵌入式系统的JFFS2文件系统。除了本身比较复杂外,它主要设计 应用于Linux操作系统,对Linux操作系统的运行机制依赖性比较大,因而难以移植;它是 一种基于日志型的文件系统,导致了启动速度比较慢。另外JFFS2对损耗平衡是用概率的 方法来解决的,这很难保证损耗平衡的确定性,在一定程度上造成了对擦写块不必要的擦 写操作。因此,目前嵌入式系统的这些文件系统过于强调通用性,而忽略了嵌入式系统对 文件系统的特殊要求。在嵌入式系统中,一般要存储的文件个数不多;数据总容量不大;安 全性要求比较高,要能断电保护;代码对操作系统依赖性要小,以便于移值;文件系统本身 代码要简单,以节省系统资源。

发明内容
本发明提出一种在嵌入式系统中实现文件系统的方法,实现了一个可根据需要配 置修改需存储文件个数和总容量,具备断电保护功能,对操作系统依赖性小便于移植,而且 本身代码简单的文件系统。本发明采用了如下技术方案来实现一种在嵌入式系统中实现文件系统的方法, 其包括步骤建立由若干个用于分别描述每个文件信息的文件信息结构构成文件信息区和用 于存储文件的文件数据区组成的文件系统;初始化文件系统;通过日志的方法来建立和维护文件信息区,每次对文件进行写操作时,在将文件 写入到文件数据区后,再将文件信息的记录更新至文件信息区信息。其中,文件信息结构包括文件长度信息、文件所占用的基本存储单位的个数、文 件所占用的基本存储单元的位置信息数组。其中,文件信息区的结构包括日志版本号、文件信息结构数组、文件信息结构数 组的校验信息、更新标识。其中,文件系统初始化包括步骤获得并记录用于文件系统中文件数据区及存储器中各个区块的序号和存储容量 大小的信息;
以基本存储单元获得各个区块中存储单元的状态信息建立存储单元状态数组;获得并记录用于文件系统中文件信息区总容量、以及各个区块的序号和大小,把 文件信息区按文件信息区结构为基本单位构成文件系统数据库单元数组;遍历文件系统数据库单元数组,搜索日志版本号最大的数据库单元索引,维护该 文件系统数据库单元数组中序号等于前述日志版本号最大的数据库单元索引值的数组元 素所指向的文件信息区信息。另外,对文件进行写操作的步骤包括判断进行写操作的数据存储单元的总容量是否大于待写入的数据长度,若是,则 转入下一步骤,否则,擦除所有无效的基本数据存储单元使进行写操作的数据存储单元的 总容量大于待写入的数据长度;找到可进行写操作的数据存储单元对应的位置信息,顺序写入数据到存储单元;在文件信息区更新文件信息。与现有技术相比,本发明具有如下有益效果本发明提出了一种简单易于操作的文件系统实现方法,实现了一个可根据需要配 置修改需存储文件个数和总容量;具备断电保护功能,对操作系统依赖性小便于移植,对文 件读写操作效率高,并且代码小占用资源少的文件系统。


图1是初始化文件系统的流程示意图;图2是对文件系统写操作的流程示意图。
具体实施例方式本发明提出了一种简单易于操作的文件系统实现方法,实现了一个可根据需要配 置修改需存储文件个数和总容量;具备断电保护功能,对操作系统依赖性小便于移植,对文 件读写操作效率高,并且代码小占用资源少的文件系统。本发明提出的文件系统配置如下1、根据具体需求确定文件系统能存储的最多文件个数FILE_NUM,及文件系统能存 储的数据总容量大小MAX_SUE。2、根据具体需求确定文件系统的基本存储单元的容量UNIT_SUE,一般可以为 2K、4K等。如果MAX_SUE大而FILE_NUM小,那么UNIT_SUE可以设大点如为8K,16K等; 如果MAX_SUE小而FILE_NUM大,那么UNIT_SUE可以设小些,如设为IK等。3、本发明提出的文件系统由两部分组成文件信息区和文件数据区。由个数是 FILE_NUM的描述文件信息的结构构成了文件信息区,其中文件信息的结构及各成员含义如 下表1所示
成员名含义和作用status该文件结构信息是否使用标识
权利要求
1.一种在嵌入式系统中实现文件系统的方法,其特征在于,该方法包括步骤建立由若干个用于分别描述每个文件信息的文件信息结构构成文件信息区和用于存储文件的文件数据区组成的文件系统;初始化文件系统;通过日志的方法来建立和维护文件信息区,每次对文件进行写操作时,在将文件写入 到文件数据区后,再将文件信息的记录更新至文件信息区信息。
2.根据权利要求1所述在嵌入式系统中实现文件系统的方法,其特征在于,文件信息 结构包括文件长度信息、文件所占用的基本存储单位的个数、文件所占用的基本存储单元 的位置信息数组。
3.根据权利要求2所述在嵌入式系统中实现文件系统的方法,其特征在于,文件信息 区的结构包括日志版本号、文件信息结构数组、文件信息结构数组的校验信息、更新标识。
4.根据权利要求3所述在嵌入式系统中实现文件系统的方法,其特征在于,文件系统 初始化包括步骤获得并记录用于文件系统中文件数据区及存储器中各个区块的序号和存储容量大小 的信息;以基本存储单元获得各个区块中存储单元的状态信息建立存储单元状态数组;获得并记录用于文件系统中文件信息区总容量、以及各个区块的序号和大小,把文件 信息区按文件信息区结构为基本单位构成文件系统数据库单元数组;遍历文件系统数据库单元数组,搜索日志版本号最大的数据库单元索引,维护该文件 系统数据库单元数组中序号等于前述日志版本号最大的数据库单元索引值的数组元素所 指向的文件信息区信息。
5.根据权利要求3所述在嵌入式系统中实现文件系统的方法,其特征在于,对文件进 行写操作的步骤包括判断进行写操作的数据存储单元的总容量是否大于待写入的数据长度,若是,则转入 下一步骤,否则,擦除所有无效的基本数据存储单元使进行写操作的数据存储单元的总容 量大于待写入的数据长度;找到可进行写操作的数据存储单元对应的位置信息,顺序写入数据到存储单元;在文件信息区更新文件信息。
全文摘要
一种在嵌入式系统中实现文件系统的方法,其包括步骤建立由若干个用于分别描述每个文件信息的文件信息结构构成文件信息区和用于存储文件的文件数据区组成的文件系统;初始化文件系统;通过日志的方法来建立和维护文件信息区,每次对文件进行写操作时,在将文件写入到文件数据区后,再将文件信息的记录更新至文件信息区信息。本发明实现了一个可根据需要配置修改需存储文件个数和总容量;具备断电保护功能,对操作系统依赖性小便于移植,对文件读写操作效率高,并且代码小占用资源少的文件系统。
文档编号G06F17/30GK102103596SQ20091018899
公开日2011年6月22日 申请日期2009年12月18日 优先权日2009年12月18日
发明者彭文剑 申请人:康佳集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1