I use char c = DebugConsole_GetChar(); to read a serial character to simulate operation of a normally keypad driven menu system. I find that if I send two characters repeatedly, the GetChar function starts always returning 0 every call rather than blocking until a character is received.
I traced this through and it appears that in UART_ReadBlocking it checks the UART status (which has a RX buffer overrun flag set) and returns a kStatus_UART_RxHardwareOverrun. Which is ignored by the DbgConsole_Getchar function which happily returns the character 0.
Kind of frustrating. Mainly happens if I pause for debugging and send a character while paused by accident. So hardware is reporting a correct rx buffer overrun but does not seem to be cleared by the debug console code. Sometimes if I step through the code when it is stuck it will clear the flag and come right!