I have made decent progress on porting the TCP drivers to the iMX.RT1064 EVK platform. I am outputting the gratuitous ARP broadcast every 30 seconds on the network. I then can run a ping loop on my connected PC (requests coming from PC) and get replies typically back in <1ms, a few take up to 15ms. ping can run for hours with no problem. I am moving on to implement the simple TCP echo server and uncovered some issues I am hoping you or others might have insight into.
I am using the MCUXpresso IDE with Linkserver debug link. I have found that if I pause the ping app (while not actively sending pings from PC) and then restart a few seconds later (and restart pings from PC) that the app will no longer reply to pings in a timely manner. Using Wireshark I see the ping requests go out and now the FreeRTOS app is taking a couple of seconds to send the reply. Nothing else in the Wireshark log looks unusual other than the slow reply from the FreeRTOS app. If I restart the target app and let it run without any pauses to the execution, everything is back to normal with <1ms ping replies. It seems that somehow the act of pausing execution is corrupting something in the RTOS and/or stack.
Perhaps related to this is when I do pause execution, the IDE is no longer FreeRTOS aware. I had set the debugger to all-stop and increased the FreeRTOS TAD memory read timeout to 20s. This had previously done the trick and allowed me to get task details on pause. Now with practically the same code it is not working (and I break the speedy ping replies).
Thanks for the help,