基于uTenux的fatfs文件系统移植本科毕业论文设计.doc

上传人:桔**** 文档编号:544049050 上传时间:2023-08-02 格式:DOC 页数:36 大小:762KB
返回 下载 相关 举报
基于uTenux的fatfs文件系统移植本科毕业论文设计.doc_第1页
第1页 / 共36页
基于uTenux的fatfs文件系统移植本科毕业论文设计.doc_第2页
第2页 / 共36页
基于uTenux的fatfs文件系统移植本科毕业论文设计.doc_第3页
第3页 / 共36页
基于uTenux的fatfs文件系统移植本科毕业论文设计.doc_第4页
第4页 / 共36页
基于uTenux的fatfs文件系统移植本科毕业论文设计.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《基于uTenux的fatfs文件系统移植本科毕业论文设计.doc》由会员分享,可在线阅读,更多相关《基于uTenux的fatfs文件系统移植本科毕业论文设计.doc(36页珍藏版)》请在金锄头文库上搜索。

1、本科毕业论文(设计)题目: 基于uTenux操作系统的 FatFs文件系统移植 学院: 数学与计算机科学学院 完成日期: 2013 年 6 月 2 日基于uTenux操作系统的 FatFs文件系统移植摘要:随着嵌入式技术的发展,尤其是ARM技术的不断更新,推出了cortex系列芯片,使得嵌入式设备的功能日益壮大,逐渐由单片机的时代过渡到微控制器的时代,对数据的访问量有了显著提高,这就要求数据操作层次清晰、透明度提高、可维护性、接口的标准化、移植性、灵活的操作和数据存储的可靠性等都提出了越来越高的要求,所以有必要引入文件系统来完成数据存储和管理的功能,为用户提供按名存取数据的接口,从而可以避免由

2、程序开发人员直接访问内存所带来的不安全性。本论文基于uTenux操作系统移植FatFS文件系统,详细论述了文件系统的实现原理,通过移植使得FatFS能在uTenux操作系统上运行。实现文件和目录创建、打开、读取、写入、关闭等功能。关键字:微控制器;uTenux;FatFS;ARM目录1 绪论11.1 实时操作系统简介11.1.1 实时操作系统的概念11.1.2 常见的实时微控制器操作系统及其对比11.2 嵌入式文件系统简介21.2.1 文件系统概述21.2.2 嵌入式文件系统一般体系结构31.2.3 文件系统概述41.3 嵌入式文件系统的必要性52 uTenux实时操作系统63 FatFS文件

3、系统的移植73.1 FAT协议介绍73.1.1 FAT协议概述73.1.2 FAT 保留区83.1.3 FAT表区103.1.4 FAT目录区103.1.5 FAT数据区113.2 FatFS文件系统的配置113.3 FatFS文件系统结构分析143.3.1 FatFS模块结构143.3.2 FatFS定义的结构体153.4 SD卡接口173.4.1 SD协议173.4.2 SD命令183.5 FatFS文件系统的移植193.5.1 开发环境uT/Stdio193.5.2 构建移植环境203.5.3 初始化213.5.4 读写函数234 移植结果的测试245 总结与展望26参考文献28致谢29

4、1 绪论1.1 实时操作系统简介1.1.1 实时操作系统的概念实时操作系统(Real-time Operation System,RTOS):系统能够及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行的嵌入式操作系统。在工业控制、航空航天、实时检测等流程控制要求非常精确的领域,必须要在指定的时间内做出指定的响应,这时就需要实时操作系统来控制。我们常常说的嵌入式操作系统都是嵌入式实时操作系统,比如uTenux、uC/OS-II。1.1.2 常见的实时微控制器操作系统及其对比1. uTenux微控制器操作系统uTenux是一款优秀的开源免费的实时微控制器操作

