
The reason is, it is mostly used for debugging purposes, and seldom appears in the final version of the "real applications". In any case, when you are comparing compilers, (not only for ARM/STM32) I recommend you keep the printf out. It is enough for most common applications and can be easily modified for your needs. It even includes a "very small printf" that only handles one %d. I recommend you open this example project for testing these different options:Ĭ:\Program Files\Raisonance\Ride\Examples\ARM\test\test.prj (or you can include the sources of the three libraries.) Therefore, you will need to select the UART0_putchar option for seeing the printf options. These printfs use the IO_putchar function defined in the UART0_putchar library. You can use it by selecting the "no float printf" option, or take its sources in \LIB\ARM\E_STDIO. There is also an even smaller version that does not handle floating point. Or you can directly take the sources in \LIB\ARM\SMALL_PRINTF. So we have written a small printf, that you can include in your project by selecting the associated option in the linker options. (and even then, there is some porting to do.


Most of the time it will not work in simple applications that do not provide a multi-tasking OS and a file system. Basically, it is not suited for embedded applications. The "native" printf in gcc is huge because it is designed for working in a unix-like environment, with files, streams, processes, etc. Are you using the SmallPrintf linker option in RIDE? I don't think so.
