MATLAB: Do I receive a ‘FIFO overflow’ error message after the model stops executing with xPC Target 4.1 (R2009a)

Simulink Real-Time

I have a model that I can compile and run successfully on my target machine. However, after my model stopped executing, the entire system stopped and I received the following error message.
FIFO overflow: RCV channel 1, IRQ 3
I have a serial port on IRQ 3, connected to my system and I am using the RS-232 Send/Receive block in my model for serial communications.
This block takes input from my system and outputs it to a logging device that I have connected to the system. I send data out through the serial port but I don't read anything into the serial port. The device is almost always ready to receive data.
However, I believe that the logging device is not always ready to receive data due to which the receive FIFO gets overflowed.

Best Answer

This error message is typically observed because it is possible that the device that is being communicated with, is echoing the data back which causes the receive FIFO to overflow.
The FIFO overflow error message is not a bug in xPC Target 4.1 (R2009a). If there is data coming in, then it needs to be dealt with appropriately. It is possible that the device is only sending a single character back each time you send it a string. That might explain why it takes so long to get the overflow. Use the 'FIFO Read' block, set it to read without looking for a Terminator with 'Minimum read size' parameter set to 1 and 'Maximum read size' parameter set to 1024, and then connect the output to the 'Terminator' block. This will ensure that no data is accumulated in the receive FIFO and it will never be overflowed.
In addition, please follow the steps below in order to resolve the issue.
1) Try to turn off the echo if this is true.
2) If the echo cannot be turned off, add a ‘FIFO Read’ block to the receiver side and dump it to a 'Terminator' block. Please have a look at the data to ensure if that is the expected data that is being sent out.