My UART interface RX stream is stuck and no new RX interrupt is received for any attempt to drive input.
I experience a UART overflow, caused by interrupt long latency, which leaves the system with no active interrupt but with a char in the buffer.
This prevents from new char to be received. the only thing that "releases" the UART interface is D read.
Following this read the interface is released and the RX flow runs once again.
The UART statuses doesn't apply to any reasonable cause.
See UART status log below:
4006A000: 00 36 00 2C C8 40 00 XX 00 00 08 00 00 00 00 AA
4006A010: 22 00 C5 00 00 01 00 AA 00 00 00 0A 00 01 00 00
4006A020: AA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4006A030: 00 00 AA AA AA AA AA AA AA AA
Please note that the XX located in 4006A007 is the D register. Once this address is called the block is released.
When an overrun takes place the overrun flag must be correctly cleared otherwise the UART receiver will not process further reception.
Please see the following with explanation of how to reset it (towards the end of the thread): Lost UART interrupt on MK60DN512xxx10