diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-07-21 15:28:32 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-07-21 15:28:32 +0000 |
commit | d7e676fd4c5afc3b4ea12a5d8c72d083fb80d134 (patch) | |
tree | d1ce45bda0e80799d3eccc490acb974a4666ba7d /c/src | |
parent | 2011-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-d7e676fd4c5afc3b4ea12a5d8c72d083fb80d134.tar.bz2 |
2011-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
* include/uart-output-char.h, src/uart-output-char.c: Support for
getchark().
Diffstat (limited to 'c/src')
-rw-r--r-- | c/src/lib/libbsp/shared/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/include/uart-output-char.h | 1 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/src/uart-output-char.c | 35 |
3 files changed, 29 insertions, 12 deletions
diff --git a/c/src/lib/libbsp/shared/ChangeLog b/c/src/lib/libbsp/shared/ChangeLog index 641b15ddba..947622b74f 100644 --- a/c/src/lib/libbsp/shared/ChangeLog +++ b/c/src/lib/libbsp/shared/ChangeLog @@ -1,3 +1,8 @@ +2011-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * include/uart-output-char.h, src/uart-output-char.c: Support for + getchark(). + 2011-07-13 Joel Sherrill <joel.sherrilL@OARcorp.com> PR 1824/cpukit diff --git a/c/src/lib/libbsp/shared/include/uart-output-char.h b/c/src/lib/libbsp/shared/include/uart-output-char.h index 2fbfb89e93..949ea13bd4 100644 --- a/c/src/lib/libbsp/shared/include/uart-output-char.h +++ b/c/src/lib/libbsp/shared/include/uart-output-char.h @@ -41,6 +41,7 @@ #define CONSOLE_FDR (*(volatile uint32_t *) (BSP_CONSOLE_UART_BASE + 0x28)) #define CONSOLE_TER (*(volatile uint32_t *) (BSP_CONSOLE_UART_BASE + 0x30)) +#define CONSOLE_LSR_RDR 0x1 #define CONSOLE_LSR_THRE 0x20 #define BSP_CONSOLE_UART_INIT(dll) \ diff --git a/c/src/lib/libbsp/shared/src/uart-output-char.c b/c/src/lib/libbsp/shared/src/uart-output-char.c index c39def09f1..b6d07453be 100644 --- a/c/src/lib/libbsp/shared/src/uart-output-char.c +++ b/c/src/lib/libbsp/shared/src/uart-output-char.c @@ -7,12 +7,13 @@ */ /* - * Copyright (c) 2010 - * embedded brains GmbH - * Obere Lagerstr. 30 - * D-82178 Puchheim - * Germany - * <rtems@embedded-brains.de> + * Copyright (c) 2010-2011 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -23,7 +24,7 @@ #include <bsp/uart-output-char.h> -static void uart_output(char c) +static void uart_output_raw(char c) { while ((CONSOLE_LSR & CONSOLE_LSR_THRE) == 0) { /* Wait */ @@ -32,14 +33,24 @@ static void uart_output(char c) CONSOLE_THR = c; } -static void output(char c) +static void uart_output(char c) { if (c == '\n') { - uart_output('\r'); + uart_output_raw('\r'); } - uart_output(c); + uart_output_raw(c); +} + +static int uart_input(void) +{ + if ((CONSOLE_LSR & CONSOLE_LSR_RDR) != 0) { + return CONSOLE_RBR; + } else { + return -1; + } } -BSP_output_char_function_type BSP_output_char = output; -BSP_polling_getchar_function_type BSP_poll_char = NULL; +BSP_output_char_function_type BSP_output_char = uart_output; + +BSP_polling_getchar_function_type BSP_poll_char = uart_input; |