aboutsummaryrefslogtreecommitdiff
path: root/kernel/uart.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/uart.c')
-rw-r--r--kernel/uart.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/uart.c b/kernel/uart.c
index 02911db..21389c7 100644
--- a/kernel/uart.c
+++ b/kernel/uart.c
@@ -30,8 +30,6 @@
#include "kernel.h"
#include "tasks.h"
-FILE uart_stream = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW);
-
#if USE_RXCIE
ISR(USART_RX_vect)
{
@@ -76,6 +74,8 @@ ISR(USART_UDRE_vect)
void
uart_init(void)
{
+ FILE *uart_stream;
+
UCSR0B = _BV(RXEN0) | _BV(TXEN0);
#if USE_RXCIE
UCSR0B |= _BV(RXCIE0);
@@ -88,8 +88,9 @@ uart_init(void)
UCSR0A &= ~_BV(U2X0);
#endif
- stdin = &uart_stream;
- stdout = &uart_stream;
+ uart_stream = fdevopen(uart_putchar, uart_getchar);
+ stdin = uart_stream;
+ stdout = uart_stream;
}
int