1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-25 14:33:52 +01:00

sys/stdio: better document configuration

This changes the documentation of how to configure stdio, especially
with regard on how to configure the stdio frontends with
`printf_float`, `printf_long_long`, and `stdin`.

Co-authored-by: crasbe <crasbe@gmail.com>
This commit is contained in:
Marian Buschsieweke 2025-04-30 21:29:37 +02:00 committed by Marian Buschsieweke
parent c3ac00c50a
commit 3d5fad5aa1
No known key found for this signature in database
GPG Key ID: 77AA882EC78084E6
3 changed files with 46 additions and 16 deletions

View File

@ -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

View File

@ -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

45
sys/stdio/doc.md Normal file
View File

@ -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
```