Other Parts Discussed in Thread: BEAGLEBOARD-X15,
Hi.
My Configuration is
AM5728 on BeagleBoard-X15
CCS 9.3.0.00012
bios_6_75_02_00
ndk_3_60_00_13
pdk_am57xx_1_0_15
My TCP/IP receiver crashes after a couple of requests (errno 54 - Connection reset by peer). The timing seems to be random. I have modified the TI demo project NIMU_BasicExample_evmAM572x_armExample to work as a TCP/IP packet receiver (its a simple NDK_recv endless loop, see attached TcpTest\TcpReceiverMPU CSS project). This application runs on the CortexA15_0 core. BeagleBoard-X15 is directly connected with my PC (i.e. no switch or other network device in between). I use modified version of TcpPacketSender from this forum (its a simple send() endless loop, see attached TcpTest\TcpSenderWIN project) to send TCP/IP packets of specified size to my BeagleBoard-X15. Everything works fine for a while but later the socket connection terminates (function NDK_recv fails with error 54 - Connection reset by peer).
An another thing I have observed is the speed. BeagleBord-X15 console says I have FullDuplex 1000Mbs but Ethernet performance on my PC is sending 200Kbs and the Wireshark log is full of "TCP-Retransmission" and "TCP-Out-of-Order" messages.
Also the NDK_recv flags have some impact. Connection terminates much faster with MSG_DONTWAIT. Option MSG_WAITALL works better but still not stable. Changing to NDK_recvnc didn't help.
I can run my TCP/IP receiver code on an another PC (see attached TcpTest\TcpReceiverWIN project) with no problems.
Could you please help me to understand what is wrong in my project? What should I change to get better stability and speed?
Here is the source code TcpTest.zip
BeagleBoard-X15 console
PC console
Wireshark capture
Ethernet performance
Thank you,
Tomas