fatfs文件系统移植和应用

fatfs文件系统移植和应用

ID:34723008

大小:70.18 KB

页数:4页

时间:2019-03-10

fatfs文件系统移植和应用_第1页
fatfs文件系统移植和应用_第2页
fatfs文件系统移植和应用_第3页
fatfs文件系统移植和应用_第4页
资源描述:

《fatfs文件系统移植和应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、FATFS文件系统的移植作者:LJ时间:2010年11月12日随着信息技术的发展,目前常用文件系统主要有微软的FAT12、FAT16、FAT32、NTES文件系统,以及Linux系统的EXT2、EXT3等。由于Windows操作系统的广泛应用,当前很多嵌入式产品中用的最多的还是FAT文件系统。所以,选择一款容易移植和使用,并且占用资源少而功能全面的文件系统就显得非常重要了。FATFS文件系统是一个完全免费且开源的FAT文件系统模块,由小日本工程师编写,它支持FAT12、FAT16和FAT32文件系统,专门为

2、小型的嵌入式系统而设计。模块用标准的C语言编写,可以很容易地移植到各种硬件平台。在“驱动程序”文件夹中有一个“FatFsR0.07c”文件夹,这是官方提供的FATFS文件系统的源码和文档,版本为R0.07c。打开“doc”文件夹下的“00index_e.html”英文网页文档,里面有FATFS文件系统的全部API函数说明,相对应的应用实例和如何编写硬件接口程序的说明。如果您的英文不怎么好,建议您先装一个有道词典,使用屏幕取词功能,能帮助我们阅读和理解。“00index_j.html”则是日文版的网页,毕竟是

3、小日本写的。“src”文件夹存放有FATFS文件系统源码,下面是该文件夹下各个文件或文件夹存放的内容说明:“ff.h”文件:FATFS文件系统的配置和API函数声明;“ff.c”文件:FATFS源码;“diskio.h”文件:FATFS与存储设备接口函数的声明;“diskio.c”文件:FATFS与存储设备接口函数;“integer.h”文件:FATFS用到的所有变量类型的定义;“option”文件夹:存放一些外接函数,下一实例有实际的讲解;“00readme.txt”文件:FATFS版本及相关信息说明;编

4、译工程,没有通过,根据编译信息提示在“diskio.c”文件中在几个函数没有定义。这很正常,因为我们还没有编写文件系统与存储设备的接口函数。下面来分析“diskio.c”文件中各个函数的功能:“DSTATUSdisk_initialize(BYTEdrv)”是存储媒介的初始化函数,由于我们使用的是SD卡,所以实际上是对SD卡的初始化;“DSTATUSdisk_status(BYTEdrv)”状态检测函数,检测是否支持当前的存储设备,支持返回0;“DRESULTdisk_read(BYTEdrv,BYTE*b

5、uff,DWORDsector,BYTEcount)”是读扇区函数,drv是要读扇区的存储媒介号,*buff存储读取的数据,sector是读数据的开始扇区,count是要读的扇区数。在SD卡的驱动程序中,分别提供了读一个扇区和读多个扇区的函数。当count==1时,用读一个扇区函数;当count>1时,用读多个扇区的函数,这样提高了文件系统读效率。操作成功返回0。“DRESULTdisk_write(BYTEdrv,BYTE*buff,DWORDsector,BYTEcount)”写扇区函数,drv是要写扇

6、区的存储媒介号,*buff存储写入的数据,sector是写开始扇区,count是要写的扇区数。同样在SD卡的驱动程序中,分别提供了写一个扇区和写多个扇区的函数。当count==1时,用写一个扇区函数;当count>1时,用写多个扇区的函数,这样提高了文件系统写效率。操作成功返回0。“DRESULTdisk_ioctl(BYTEdrv,BYTEctrl,void*buff)”是存储媒介控制函数,drv是存储媒介号,ctrl是控制代码,*buff存储控制数据,可以在此函数编写自己需要的功能代码。比如,获得存储媒

7、介的大小,检查存储媒介上电已否,读取存储媒介的扇区数等。在我们的系统中没有用到,直接返回0。在“ff.c”文件中,需要用户提供一个“get_fattime”实时时钟函数,要求返回一个32位无符号整数,时钟信息包含如下:Bit31:25,年(0..127)从1980年到现在的年数;Bit24:21,月(1..12);Bit20:16,日(1..31);Bit15:11,时(0..23);Bit10:5,分(0..59);Bit4:0,秒/2(0..29)我们没有用到实时时钟,可以直接返回0;最后,在“disk

8、io.c”文件中应包含“SD_Device.h”头文件。通过上面对文件系统硬件接口函数的修改,再次编译工程,发现BOOL变量类型被重复定义,我们打开“stm32f10x.h”文件,注释掉自行定义的BOOL变量类型,编译通过。将“ff.h”文件包含到“include.h”文件中。届时,我们就可以在整个工程里使用FATFS文件系统了。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。