源代码下载地址：
http://elm-chan.org/fsw/ff/00index_e.html

========== R0.10b ================================
2014-10-13  升级到 R0.10b版本
1. disk_ioctl() 函数，修复获取有效容量的bug. (U盘和NAND)
	*(DWORD*)buff = NAND_FormatCapacity() / 512;	/* 必须为可用的扇区个数，不是芯片的理论容量 */
	...

2. f_mount() 形式参数变化
3. diskio.h 新增:
	/* Definitions of physical drive number for each media */
	#define FS_SD		0
	#define FS_NAND		1
	#define FS_USB		2

	/* 用于 R0.10b 新版本 */
	#define FS_SD_STR		"0:"
	#define FS_NAND_STR		"1:"
	#define FS_USB_STR		"2:"
4. #define _CODE_PAGE	936


========== R0.09b================================
本移植记录对应的版本为 R0.09b

1. 直接下载 ff9b.zip 文件，然后解压，将其复制到自己的工程中。
	本例子是将其存放在： \User\FatFS\src

2. 在工程配置中添加h文件搜索路径 \User\FatFS\src

3. 在工程中添加2个源代码文件：
	ff.c
	diskio.c
	cc936.c

4. 修改 diskio.c 文件

5. 为了支持长文件名，必须包含 cc936.c 文件，其中 static const WCHAR uni2oem[] 常量数组
	是一个GB2312码和UNICODE代码的转换表，会占用程序空间约170K字节。

==========================================
【ffconf.h 修改记录】
（1）#define _CODE_PAGE	932		/* 这是日文编码 */
		修改为：
	#define _CODE_PAGE	936		/* 这是简体中文编码 */

（2）#define	_FS_LOCK	0	修改 3，  可以同时打开3个文件，0表示只能打开1个。

（3）#define	_USE_LFN	0		/* 0 to 3 */
	修改为
	#define	_USE_LFN	1   使能长文件名，分配静态内存用于存储长文件名
	1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.

（4）在末尾增加 #include "diskio.h"。 主要目的是声明多个磁盘系统的ID（FS_SD和FS_NAND)

 (5) #define _VOLUMES	3	【为了同时支持SD卡,NAND Flash 和 USB 三种介质，将 1 修改为 3】

【diskio.c 修改记录】
1. 修改 disk_initialize, 添加SD卡初始化
2. 修改 disk_status, 返回SD卡状态
3. 修改 disk_read，实现读SD卡扇区
4. 修改 disk_write，实现写SD卡扇区
5. 修改 disk_ioctl， 暂时未用
6. 添加函数 ： DWORD get_fattime (void);

【diskio.h 修改记录】
1. 文件末尾增加物理磁盘代码
	/* Definitions of physical drive number for each media */
	#define FS_SD		0
	#define FS_NAND		1
	#define FS_USB		2


【长文件名问题】
1. 部分文件的属性中只有短文件名 FileInf.fname ，长文件名域 FileInf.lfname 为空
2. ff_mkdir 创建目录时，无论文件名长短，均可以正确读取到长文件名FileInf.lfname
3. f_open 创建文件时，如果文件名长度大于 8.3格式名，则会正确填充FileInf.lfname

【SD_WriteMultiBlocks()函数问题】
1. 在 disk_write 中，如果待写入的 block大于1，可以选择 SD_WriteMultiBlocks（）函数加速
	但是最后一个形参需要是 count + 1 才能正确写入，否则最后1个扇区的数据将不正确。
【原因待查】
				/* 此处存在疑问： 扇区个数如果写 count ，将导致最后1个block无法写入 */
				Status = SD_WriteMultiBlocks((uint8_t *)buff, sector << 9 ,SECTOR_SIZE, count + 1);
