diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-03-07 10:32:42 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-03-07 13:03:32 +0100 |
commit | befae6ab989116101ef7e286d8044857db1c797c (patch) | |
tree | 5f54321126df409ab4584d49735bb694210b2eb3 /c/src/lib/libbsp/m68k | |
parent | bsps/m68k: Fix entry point in linkcmds.base (diff) | |
download | rtems-befae6ab989116101ef7e286d8044857db1c797c.tar.bz2 |
bsp/genmcf548x: Fix printk() support
Diffstat (limited to 'c/src/lib/libbsp/m68k')
-rw-r--r-- | c/src/lib/libbsp/m68k/genmcf548x/console/console.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/m68k/genmcf548x/console/console.c b/c/src/lib/libbsp/m68k/genmcf548x/console/console.c index d22cfe6af1..32e5601a17 100644 --- a/c/src/lib/libbsp/m68k/genmcf548x/console/console.c +++ b/c/src/lib/libbsp/m68k/genmcf548x/console/console.c @@ -71,11 +71,12 @@ static ssize_t IntUartPollWrite(int minor, const char *buf, size_t len); static int IntUartPollRead (int minor); +static int IntUartSetAttributes(int minor, const struct termios *t); static void -_BSP_null_char( char c ) +psc_output_char( char c ) { - int level; + rtems_interrupt_level level; rtems_interrupt_disable(level); while (!((MCF548X_PSC_SR(CONSOLE_PORT) & MCF548X_PSC_SR_TXRDY))) @@ -85,7 +86,17 @@ _BSP_null_char( char c ) continue; rtems_interrupt_enable(level); } -BSP_output_char_function_type BSP_output_char = _BSP_null_char; + +static void +psc_output_char_init(char c) +{ + IntUartSetAttributes(CONSOLE_PORT, NULL); + BSP_output_char = psc_output_char; + psc_output_char(c); +} + +BSP_output_char_function_type BSP_output_char = psc_output_char_init; + BSP_polling_getchar_function_type BSP_poll_char = NULL; #define MAX_UART_INFO 4 @@ -485,7 +496,7 @@ IntUartInitialize(void) bsp_interrupt_vector_enable(MCF548X_IRQ_PSC(chan)); } /* of chan loop */ - + BSP_output_char = psc_output_char; } /* IntUartInitialise */ /*************************************************************************** |