lm3s1968: add a busy wait sleep when enabling or disabling the UART peripheral.
authorarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 23 Apr 2010 15:37:26 +0000 (15:37 +0000)
committerarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 23 Apr 2010 15:37:26 +0000 (15:37 +0000)
This is an enforcement to be sure the peripheral is actually enabled or
disabled on return from lm3s_uartEnable()/lm3s_uartDisable().

git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3513 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/cpu/cortex-m3/drv/ser_lm3s.c
bertos/cpu/cortex-m3/drv/ser_lm3s.h

index 717ffa587499f2fc9de3fff1da8bb45816ca8cb4..b326a058bc9af98b0960275311f497788a0fffa5 100644 (file)
@@ -36,7 +36,6 @@
  */
 
 #include <cfg/macros.h> /* for BV() */
-#include <drv/clock_lm3s.h> /* lm3s_busyWait() */
 #include <drv/gpio_lm3s.h>
 #include <drv/ser_p.h>
 #include <drv/ser.h>
index 27da414b4c6092303dfaadb8df4af54543ce879c..9485b1f8a7197215f564b6a97ca5517cac92a21b 100644 (file)
@@ -40,6 +40,7 @@
 
 #include <cfg/cfg_debug.h>
 #include <cpu/power.h> /* cpu_relax() */
+#include <drv/clock_lm3s.h> /* lm3s_busyWait() */
 #include <io/lm3s.h>
 
 /* Serial hardware numbers */
@@ -76,6 +77,7 @@ INLINE void lm3s_uartDisable(uint32_t base)
        /* Disable the UART */
        HWREG(base + UART_O_CTL) &=
                ~(UART_CTL_UARTEN | UART_CTL_TXE | UART_CTL_RXE);
+       lm3s_busyWait(512);
 }
 
 INLINE void lm3s_uartEnable(uint32_t base)
@@ -86,6 +88,7 @@ INLINE void lm3s_uartEnable(uint32_t base)
        /* Enable RX, TX, and the UART */
        HWREG(base + UART_O_CTL) |=
                        UART_CTL_UARTEN | UART_CTL_TXE | UART_CTL_RXE;
+       lm3s_busyWait(512);
 }
 
 INLINE bool lm3s_uartTxDone(uint32_t base)