|
|
|
@ -19,7 +19,7 @@ |
|
|
|
|
|
|
|
|
|
struct usart_console { |
|
|
|
|
char recv_buf[RECV_BUF_LEN]; |
|
|
|
|
void (* process_line)(void); |
|
|
|
|
void (* process_line)(FILE *fp); |
|
|
|
|
FILE *fp; |
|
|
|
|
volatile size_t cur, next; |
|
|
|
|
uint32_t dev; |
|
|
|
@ -47,7 +47,7 @@ static void usart_isr(struct usart_console *console) |
|
|
|
|
scb_reset_system(); |
|
|
|
|
|
|
|
|
|
if (console->recv_buf[idx] == '\r' && console->process_line) { |
|
|
|
|
console->process_line(); |
|
|
|
|
console->process_line(console->fp); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -169,7 +169,7 @@ static int usart_init(struct usart_console *console) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FILE *console_init(void) |
|
|
|
|
FILE *console_init(void (* process_line)(FILE *fp)) |
|
|
|
|
{ |
|
|
|
|
cookie_io_functions_t fops = { |
|
|
|
|
.read = usart_read, |
|
|
|
@ -185,7 +185,7 @@ FILE *console_init(void) |
|
|
|
|
console->dev = USART1; |
|
|
|
|
console->cur = 0; |
|
|
|
|
console->next = 0; |
|
|
|
|
console->process_line = NULL; |
|
|
|
|
console->process_line = process_line; |
|
|
|
|
usart[0] = console; |
|
|
|
|
|
|
|
|
|
usart_init(console); |
|
|
|
|