Es ist wahrscheinlicher, dass Sie eine Debugging-Konsole anschließen können, entweder über einen RS232-Port oder als virtuelle Ausgabe von einem In-Circuit-Emulator.
printf ist so definiert, dass es nicht "output display", sondern "stdout" ausgibt. In der Regel wird es auf einem System ohne Anzeige an eine serielle Schnittstelle (UART) ausgegeben, so dass ein Terminal- oder Terminal-Emulator (z. B. HyperTerminal oder TeraTerm) als Anzeigegerät verwendet werden kann.
Einige Entwicklungsumgebungen implementieren "semi-hosting", wobei stdio, stdin und stderr, und in einigen Fällen sogar ein Dateisystem vom Entwicklungs-Host über die Debugger-Schnittstelle (JTAG, ICE, SWD usw.) bereitgestellt wird.
Im Allgemeinen stellt Ihnen die Bibliothek Ihres Compilers Hooks oder Stubs zur Verfügung, so dass Sie Treiber für alternative Stream-I / O-Geräte implementieren können. Sie können also beispielsweise eine implementieren, damit printf auf ein LCD-Display zeigt, wenn Ihr Gerät ein solches besitzt. Dies wird "Retargetting" genannt.
Einige Entwicklungstools ermöglichen die Verwendung von printf bei einer Implementierung von putchar oder putch . In solchen Tools sendet printf Nachrichten an dieses Gerät, da diese Funktion das Senden von Zeichen an ein Gerät ermöglicht.
Sie müssen nur die korrekte Geräteinitialisierung durchführen, putchar, putch oder ähnliches implementieren (überprüfen Sie Ihren Compiler / lib docs) und voilá! Ihr printf wird sich so verhalten, wie Sie es erwarten.
PS: Einige Compiler / Bibliotheken implementieren nicht alle printf-Formatspezifizierer . Überprüfen Sie erneut Ihre Dokumente.
Tags und Links c embedded microcontroller firmware 8051