Верно подметили, я не указал тип контроллера; это LPC2378. Я попробовал все перечисленные советы - без результата

.
Видите ли, сегодня я достал другую отладочную плату с другим контроллером, LPC2364, и был неприятно удивлен, что там поведение U0FCR при инициализации подобно. Там тоже после установки в ноль RTLS не устанавливается, а, как прежде принимает значение 0х3. Я много раз слышал, что регистры U0IIR и U0FCR находятся по одному адресу, один из них для чтения другой - для записи, соответственно. Но к чему это? Разве это объясняет, почему прерывание срабатывает не по приходу одного байта, а из очереди байтов выхватывает последний? Помоему прерывание срабатывает на таймаут. А проблема в инициализации. Может там хитрый сиквел инициализации или есть какие-то условия доступа?
Кто делал обработчик прерываний по приходу одного байта в UART, отзовитесь!!!
Ведь это такая распространенная задача, странно, что никто не сталкивался с подобной проблемой.