If I were to debug this, I would use UDP, you can move a pin when sending and be sure the msg will at least get to the driver (where we think it is lost). TCP... well... Then, every entry to the driver should end with a safe exit and due to DMA a later "done" interrupt where the driver frees the buffer. (with no DMA, the buffer is freed when sent to the chip and things are way simpler)
A driver framework is simple, but a DMA driver gets complicated. I would try putting breakpoints at troublesome decision points and try to catch errors or unexpected conditions. I mean, most of the time frames go through, so something happens once in a while; what is this that happens ? What can be ? Is it copying memory to DMA ring buffers ? Most of the times the driver should get an available ring buffer, what happens when it doesn't ? Is it happening ? I'd suggest asking for help in ST forums. Good luck! _______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
