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.

[参考译文] TMS570LC4357:以太网 Rx 中断无法触发

Guru**** 2450280 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1204595/tms570lc4357-ethernet-rx-interrupt-failing-to-trigger

器件型号:TMS570LC4357

您好!

我当前正在尝试在 引导加载程序的裸机环境中、使以太网通信在 TMS570和 DP83822HFRHBR 之间正常工作。 目前、沟通似乎在2-10分钟内从任何地方开始有效、然后在该点之后中断和失败。 我已经将我的项目基于 TI 发布的以下示例项目: git.ti.com/.../LwIP

我按照上面示例中完成的相同过程初始化 EMAC/MDIO 模块以及接收以太网数据。 在 FreeRTOS 环境中、我也有相同的代码可以正常运行、而 TCP 服务器不会发生故障、唯一的区别是以太网数据包的处理是在任务中完成、而不是在中断本身中完成。

我看到以下行为:

  1. C0_RX_PULSE 中断在任意点之前表现正常
  2. C0_RX_PULSE 中断不再被触发

这是我看到的行为的逻辑分析仪捕捉。 相关信号为"EthRxInt"&"3V3"。 "EthRxInt"是指我在进入和退出时在 C0_RX_PULSE 中断内设置的 GPIO 引脚。 "3V3"线路是提供给  DP83822HFRHBR 的电源轨、并且处于稳定状态。

为了测试我在 TMS570上运行的 TCP 服务器的稳定性、我只是将 ping 发送到该器件、并查看该服务器是否对 ping 做出响应。 这些 ping 触发 C0_RX_PULSE 中断、并在中断中执行 Ping 的处理。 如果发生故障、则相关 EMAC/MDIO 寄存器的状态为:

RXINTMASKS:

RXUNICASTSET / RXMBPENABLE:

RXUNICASTCLEAR:

C0RXEN:

中断标志:

MDIO CLK @ 1MHz:

如果您对我看到此行为的原因有任何意见、或者如果您需要我向您提供更多有关我正在运行的代码或在出现故障时注册状态的信息、请告诉我。 感谢您提供的任何帮助。

谢谢。

Thomas Hickey

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

    大家好、有没有人告诉我为什么会看到这种行为?

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

    尊敬的 Thomas:

    我们有一个基于 lwip 1.4.1的示例 pf 以太网引导加载程序。

    https://git.ti.com/cgit/hercules_examples/hercules_examples/tree/Application/Hercules_Ethernet_Bootloader