1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-16 18:13:49 +01:00
RIOT/sys/stdio/doc.md
Marian Buschsieweke 3d5fad5aa1
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>
2025-05-01 11:54:15 +02:00

1.7 KiB

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

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:

USEMODULE += stdio_cdc_acm