From d55616a7f56ca17440ed5acd3b11771bcbcb3dbd Mon Sep 17 00:00:00 2001 From: Hauke Petersen <hauke.petersen@fu-berlin.de> Date: Thu, 5 Jul 2018 14:04:17 +0200 Subject: [PATCH] sys/stdio: s/uart_stdio/stdio_uart/ --- Makefile.dep | 4 +- sys/include/stdio_uart.h | 59 +++++++++++++ sys/include/uart_stdio.h | 83 ------------------- sys/{uart_stdio => stdio_uart}/Makefile | 0 .../uart_stdio.c => stdio_uart/stdio_uart.c} | 52 ++++++------ 5 files changed, 88 insertions(+), 110 deletions(-) create mode 100644 sys/include/stdio_uart.h delete mode 100644 sys/include/uart_stdio.h rename sys/{uart_stdio => stdio_uart}/Makefile (100%) rename sys/{uart_stdio/uart_stdio.c => stdio_uart/stdio_uart.c} (56%) diff --git a/Makefile.dep b/Makefile.dep index cfeb10de38..7a4f918147 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -374,7 +374,7 @@ ifneq (,$(filter newlib,$(USEMODULE))) USEMODULE += newlib_syscalls_default endif ifeq (,$(filter rtt_stdio,$(USEMODULE))) - USEMODULE += uart_stdio + USEMODULE += stdio_uart endif endif @@ -390,7 +390,7 @@ ifneq (,$(filter rtt_stdio,$(USEMODULE))) USEMODULE += xtimer endif -ifneq (,$(filter uart_stdio,$(USEMODULE))) +ifneq (,$(filter stdio_uart,$(USEMODULE))) USEMODULE += isrpipe FEATURES_REQUIRED += periph_uart endif diff --git a/sys/include/stdio_uart.h b/sys/include/stdio_uart.h new file mode 100644 index 0000000000..bfe975c67e --- /dev/null +++ b/sys/include/stdio_uart.h @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2015 Kaspar Schleiser <kaspar@schleiser.de> + * 2018 Freie Universität Berlin + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @defgroup sys_stdio_uart STDIO over UART + * @ingroup sys + * + * @brief Standard input/output backend using UART + * + * @{ + * @file + * + * @author Kaspar Schleiser <kaspar@schleiser.de> + * @author Hauke Petersen <hauke.petersen@fu-berlin.de> + */ + +#ifndef STDIO_UART_H +#define STDIO_UART_H + +/* Boards may override the default STDIO UART device */ +#include "board.h" +#include "stdio_base.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef STDIO_UART_DEV +/** + * @brief UART device to use for STDIO + */ +#define STDIO_UART_DEV UART_DEV(0) +#endif + +#ifndef STDIO_UART_BAUDRATE +/** + * @brief Baudrate for STDIO + */ +#define STDIO_UART_BAUDRATE (115200) +#endif + +#ifndef STDIO_UART_RX_BUFSIZE +/** + * @brief Buffer size for STDIO + */ +#define STDIO_UART_RX_BUFSIZE (64) +#endif + +#ifdef __cplusplus +} +#endif +/** @} */ +#endif /* STDIO_UART_H */ diff --git a/sys/include/uart_stdio.h b/sys/include/uart_stdio.h deleted file mode 100644 index 7363ea3850..0000000000 --- a/sys/include/uart_stdio.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2015 Kaspar Schleiser <kaspar@schleiser.de> - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -/** - * @defgroup sys_uart_stdio UART stdio - * @ingroup sys - * - * @brief stdio init/read/write functions for UARTs - * - * @{ - * @file - * - * @author Kaspar Schleiser <kaspar@schleiser.de> - */ -#ifndef UART_STDIO_H -#define UART_STDIO_H - -/* Boards may override the default STDIO UART device */ -#include <stdint.h> -#include "board.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef UART_STDIO_DEV -/** - * @brief UART device to use for STDIO - */ -#define UART_STDIO_DEV UART_DEV(0) -#endif - -#ifndef UART_STDIO_BAUDRATE -/** - * @brief Baudrate for STDIO - */ -#define UART_STDIO_BAUDRATE (115200) -#endif - -#ifndef UART_STDIO_RX_BUFSIZE -/** - * @brief Buffer size for STDIO - */ -#define UART_STDIO_RX_BUFSIZE (64) -#endif - -/** - * @brief initialize the module - */ -void uart_stdio_init(void); - -/** - * @brief read @p len bytes from stdio uart into @p buffer - * - * @param[out] buffer buffer to read into - * @param[in] len nr of bytes to read - * - * @return nr of bytes read - * @return <0 on error - */ -int uart_stdio_read(char* buffer, int len); - -/** - * @brief write @p len bytes from @p buffer into uart - * - * @param[in] buffer buffer to read from - * @param[in] len nr of bytes to write - * - * @return nr of bytes written - * @return <0 on error - */ -int uart_stdio_write(const char* buffer, int len); - -#ifdef __cplusplus -} -#endif -/** @} */ -#endif /* UART_STDIO_H */ diff --git a/sys/uart_stdio/Makefile b/sys/stdio_uart/Makefile similarity index 100% rename from sys/uart_stdio/Makefile rename to sys/stdio_uart/Makefile diff --git a/sys/uart_stdio/uart_stdio.c b/sys/stdio_uart/stdio_uart.c similarity index 56% rename from sys/uart_stdio/uart_stdio.c rename to sys/stdio_uart/stdio_uart.c index 0fc039790a..40993196ee 100644 --- a/sys/uart_stdio/uart_stdio.c +++ b/sys/stdio_uart/stdio_uart.c @@ -2,6 +2,7 @@ * Copyright (C) 2013 INRIA * 2015 Kaspar Schleiser <kaspar@schleiser.de> * 2016 Eistec AB + * 2018 Freie Universität Berlin * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level @@ -9,18 +10,19 @@ */ /** - * @ingroup sys + * @ingroup sys * @{ * * @file - * @brief UART stdio implementation + * @brief STDIO over UART implementation * - * This file implements a UART callback and read/write functions. + * This file implements a UART callback and the STDIO read/write functions * * @author Oliver Hahm <oliver.hahm@inria.fr> * @author Ludwig Knüpfer <ludwig.knuepfer@fu-berlin.de> * @author Kaspar Schleiser <kaspar@schleiser.de> * @author Joakim NohlgÃ¥rd <joakim.nohlgard@eistec.se> + * @author Hauke Petersen <hauke.petersen@fu-berlin.de> * * @} */ @@ -31,7 +33,7 @@ #include <errno.h> #include <fcntl.h> #endif -#include "uart_stdio.h" +#include "stdio_uart.h" #include "board.h" #include "periph/uart.h" @@ -49,73 +51,73 @@ extern ethos_t ethos; #define ENABLE_DEBUG 0 #include "debug.h" -static char _rx_buf_mem[UART_STDIO_RX_BUFSIZE]; -isrpipe_t uart_stdio_isrpipe = ISRPIPE_INIT(_rx_buf_mem); +static char _rx_buf_mem[STDIO_UART_RX_BUFSIZE]; +isrpipe_t stdio_uart_isrpipe = ISRPIPE_INIT(_rx_buf_mem); #if MODULE_VFS -static ssize_t uart_stdio_vfs_read(vfs_file_t *filp, void *dest, size_t nbytes); -static ssize_t uart_stdio_vfs_write(vfs_file_t *filp, const void *src, size_t nbytes); +static ssize_t stdio_uart_vfs_read(vfs_file_t *filp, void *dest, size_t nbytes); +static ssize_t stdio_uart_vfs_write(vfs_file_t *filp, const void *src, size_t nbytes); /** * @brief VFS file operation table for stdin/stdout/stderr */ -static vfs_file_ops_t uart_stdio_vfs_ops = { - .read = uart_stdio_vfs_read, - .write = uart_stdio_vfs_write, +static vfs_file_ops_t stdio_uart_vfs_ops = { + .read = stdio_uart_vfs_read, + .write = stdio_uart_vfs_write, }; -static ssize_t uart_stdio_vfs_read(vfs_file_t *filp, void *dest, size_t nbytes) +static ssize_t stdio_uart_vfs_read(vfs_file_t *filp, void *dest, size_t nbytes) { int fd = filp->private_data.value; if (fd != STDIN_FILENO) { return -EBADF; } - return uart_stdio_read(dest, nbytes); + return stdio_uart_read(dest, nbytes); } -static ssize_t uart_stdio_vfs_write(vfs_file_t *filp, const void *src, size_t nbytes) +static ssize_t stdio_uart_vfs_write(vfs_file_t *filp, const void *src, size_t nbytes) { int fd = filp->private_data.value; if (fd == STDIN_FILENO) { return -EBADF; } - return uart_stdio_write(src, nbytes); + return stdio_uart_write(src, nbytes); } #endif -void uart_stdio_init(void) +void stdio_init(void) { #ifndef USE_ETHOS_FOR_STDIO - uart_init(UART_STDIO_DEV, UART_STDIO_BAUDRATE, (uart_rx_cb_t) isrpipe_write_one, &uart_stdio_isrpipe); + uart_init(STDIO_UART_DEV, STDIO_UART_BAUDRATE, (uart_rx_cb_t) isrpipe_write_one, &stdio_uart_isrpipe); #else - uart_init(ETHOS_UART, ETHOS_BAUDRATE, (uart_rx_cb_t) isrpipe_write_one, &uart_stdio_isrpipe); + uart_init(ETHOS_UART, ETHOS_BAUDRATE, (uart_rx_cb_t) isrpipe_write_one, &stdio_uart_isrpipe); #endif #if MODULE_VFS int fd; - fd = vfs_bind(STDIN_FILENO, O_RDONLY, &uart_stdio_vfs_ops, (void *)STDIN_FILENO); + fd = vfs_bind(STDIN_FILENO, O_RDONLY, &stdio_uart_vfs_ops, (void *)STDIN_FILENO); if (fd < 0) { /* How to handle errors on init? */ } - fd = vfs_bind(STDOUT_FILENO, O_WRONLY, &uart_stdio_vfs_ops, (void *)STDOUT_FILENO); + fd = vfs_bind(STDOUT_FILENO, O_WRONLY, &stdio_uart_vfs_ops, (void *)STDOUT_FILENO); if (fd < 0) { /* How to handle errors on init? */ } - fd = vfs_bind(STDERR_FILENO, O_WRONLY, &uart_stdio_vfs_ops, (void *)STDERR_FILENO); + fd = vfs_bind(STDERR_FILENO, O_WRONLY, &stdio_uart_vfs_ops, (void *)STDERR_FILENO); if (fd < 0) { /* How to handle errors on init? */ } #endif } -int uart_stdio_read(char* buffer, int count) +ssize_t stdio_read(void* buffer, size_t count) { - return isrpipe_read(&uart_stdio_isrpipe, buffer, count); + return (ssize_t)isrpipe_read(&stdio_uart_isrpipe, (char *)buffer, count); } -int uart_stdio_write(const char* buffer, int len) +ssize_t stdio_write(const void* buffer, size_t len) { #ifndef USE_ETHOS_FOR_STDIO - uart_write(UART_STDIO_DEV, (const uint8_t *)buffer, (size_t)len); + uart_write(STDIO_UART_DEV, (const uint8_t *)buffer, len); #else ethos_send_frame(ðos, (const uint8_t *)buffer, len, ETHOS_FRAME_TYPE_TEXT); #endif -- GitLab