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.

[参考译文] Starterware/TMS320C6748:FATFS 文件写入、长名称支持、SDCardPin 检测

Guru**** 2589300 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/578888/starterware-tms320c6748-fatfs-file-write-long-name-support-sdcardpin-detection

器件型号:TMS320C6748

工具/软件:Starterware

我正在测试 Norman 的代码、以便将文件写入 LCDK C6748上的 SD 卡。

通过在 disk_write 内添加一个延迟、我可以将文件写入 SD 卡、但不知道在没有该延迟的情况下是什么导致代码失败的? 有人能告诉我 这方面的可证明原因是什么?

没有延迟、我可以创建文件、但无法将任何数据写入文件、只需在控制台上观察到 FR_RW_ERROR 消息。

此外、我想使用长文件名。 但是、我看 不到 FATFS R0.04b 支持任何 LFN。 您是否碰巧  对此进行了任何更新?

对于 SDCardPresence 检测、我是否只 需要 将相应的引脚设置为输入并读取该值?

最后一个问题是、如果我想使用 FAT32、我需要处理哪些事项?

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

    谁是 Norman、或者该代码来自哪里?

    您在哪个文件中将延迟置于 disk_write 中? 我在 Starterware 内的多个*。c 文件中找到名为 disk_write 的函数、包括一些示例文件中的函数。

    您添加的延迟有多长时间? 请显示该代码。

    您使用的是哪种速度等级的 SD 卡?

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

    e2e.ti.com/.../WP_5F00_MMCSD_5F00_V0R2.zip  

    请参阅随附的链接和代码。 如果您进入此链接、您可以找到原来的 Norman 的代码。 实际上、我正在寻找一个稳定版本的 mmcsdproto .c、用于 C6748 SD 卡写入和读取操作。  

    下面是 Norman 代码中的文件列表的一部分。

    mmcsd_rw.c //主要 c

    ff.c // fatfs  

    fatfs 和 SD 协议层之间的 fat_mmcsd.c //接口层

    mmcsd_proto .c// SD 卡协议层  

    mmcsd // C6748 SD 驱动程序

    实际上、我在 fat_mmcsd.c.中的 disk_write 函数中添加了一些延迟(大约10us)

    对于 SD 类、它是4 8GB 级。

    但是、在这个代码中、disk_write 操作不是稳定的。 因此、如果可能、请更正所附的代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    代码是否有任何问题? 我一直在等待你的回复、但至今听不到任何回复。 如果无法为我更正代码、C6748上没有 MMCSD 协议层的任何参考代码和文档。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我遇到了与 f_write()类似的问题。 我在 SD 中创建了一个用于读取/写入的 txt 文件。 发现如果它是空文件、则无法写入并得到 FR_RW_ERROR。 如果我在 SD 卡中手动写入10个字节,我可以使用 f_write()写入的最大字符数为10个字节,以覆盖文件中的数据。 因此,如果我想用 f_write()在卡中写入1000个字节,我必须事先在卡中手动写入1000个字节。 不能完全理解原因、还能弄清楚原因是什么。

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

    您可以测试上述代码。 我可以使用此代码将高达30KB 大小的文件写入8GB SD 卡。
    在这里、我添加了一些延迟、并按照下面链接中的 Avi Tal 建议对 disk_write 函数应用了 tweak。

    e2e.ti.com/.../283373