diff --git a/arch/arm/src/s32k3xx/s32k3xx_serial.c b/arch/arm/src/s32k3xx/s32k3xx_serial.c index d14e739775f..52d7342f0b5 100644 --- a/arch/arm/src/s32k3xx/s32k3xx_serial.c +++ b/arch/arm/src/s32k3xx/s32k3xx_serial.c @@ -3969,9 +3969,12 @@ static void s32k3xx_dma_txavailable(struct uart_dev_s *dev) /* Only send when the DMA is idle */ - nxsem_wait(&priv->txdmasem); + int rv = nxsem_trywait(&priv->txdmasem); - uart_xmitchars_dma(dev); + if (rv == OK) + { + uart_xmitchars_dma(dev); + } } #endif