2016-05-13 26 views
-1

Hallo ich möchte debug_print Makro verwenden, was printf tun kann, aber ich arbeite mit micrium (RTOS) welches printf nicht unterstützt. Kann mir jemand helfen wie man debug_print Makro implementiert, das micrium RTOS unterstütztprintf Funktion für micrium

+0

_Es gibt entweder zu viele mögliche Antworten, oder gute Antworten wären für dieses Format zu lang. Bitte fügen Sie Details hinzu, um die Antwort einzuschränken oder um ein Problem zu isolieren, das in einigen Paragrafen beantwortet werden kann. –

+0

Bitte zeigen Sie Ihre Forschungsanstrengungen bis zur angegebenen Zeit an. Bitte lesen Sie zuerst die [Ask] -Seite. –

+0

Lassen Sie uns die Aufzeichnungen gerade ausrichten. Möchten Sie in eine Protokolldatei oder einen globalen Puffer einer bestimmten Art drucken? –

Antwort

0

Es liegt nicht in der Verantwortung des RTOS, printf bereitzustellen - die Standardbibliothek Ihres Compilers tut das - Sie müssen möglicherweise Low-Level-Unterstützung für Ihr gewähltes Ausgabegerät implementieren; Was Sie tun müssen, hängt von der Bibliothek und/oder Toolchain ab. Die meisten kleinen RTOS bieten wenig mehr als Terminierungs-, Timing-, Synchronisations- und IPC-Dienste und bieten keine E/A-Unterstützung. Das bedeutet natürlich nicht, dass Sie die RTOS-Dienste nicht zur Implementierung der E/A-Unterstützung verwenden können.

Wenn Ihre Bibliothek kein printf bietet oder ihre Unterstützung zu schwer für Ihre Anforderungen ist (einige Implementierungen erfordern viel Stapelspeicherplatz, und volle Formatbezeichnerunterstützung kann im Coderaum auf sehr kleinen Zielen teuer sein), gibt es viele leichte Implementierungen wie Tiny Printf.