summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2012-04-19 15:21:20 +0200
committerGedare Bloom <gedare@rtems.org>2012-04-19 12:34:20 -0400
commit6845f8005cc3a028b2fea636a73e0cf11d4da316 (patch)
tree4cc28822d5b6f7702eff077e7c0d3bfe5c38d6d0
parentrbheap: API changes and documentation (diff)
downloadrtems-6845f8005cc3a028b2fea636a73e0cf11d4da316.tar.bz2
LEON3: console, lower bus utilization waiting for UART TX ready
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
-rw-r--r--c/src/lib/libbsp/sparc/leon3/console/debugputs.c10
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 c6e0648fee..951218a22c 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;
}