printf and reducing memory
The standard library family of
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
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.