Para usar funciones como printf , tienes que attach STDIO (entrada / salida estándar) a una corriente primero . Me vinculé a la biblioteca de stdio para AVR 's.
En mi opinión, es principalmente una cuestión de compatibilidad del mundo de la PC (o para programadores perezosos) y para la mayoría de los microcontroladores (considerando el tamaño de RAM / ROM) estás usando una herramienta muy pesada con gran espacio de memoria para realizar una tarea relativamente simple . La mayoría de las veces estará mejor escribiendo su propia rutina para hacer exactamente lo que necesita. Recuerde que printf();
es un comando extremadamente poderoso y vincularlo a su código enlaza todas sus funciones, no solo las (pocas) cosas que realmente necesita.
Creo que en AVR, solo incluir un printf te hace retroceder aproximadamente 1 o 2kB de flash, que es mucho en un dispositivo de 2 o 4 kB y las bibliotecas AVR están bastante bien optimizadas.
Observe que no todas las bibliotecas estándar ... son 'inútiles', algunas de las funciones en stdlib.h sigue siendo muy útil, como por ejemplo. el ultoa();
que compila bastante bonito y pequeño código.