收藏 分享(赏)

嵌入式文件系统的设计与实现.doc

上传人:精品资料 文档编号:10260568 上传时间:2019-10-25 格式:DOC 页数:3 大小:25.01KB
下载 相关 举报
嵌入式文件系统的设计与实现.doc_第1页
第1页 / 共3页
嵌入式文件系统的设计与实现.doc_第2页
第2页 / 共3页
嵌入式文件系统的设计与实现.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、邮寄地址: 成都市成华区二仙桥东三路 1号成都理工大学,田鑫,电话:13981752625嵌入式文件系统的设计与实现田鑫,黄虎,肖飞, 张祥军(成都理工大学信息科学与技术学院,四川 成都,610059)摘要:针对嵌入式系统的应用需求,设计了一种适合在数控系统中使用的嵌入式文件系统,并在嵌入式操作系统C/OSII 中实现。关键词:Flash 存储器 嵌入式系统 嵌入式文件系统 COSII1 引言随着嵌入式技术的发展,嵌入式应用所请求的数据日益剧增。在数控机床中, 零件加工程序主要由文件系统管理。针对此需求,我们设计了此嵌入式文件系统。2 嵌入式文件系统定义(一)概念分为三部分:嵌入式文件管理软件

2、、嵌入式文件、管理所需数据结构。(二)功能主要有三个功能:当用户操作文件时,为其提供相应的命令;提供相应的机制以供用户共享文件; 作为存储介质用以管理文件。3 嵌入式文件系统的设计(一)原理以及层次结构本文件系统将对一个可擦写块进行了平分,当文件进行读写操作时是以页为单位进行的。页存在三种状态:脏、干净和空。所存内容无效用脏页来表示;所存数据有效用干净页来表示;进行写入数据的操作时我们用空页来表示。一个内容是连续存储的文件通常情况下需要占用若干页,需要注意的是不能越过块边界进行存储。为了保存整个系统的信息,系统设置了一个索引节点。由于我们需要对系统进行维护和移植,设计如下体系结构。它主要由两大

3、部分构成:存储空间以及文件的管理。上层应用程序RTOS 嵌入式操作系统文件管理层文件逻辑层文件物理层存储设备分配 Flash 驱动层Flash 存储介质图 1 文件系统层次化结构及在系统中的位置(二)存储空间管理存储空间管理是基于 Flash 自身的物理特性而产生作用的。提高 Flash 的使用效率一般做法是利用一些特定的算法。在这篇文章中,我们的存储文件单位是页,管理闪存的单位是块。页的用户空间的作用是存放文件数据,页状态以及页类别则存放在其他的空间中。(三)文件管理 对此文件系统进行载入操作之后就建立了系统的映像。系统的映像包括:索引节点更新号、页状态表、下一个擦除块、当前块号、下一个空闲

4、页号和文件目录信息及文件信息。 内存中为每个文件都建立了映象。内存中的文件节点存放的是指针。打开文件时内存自动创建一块存储区域用来存放数据,指针指向存储区;不打开文件的时候,指针指向空。对文件系统进行载入操作时,首先应该遍历出最大的索引节点更新号,从而产生最新的索引节点;其次将页状态表进行映射;第三,根据所得文件目录信息,遍历所有节点,建立映像,并添加到对应的擦写块队列中。文件的打开、编辑和保存。文件打开过程,首先要分配数据区,将内容写入次数据区并让数据指针指向该数据区。文件保存过程,分为文件内容被修改和未被修改两种情况,第一种情况将数据区内容写入 Flash 中,最后将更新后的索引节点内容写

5、入 Flash;第二种情况只需要对数据指针进行一定的修改。文件编辑过程,比较数据和当前未使用空间的大小。4 系统处理机制(一)可靠性设计不稳定因素主要有两部分:一是物理性损坏,此时应提供坏块管理;二是突发掉电与重启动,使 Flash 存储器异常终止,建立断电恢复机制来解决此问题。(二)耗损平衡和垃圾回收机制设计 一般来说,堆是由垃圾回收来负责的,尽管规范并不要求特殊的垃圾回收技术,但是由于内存的有限性,在实现的时候都有一个由垃圾回收所管理的堆。回收脏页过程中应先擦除块中的干净页然后进行块擦除。(三)支持多任务系统该文件系统可同时运行多个文件,多任务处理机制的建立避免了多任务操作系统中冲突的产生

6、。5 系统实现和测试(一)文件系统的实现RTOS 为 COSII 型号的系统,采用ARMSYS44BOP 嵌入式系统开发板。在内核中添加相关数据结构,并对其进行一些修改,进行以上操作之后能够使加载的文件系统跟内核运行更好。在应用程序编写过程中,为了方便编写,需要统一的 API 接口,基本 API 调用如下:void OSFileInit():文件系统初始化Format():Flash 建立索引节点OS_F*OSFileOpen(INT8U*fname): 打开指定文件Void OsFileClose(OS_F*pF) : 关闭已打开文件INT32U OSFileRead (OS_F*pF, I

7、NT8U readBf, INT32U ReadByte) :读取字节数由第三参数决定Boolean OSFileWrite(OS_F*pF, INT8U writeBf, INT32U weadByte) :把缓冲区内容写入文件(二)文件系统的测试1、硬件环境宿主机为普通 PC ;目标机我们采用的是型号为 ARMSYS44BOP 的嵌入式开发板。2、软件环境分为三部分:COSII 的操作系统;采用 WIN7 作为宿主机操作系统;开发工具型号为ARM Develop Suite V1.2。3、功能测试主要分为两部分,一,Flash 驱动程序的运行;二,文件系统接口的作用以及在突然断电时文件系统

8、的恢复。4、测试结果3 秒内完成文件系统的载入,文件进行写入操作时,闪存的等待时间比较长,系统本身只占用很小的内存,产生 5K 大小的代码段。6 结论为了弥补 Flash 存储器所不能实现的功能,我们设计了此嵌入式文件系统。该系统可对嵌入式系统中的文件数据进行有效的存储和管理,同时在文件读写的过程中缩减了 Flash 存储器擦写的次数。7 参考文献1钟忻.幕春棣基于闪存的文件系统的实现J 计算机工程与应用,2003 年2赵明华. “和欣”操作系统构件化文件系统的设计与实现D.清华大学 :2005 年3张惠芳.一种高性价比的高清码流播放仪的研制D.电子科技大学 :2005 年4田进.分布嵌入式实时控制实验系统研究与开发D.西北工业大学 :2006 年作者简介:田鑫(1989-),硕士研究生,研究方向:信号处理与检测技术;黄虎,四川成都人,副教授,研究方向:电子与通信技术。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报