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.

[参考译文] TM4C1294NCPDT:TI RTOS TivaC I2C 驱动程序-应用程序如何报告主错误?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1078694/tm4c1294ncpdt-ti-rtos-tivac-i2c-driver---how-application-can-report-master-error

部件号:TM4C1294NCPDT

尊敬的 SupportTeam:

如果 I2C 传输因错误(如 nack,总线仲裁丢失等)而失败;应用程序如何知道确切的原因。 我正在回叫模式下使用 I2C

在 hwi 函数中,有一个对 I2CMasterIntClear()的调用  ,因此根据我的理解,它将清除所有主错误,MRI 和 MMIS 寄存器中的相应位也将被清除。 当应用程序获得控制时,所有 I2C 错误都将被清除。

谢谢你。

此致

阿希吉

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

    您好,Abhijit,

    很抱歉耽误你的时间。 我们星期一在美国度假,这个话题太复杂了,不能在讨论期间加以探讨。 我不得不花一些时间尝试深入了解 TI-RTOS 文档和代码,以更好地了解它们如何实施这些文档和代码。

    我没有看到 错误代码明确传递给应用程序,但似乎向用户提供了信息。

    似乎生成了一个错误日志并显示错误状态:

            Log_print2(Diags_USER1,
                       "I2C:(%p) ISR I2C Bus fault (Status Reg: 0x%x)",
                       hwAttrs->baseAddr,
                       errStatus);

    我不是很了解您如何解决并将其用于应用程序代码,但日志记录机制是 RTOS 内核的 XDC 运行时模块的一部分。 您可以在此处查看文档: file:///C:/ti/tirtos_tivac_2_16_00_08/产品/BIOS_6_45_01_29/docs/CDOC/XDC/运行时/Log.html

    不幸的是,我的知识以 TM4C 硬件为结尾,而内核元素只是我所知有限的领域。

    此致,

    拉尔夫·雅各比

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

    你好,拉尔夫,

    感谢您的回复。

    我们有不同的日志记录机制,因此我们无法使用 RTOS 提供的日志记录机制。

    谢谢和问候

    阿希吉