I'm using lwIP on a Stellaris micro, and saw lots of dropped packets. Upon further investigation, it turns out these packets were failing TCP checksum. I noticed that if I enabled debugging in the correct areas, and enough of it, the issue went away. Long story short, after lots of trial and error I discovered that if I disable debugging and add a delay of 300us at the very end, before the return, in ip_output_if(), it fixes the problem. If I decrease the delay, the problem starts appearing and becomes worse as I continue to decrease the delay.
The driver for the onboard ethernet controller is from the Luminary driver library. I don't imagine that a very high percentage of users here use the same chip I'm using, but generally speaking, any idea what I can look for; what would cause this? I'm mainly recieving
data. It's streaming audio data so once I initiate it, the stack only has to ACK.
|