> wie kann ich Funktionen aus den Standardbibliotheken überschreiben?
Gar nicht. Der C-Standard verbietet dies ausdrücklich. Auf diese
Weise wird es dem Compiler ermöglicht, dass er mit ,,Insiderwissen''
über die Standardbibliothek spezielle Optimierungen ausführen darf.
So ersetzt der GCC beispielsweise:
1 | printf("Hello world!\n");
|
durch
Für die avr-libc kann ich dir aber sagen, dass du die Funktion
vfprintf() durch eine Eigenimplementierung ersetzen musst und
sicher stellen musst, dass diese auch gelinkt wird (dafür dient
das -Wl,-uvfprintf). Natürlich müsste die vfprintf-Funktion alle
Parameter der avr-libc-internen akzeptieren, insbesondere müsste
sie, falls du irgendeine der _P-Varianten benutzt, mit dem
Formatstring im ROM umgehen können. Die Details kannst du dir ja
einfach in der Originalimplementierung ansehen.