Part Number: TMS320F28386D
Other Parts Discussed in Thread: C2000WARE
Hi,
I am developing our FLASH bootloader.
During I calling the FLASH API to erase some flash sectors, my CM-Uart Rx interrupt was missing.
If I do not call the FLASH API to erase, it worked perfectly.
I have confirmed that all functions called in the interrupt handler are ramfuncs.
And the date count in the UART Rx FIFO has over the setting of UARTIFLS, but the interrupt is still not triggered.
The handler function is referenced to the C2000 Ware example "C:\ti\c2000\C2000Ware_3_02_00_00\driverlib\f2838x\examples\cm\uart\uart_ex1_echoback.c".
interrupt void UART_RX_IntHandler(void)
{
Uint32 ui32Status;
ui32Status = UART_getInterruptStatus(UART0_BASE, UART_RAW_INT);
UART_clearInterruptStatus( UART0_BASE, ui32Status );
if( ui32Status & UART_INT_RX )
drive_UART_Receive();
}
However, if I do not call the UART_clearInterruptStatus(), the interrupt is triggered as expect.
In uart.h, the comment of UART_clearInterruptStatus() said the function is recommended to be called in the interrupt handler function.
How can I fix the interrupt missing problem and still call the recommended function UART_clearInterruptStatus()?
Thanks