We are using the MQX 4.1 software framework on a project based on the MCF52259 processor. There is a problem we keep running into based on Ethernet message timing that we want to fix.
Problem: We are using a blocking UDP protocol to send messages from a program on a windows 7 machine to our embedded system (The MCF52259 processor). We have communication working fine in terms of exchanging messages over ethernet. The problem occurs when the Windows 7 Program transmits back to back ethernet messages with a short time gap between the transmission.
Details: We read the Freescale MQX RTOS RTCS User's Guide (IPv4 and IPv6) Rev. 2 , 04/2015 manual for any indication on why back to back messages seem to be dropped. In section 2.6 Changing RTCS creation parameters, there is a message that reads "Priority of RTCS task. If the priority of RTCS task is too low, RTCS might miss received packets or violate the timing specifications for a protocol." We tried making the RTCS priority higher (set to 1,2,3, and 4 from the default of 6) but it did not seem to solve our problem.
From our empirical data, it looks like if the time gap between ethernet messages is 50 ms or less, the first message is received fine, but the second message is usually dropped. In our project, there are sometimes cases where the PC program will transmit two or more ethernet messages back to back (seperated by about 8 microseconds of time gap).
Summary: How should we go about receiving back to back messages with a short time gap between message?
What is the minimum time gap between ethernet messages that MQX supports?
Is there any other settings besides the RTCS task Priority that we can modify to make sure such messages don't get dropped.