FatFs is a generic FAT file system module for small embedded systems.
FatFs的作者写了两个,一个是正宗的FatFs,比较适合大的RAM的设备,另一个是FatFs/Tiny,比较适合小RAM的系统,比如单片机,FatFs/Tiny占用较小的RAM,代价是更慢的读写速度和更少的API函数。不过两个都支持FAT12,FAT16,FAT32文件系统。
我们把源代码下载下来,最新的版本应该是0.09.下载下来的ff9.zip有两个文件夹,一个是 doc ,FatFs的说明,包括特性,系统函数,以及可能的一些问题,另一个就是源代码文件夹src了,diskio.c和diskio.h是硬件层,ff.c和ff.h是FatFs的文件系统层和文件系统的API层,integer.h是文件系统所用到的数据类型的定义,还有一个00readme.txt简要的介绍了FatFSHE FatFs/Tiny,包括他们所支持的API,怎么配置等等。
写底层的驱动函数,包括:
disk_initialize - Initialize disk drive
disk_status - Get disk status
disk_read - Read sector(s)
disk_write - Write sector(s)
disk_ioctl - Control device dependent features
get_fattime - Get current time
所有的函数都牵涉到了选择第几个磁盘的问题,如果仅仅用一个,可以不必理会这个drv 参数。
简单移植的话以下三个函数是必须的
disk_initialize
disk_read - Read sector(s)
disk_write - Write sector(s)
即初始化和读写扇区函数,其它可以简单返回0即可
读写扇区,注意参数哦!
部分说明来自网络,写文苦手啊。
程序说明:
运行会先判断是否存在test.txt文件?
如果存在,读出并显示。
如果不存在,询问是否要格式化?
是,会先格式化flash,再创建文件,写入文字。
读出文件内容并显示
计算空间占用。(没调好,不准确)
[
本帖最后由 shower.xu 于 2012-6-2 10:01 编辑 ]