Hello!
I am developing a device AM3358 processor. I use the debug board BeagleBoneBlack. I configured UART, and trying to work with interrupts reception bytes. I UART0 is configured as follows:
unsigned char save_efr = 0;
CM_WKUP_UART0_CLKCTRL | = 0x2;
UART0_SYSC | = 0x2;
while ((UART0_SYSS & 0x1) == 0) {};
UART0_MDR1 = 0x7;
UART0_LCR = 0x00BF;
save_efr = UART0_EFR;
save_efr & = 0x10;
UART0_EFR | = 0x10;
UART0_LCR = 0;
UART0_IER = 0;
UART0_LCR = 0x00BF;
UART0_DLL = 0x1A;
UART0_DLH = 0;
UART0_LCR = 0;
INTC_IntInstall (Uart0Handler, INT_UART0INT, 15, INTC_INT_IRQ);
UART0_IER = 0x01;
INTC_IntEnable (INT_UART0INT, INTC_ENABLE);
UART0_LCR = 0x00BF;
if (save_efr == 0)
{
UART0_EFR & = ~ 0x10;
}
else
{
UART0_EFR | = 0x10;
};
UART0_LCR = 0x0003;
UART0_MDR1 = 0;
When RX line comes bytes, the register set UART0_IIR state arrival interrupt, but the handler does not go away. The resulting byte enters the register UART0_RHR. Through the TX data is transmitted.Interrupt controller works because the timer interrupt and GPIO come and processed.
Which operations should be done to interrupt operation of the UART0?