主题中讨论的其他器件:C2000WARE
您好!
我正在开发我们的闪存引导加载程序。
在我调用闪存 API 擦除某些闪存扇区期间、CM-UART Rx 中断缺失。
如果我不调用 闪存 API 进行擦除、它就能完美工作。
我确认 了中断处理程序中调用的所有函数都是 ramfuncs。
并且 UART Rx FIFO 中的日期计数超过 了 UARTIFLS 的设置、但中断仍不会被触发。
处理程序函数引用了 C2000 Ware 示例"C:\ti\c2000\C2000Ware_3_02_00_00\driverlib\f2838x\examples\cm\UART\UART_ex1_echoback.c"。
中断空 UART_RX_IntHandler (空)
{
uint32 ui32状态;
ui32Status = UART_getInterruptStatus (UART0_BASE、UART_RAW_INT);
UART_clearInterruptStatus( UART0_BASE,ui32Status );
if (ui32Status & UART_INT_RX)
drive_uart_receive();
}
但是,如果我没有调用 UART_clearInterruptStatus(),则会按预期触发中断。
在 UART.h 中 ,UART_clearInterruptStatus()的注释说 ,建议在 中断处理程序函数中调用该函数。
如何解决中断丢失问题,并且仍然调用 推荐的函数 UART_clearInterruptStatus()?
谢谢