FatFs特点和应用接口以及其移植方法

FatFs特点和应用接口以及其移植方法,第1张

FatFs是一个通用的文件系统模块,以小的嵌入式系统的FAT文件系统。 FatFs的编程遵守的ANSI C格式语法标准,因此,它是具有独立于硬件架构。 在不做任何改变就可以被移植到常用的微控制器中,如8051, PIC, AVR, SH, Z80, H8, ARM等。

FatFs 特点

分离缓冲的FAT结构和每一个文件,适合快速访问多个文件。
支持多个驱动器和分区。
支持FAT12 , FAT16和FAT32 。
支持8.3格式的文件名(LFN不支持)
支持两个分区规则: Fdisk和超级软盘。
优化8/16-bit微控制器。

应用接口

FatFs /微型FatFs模块提供下列功能。
f_mount – 登记或注销一个工作领域
f_open -打开或创建文件
f_close – 关闭一个文件
f_read – 读文件
f_write – 写文件
f_lseek -移动文件读/写指针
f_truncate – 截断文件
f_sync – 刷新缓存的数据
f_opendir – 打开一个目录
f_readdir – 阅读目录项目
f_getfree -获取免费集群
f_stat – 获取文件状态
f_mkdir – 创建一个目录
f_unlink – 删除文件或目录
f_chmod – 更改属性
f_uTIme – 变更时间戳记
f_rename -重命名/移动文件或目录
f_mkfs – 创建一个文件系统的驱动器
f_forward -转发文件数据流直接
fgets – 读一个字符
fputc – 写一个字符
fputs – 写一个字符串
fprintf – 写格式化字串

disk_iniTIalize -初始化的磁盘驱动器
disk_status – 获取磁盘状态
disk_read – 读部门(星期日)
disk_write – 收件部门(星期日)
disk_ioctl – 控制装置依赖功能
get_fatTIme – 获取当前时间

一种易于移植和使用的文件系统FatFs Moule

引 言

随着信息技术的发展,当今社会的信息量越来越大,以往由单片机构成的系统简单地对存储媒介按地址、按字节的读/写已经不满足人们实际应用的需要,于是利用文件系统对存储媒介进行管理成了今后单片机系统的一个发展方向。目前常用的文件系统主要有微软的FATl2、FATl6、FAT32、NTFS,以及Linux系统下的EXT2、EXT3等。由于微软Windows的广泛应用,在当前的消费类电子产品中,用得最多的还是FAT文件系统,如U盘、MP3、MP4、数码相机等,所以找到一款容易移植和使用、占用硬件资源相对较小而功能又强大的FAT开源文件系统,对于单片机系统设计者来说是很重要的。

FatFs Module是一种完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准C语言编写,所以具有良好的硬件平台独立性,可以移植到8051、PIC、AVR、SH、Z80、H8、ARM等系列单片机上而只需做简单的修改。它支持FATl2、FATl6和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对8位单片机和16位单片机做了优化。FatFs Module有个简化版本TIny—FatFs,它跟完全版FatFs的不同之处主要有两点:

①占用内存更少,只要1 KB RAM

②1次仅支持1个存储介。

FatFs和Tiny—FatFs的用法一样,仅仅是包含不同的头文件即可,非常方便,本文主要介绍Tiny-FatFs.

1 Tiny-FatFs

1.1 移植前的准备

FatFs Module一开始就是为了能在不同的单片机上使用而设计的,所以具有良好的层次结构,如图1所示。最顶层是应用层,使用者无需理会FatFs Module的内部结构和复杂的FAT协议,只需要调用FatFs Module提供给用户的一系列应用接口函数,如f_open,f_read,f_write、f_close等,就可以像在PC上读/写文件那样简单。

 

 

 

中间层FatFs Module实现了FAT文件读/写协议。FatFs Module的完全版提供的是ff.c、ff.h,简化版Tiny—FatFs提供的是tff.c、tff.h。除非有必要,使用者一般不用修改,使用时将需要版本的头文件直接包含进去即可。

需要使用者编写移植代码的是FatFs Module提供的底层接口,它包括存储媒介读/写接口DiskIO和供给文件创建修改时间的实时时钟

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2585419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-08
下一篇 2022-08-08

发表评论

登录后才能评论

评论列表(0条)

保存