I'm using RTX on the new XMC devices and I discovered a problem with sending over UART.
The KEIL UART driver defines the TX IRQ in uart.c as
#if (RTE_UART0 != 0) #if (UC_SERIES == XMC14) void IRQ9_Handler() { UART_IRQHandler (uart[0],USIC0_0_IRQn ); } void IRQ10_Handler() { UART_IRQHandler (uart[0],USIC0_1_IRQn); } #else void USIC0_0_Handler() { UART_IRQHandler (uart[0],USIC0_0_IRQn ); } void USIC0_1_Handler() { UART_IRQHandler (uart[0],USIC0_1_IRQn); } #endif #endif
But in the xmc4800.h and startup_xmc4800.s file (from the pack) the IRQ handlers are named different:
#define IRQ_Hdlr_84 USIC0_0_IRQHandler EXPORT USIC0_0_IRQHandler [WEAK]
This leads to an unhandled IRQ exception.
Is this a bug in the pack's files or what am I doing wrong? Should the xmc4800.h file be modified by µVision after I have configured the UART? Of course I can disable the write protection of xmc4800.h and add the correct IRQ handler, but that's not the best way in my opinion.
Any help is appreciated.
Michael
Hi Michael
Please send this to support.intl@keil.com along with a test project.
If it is a bug, will be corrected in future.
Thanks