FatFs中文介绍和移植方法(转载)

2020-01-27 11:39发布

本帖最后由 ding_ding0304 于 2013-7-2 13:41 编辑

FatFs中文介绍和移植方法

本文很不错,故转载如下,但不是最新版的FatFS。 FatFS的官方网站  提供了详细的资料


——————————————一下为转载—————————————————————-
下面是我做的一些中文解释。大家可以到原网站获取更多的信息。

http://elm-chan.org/fsw/ff/00index_e.html

英文原文:FatFs is a generic file system module to implement the FAT file system to small embedded systems. The FatFs is written in compliance with ANSI C, therefore it is independent of hardware architecture. It can be incorporated into cheap microcontrollers, such as 8051, PIC, AVR, SH, Z80, H8, ARM and etc…, without any change.

中文译文:

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 I/O Interface

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上读/写文件那样简单。
1224751985_ddvip_2440.jpg (269.09 KB, 下载次数: 0) 下载附件 2013-7-2 12:54 上传

经过实际测试,在单片机系统时钟为11.059 2 MHz下读一个3.4 MB文件耗时约20 s,平均约170 KB/s;写一个1 MB文件耗时约6s,平均约166 KB/s,在资源有限的单片机系统下这个读/写速度是相当令人满意的。综上所述,FatFs Module具有容易移植、功能强大和易于使用的优点,适用于小型嵌入式系统;又是完全的免费和开源,也可以用于教育科研及其商业用途。

本文转载自: laorenshen的专栏
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。