Прерывания UART2 выключены, по линии RX к нему могут приходить какие-то символы, но в тот момент они не интересны. Потом программа выполняет следующий код (готовится к обмену с приемом):

Код
U2IER = 0;
U2FCR = 7;
  
assert((1 == (U2IIR & 1)) && "At least one interrupt is pending");

assert((0x60 == U2LSR) && "There is something active in the UART2");

dword volatile unused;    // workaround
unused = U2RBR;           // workaround
unused = U2LSR;           // workaround
  
U2IER = 7;


В ассертах не вылетает, если убрать workaround то после включения прерываний (U2IER=) сразу срабатывает CTI. С workaround работает нормально. Это баг или фича?