RTT带的文件系统,支持长文件名,如何设置?
FatFs - FAT file system module include fileR0.07e 有个修改一下一个宏定义,但是我修改了后,发现有很多地方都要修改!~~ Radio就支持长文件名,没看它改了很多 回复【2楼】ffxzradio就支持长文件名,没看它改了很多
-----------------------------------------------------------------------
我看RADIO代码中
ffconf.h
#define _USE_LFN 0 /* 0, 1 or 2 */
这个没有置1啊,不是要置1才能支持长文件名吗? 你下的是什么时候的程序? #define RT_DFS_ELM_USE_LFN
不过你需要再看看,因为Radio和官方的FatFs版本有些不同,官方的FatFs带了一个超大的转换表,而gzhuli则把它改成文件带cache的方式。
(如果也提供了那个转换表文件,那么应该也没什么问题) 因为转换表每个单元只占2个字节.所以 gzhuli 一直没找到好的cache方法.
于是,许久后.突然直接不用cache试试,效果也还可以.
elm_fat主要是实现 ff_convert 和 ff_wtoupper,两个函数.
默认在 elm_fat 的 option 目录任选一个文件来实现(使用二分法查表,占用体积较小).
RADIO把转接表放在文件系统中(表大小128K,不使用查表法,绝对定位.提高性能).
在 rtconfig.h 添加了 RT_DFS_ELM_USE_LFN ,然后 utils.c 中实现了这两个函数.
ffconf.h 中改成
#ifdef RT_DFS_ELM_USE_LFN
#define _USE_LFN 1 /* 0, 1 or 2 如果把转接表放在文件中,则这里自动定义 */
#else
#define _USE_LFN 0 /* 0, 1 or 2 如果不把转接表放在文件中,则在这里手动修改,并添加 option 中的 cc936.c */
#endif 回复【2楼】ffxz
radio就支持长文件名,没看它改了很多
-----------------------------------------------------------------------
radio 采用的是 elm_fat
FatFs 怎么实现呢? R0.08, May 15, 2010
Added a memory configuration option. (_USE_LFN)
Added file lock feature. (_FS_SHARE)
Added fast seek feature. (_USE_FASTSEEK)
Changed some types on the API, XCHAR->TCHAR.
Changed fname member in the FILINFO structure on Unicode cfg.
String functions support UTF-8 encoding files on Unicode cfg. R0.08a, Aug 16, 2010
Added f_getcwd(). (_FS_RPATH = 2)
Added sector erase feature. (_USE_ERASE)
Moved file lock semaphore table from fs object to the bss.
Fixed a wrong directory entry is created on non-LFN cfg when the given name contains ';'.
Fixed f_mkfs() creates wrong FAT32 volume.
页:
[1]