FatFS文件系统详解-附移植建议

http://blog.csdn.net/juana1/article/details/6867829#comments

+++

移植过程

在移植之前,需要注意以下几点:

FLASH的存取是线性的,没有扇区的概念,而只有PAGE和BLOCK

提到这一点,Fatfs中要求扇区大小不能小于512 bytes,但是FLASH中的PAGE时常会小于这个值(因为我现在用的FLASH的PAGE是256bytes)。于是需要人为抽象扇区,也就是说需要在磁盘读写函数中实现分步多次读写。

FLASH的写特点所决定的一些特性

例如:FLASH在写之前需要进行擦除操作,那么如果擦除不成功的话,对于写接口来说是没有任何意义的。

FLASH上移植Fatfs文件系统,不同于其他存储媒体的特点

如sdcard,sdcard在Windows下能够自动被格式化(在你将sd卡通过读卡器插入Windows的时候),但是FLASH不能,这需要调用Fatfs中的f_mkfs 接口,先对FLASH进行格式化,待格式化完成之后,后面的文件操作才能顺利进行。笔者所使用的FLASH具有写保护机制,所以在进行写操作之前需要进行保护关闭操作。

下载源码

源码的下载可通过官网地址下载:http://elm-chan.org/fsw/ff/00index_e.html

文件系统的基本代码

diskio.c  diskio.h  ff.c  ff.h  ffconf.h  integer.h  cc9xx.c。这几个文件对于移植已经够用了。

diskio.c的改写

diskio.c 中实现了底层存储介质的读写操作和状态访问,具体请参见源码解释。移植需要做的就是将自己对存储的访问接口用diskio中相对应的接口来实现。

初始化

你可能感兴趣的:(文件系统,soc学习)