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.

[参考译文] TMS320F28377D:SDSPI 库触发 ESTOP0

Guru**** 2468460 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1482769/tms320f28377d-sdspi-library-triggers-estop0

器件型号:TMS320F28377D
Thread 中讨论的其他器件:C2000WARE

工具与软件:

尊敬的 TI 论坛:

我目前使用 C2000Ware_5_03_00_00在 F28377D 上进行开发。 为了访问 SD 卡、我使用了 C2000Ware 中提供的 fatfs 和 sdspi 库。 只要插入 SD 卡、一切都运行正常。 每当我删除卡,然后尝试再次访问它,或当我删除并将其放回,文件 sdspi.c 抛出一个 ESTOP0在第417行。

/* Single block read */
if (sectorCount == 1) {
    sendCmdResult = sendCmd(handle->spiHandle, CMD17, sector);
    recvStatus = recvDataBlock(handle->spiHandle, buf, SD_SECTOR_SIZE);
    if ((sendCmdResult == 0) &&
         recvStatus) {
        status = SD_STATUS_SUCCESS;
    }
    else
    {
        ESTOP0;
    }
}


为什么库以这种方式工作、而不 像在该文件的许多其他部分中所做的那样仅返回 SD_STATUS_ERROR? 是否有办法防止该行为、因为它会暂停整个微控制器?

非常感谢您的回答!

此致

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

    嗨、Nicole、

    这里添加了仿真停止命令以进行调试。 在未连接调试器的情况下部署和运行应用时、这些命令 将 被忽略。

    若要更改此行为、您可以继续操作并在 sdspi.c 中编辑这些行、以更新状态标志。 然后、您可以在重新构建项目 [C2000ware]\libraries\fatfs\ccs\f2837xd . 这将重新生成.lib、现在可以将其链接并与您的应用程序配合使用。

    此致、

    Arnav

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

    您好、Arnav、

    感谢您的答复! 在这种情况下、我想我只会接受这种行为、并在这种情况下添加一条注释。  当调试器未连接时、无论如何都会返回正确的错误状态。

    此致、

    Nicola