From edb53c7ea434cce32a19adb289cf06bec7ecc4e0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 2 Jan 2015 14:05:42 -0600 Subject: Tiva serial: Add volatile to fix a wait loop that was not waiting; CR really should preced LF in CR-LF expansion --- nuttx/arch/arm/src/tiva/tiva_serial.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'nuttx') diff --git a/nuttx/arch/arm/src/tiva/tiva_serial.c b/nuttx/arch/arm/src/tiva/tiva_serial.c index a84e71763..8fd78cf5e 100644 --- a/nuttx/arch/arm/src/tiva/tiva_serial.c +++ b/nuttx/arch/arm/src/tiva/tiva_serial.c @@ -685,7 +685,7 @@ static inline void up_restoreuartint(struct up_dev_s *priv, uint32_t im) #ifdef HAVE_SERIAL_CONSOLE static inline void up_waittxnotfull(struct up_dev_s *priv) { - int tmp; + volatile int tmp; /* Limit how long we will wait for the TX available condition */ @@ -1355,8 +1355,6 @@ int up_putc(int ch) uint32_t im; up_disableuartint(priv, &im); - up_waittxnotfull(priv); - up_serialout(priv, TIVA_UART_DR_OFFSET, (uint32_t)ch); /* Check for LF */ @@ -1368,6 +1366,9 @@ int up_putc(int ch) up_serialout(priv, TIVA_UART_DR_OFFSET, (uint32_t)'\r'); } + up_waittxnotfull(priv); + up_serialout(priv, TIVA_UART_DR_OFFSET, (uint32_t)ch); + up_waittxnotfull(priv); up_restoreuartint(priv, im); #endif -- cgit v1.2.3