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/AM3352:SD 卡文件系统错误

Guru**** 2590530 points
Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/640457/rtos-am3352-sd-card-filesystem-error

器件型号:AM3352

工具/软件:TI-RTOS

详细信息:

 TI-RTOS 与配合使用 

PDK 1.0.7、

SYSBIOS 6.46.5.55、

EDMA3LLD 2.12.4

Linaro GNU 编译器4.9.3

定制板。 而不是仿真板。

那么、这是我的问题。 我们正在尝试让具有 SDCard 驱动程序的 FATFS 在连接到 MMC0的电路板上工作、我使用示例项目 MMCSD_FatfsConsole_evmAM335x_DMA_armExampleProject 作为如何设置所有内容的基础。 我使用以下 代码设置 SDCard 和 FATFS:

if (mMCSD_socGetInitCfg (0、hwAttrsConfig)!= 0){
//MMCSD_LOG ("\n 无法获取 MMCSD config.exiting。 测试失败。\r\n);
返回;

/*实例0的默认 hwAttrsConfig 配置为 SD 卡(符合335x GP EVM)。
在定制板中、由于我们将实例0与 EMMC 一起使用、因此 hwAttrs (在 ti/drv/mmcsd/SoC/AM335x/MMCSD_SoC.c 中使用默认值定义)
需要进行更改以反映这一点。 这包括总线宽度(EMMC 为8位宽度、SD 卡为1位或4位宽度)*/
hwAttrsConfig.cardType=MMCSD_CARD_SD;
hwAttrsConfig.supportedBusWidth= MMCSD_BUS_WIDTH_4BIT;
hwAttrsConfig.edmaHandle = gEdmaHandle;

if (mMCSD_socSetInitCfg (0、hwAttrsConfig)!= 0){
//MMCSD_LOG ("\n 无法设置 config.exiting。 测试失败。\r\n);
返回;

/* MMCSD FATFS 初始化*/
FATFS_INIT();

FATFS_OPEN (0U、NULL、FatfsHandle);

一切看起来都很好。 我不会遇到任何错误。 当我尝试按如下方式执行 f_open 时: 结果= f_open (&pf、p_filename、fa_open_existing | fa_read);

我的结果是 FR_NOT _ENABLED。  

我的 eMMC 芯片在开机自检时出现了完全相同的问题:   但我移除了该芯片并放入了 SDCard、并且遇到了相同的错误:

我已验证 MMC 时钟线上没有活动。

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

    与之前使用 eMMC 的线程类似、您是否通过将外设置于测试模式(SYSTEST)来验证引脚是否处于良好的工作状态?

    Lali
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过将引脚转换为 GPIO 引脚并分别将其置于高电平/低电平状态并在示波器上观察这些引脚来测试这些引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、感谢您的确认。 将深入研究并返回给您。
    那么、它与 eMMC 芯片的原理图相同、只是在总线上出现 SD?

    Lali
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正确。 eMMC 被完全移除、因此它只是 SDCard

    通过观察文章、我确实将系统置于测试模式、并验证了所有引脚都以这种方式工作、我对 RMII2引脚进行了 GPIO 操作。 我忘记了。

    我们针对 McASP 问题发送了2块电路板。 我知道帮助我的 EMAC/NDK 的人会在某个时候得到他们、如果他们只需要一个、也许你可以得到另一个、如果它能帮助的话。 我知道 eMMC 芯片仍在这些电路板上、但您可能有更好的机会来至少弄清时钟不运行的原因
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    鹅卵石

    我注意到、在原理图中、您没有将 SD 卡座 CD 连接到 AM3352上的 MMC0_CD。

    想知道这是否会导致外设运行问题。 此时、我不确定是否未连接该引脚会导致外设无法正常工作。 需要检查。

    下面是 SD 卡的 BeagleBone Black (BBB)原理图的快照。

    来自 http://www.ti.com/lit/ug/spruh73p/spruh73p.pdf (第4221页)

     - MMC_SDCD 该输入引脚用作 MMC/SD/SDIO 载波检测。 该信号从插槽上的机械开关接收。

    Lali

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据我们的板人员:“我们的卡座没有卡检测开关,我们已经在使用所有可能用于 MMC0_SDCD 的引脚。”

    我没有任何东西连接到 MMC0CD。 这是否保证失败?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    鹅卵石

    "我没有任何东西连接到 MMC0CD。 这是否保证失败?"

    不确定。 深入了解。

    Lali

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    鹅卵石
    只是更新。
    我在内部检查过、CD 引脚在这里不应该是问题。
    仍在挖掘软件可能导致问题的位置。

    LS、mkdir、pwd 是否在控制台上工作?
    您是否有一个 AM335x EVM? 您是否曾在其中的任何一个案例上偶然尝试过 FatFS MMCSD 示例?

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

    鹅卵石

    我在 PDK 中采用了该示例、并在 BeagleBoneBlack 上运行了该示例、f_open 看起来正常。 在示例 MMCSD_FatfsConsole_bbbAM335x_DMA_armExampleProject 中、这里是我的控制台

    如果(CSL_SOK ==retStat)
    {
    /*打开文件进行阅读。 *
    fresultRead = f_open (&gFsShellAppUtilsReadFileObj、gFsShellAppUtilsTempPath、fa_read);
    
    /*如果打开文件时出现问题,则返回错误。 *
    if (fresultRead!= FR_OK)
    {
    MMCSD_LOG ("打开文件进行读取失败!!!!!!\n");
    retStat = CSL_ESYS_FAIL;
    }
    其他
    {
    flagRead = true;
    }
    } 

    我在 Windows PC 上使用 SD 卡并格式化为 FAT32。 我还在 Windows PC 上创建了"lali/test.txt"、并在.txt 文件"abcd 123"中插入了一些内容。

    这就是您从上面的 cat 命令中看到的内容。 cat  传票 f_open  看起来工作正常。 我确实遇到了内部的断点  

    flagRead = true; 


    您是否有格式正确的卡? 是否可以尝试为另一个命令修改代码?

    Lali

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我100%确定所有示例项目都在 EVM 板上工作

    我的 sdcard 已格式化、上面有许多文件。 我几分钟前就用过它了

    因此、我在另一个线程上遇到的问题从未得到解决。 这似乎是这里的问题、我的这部分内容有点像头巾

    我们在 C6748 DSP 上的先前项目中使用了一个 sdcard、其形式是我们使用1:filename 访问文件系统的驱动程序。 我在示例输出中看到它使用了0:filename、我尝试使用0:filename 和 viola、我在文件上打开了 FR_OK。

    您提到您需要使用格式化的 SDCard。 驱动程序是否没有提供格式化 SDCard 的方法? 如果是、该过程是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    鹅卵石

    那么、要确认、您现在可以通过您的代码访问 SD 卡了吗?

    格式化卡的建议方法是使用 HP USB 磁盘存储格式工具 filehippo.com/.../

    Lali
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我可以在 SDCard 上打开一个文件。

    那么、驱动程序无法格式化 SDCard?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    鹅卵石

    感谢您的确认。
    正确的、实用程序是目前格式化卡的方法。

    Lali