billtian 发表于 2010-8-11 08:45:14

RTT带的文件系统,支持长文件名,如何设置?

FatFs - FAT file system module include fileR0.07e

ljt8015 发表于 2010-8-11 08:51:42

有个修改一下一个宏定义,但是我修改了后,发现有很多地方都要修改!~~

ffxz 发表于 2010-8-11 09:05:32

Radio就支持长文件名,没看它改了很多

billtian 发表于 2010-8-11 09:14:04

回复【2楼】ffxz
radio就支持长文件名,没看它改了很多
-----------------------------------------------------------------------

我看RADIO代码中
ffconf.h
#define        _USE_LFN        0                /* 0, 1 or 2 */

这个没有置1啊,不是要置1才能支持长文件名吗?

hyz_avr 发表于 2010-8-11 09:17:10

你下的是什么时候的程序?

ffxz 发表于 2010-8-11 09:17:37

#define RT_DFS_ELM_USE_LFN

不过你需要再看看,因为Radio和官方的FatFs版本有些不同,官方的FatFs带了一个超大的转换表,而gzhuli则把它改成文件带cache的方式。
(如果也提供了那个转换表文件,那么应该也没什么问题)

aozima 发表于 2010-8-11 10:08:34

因为转换表每个单元只占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

ljt8015 发表于 2010-8-11 13:19:55

回复【2楼】ffxz
radio就支持长文件名,没看它改了很多
-----------------------------------------------------------------------

radio 采用的是 elm_fat

FatFs 怎么实现呢?

hyz_avr 发表于 2010-8-11 14:07:08

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.

shangdawei 发表于 2010-9-6 22:47:58

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]
查看完整版本: RTT带的文件系统,支持长文件名,如何设置?