This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS MCU-PLUS-SDK AM263X:免费的 RTOS 长文件名不起作用

Guru**** 1794070 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1393367/mcu-plus-sdk-am263x-free-rtos-fat-long-filenames-not-working

器件型号:MCU-PLUS-SDK AM263X

工具与软件:

你(们)好

这个问题是这个问题的延续,在某种意义上,需要在我可以尝试长文件名之前修复其他事情
https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1374459/mcu-plus-sdk-am263x-freertos-fat-driver-is-not-working-from-freertos-buggy/

 长度超过12个字符的文件名似乎无法正常工作。
我不确定这是否来自 8.3短文件名格式、因为"cust_config.h"我可以创建它、即10.1

我做了什么:
- 打印文件名以确保其正常:[%s]生成[longfilename.testing]
-用 ff_fopen(文件名,"w")创建文件+在其中写入一些东西,而不是关闭
-使用 FreeRTOS CLI dir 命令检查 Windows 上的文件

重现的最简单方法是使用示例 mmcsd_file_io_am263x-lp_r5fss0-0_freertos_ti-arm-clang (以及我们先前为 FreeRTOS 修改的 SDK)并替换以下行:
char filename[]="/sd0/file.dat";
或者会与
char filename[]="/sd0/longfilename.testing";

所有短于或等于8.3格式的文件名都是可以看到的、如果长了、则不会显示错误、但文件名  中都是 japanase/chinese 字符、如下所示:
CLI:

窗口:

您可以看到、创建的文件是正常的(代码是相同的、只是文件名不同)、并且对 longfilename.testing 进行了 trashed。
还有其他文件我甚至不能删除他们甚至在 Windows 下-可能我将不得不格式化 SD  

尝试使用  ffconfigINCLUDE_SHORT_NAME 0和1  -没有区别。  

只是为了测试我在 Windows 上复制了 一个名为"longfilename.coped"的文件, 它 在 CLI dir 命令中可见,也在 Windows 屏幕截图上可见,所以这个问题可能是仅与 ff_fopen 有关。

C:\ti\mcu_plus_sdk_am263x_09_02_00_56\source\fs\freertos_fat\config\FreeRTOSFATConfig.h:

#define ffconfigBYTE_ORDER (pdFREERTOS_LITT_ENDIAN)
#define ffconfigHAS_CWD (1U)/* 0 =仅使用绝对路径*/
#define ffconfigCWD_thread_local_index (4U)
#define ffconfigLFN_support (1U)
#define ffconfigINCLUDE_SHORT_NAME (0U)
#define ffconfigSHORTNAME_CASE (0U)
#define ffconfigUNICODE_UTF8_SUPPORT (1U)
#define ffconfigFAT12_support (0U)
#define ffconfigOPTIMIZE_UNALIGN_ACCESS (1U)
#define ffconfigCACHE_WRITE_Through (0U)
#define ffconfigWRITE_Both_FATS (1U)
#define ffconfigWRITE_FREE_COUNT (1U)
#define ffconfigTIME_support (0U)
#define ffconfigREMOVABLE_media (1U)/*假设媒体始终可移除*/
#define ffconfigMOUNT_find_free (1U)
#define ffconfigFSINFO_trusted (1U)
#define ffconfigPATH_cache (0U)
#define ffconfigPATH_cache_depth (0U)/*仅在 ffconfigPATH_cache 为1时才使用*/
#define ffconfigHASH_cache (0U)
#define ffconfigHASH_function (0U)/*仅在 ffconfigHASH_cache 为1时使用*/
#define ffconfig64_NUM_SUPPORT (1U)
#define ffconfigDRIVER_BUSY_SLEEP_MS (40)

此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Barna:

    请允许我花一些时间重现并测试此问题、然后找出根本原因。

    此致、
    Shaunak

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Barna:

    您是否介意将您的应用程序作为 zip 文件与更改一起共享、以便我可以对其进行复制。 Im 无法设置与您相同的应用程序。

    此致、
    Shaunak

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Barna:

    我在我们的其他平台(AM64x)上找到了类似的主题、以下主题中提到的修复将帮助您解决该问题。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1235736/processor-sdk-am64x-using-freertos-api-created-filename-was-broken

    此致、
    Shaunak

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    已禁用 UTF8支持并能正常工作-因为我不需要特殊字符、所以可以。

    as of source code -这是由你在 prev 中提供的示例。 Thread 并将文件名更改为长整型、例如:
    char filename[]="/sd0/longfilename.testing";

    此致、
    巴纳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Barna:

    很高兴知道我们能够解决这个问题。 如果您遇到其他问题、请随时提出新的 E2E。

    此致、
    Shaunak