aboutsummaryrefslogtreecommitdiff
path: root/kernel/uart.c
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-03-16 13:37:27 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-03-16 13:37:27 +0000
commit0a6666c2f63e747c6eeae820152a69fff0e72ee9 (patch)
tree463ed5877308f1d4866976d637973244bbb0c977 /kernel/uart.c
parent120675e595fe1661fbe657bd22cb9cfbfeb0e558 (diff)
switch to dynamic memory allocation
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