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.

[参考译文] AM2634:运行 Enet Lwip CPSW 示例时带宽受限

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1258093/am2634-limited-bandwidth-when-running-enet-lwip-cpsw-example

器件型号:AM2634

当我在 LaunchPad 上运行该示例时、我得到的最大稳定带宽为10-15 Mbps。 如果是更多、则表示帧缺失或无序。 另外、当我使用100Mbit 标志运行 iperf 时、 该终端 实际上显示的是1Mbit。
  PC 控制台中的命令:
iperf.exe -c 192.168.100.100 -r -u -t 1 -b 100M
是否有可能获得大约100Mbps 的带宽
 为了获得更大的带宽、我们需要做些什么?

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

    尊敬的 

    为了获得更高的吞吐量、您可以在 syscfg-Gui 中增加 Rx 和 Tx 数据包的数量。 默认配置为16和32个数据包。 请告诉我这是否有帮助。

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

    尊敬的 Nilabh Anand

    如果在 syscfg-GUI 中增加 Rx 和 Tx 数据包的数量、则当我运行代码时、我将获得断言:
    启动 lwIP、本地接口 IP 已启用 DHCP
    EnetQueue_enq:队列为空 enq
    断言@行:mcu_plus_sdk_am263x_08_06_00中的111/source/networking/core/queurope src:node!= NULL

    我尝试将16更改为32 (对于 Rx 数据包的数量)并将32更改为64 (对于 Rx 和 Tx 数据包)。
    这始终是结果、代码在这里停止。

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

    尊敬的 Nilabh:

    我们可以就该问题请求一个调试会话吗?
    因为它对我们来说非常重要和关键。

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

    尊敬的  

    我们看到、接近100Mbps Rx (电路板 Rx)的帧压降可以忽略不计。


    请通过以下方式帮助我更好地理解您的问题并在最后重新创建。

    1.您能否使用以下命令 并在 PC 端和 UART 终端上向我提供日志?  

    Iperf -c /b 100m -u -i 10 -t 30 -r

    2.您的 iperf 版本是什么? 您使用的是 Linux 还是 Windows PC? 您当前与板和 PC 的设置连接拓扑是什么(它是静态 IP)?

    关于 syscfg-GUI 上的 Rx 和 Tx pkts、很遗憾、 8.6中的示例文档不完整、我们已经在9.0 SDK 中正确更新了它。 在这里、我将详细解释相同的内容。

    1.增加 Rx 数据包

    • 增加 DMA 通道配置部分中对应 ENET Rx DMA 通道的"数据包数量"项  
    • LwIP 的 Rx 数据包缓冲存储器完全由 SYSCFG 进行管理。 因此,您需要增加"数据包池配置"中的相同数量。  您可以增加 " 大型池包数 " 并将该值与 Rx 数据包数量匹配。

    2.增加 Tx 数据包  

    • 目前、在 SYSCFG 中未完全完成 Tx 数据包存储器分配。 只有用于 DMA Pkt 信息结构的存储器在 SYSCFG 中完成。 Tx 的实际缓冲存储器位于 LwIP 堆栈中的 lwippools.h 文件中。
    • 如果要增加 Tx 数据包计数,应更改以下
      •  在 DMA 通道配置部分中、增加对应于 ENET TX DMA 通道的"数据包数量"项  
      • 将"仅 PktInfoMem 计数"增加相同的数字。 这会分配所需的 DMA Pkt 信息结构、但不分配实际的缓冲存储器。
      • 相应地增加 lwippools.h 中的值并重新编译库

    此致

    苏珊德