Dear community,
I have a problem using the FreeRTOS TCP connection.
My application requires to send short packets of 13 bytes periodically (each second) between a TCP client (C++ application on PC) and a TCP server which is implemented using FreeRTOS TCP/IP stack.
This works fine for a random amount of time until suddenly one packet is apparently dropped by the server. I monitored the connection with wireshark and saw that the concerned packet is sent by the client and acknowledged by the FreeRTOS TCP stack but the recv() function oof the server won’t return any data, no matter how often I try and how long I wait.
If I send some more data, the server resums operation with this new data as usual, but the “lost” data remains lost forever. Just as if it was never received.
I tried a similar test scenario but with less bytes (4 bytes) and no concurrently running application in background which worked without dropping any data. I left it running way longer than I can run the other application until a packet is dropped.
The IP task priority is in both tests the highest priority among all tasks.
I am going to attach the FreeRTOSIPConfig.h so you can see all my configurations.
I enabled all debug switches but did not get any output when a packet was dropped.
The “network” is just one cable that goes from the PC to the device running FreeRTOS (Zynq FPGA), so there is no traffic at all except the one generated by the application itself.
Apparently the application has something to do with the issue… Can somebody give me a hint what I could check to resolve the problem? Has somebody experienced something similar?
Thanks in advance!
FreeRTOSIPConfig.h (20.8 KB)