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.

[参考译文] TM4C129ENCPDT:EMAC 中断错误处理

Guru**** 2468610 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/674978/tm4c129encpdt-emac-interrupt-errors-handling

器件型号:TM4C129ENCPDT

假设代码启用 ROM_EMACIntEnable、且仅相关:
EMAC_INT_PHY | EMAC_INT_Receive | EMAC_INT_Transmit | EMAC_INT_TX_underflow
并假设出现任何未列出的其他错误(EMAC_INT_BUS_ERROR、EMAC_INT_RX_NO_buffer ...)

1. EMAC 是否会停止? 不会再中断代码?
2.可能会发生哪种情况?

如果是的话
3.如何检测 EMACIntEnable 中未列出的错误?
4.在这种情况下,建议采取什么行动? 清除任何挂起中断? 如何实现?

软复位
5.是否清除所有待处理的描述?
6.最好的办法是什么?


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

    您好!
    我想我在您发布的另一个主题中回答了一些问题。 启用中断和检测/记录错误有两个不同的方面。 即使您尚未启用相关的错误中断、如果检测到错误、它们的标志仍将被置位。 但是、您为什么不让他们首先通知 CPU? 如果没有启用错误中断、DMA 可能会在检测到错误时停止/挂起以继续。

    描述符存储在本地 RAM 中。 软件复位不会复位 RAM。 如果出现错误、您需要重新配置描述符。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、
    感谢两位回复。 我们仍会对其进行消化、以了解如何取得进展。
    我们注意到、大多数 ETH 驱动程序源的实现方式如上所述-"仅启用我在上面写的3个 int 源"
    我相信所有这些 ETH 编程人员都知道您对 DMA STOP 的评价,但这仍然是代码,因为我不理解-我问....

    我们会遇到 ETH 停止向总线发送任何外部字节的情况、并且我们找不到如何对其进行调试。
    上面的 TCP/IP 堆栈(不是 lwip)不知道驱动程序不发送任何内容、并且所有系统在没有任何数据输出的情况下继续运行。

    您能为如何解决此类问题提供示例或提示吗? 因为我们不擅长 ETH 驱动器。
    从何处开始调试? PHY? Mac?

    此外、如果我要重置 ETH MAC/PHY、TCP/IP 堆栈将如何在该堆栈上同步? 堆栈描述符指针是否无效!
    我还应该复位堆栈?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Amir、

    您之前要求对以太网系统中的错误进行"仿真"。 现在、您似乎有一个真实的情况。 如果是这种情况、我们需要以不同的方式调试问题。 您能回答以下问题吗?

    1.你能详细说明问题吗? 您是否看到任何错误标志? 如果您这么做、它们是什么?
    2.您能否在同一项目的不同电路板上重现问题?
    3.您能否运行 TivaWare 或 TI-RTOS 以太网示例? 您是否看到任何问题?
    4. ping 主机时,会发生什么情况?
    5.您正在运行哪种类型的以太网应用程序?
    6.在电路板设计中,您是否参考了有关以太网接口的 TM4C129系统设计指南?