mirror of https://github.com/ARMmbed/mbed-os.git
Bug fix for UART issue on LPC54608 - issue #7398
parent
f8e1116019
commit
d1ae8b2604
|
@ -166,13 +166,13 @@ void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_b
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* INTERRUPTS HANDLING
|
* INTERRUPTS HANDLING
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
static inline void uart_irq(uint32_t transmit_empty, uint32_t receive_full, uint32_t index)
|
static inline void uart_irq(uint32_t transmit_empty, uint32_t receive_not_empty, uint32_t index)
|
||||||
{
|
{
|
||||||
if (serial_irq_ids[index] != 0) {
|
if (serial_irq_ids[index] != 0) {
|
||||||
if (transmit_empty)
|
if (transmit_empty)
|
||||||
irq_handler(serial_irq_ids[index], TxIrq);
|
irq_handler(serial_irq_ids[index], TxIrq);
|
||||||
|
|
||||||
if (receive_full)
|
if (receive_not_empty)
|
||||||
irq_handler(serial_irq_ids[index], RxIrq);
|
irq_handler(serial_irq_ids[index], RxIrq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,56 +180,56 @@ static inline void uart_irq(uint32_t transmit_empty, uint32_t receive_full, uint
|
||||||
void uart0_irq()
|
void uart0_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART0->FIFOSTAT;
|
uint32_t status_flags = USART0->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 0);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart1_irq()
|
void uart1_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART1->FIFOSTAT;
|
uint32_t status_flags = USART1->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 1);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart2_irq()
|
void uart2_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART2->FIFOSTAT;
|
uint32_t status_flags = USART2->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 2);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart3_irq()
|
void uart3_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART3->FIFOSTAT;
|
uint32_t status_flags = USART3->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 3);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart4_irq()
|
void uart4_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART4->FIFOSTAT;
|
uint32_t status_flags = USART4->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 4);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart5_irq()
|
void uart5_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART5->FIFOSTAT;
|
uint32_t status_flags = USART5->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 5);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart6_irq()
|
void uart6_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART6->FIFOSTAT;
|
uint32_t status_flags = USART6->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 6);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart7_irq()
|
void uart7_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART7->FIFOSTAT;
|
uint32_t status_flags = USART7->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 7);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (FSL_FEATURE_SOC_FLEXCOMM_COUNT > 8U)
|
#if (FSL_FEATURE_SOC_FLEXCOMM_COUNT > 8U)
|
||||||
void uart8_irq()
|
void uart8_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART8->FIFOSTAT;
|
uint32_t status_flags = USART8->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 8);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 8);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -237,7 +237,7 @@ void uart8_irq()
|
||||||
void uart9_irq()
|
void uart9_irq()
|
||||||
{
|
{
|
||||||
uint32_t status_flags = USART9->FIFOSTAT;
|
uint32_t status_flags = USART9->FIFOSTAT;
|
||||||
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoFullFlag), 9);
|
uart_irq((status_flags & kUSART_TxFifoEmptyFlag), (status_flags & kUSART_RxFifoNotEmptyFlag), 9);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue