summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2011-07-21 15:28:32 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2011-07-21 15:28:32 +0000
commitd7e676fd4c5afc3b4ea12a5d8c72d083fb80d134 (patch)
treed1ce45bda0e80799d3eccc490acb974a4666ba7d /c
parent2011-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-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')
-rw-r--r--c/src/lib/libbsp/shared/ChangeLog5
-rw-r--r--c/src/lib/libbsp/shared/include/uart-output-char.h1
-rw-r--r--c/src/lib/libbsp/shared/src/uart-output-char.c35
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;