summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-05-20 13:10:56 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-05-20 13:10:56 +0000
commita9485d7b6be17c5ad1c9602e2c40185bc94d9e54 (patch)
treec1e220d7f89bb8784b4603fd77820b4f523168a6 /c
parent2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-a9485d7b6be17c5ad1c9602e2c40185bc94d9e54.tar.bz2
2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
* Makefile.am, preinstall.am, include/bsp.h, startup/bspstart.c: Use shared output character implementation.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/ChangeLog5
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/Makefile.am2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/bsp.h2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/preinstall.am4
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c28
5 files changed, 15 insertions, 26 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/ChangeLog b/c/src/lib/libbsp/arm/lpc24xx/ChangeLog
index b5b26d5f16..972c97b9c4 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/ChangeLog
+++ b/c/src/lib/libbsp/arm/lpc24xx/ChangeLog
@@ -1,5 +1,10 @@
2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
+ * Makefile.am, preinstall.am, include/bsp.h, startup/bspstart.c: Use
+ shared output character implementation.
+
+2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
* make/custom/lpc24xx.inc: Workaround for GCC bug 38644.
2010-04-30 Sebastian Huber <sebastian.huber@embedded-brains.de>
diff --git a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
index dd19785d09..84e37aa80e 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
+++ b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
@@ -32,6 +32,7 @@ include_bsp_HEADERS += ../../shared/include/utility.h
include_bsp_HEADERS += ../../shared/include/irq-generic.h
include_bsp_HEADERS += ../../shared/include/irq-info.h
include_bsp_HEADERS += ../../shared/include/stackalloc.h
+include_bsp_HEADERS += ../../shared/include/uart-output-char.h
include_bsp_HEADERS += ../../shared/tod.h
include_bsp_HEADERS += ../shared/include/linker-symbols.h
include_bsp_HEADERS += ../shared/include/start.h
@@ -88,6 +89,7 @@ libbsp_a_SOURCES += ../../shared/bootcard.c \
../../shared/gnatinstallhandler.c \
../../shared/sbrk.c \
../../shared/src/stackalloc.c \
+ ../../shared/src/uart-output-char.c \
../shared/abort/simple_abort.c
# Startup
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h b/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h
index 9ab0ad629e..a7f748496b 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h
+++ b/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h
@@ -87,6 +87,8 @@ int lpc_eth_attach_detach(
*/
void *bsp_idle_thread(uintptr_t ignored);
+#define BSP_CONSOLE_UART_BASE 0xe000c000
+
/** @} */
#endif /* ASM */
diff --git a/c/src/lib/libbsp/arm/lpc24xx/preinstall.am b/c/src/lib/libbsp/arm/lpc24xx/preinstall.am
index 1b99185693..1ca0658c91 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/preinstall.am
+++ b/c/src/lib/libbsp/arm/lpc24xx/preinstall.am
@@ -74,6 +74,10 @@ $(PROJECT_INCLUDE)/bsp/stackalloc.h: ../../shared/include/stackalloc.h $(PROJECT
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/stackalloc.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/stackalloc.h
+$(PROJECT_INCLUDE)/bsp/uart-output-char.h: ../../shared/include/uart-output-char.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/uart-output-char.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/uart-output-char.h
+
$(PROJECT_INCLUDE)/bsp/tod.h: ../../shared/tod.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/tod.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/tod.h
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c
index 097b66c513..918096a845 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c
@@ -29,6 +29,7 @@
#include <bsp/lpc24xx.h>
#include <bsp/stackalloc.h>
#include <bsp/system-clocks.h>
+#include <bsp/uart-output-char.h>
#ifdef LPC24XX_HEAP_EXTEND
LINKER_SYMBOL(lpc24xx_region_heap_0_begin);
@@ -72,13 +73,7 @@ void bsp_start(void)
#ifdef LPC24XX_CONFIG_CONSOLE
lpc24xx_module_enable(LPC24XX_MODULE_UART_0, LPC24XX_MODULE_CCLK);
lpc24xx_io_config(LPC24XX_MODULE_UART_0, LPC24XX_CONFIG_CONSOLE);
- U0LCR = 0;
- U0IER = 0;
- U0LCR = 0x80;
- U0DLL = lpc24xx_cclk() / 16 / LPC24XX_UART_BAUD;
- U0DLM = 0;
- U0LCR = 0x03;
- U0FCR = 0x07;
+ BSP_CONSOLE_UART_INIT(lpc24xx_cclk() / 16 / LPC24XX_UART_BAUD);
#endif
/* Interrupts */
@@ -111,22 +106,3 @@ void bsp_start(void)
lpc24xx_io_config(LPC24XX_MODULE_UART_3, LPC24XX_CONFIG_UART_3);
#endif
}
-
-#define ULSR_THRE 0x00000020U
-
-static void lpc24xx_BSP_output_char(char c)
-{
- while (IS_FLAG_CLEARED(U0LSR, ULSR_THRE)) {
- /* Wait */
- }
- U0THR = c;
-
- if (c == '\n') {
- while (IS_FLAG_CLEARED(U0LSR, ULSR_THRE)) {
- /* Wait */
- }
- U0THR = '\r';
- }
-}
-
-BSP_output_char_function_type BSP_output_char = lpc24xx_BSP_output_char;