Thread 中讨论的其他器件:EK-TM4C129EXL
你好
我正在尝试在微控制器的 TM4C1294中测试以太网的吞吐量。
您是否成功验证了?
谢谢、
John Chen
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.
你好
我正在尝试在微控制器的 TM4C1294中测试以太网的吞吐量。
您是否成功验证了?
谢谢、
John Chen
[引用用户="Charles Tsaaaa">我对论坛进行了一些搜索、并在帖子共享中发现、他们能够在持续的 UDP 连接中达到70Mb/s。 我认为很多情况也取决于 CPU 负载。我尝试 tirtos_tivac_2_16_01_14中的 tcpEcho 示例、以查看可以轻松实现的吞吐量。
tcpEcho 示例的默认 TI-RTOS 网络设置是使存储器占用空间保持相对较小。 调整了大小以尝试和接收每个套接字调用的5840字节、这是4个以太网帧、最大 TCP 有效载荷为1460字节。
提供 的 tirtos_tivac_2_16_01_14/packages/examples/tools/tcpSendReceive 在 Linux 主机 PC 上运行、以生成运行在 EK-TM4C129EXL 上的 tcpEcho 示例的测试流量。 作为 tcpEcho 示例中的 tcpWorker 任务和 tcpSendReceive 主机程序仅在 Linux 主机 PC 上运行多个 tcpSendReceive 实例时调用 recv()或 send()。 当运行四个 tcpSendReceive 实例时、每个实例都具有以下命令行参数、每个方向的以太网吞吐量为55.5兆位/秒:
~/ti/tirtos_tivac_2_16_01_14/packages/examples/tools/tcpSendReceive 192.168.0.4 1000 1 -s0 -l5840
运行 tcpSendReceive 主机程序的四个实例的原理是尝试同时调用目标 send()、目标 recv()、主机 send()和主机 recv()函数,以尝试并最大程度地提高数据包吞吐量。
通过进一步调查/调整、可能会增加吞吐量。 需要确定瓶颈是否在 TI-RTOS NDK 软件堆栈中。
随附了修改后的 tcpEcho 示例、其中还包含修复 TivaC NDK TCP 中所述问题的固定 EMACSnow.c:无法接收 TI-RTOS NDK 无法接收到最大以太网帧的大型数据包(>=1460字节)。
e2e.ti.com/.../tcpEcho_5F00_EK_5F00_TM4C1294XL_5F00_TI_5F00_TivaTM4C1294NCPDT.zip
同意。CB1_MOBILE 说:抓住(仅)一 个可能会减少对"其他嫌疑人"的检测(和影响)。
[报价 USER="CB1_MOBILE "]我怀疑是否存在"更标准"-一般性"基准协议"。 如果是这样,则可以部署...过去使用 "="" is="" ethernet="" performance="" test="" tool"="">的“Blaste/blastee”是以太网性能测试工具,它可以针对 Linux/Unix、Windows 或 VxWorks 操作系统进行编译。 在基于 AM ARM Cortex-A15的系统上运行 Linux 后、通过100Mbit 以太网链路与 Linux PC 通信的系统能够通过 TCP 套接字(即93.8 Mbit/s 的 TCP 数据)实现11730806字节/秒、 由于以太网/IP/ TCP 报头、物理链路的速率将会更高。
我尚未尝试将 Blaster/blastee 转换为在 Tiva 设备上运行、但可能允许更高的以太网链路利用率。
从 TI 网络开发者套件(NDK) v2.25 API 参考指南的快速浏览中 、还可以选择使用 SOCK_STREAMNC 流类型的 TCP 套接字、该类型可消除一个或两个接收数据副本(取决于使用的是哪个 recv () socket 函数)。 发送大量数据脉冲以生成最大以太网链路带宽时、可能有助于提高吞吐量。
编辑:修正以链接到正确的 API 参考指南