请问用NC_SystemOpen、NC_NetStart及DaemonNew等函数调用进行TCP和UDP网络数据传输,配置了全双工百M的RJ45以太网,如何提升最大网络吞吐速率?
有哪些方面需要注意?有可能接近百M吗?有哪些相关参数需要设置?有哪些资料需要参考学习?谢谢!
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.
请问用NC_SystemOpen、NC_NetStart及DaemonNew等函数调用进行TCP和UDP网络数据传输,配置了全双工百M的RJ45以太网,如何提升最大网络吞吐速率?
有哪些方面需要注意?有可能接近百M吗?有哪些相关参数需要设置?有哪些资料需要参考学习?谢谢!
user6619181 说:请问用NC_SystemOpen、NC_NetStart及DaemonNew等函数调用进行TCP和UDP网络数据传输,配置了全双工百M的RJ45以太网,如何提升最大网络吞吐速率?
有哪些方面需要注意?有可能接近百M吗?有哪些相关参数需要设置?有哪些资料需要参考学习?谢谢!
目前使用ti\ndk\examples\ndk_omapl138_arm9_examples\ndk_evmOMAPL138_arm9_client这个demo验证,最大网络吞吐速率很差...
比如使用ndk_evmOMAPL138_arm9_client这个demo里面的dtask_tcp_echo,只有12KB/s... 跑一会儿以后差不多还会掉一半...
Nancy Wang 说:请将使用的SDK版本贴出来一下,并且提供有关如何测量吞吐量的详细信息,谢谢!
吞吐测量使用周立功的TCP&UDP测试工具,相关SDK版本如下:
CCS 7.3.0.00019
Compiler TI v16.9.9.LTS
XDCtools version 3.50.8.24_core
EDMA3 Low level Driver 2.12.5
IPC 3.50.3.04
NDK 3.40.1.01
SYS/BIOS 6.73.1.01
System Analyzer (UIA Target) 2.30.1.02
omapl138 PDK 1.0.7
Target ti.targets.arm.elf.Arm9
Platform ti.platforms.evmOMAPL138
我们在NDK 3.40.1.01下没有发现这个例程。
./ndk/nimu/example/helloWorld/omapl138/c674/bios/NIMU_emacExample_lcdkOMAPL138C674xBiosExampleProject.txt
./ndk/nimu/example/helloWorld/omapl138/armv5/bios/NIMU_emacExample_lcdkOMAPL138ARMBiosExampleProject.txt
./ndk/nimu/example/helloWorld/omapl137/c674/bios/NIMU_emacExample_evmOMAPL137C674xBiosExampleProject.txt
./ndk/nimu/example/helloWorld/omapl137/armv5/bios/NIMU_emacExample_evmOMAPL137ARMBiosExampleProject.txt
./ndk/nimu/example/client/omapl138/c674/bios/NIMU_emacExampleclient_lcdkOMAPL138C674xBiosExampleProject.txt
./ndk/nimu/example/client/omapl138/armv5/bios/NIMU_emacExampleClient_lcdkOMAPL138ARMBiosExampleProject.txt
./ndk/nimu/example/client/omapl137/c674/bios/NIMU_emacExampleClient_evmOMAPL137C674xBiosExampleProject.txt
./ndk/nimu/example/client/omapl137/armv5/bios/NIMU_emacExampleClient_evmOMAPL137ARMBiosExampleProject.txt
再次确认一下您使用的版本,我在 https://e2e.ti.com/support/processors/f/processors-forum/484379/the-problem-with-use-ndk-in-omapl138 看到 nsp_1_10_02_09\packages\ti\ndk\examples\ndk_evmOMAPL138_arm9_client。
对,ndk_evmOMAPL138_arm9_client是nsp下的例程,ndk里面没有带。
使用的不是CPSW,cmd和map文件就是ndk_evmOMAPL138_arm9_client自带的(nsp_1_10_02_09\packages\ti\ndk\examples\ndk_omapl138_arm9_examples\ndk_evmOMAPL138_arm9_client\Debug\configPkg下的linker.cmd,nsp_1_10_02_09\packages\ti\ndk\examples\ndk_omapl138_arm9_examples\ndk_evmOMAPL138_arm9_client\Debug下编译自动生成的map),没有修改过,其实ndk_evmOMAPL138_arm9_client这个例程里面的所有配置都没有动过原模原样直接使用的...
但是ndk里面带的NIMU_emacExampleClient_lcdkOMAPL138ARMBiosExampleProject也试过,相关配置也没动过,效果也类似,吞吐不高。
最后,cache的使能和NDK buffer的相关配置方式可以明确指导一下排查步骤吗?
是的,就是demo工程里面netHooks.c第23行的这一句调用里面的这个 int dtask_tcp_echo( SOCKET s, UINT32 unused ); 回调函数。
Nancy Wang 说:请关注该贴的测试结果。
e2e.ti.com/.../3685796
十分感谢帮忙联系转发咨询,看起来在Linux下用iperf TCP能到60多Mb/s,之前也考虑过用iperf来测试,但是最后因为在SYS/BIOS下,没有找到对iperf benchmark服务的实现工具程序,就没有继续。以现在这样的情况看,请问,在SYS/BIOS下,有类iperf的官方吞吐benchmark工具或者demo工程之类的可以参考吗(仍然因为我们前期一直是SYS/BIOS,马上切换到Linux不现实)?
Nancy Wang 说:请关注该贴的测试结果。
e2e.ti.com/.../3685796
从目前最新回复来看,看起来用iperf-2.0.9-win64可以和NDK client example中的UDP服务交互吗?但是提示:
[ 3] WARNING: did not receive ack of last datagram after 10 tries.
是否这个也可能是不兼容导致造成“the throughput seems significantly low compared to linux side.”的原因吗?
因为据我之前的了解,如果没错的话,iperf需要它自己的服务端来配合,才能进行benchmark。
user6619181 说:在SYS/BIOS下,有类iperf的官方吞吐benchmark工具或者demo工程之类的可以参考吗(仍然因为我们前期一直是SYS/BIOS,马上切换到Linux不现实)?
没有这样的工具。
例程应该是可以直接与iperf交互的。
WARNING: did not receive ack of last datagram after 10 tries 是不是有可能是防火墙的原因,我建议您按照英文论坛上给出的测试方法试一下,看看结果如何?