uprintf mit Festkomma

Eine printf-Implementierung in avr-gcc-Assembler. Benötigt nur 390 Byte Kode, gemessen ohne Zeichenausgaberoutine.

Motivation

printf ist prinzipiell nicht so toll für kleine Mikrocontroller geeignet. Es ist für Programme mit Betriebssystemumgebung gemacht („hosted“), nicht für Programme ohne Betriebssystem („freestanding“).

Nervig ist:

Wünschenswert ist:

Implementierungsdetails

Die Funktion vuprintf ist nur von Assembler aus aufrufbar.

Die Funktion uprintf, ein Wrapper für vuprintf, ist ganz normal von C/C++ aufrufbar.

Die Funktion chrout muss selbst geschrieben werden und ist nicht Teil der Assemblerroutine. Mit dem Zeigerregister X ist viel Flexibilität gegeben, etwa:

Implementierung

Implementierungen
8051PICAVRC166
--uprintf.S-