TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2652RB: 使用TI提供的Fatfs库,修改FF_USE_LFN支持长文件名后库无法运行

Part Number:CC2652RB

之前的项目已经使用Fatfs库完成存储一些数据到SD卡中,但当时使用的是短文件名;现在项目需要使用长文件名,于是修改FF_USE_LFN,但无论是修改为1、2、3都无法使用fatfs库,只要一调用库里面的函数程序就会卡死;但是原来使用默认值0是没问题的。我想请问一下是这个Fatfs的库无法支持长文件名吗?还是我哪里的配置还有问题?

以下为我修改的配置,只是将FF_USE_LFN从0改为3则无法正常运行

Nick Sun:

您好,

根据相应文档,

注意事项为:此选项切换对长文件名(LFN)的支持。启用LFN时,需要将Unicode支持模块ffunicode.c添加到项目中。使用堆栈作为工作缓冲区时,请注意堆栈溢出。将堆内存用于工作缓冲区时,需要将内存管理函数(ff_memalloc和ff_memfree)添加到项目中。

此处是否可作为一些参考?

,

JFM J:

已将ffunicode.c添加到项目中;

将内存管理函数(ff_memalloc和ff_memfree)添加到项目中需要如何操作呢?我只找到下面这两个地方

如果是FF_USE_LFN为0时可以获取到剩余空间;但是为3时程序却直接卡死了,如下图:

,

JFM J:

您好,我找到了https://e2e.ti.com/support/processors-group/processors/f/processors-forum/212914/fatfs-and-long-file-name这个帖子,他建议是使用FF_USE_LFN=2,这样的话LFN使用的就是任务堆栈的空间;

但是情况还是一样,还是在调用fatfs库的函数的时候就卡死了;

请问你们是否有可运行在CC2652RB上的使用LFN的例程参考?

,

JFM J:

另外我还找到了一个帖子https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/974959/launchxl-cc26x2r1-how-to-enable-long-file-name-on-the-sdk-simplelink_cc13x2_26x2_sdk_4_20_00_35/3604223?tisearch=e2e-sitesearch&keymatch=FF_USE_LFN#3604223

看起来和我遇到的问题十分相似,但是我好像没有看到这个问题的解决方法。

麻烦看到的话回复我一下,谢谢!

,

Nick Sun:

您好,

为更加有效地解决您的问题,我们需要询问更了解这款芯片的TI资深工程师,再为您解答,一旦得到回复会立即回复给您。

,

Nick Sun:

您好,

工程师回复道:

您可以查看 SimpleLink SDK Documentation Overview-> FatFS and SimpleLink MCU SDK User's Guide,了解有关此第三方库的详细信息。下面是我们发现的一个特别注意事项:

Use of long file names or XFAT: The FatFs libraries are configured for use without Long File Name (VFAT) or XFAT support. If you chose to reconfigure and build FatFs to include these features, you may be required to license the appropriate patents from Microsoft. For more information, refer to: http://elm-chan.org/fsw/ff/en/appnote.html

(使用长文件名或 XFAT:将 FatFs 库配置为在不支持长文件名(VFAT)或 XFAT 的情况下使用。如果您选择重新配置并构建 FatFs 以包含这些功能,则可能需要从 Microsoft 获得相应的专利。如需更多信息、请参阅:http://elm-chan.org/fsw/ff/en/appnote.html)

希望能够帮助到您。

赞(0)
未经允许不得转载:TI中文支持网 » CC2652RB: 使用TI提供的Fatfs库,修改FF_USE_LFN支持长文件名后库无法运行
分享到: 更多 (0)