[rtems commit] LEON3: console, lower bus utilization waiting for UART TX ready

Gedare Bloom gedare at rtems.org
Thu Apr 19 16:31:40 UTC 2012


Module:    rtems
Branch:    master
Commit:    6845f8005cc3a028b2fea636a73e0cf11d4da316
Changeset: http://git.rtems.org/rtems/commit/?id=6845f8005cc3a028b2fea636a73e0cf11d4da316

Author:    Daniel Hellstrom <daniel at gaisler.com>
Date:      Thu Apr 19 15:21:20 2012 +0200

LEON3: console, lower bus utilization waiting for UART TX ready

Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>

---

 c/src/lib/libbsp/sparc/leon3/console/debugputs.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/c/src/lib/libbsp/sparc/leon3/console/debugputs.c b/c/src/lib/libbsp/sparc/leon3/console/debugputs.c
index c6e0648..951218a 100644
--- a/c/src/lib/libbsp/sparc/leon3/console/debugputs.c
+++ b/c/src/lib/libbsp/sparc/leon3/console/debugputs.c
@@ -13,8 +13,6 @@
  *  The license and distribution terms for this file may be
  *  found in the file LICENSE in this distribution or at
  *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
  */
 
 #include <bsp.h>
@@ -94,7 +92,13 @@ void apbuart_outbyte_polled(
   unsigned char ch
 )
 {
-  while ( (regs->status & LEON_REG_UART_STATUS_THE) == 0 );
+  while ( (regs->status & LEON_REG_UART_STATUS_THE) == 0 ) {
+    /* Lower bus utilization while waiting for UART */
+    asm volatile ("nop"::); asm volatile ("nop"::);
+    asm volatile ("nop"::); asm volatile ("nop"::);
+    asm volatile ("nop"::); asm volatile ("nop"::);
+    asm volatile ("nop"::); asm volatile ("nop"::);
+  }
   regs->data = (unsigned int) ch;
 }
 




More information about the vc mailing list