The GUI is a Windows Dialog App (Visual C++ Net) with timers running for initiating events like getting status. It would be issuing messages to the NIOS while the NIOS is coming up, potentially. The idea is that the ports are set up in non-blocking mode (on the PC) and are read after every transmit to see if data is coming in. If data is coming in, retries allow the rest of the message to arrive before parsing the message (header and checksum). If the retries time out, the buffer is cleared and the port is flushed to remove any remaining data. Process continues.
Any device that comes up before the NIOS, could be transmitting to it before it is ready to receive data. Imagine a handheld unit with a GPS connected to a NIOS/CCA is powered on. The GPS initializes and begins transmitting data before the NIOS is ready - then what?