FatFs文件系统的配置问题

来源:互联网 发布:360比价软件 编辑:程序博客网 时间:2024/05/29 03:16

今天在使用FatFs文件系统进行代码调试的时候,发现在调用f_unlink进行文件删除的时候,keil4编译的时候总是出现..\Output\demo.axf: Error: L6218E: Undefined symbol f_unlink (referred from main.o)这样的错误。奇怪的是ff.h里面的文件有些函数可以调用,然后有些又不能调用。然后仔细查看FatFs文件系统的参考文档才发现,这个函数Available when _FS_READONLY == 0 and _FS_MINIMIZE == 0.(f_unlink 函数当_FS_READONLY == 0 并且_FS_MINIMIZE == 0(这两个宏都定义在ffconf.h里面) 时可用。)然后从ffconf.h查看得:

#define _FS_MINIMIZE1(默认为1) /* 0 to 3 */ 
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/
/   0: Full function.
/   1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/      are removed.
/   2: f_opendir and f_readdir are removed in addition to 1.
/   3: f_lseek is removed in addition to 2. */

从上面可以知道,这个宏是用来剔除一些不常用的函数,0时,支持全部的函数,1时,f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate , f_rename这些函数不能用,2时,在1的基础上增加f_opendir和 f_readdir不能用。3时,在2的基础上增加f_lseek函数不能用。

所以要想f_unlink函数能够被调用,必须把_FS_MINIMIZE的值改为0,这时候编译就不会出错了。

1 0