printf and reducing memory
The standard library family of printf
(printf
, sprintf
, fprintf
and so on) calls takes a lot of code space. This is because there are multiple format specifiers, and it is not possible to optimize the code at build time. Even a single printf
call in your application pulls in the entire standard library.
A solution to reduce code space is to replace the standard printf
calls with a smaller implementation.
Mbed OS provides the minimal-printf
library, which offers a subset of the printf
features (not all format specifiers are supported). You can also achieve further flash savings if your application does not require 64-bit integers or floating point printing.
For a memory footprint comparison between standard printf
and minimal-printf
, please see our Blinky size comparison.
To further reduce the memory footprint of applications that don't require file handling, enable the system I/O minimal console retarget. You can do this by enabling the configuration parameter platform.stdio-minimal-console-only
. Please see the platform configuration reference for more information.