5、系统,是由大连悠龙软件科技有限公司开发与维护。Tenux是由T-Engine Linux 的缩写构成,Tenux具有(a)T-Engine的开源高实时性内核T-Kernel为内核;(b)Linux上丰富的开源中间件为中间件;(c)Eclipse+GNU开源开发工具为基础工具;(d)打造适合中国电子产品市场的开源嵌入式实时操作系统及方便的集成开发环境。uTenux适用于微控制器(Cortex M/ARM 7,ROM:大于64K),它的内核是uT-Kernel,具有丰富紧凑的中间件,比如FATFS、LWIP、FLTK。适用产品:小型物联网控制终端,比如机器人、智能仪表、小型数控机床、PLC、相机等

6、。它的特点有:(1) 所有源码公开、完全免费(2) 占有日本60%市场的成熟实时微内核 (3) 支持函数和软中断两种方式(4) 抢占式实时多任务操作系统(5) 不需要MMU,占用ROM/RAM少(6) 可以支持所有32位ARM7/9和Cortex M系列的微控制器(7) 可配置任意多个任务、任务的优先级最多255个2. uCOS微控制器操作系统uC/OS II (Micro Control Operation System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。

7、为了提供最好的移植性能,uC/OS II最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU (包括DSP)。uC/OS II可以简单的视为一个多任务调度器,在这个任务调度器之上完善并添加了和多任务操作系统相关的系统服务,如信号量、邮箱等。其主要特点有公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。从1992年开始,由于高度可靠性、鲁棒性和安全性,uC/OS II已经广泛使用在从照相机到航空电子产品的各种应用中。3. uTenux和ucos的对比(1) uTenux

8、有固定和可变尺寸内存池管理;ucos只有固定尺寸内存池。(2) uTenux的邮箱支持消息队列和任务等待队列,因此发送多个消息都可以;ucos的邮箱只能发送一条消息,很简单。(3) uTenux中有专门定义中断处理程序的系统调用-tk_def_int,很方便,而ucos中就没有。(4) uTenux有Trace、Hook等调试功能,而ucosii没有。(5) uTenux的任务堆栈等需要内存的地方,可以由系统自动分配也可以开发人员手工分配;但ucos只能手工分配。(6) uTenux的任务、信号量等系统对象采用ID方式实现,用户看不到内部的数据结构,对于安全性比较好,使用也方便;而ucos是用

9、户定义每个系统对象的变量。(7) uTenux的任务间通信机制比ucos多了好几种,比如集合点端口等,而且每个通信机制都支持任务队列和消息队列。(8) uTenux V1.5的易用性没有ucos的强,幸好uTenux已经意识到自己的问题,向ucos的易用性学习,在模仿中超越对手。(9) uTenux 终身开源免费,无论是学习、商用、修改再发布,而ucos只有学习时是开源免费的,商用必须付费。综上所述,学习uTenux的意义大于ucos。1.2 嵌入式文件系统简介1.2.1 文件系统概述文件系统是操作系统的重要组成部分,用于控制对数据、文件及设备的存储2。它提供对文件和目录的分层组织形式、数据缓

10、冲以及对文件的存储权限的控制。文件系统必须提供必要的用来创建、删除文件、读文件和写文件等相应的系统调用。文件的存储通过目录完成,所以对目录的操作是文件系统功能的一部分,文件系统应具有以下功能:提供对文件和目录的分层组织形式;建立与删除文件的能力;文件的动态增长和数据保护。硬盘的出现推动了针对桌面操作系统的文件系统的发展,同样,嵌入式存储设备特别是flash的出现,也推动了嵌入式文件系统的发展。1.2.2 嵌入式文件系统一般体系结构在嵌入式文件系统中,嵌入式系统可以针对特殊的目的定制,特别是随着ASOS(为应用定制的嵌入式操作系统)的发展,对嵌入式操作系统的系统功能完整性和可伸缩性提出了更高的要

11、求。所以不得不采取一种灵活的系统体系结构,对于操作系统来说,文件系统是一个独立的子包含的整体,可以灵活的加载和卸载,这一切操作对操作系统内核的功能没有任何影响。嵌入式文件系统系统体系结构从上到下一般有3层,如图1.1所示。图1.1 嵌入式操作系统体系结构最上一层是文件系统的核心,使文件系统实现的核心算法,提供了用户可见的所有API函数,以供用户操作数据,这一层是文件系统功能的集合。第二层是高速缓冲管理,高速缓冲区的大小直接关系到文件系统的处理效率,高效的缓冲区处理算法能大幅提高数据的处理效率;同时它为文件系统提供了与硬件无关的接口,为文件系统的层次性提供了基础。最下面一层是设备驱动程序,涉及到

12、具体的硬件。设备驱动程序的另一个重要任务就是提供统一设备驱动接口。文件系统和操作系统内核的关系主要体现在三方面:实时时钟、信号量和中断管理。用时钟实现外设任务的等待延时;用信号量实现外设的同步和互斥;用中断管理机制管理外设的中断处理程序。1.2.3 文件系统概述目前,嵌入式文件系统解决方案比较多,由于嵌入式设备的多样性,相应文件系统的实现也有针对各种设备的,如只读存储器、可读存储器、Flash存储器等。嵌入式文件系统也是要针对嵌入式操作系统的。1. FatFSFatFS是一个开源免费通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。FatFs 的编写遵循ANSI C,因此不依赖于硬

13、件平台。它可以嵌入到便宜的微控制器中,如8051、PIC、AVR、SH、Z80、H8、ARM等等。它是window兼容的FAT文件系统,平台依赖性小,易于移植,代码和工作区占用非常小,有多种配置选项。通过配置FatFS可以使得FatFS占用的RAM达到44字节,代码空间的占用可以小到2K-4K,在这样小的空间中它还能支持FAT32,这是以文件的写功能的限制为代价的。 FatFS是标准FAT文件系统的小型嵌入式文件系统,它是一个自由软件,可以用于教育、研究、商业。在使用过程中不用担心被限制。用户可以修改,重新发布以个人的身份。但是必须在源代码中包含这个版权申明。文件分配表FAT(File All

14、ocation Table)用来跟踪硬盘上每个文件的数据库,而FAT表存储关于簇的信息。FAT表示microsoft在FAT文件系统中用于磁盘数据(文件)索引和定位引进的一种链式结构。在FAT文件系统中,文件的存储依照FAT表制定的簇链式数据结构来进行。同时,FAT文件系统将组织数据时使用的目录也抽象为文件,以简化对数据的管理。FAT分区格式是microsoft最早支持的分区格式,依据FAT表中的每个簇链的所占位数分为FAT12、FAT16、FAT32三种形式,但其基本存储方式是相似的。如图1.2所示。图1.2 FatFs模块结构2. uC/FSuC/FS是uCOS的文件系统,它是由Micri

15、um公司新开发的一个产品,主要应用在使用uCOS内核的嵌入式系统中。uC/FS是一个用于能提供基础访问功能的FAT格式的文件系统,是一个高效率的库,为高速、多功能及内存使用进行优化。它用ANSI C编写,由不同的层次结构组成,包括API层、文件系统层、逻辑区块层、设备驱动和硬件层。总之,在上述的嵌入式文件系统中,FatFS和uC/FS都用于小容量闪存设备,功能都比较齐全。但是uC/FS是属于拥有知识产权的技术,是商业产品,而FatFS则完全是开源免费的,用户可以随时下载所有全代码,更改和再发布。随着NAND FAlsh作为嵌入式系统中大容量存储介质的普及应用,FatFS文件系统作为开源代码的项目,得到芯片产商,项目开发人员的一致好评。所以在本项目中选择FatFS作为目标文件系统。1.3 嵌入式文件系统的必要性嵌入式系统过去主要用于工业控制领域,对效率的比较高,对于数据处理不够重视,引入文件系统不但没有必要而且会降低效率,所以很多嵌入式系统应用都没有加载操作系统。随着嵌入式处理器性能的不断升级,嵌入式系统的功能不断加强,用户的需求也和功能复杂度的增加,许多嵌入式系统都面临着处理大量数据的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业合同/协议

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号