Hi,
I'm looking for some advice on an issue I'm seeing
in the field with our new product which is running lwIP 1.10. Our
platform is a Xilinx Spartan 3E running the Xilinx OS. The way our unit
works is that when it boots up, it starts issuing UDP packets intended for a
server running our application. As soon as the server receives one or more
of these packets it makes a TCP connection with the device. This
connection should stay up indefinitely but it doesn't. This
is usually caused by a failure to respond to a command which causes
the server to drop the connection. To make matters worse, randomly
our device will not connect at all and must be power cycled before it
will. Our EMAC core has been modified to block
everything except our TCP packets and our ARP requests. 99%
of communications starts with the server sending a packet and the
device responding. In the other 1%, the device sends an asynchronous
packet. Before doing this I disable the RX interrupt on the EMAC to avoid
any thread issues. What I don't do though is disable the RX interrupt when
sending out UDP packets after bootup which I do every 3 seconds. My
question is, will I run into thread issue if the server tries to make a TCP
connection at the exact same time the device is sending a UDP
packet? Also, what happens if I'm transmitting a packet and an ARP
request comes in? If I need to stop input packets during all
transmissions, what is your recommendation on how I do this?
Thanks
Steve
|