|
|
|
@ -46,9 +46,8 @@ static void usart_isr(struct usart_console *console) |
|
|
|
|
if (console->recv_buf[idx] == '\003') |
|
|
|
|
scb_reset_system(); |
|
|
|
|
|
|
|
|
|
if (console->recv_buf[idx] == '\r' && console->process_line) { |
|
|
|
|
if (console->recv_buf[idx] == '\r' && console->process_line) |
|
|
|
|
console->process_line(console->fp); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -169,7 +168,7 @@ static int usart_init(struct usart_console *console) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FILE *console_init(void (* process_line)(FILE *fp)) |
|
|
|
|
FILE *console_init(unsigned dev_id, void (* process_line)(FILE *fp)) |
|
|
|
|
{ |
|
|
|
|
cookie_io_functions_t fops = { |
|
|
|
|
.read = usart_read, |
|
|
|
@ -182,11 +181,16 @@ FILE *console_init(void (* process_line)(FILE *fp)) |
|
|
|
|
if (!(console = malloc(sizeof *console))) |
|
|
|
|
return NULL; |
|
|
|
|
|
|
|
|
|
console->dev = USART1; |
|
|
|
|
switch (dev_id) { |
|
|
|
|
case 0: console->dev = USART1; break; |
|
|
|
|
case 1: console->dev = USART2; break; |
|
|
|
|
default: return NULL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
console->cur = 0; |
|
|
|
|
console->next = 0; |
|
|
|
|
console->process_line = process_line; |
|
|
|
|
usart[0] = console; |
|
|
|
|
usart[dev_id] = console; |
|
|
|
|
|
|
|
|
|
usart_init(console); |
|
|
|
|
|
|
|
|
|