一、FatFs最新版本R0.15
在2022年12月4日(全面放开前几天),FatFs发布了最新的版本,版本号是R0.15
在其官方网站上提供下载,并提供很多学习资料,甚至包括各个嵌入式平台的例程。
1、FatFs R0.15(zip)下载链接:
http://elm-chan.org/fsw/ff/00index_e.html
2、R0.15此次升级说明:
内容大意:
更改了用户提供的同步功能,以便从FatFs代码中完全消除平台依赖性;
修复了FF_FS_REENTRANT时f_mount中的一个潜在错误;
当FF_FS_REENTRANT&&FF_VOLUMES>1为真时,固定文件锁定控件FF_FS_lock不被变量排除;
修复了当卷大小>=2^32扇区时,f_mkfs会创建损坏的exFAT卷;
当FF_LFN_unicode==2(UTF-8)时,固定字符串函数无法写入非BMP格式的unicode字符;
修复了GPT标头标识中的兼容性问题。
从动词“修复”中不难看出,此次新版本没有颠覆性的改变,只是对之前版本的优化升级。有新不用旧、紧跟发展步伐,决定全面启用新版本!
二、官网提供的有效内容
1、R0.15压缩包
在MDK工程下新建组,将四个库函数加载到其中,并将三个头文件路径设置好。
2、官方例程
在这个链接中,提供了很多嵌入式平台的样例,以STM32平台为例:提供了原理图,和必要的库函数,但是没有提供工程文件,但是这已经够了。
因为这些库函数展示了最关键的基础功能使用方法,例如加载函数f_mount、打开或者创建文件f_open、写入文件函数f_write和格式化函数f_mkfs,在没有搞清楚原理的情况下,可以拿来与网上各种代码比较,甚至可以直接搬运使用。
样例代码下载链接:
http://elm-chan.org/fsw/ff/00index_e.html
这里提供了很多嵌入式平台的例子,以STM32为例,进入文件夹,有一张平台的原理图,关键信息:SD卡与单片机为spi通讯。这是最省成本的电路方案。
在STM例程的库函数中,mmc_stm32f1_spi.c
是我认为起到承上启下的库函数,FatFs的精髓例如:写扇区disk_write、读扇区disk_read、设备控制函数disk_ioctl等都在此写好,还有spi接口函数发送和接收命令,在此都提供了现成。
3、教学文字
在官网主页,点击进入文件功能的页面,里面有详细的使用说明,并且提供了使用案例,这些内容可以和提供的例程代码配合观察,理解其精髓。
在f_open页面里,展示了如何读取一个文本文件并且显示出来。
这个是展示如何驱动器1上的文件拷贝到驱动器0上。
二、小结
1、官方网站提供的内容是最有说服力的,建立新工程首先应该阅读上面的内容;
2、网上的各个程序都是从官方例程修改而来,应该优先研究官方例程的精髓,兼收并蓄;