Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions makefiles/pseudomodules.inc.mk
Original file line number Diff line number Diff line change
Expand Up @@ -342,20 +342,8 @@ PSEUDOMODULES += picolibc
PSEUDOMODULES += picolibc_stdout_buffered
PSEUDOMODULES += pktqueue
PSEUDOMODULES += posix_headers
## @defgroup sys_stdio_printf_float Support for printing floats
## @ingroup sys_stdio
## @{
## This module enables printing of floats, if the printf implementation has
## configurable features.
PSEUDOMODULES += printf_float
## @}
## @defgroup sys_stdio_printf_long_long Support for printing long long
## @ingroup sys_stdio
## @{
## This module enables printing of long long / unsigned long long, if the printf
## implementation has configurable features.
PSEUDOMODULES += printf_long_long
## @}
PSEUDOMODULES += prng
PSEUDOMODULES += prng_%
PSEUDOMODULES += psa_riot_cipher_aes_common
Expand Down
5 changes: 1 addition & 4 deletions sys/include/stdio_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@
*/

/**
* @defgroup sys_stdio STDIO abstraction
* @ingroup sys
*
* @brief Simple standard input/output (STDIO) abstraction for RIOT
* @addtogroup sys_stdio STDIO abstraction
*
* @{
* @file
Expand Down
45 changes: 45 additions & 0 deletions sys/stdio/doc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
@defgroup sys_stdio STDIO abstraction
@ingroup sys

@brief Simple standard input/output (STDIO) abstraction for RIOT

# Abstract

STDIO in RIOT is split into two parts: An interface to the stdio transports
consisting mainly of @ref stdio_read and @ref stdio_write provided by RIOT,
and the standard C stdio functions (such as `printf()`, `puts()`, `scanf()`)
provided by the standard C library.

## Configuring STDIO

While the standard features for input and output are enabled by default, some
additional features have to be enabled explicitly due to higher memory
consumption. This includes the following features:

| Module | Features |
|:-------------------- |:--------------------------------------------- |
| `printf_float` | Support for printing floats/doubles |
| `printf_long_long` | Support for printing (unsigned) long long |
| `stdin` | Support for input (default is output only) |

The additional features can be enabled in the application Makefile:
```Makefile
USEMODULE += printf_float
```

@note Modules that depend on a certain stdio feature will depend on that. E.g.
when using the @ref sys_shell module, the module `stdin` is
automatically used, as it is a dependency.

## Enable STDIO Backends

The various transports supported by RIOT are enabled by selecting the
corresponding modules, such as @ref sys_stdio_uart, @ref usbus_cdc_acm_stdio,
or @ref sys_stdio_rtt. All available options can are shown as mdoules in the
list below.

As with the additional features, you can specify the STDIO backend to be used in your application Makefile:

```Makefile
USEMODULE += stdio_cdc_acm
```