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:100Mbit/s 的 EMAC 轮询

Guru**** 2442090 points
Other Parts Discussed in Thread: TMS570LC4357, LAUNCHXL2-570LC43, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1264154/tms570lc4357-emac-polling-at-100-mbit-s

器件型号:TMS570LC4357
主题中讨论的其他器件: LAUNCHXL2-570LC43HALCOGEN

我正在尝试在 TMS570LC4357的以太网模块上实现接近100Mbit/s 的发送和接收能力、同时可发挥芯片的其他功能。 我一直在使用定制硬件和  LAUNCHXL2-570LC43进行实施。 我能够将数据速率提高到100Mbit/s、但是 硬件会花费大量时间等待 emacTransmit 函数内的 EOQ 标志。

/* Wait for the EOQ bit is set */
while (EMAC_BUF_DESC_EOQ != (EMACSwizzleData(curr_bd->flags_pktlen) & EMAC_BUF_DESC_EOQ))

我正在向硬件发送一个简单的 ping、硬件会在交换源和目标后响应数据包。

我正在尽可能避免使用中断、并一直在尽可能使用 halcogen。 是否有任何建议或解决方案可以减少在 emacTransmit 中等待 EOQ 标志所花费的时间?  

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

    您好、Tyler:

    是的、我看过讨论、并且有潜在的 Rx 锁定条件、当一个新的数据包进入时、pBuf 的释放速度不够快。

    有一些建议:

    1) 1)将 pBuf 从10增大到更大的值

    2) 2)对 pBuf 使用内部 RAM

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

    --

    谢谢。此致、
    Jagadish。

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

    我不会永久锁定、也不会在 EMAC 的 Rx 侧锁定、并且我尝试在此模式下不使用任何 ISR。 我将花费大部分 CPU 时间等待 emacTransmit 函数中的 EOQ 标志清除。

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

    你好,泰勒

    很抱歉响应出现延迟。

    [quote userid="573725" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1264154/tms570lc4357-emac-polling-at-100-mbit-s 是否有建议或解决方案可以减少在 emacTransmit 中等待 EOQ 标志的时间?  [/报价]

    我认为没有任何其他方法可以减少等待 EOQ 标志的时间。 如果我们消除此条件、则可能会导致 TRM 中所述的竞态条件。

    --
    谢谢。此致、
    Jagadish。