原创 【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第四十五章 FATFS实验

2013-4-6 23:05 1385 16 16 分类: MCU/ 嵌入式 文集: STM32学习

第四十五章  FATFS实验

上一章,我们学习了SD卡的使用,不过仅仅是简单的实现读扇区而已,真正要好好应用SD卡,必须使用文件系统管理,本章,我们将使用FATFS来管理SD卡,实现SD卡文件的读写等基本功能。本章分为如下几个部分:

45.1 FATFS简介

45.2 硬件设计

45.3 软件设计

45.4 下载验证


 

45.1 FATFS简介    

FATFS是一个完全免费开源的FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准C 语言编写,所以具有良好的硬件平**立性,可以移植到8051PICAVRSHZ80H8ARM 等系列单片机上而只需做简单的修改。它支持FATl2FATl6 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对8 位单片机和16 位单片机做了优化。

FATFS的特点有:

l  Windows兼容的FAT文件系统(支持FAT12/FAT16/FAT32

l  与平台无关,移植简单

l  代码量少、效率高

l  多种配置选项

²  支持多卷(物理驱动器或分区,最多10个卷)

²  多个ANSI/OEM代码页包括DBCS

²  支持长文件名、ANSI/OEMUnicode

²  支持RTOS

²  支持多种扇区大小

²  只读、最小化的APII/O缓冲区等

FATFS的这些特点,加上免费、开源的原则,使得FATFS应用非常广泛。FATFS模块的层次结构如图45.1.1所示:

 


45.1.1 FATFS层次结构图

最顶层是应用层,使用者无需理会FATFS的内部结构和复杂的FAT 协议,只需要调用FATFS模块提供给用户的一系列应用接口函数,如f_openf_readf_write f_close等,就可以像在PC 上读/写文件那样简单。

中间层FATFS模块,实现了FAT 文件读/写协议。FATFS模块提供的是ff.cff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。

需要我们编写移植代码的是FATFS模块提供的底层接口,它包括存储媒介读/写接口(disk I/O)和供给文件创建修改时间的实时时钟。

FATFS的源码,大家可以在:http://elm-chan.org/fsw/ff/00index_e.html 这个网站下载到,目前最新版本为R0.09a。本章我们就使用最新版本的的FATFS作为介绍,下载最新版本的FATFS软件包,解压后可以得到两个文件夹:docsrcdoc里面主要是对FATFS的介绍,而src里面才是我们需要的源码。

其中,与平台无关的是:

 非常抱歉,由于编辑器篇幅所限,剩下内容,请看附件。

 

文章评论0条评论)

登录后参与讨论
我要评论
0
16
关闭 站长推荐上一条 /2 下一条