32 lines
752 B
C
32 lines
752 B
C
#include "wm_include.h"
|
|
#include "shell_io/static_fifo.h"
|
|
|
|
static_fifo_declare(uart0_char_fifo, 256, unsigned char, char);
|
|
extern int sendchar(int ch);
|
|
|
|
s16 uart0_rx_callback(u16 len, void *user_data)
|
|
{
|
|
u8 buff[256] = "";
|
|
int data_len = tls_uart_read(TLS_UART_0, (u8 *) buff, 256);
|
|
for(int i = 0; i < data_len; i++)
|
|
fifo_push(uart0_char_fifo, buff[i]);
|
|
return 0;
|
|
}
|
|
|
|
int shell_getc(char *ch)
|
|
{
|
|
//Do not forget to sleep a bit to let the idle task run ...
|
|
tls_os_time_delay(5);
|
|
if(is_fifo_empty(uart0_char_fifo))
|
|
return 0;
|
|
|
|
*ch = fifo_pop_unsafe(uart0_char_fifo);
|
|
return 1;
|
|
//return tls_uart_read(TLS_UART_0, (u8 *) ch, 1);
|
|
}
|
|
|
|
void low_level_write_char(char ch)
|
|
{
|
|
(void)sendchar((int)ch);
|
|
}
|