Hello,
I am developing a TCP/IP streaming application on a LPC4088 (ARM Cortex M4F) quickstart board platform under Keil RTX5 using the MDK Middelware Network component 7.9.0.
I am sending data from the device's TCP Client Socket to a listening TCP Server socket on a C# application.
The data rate is 1 packet every 0.005 second with a packet data length equal to 967 bytes.
The streaming is running smoothly but I sometimes observe large delays between subsequent packets (up to 7 seconds). At code level, netTCP_SendReady(sock) returns false during several seconds.
When debugging with Network Debug STDIO activated, I can read the following :
496.8 ETH-ERR:Send, Link down 496.8 ETH-ERR:Send, Link down 496.8 ETH-ERR:Send, Link down 496.9 ETH-ERR:Send, Link down 496.9 ETH-ERR:Send, Link down 496.9 ETH-ERR:Send, Link down 497.3 ETH-ERR:Send, Link down 498.1 ETH-ERR:Send, Local-IP4 undefined
Meanwhile in Keil UV5 Network debug interface, I see the ETH Interface status is Link-Down and the IPv4 IP address is 0.0.0.0. The link goes up directly after and the correct IP is successfully retrieved.
Meanwhile In Keil UV5 Command View, I can read errors of the following type :
Expression: 'QML[j + QCB[i].ml_idx].addr' E303: Access out of bounds - <readlist 'QML[1]'> - actual index:=2
The problem's frequency of occurence can vary from very small (once in an hour) to very large (several times in a minute).
Any help would be very much appreciated
Adrien
The problem you are seeing might be caused by the Ethernet driver which falsely identifies that Link is down. This might happen due to PHY Read/Write timeout.
I'm assuming that you are using the EMAC driver from LPC4000 Device Family pack (EMAC_LPC40xx.c).
Try to increase the PHY timeout in order to overcome tick granularity effect.
File EMAC_LPC40xx.c:
#define PHY_TIMEOUT 2000 /* PHY Register access timeout in us */
First of all, thank you very much far taking the time to answer my question.
I am indeed using the EMAC driver from LPC4000 Device Family pack (EMAC_LPC40xx.c).
I made the modification and launched a test a few hours ago and no "link down" event so far.
Thank you again !