diff --git a/boards/iot-lab_M3/include/board.h b/boards/iot-lab_M3/include/board.h index 4665e2bf16d264e590c8da6a2c968f8f2c5130a3..8e35ded673973b3420c1df3256a03d69c099b477 100644 --- a/boards/iot-lab_M3/include/board.h +++ b/boards/iot-lab_M3/include/board.h @@ -39,7 +39,7 @@ */ #define STDIO UART_0 #define STDIO_BAUDRATE (115200U) -#define STDIO_BUFSIZE (64U) +#define STDIO_RX_BUFSIZE (64U) /** @} */ /** diff --git a/boards/msbiot/include/board.h b/boards/msbiot/include/board.h index 733052f2d98a27ece7f502629a5c5bf4191402c2..0b6034a9f9510d152aa24fcd444281a883f1de63 100644 --- a/boards/msbiot/include/board.h +++ b/boards/msbiot/include/board.h @@ -40,7 +40,7 @@ */ #define STDIO UART_0 #define STDIO_BAUDRATE (115200U) -#define STDIO_BUFSIZE (64U) +#define STDIO_RX_BUFSIZE (64U) /** @} */ /** diff --git a/boards/stm32f0discovery/include/board.h b/boards/stm32f0discovery/include/board.h index 556fe1f7ff2c28bf2e8420dbdc0e1a8ef0b61e1d..355776edf4e413e62feaa4108dabaa3d17d1deda 100644 --- a/boards/stm32f0discovery/include/board.h +++ b/boards/stm32f0discovery/include/board.h @@ -39,7 +39,7 @@ */ #define STDIO UART_0 #define STDIO_BAUDRATE (115200U) -#define STDIO_BUFSIZE (64U) +#define STDIO_RX_BUFSIZE (64U) /** * @name LED pin definitions diff --git a/boards/stm32f3discovery/include/board.h b/boards/stm32f3discovery/include/board.h index 7918d0f393c43aefd389bbbbc81e7ec468598b91..0f071217be8ff15fe8c9309cb513b2e88a716fa5 100644 --- a/boards/stm32f3discovery/include/board.h +++ b/boards/stm32f3discovery/include/board.h @@ -39,7 +39,7 @@ */ #define STDIO UART_0 #define STDIO_BAUDRATE (115200U) -#define STDIO_BUFSIZE (64U) +#define STDIO_RX_BUFSIZE (64U) /** @} */ /** diff --git a/boards/stm32f4discovery/include/board.h b/boards/stm32f4discovery/include/board.h index 294a815564c3113e71190e4c55bfc3389ae52304..0b0195b0a49f82796d763b8e10a8b54c7570e98f 100644 --- a/boards/stm32f4discovery/include/board.h +++ b/boards/stm32f4discovery/include/board.h @@ -40,7 +40,7 @@ */ #define STDIO UART_0 #define STDIO_BAUDRATE (115200U) -#define STDIO_BUFSIZE (64U) +#define STDIO_RX_BUFSIZE (64U) /** @} */ /** diff --git a/cpu/stm32f0/syscalls.c b/cpu/stm32f0/syscalls.c index fbddea6576e82429e348139fa200e0eca0fe320a..1f0787e8ebc40b326229aae2b722fbde03865214 100644 --- a/cpu/stm32f0/syscalls.c +++ b/cpu/stm32f0/syscalls.c @@ -51,7 +51,7 @@ caddr_t heap_top = (caddr_t)&_end + 4; * @brief use mutex for waiting on incoming UART chars */ static mutex_t uart_rx_mutex; -static char rx_buf_mem[STDIO_BUFSIZE]; +static char rx_buf_mem[STDIO_RX_BUFSIZE]; static ringbuffer_t rx_buf; #endif @@ -81,7 +81,7 @@ void _init(void) { #ifndef MODULE_UART0 mutex_init(&uart_rx_mutex); - ringbuffer_init(&rx_buf, rx_buf_mem, STDIO_BUFSIZE); + ringbuffer_init(&rx_buf, rx_buf_mem, STDIO_RX_BUFSIZE); #endif uart_init(STDIO, STDIO_BAUDRATE, rx_cb, 0, 0); } @@ -195,8 +195,9 @@ int _read_r(struct _reent *r, int fd, void *buffer, unsigned int count) } return ringbuffer_get(&rx_buf, (char*)buffer, rx_buf.avail); #else - r->_errno = ENODEV; - return -1; + char *res = (char*)buffer; + res[0] = (char)uart0_readc(); + return 1; #endif } diff --git a/cpu/stm32f1/syscalls.c b/cpu/stm32f1/syscalls.c index 0a3a47d396a17ef85f4a4fc7e3c8fdb3104c23be..247caa4bb5bbb5836569d4414f666fc9d9aa5e21 100644 --- a/cpu/stm32f1/syscalls.c +++ b/cpu/stm32f1/syscalls.c @@ -51,7 +51,7 @@ caddr_t heap_top = (caddr_t)&_end + 4; * @brief use mutex for waiting on incoming UART chars */ static mutex_t uart_rx_mutex; -static char rx_buf_mem[STDIO_BUFSIZE]; +static char rx_buf_mem[STDIO_RX_BUFSIZE]; static ringbuffer_t rx_buf; #endif @@ -81,7 +81,7 @@ void _init(void) { #ifndef MODULE_UART0 mutex_init(&uart_rx_mutex); - ringbuffer_init(&rx_buf, rx_buf_mem, STDIO_BUFSIZE); + ringbuffer_init(&rx_buf, rx_buf_mem, STDIO_RX_BUFSIZE); #endif uart_init(STDIO, STDIO_BAUDRATE, rx_cb, 0, 0); } @@ -195,8 +195,9 @@ int _read_r(struct _reent *r, int fd, void *buffer, unsigned int count) } return ringbuffer_get(&rx_buf, (char*)buffer, rx_buf.avail); #else - r->_errno = ENODEV; - return -1; + char *res = (char*)buffer; + res[0] = (char)uart0_readc(); + return 1; #endif } diff --git a/cpu/stm32f3/syscalls.c b/cpu/stm32f3/syscalls.c index 3f5ee6c85d18418623fadef7c69451b252d7361c..4f89a0e7e35337f32f77eee71028dced84f4a9aa 100644 --- a/cpu/stm32f3/syscalls.c +++ b/cpu/stm32f3/syscalls.c @@ -52,7 +52,7 @@ caddr_t heap_top = (caddr_t)&_end + 4; * @brief use mutex for waiting on incoming UART chars */ static mutex_t uart_rx_mutex; -static char rx_buf_mem[STDIO_BUFSIZE]; +static char rx_buf_mem[STDIO_RX_BUFSIZE]; static ringbuffer_t rx_buf; #endif @@ -82,7 +82,7 @@ void _init(void) { #ifndef MODULE_UART0 mutex_init(&uart_rx_mutex); - ringbuffer_init(&rx_buf, rx_buf_mem, STDIO_BUFSIZE); + ringbuffer_init(&rx_buf, rx_buf_mem, STDIO_RX_BUFSIZE); #endif uart_init(STDIO, STDIO_BAUDRATE, rx_cb, 0, 0);} @@ -195,8 +195,9 @@ int _read_r(struct _reent *r, int fd, void *buffer, unsigned int count) } return ringbuffer_get(&rx_buf, (char*)buffer, rx_buf.avail); #else - r->_errno = ENODEV; - return -1; + char *res = (char*)buffer; + res[0] = (char)uart0_readc(); + return 1; #endif } diff --git a/cpu/stm32f4/syscalls.c b/cpu/stm32f4/syscalls.c index 25fb668c968ab3aee776328e69ffe3af07dfa7bd..2d4508ca3fd41ebffadd608ea804801d572bab46 100644 --- a/cpu/stm32f4/syscalls.c +++ b/cpu/stm32f4/syscalls.c @@ -51,7 +51,7 @@ caddr_t heap_top = (caddr_t)&_end + 4; * @brief use mutex for waiting on incoming UART chars */ static mutex_t uart_rx_mutex; -static char rx_buf_mem[STDIO_BUFSIZE]; +static char rx_buf_mem[STDIO_RX_BUFSIZE]; static ringbuffer_t rx_buf; #endif @@ -81,7 +81,7 @@ void _init(void) { #ifndef MODULE_UART0 mutex_init(&uart_rx_mutex); - ringbuffer_init(&rx_buf, rx_buf_mem, STDIO_BUFSIZE); + ringbuffer_init(&rx_buf, rx_buf_mem, STDIO_RX_BUFSIZE); #endif uart_init(STDIO, STDIO_BAUDRATE, rx_cb, 0, 0); } @@ -194,6 +194,10 @@ int _read_r(struct _reent *r, int fd, void *buffer, unsigned int count) mutex_lock(&uart_rx_mutex); } return ringbuffer_get(&rx_buf, (char*)buffer, rx_buf.avail); +#else + char *res = (char*)buffer; + res[0] = (char)uart0_readc(); + return 1; #endif }