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