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.

[参考译文] RM57L843:高数据速率下的 EMAC 失速问题

Guru**** 2540980 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1037938/rm57l843-emac-stall-issue-at-high-data-rates

器件型号:RM57L843

您好!

我遇到与用户相同的问题: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/829899/tms570ls3137-emac-stall-issue-at-high-data-rates?tisearch=e2e-sitesearch&keymatch=EMAC_BUF_DESC_OWNER#

这个问题没有得到充分回答。 TI 的某个人是否有合适的解决方案?

谢谢、

Bence

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

    您好、Bence、

    如 IDing 建议:  

    1) 1)将 pBuf 从10增加到更大的1、

    2) 2)针对 pBuf 使用内部 RAM

    3) 3)修改 EMAC 驱动程序 Rx ISR 代码以立即释放 pBuf。

    您是否尝试过这些建议?

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

    您好、QJ Wang、

    感谢您的快速回复。

    1:我认为这不是一个合适的解决方案、而是仅在更高的数据速率下导致 FW 崩溃。

    2:我已经在使用 MCU 的内部 RAM。 (这是 TI RM57L843BZWTT (Hercules) MCU。)

    3:您能否详细说明如何准确地做到这一点? TI 为 Hercules MCU 创建的 LWIP 端口的设计方式是使整个 LWIP 堆栈在中断上下文中运行。 (有关更多详细信息、请参阅此帖子: https://e2e.ti.com/support/archive/stellaris_arm/f/stellaris-arm-lm3s-microcontrollers-read-only-archived-forum/284029/why-is-all-lwip-processing-done-in-ethernet-interrupt-context     "我认为系统设计更简单、仅处理来自以太网中断的传输和接收 pbuf、以及在"主循环"中完成的其余处理。  这正是我在嵌入式系统中习惯的做法。”)

    在 EMAC RX 中断处理程序的当前实现中、LWIP 的"Ethnet_input"函数在 IRQ 处理程序的"中间"中被调用、并且只有在 LWIP 处理完成时(在我的情况下为 IP + TCP/UDP、加上 mbedTLS)、pbufs 才会被释放。 因此、修改整个系统(EMAC 配置和 IRQ、DMA 处理、LWIP 低电平)需要大量的时间和精力。

    在这8年后、TI 可能会进行一些修复/升级?

    感谢你的帮助。

    此致、
    Bence

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

    您好、Bence、

    我们按原样提供 LWIP 示例。 此后没有更新、我们也没有计划更新 LWIP 演示和示例。 我很抱歉。