Umleiten von printf auf die Konsole I/O auf die IAR Embedded Workbench
Habe ich codiert ein Projekt von mir in C auf einem Windows-Rechner in der software IAR Embedded Workbench IDE
. Das Projekt kompiliert und läuft einwandfrei. Ich habe ein paar printf
Funktionen in meinem code. Aber die Sache ist, dass das Projekt vorgesehen ist ein mikrocontroller AT91SAM7X256. Ich habe erfolgreich meine Anwendung ausführen, auf das sram des Mikrocontrollers und die Anwendung erfolgreich geladen wurde. Aber die printf
Funktion weitergeleitet wird der USART port des Controllers (ich kann nur annehmen), und so möchte ich die Umleitung printf
um den text anzuzeigen, der auf meinem terminal I/O. Hat jemand eine Idee, wie ich das tun kann?
InformationsquelleAutor Adam | 2014-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich den ARM, AVR32 und MSP430-Prozessor-Versionen der IAR toolchain. In jedem dieser haben Sie, um Ihre eigenen low-level-Funktionalität zum behandeln der stdin-und stdout-streams. Der ARM-compiler-Handbuch enthält einen Abschnitt über die "Standard-streams für Eingabe und Ausgabe", die sagt, dass Sie brauchen, um schreiben Sie Ihre eigene version des __write () - Funktion, und es gibt ein Beispiel, in der version, wo die Daten geschrieben werden, um eine memory-mapped-LED-display.
Wissen IAR würde ich erwarten, dass Sie ein ähnliches Beispiel für Ihren Prozessor/toolchain Kombination.
Wissen Sie, wie kann ich schreiben die
__write()
Funktion für den AT91SAM7X256? Ich habe gesucht und wirklich nicht wissen, wie. Ich will nur dieprintf()
Funktion zum drucken auf die Konsole I/O (i.e meine Maschine).Sie gehen zu müssen, viel mehr spezifisch über, wie Sie denken, können die Daten aus den embedded-Boards zurück zu Ihrem Computer. Was Pfade sind, die in Ihrer Einrichtung? Was macht Ihr setup noch bestehen?
Auch die
printf
funktioniert, weil ich es sehen kann, der ausgeführt wird durch den Speicher (ich habe sogar versucht einescanf
bevor es gut geklappt). Aber da es nichts auf der UART-Schnittstelle des embedded-board zum Beispiel, das Programm weiß, ist, dass es ausgeführt wurde, wird die Funktion, nicht wissend, ob ich wirklich etwas gesehen. Ich möchte einfach leiten Sie die Ausgabe, so kann ich es sehen auf meiner Konsole I/O.nur die Wiederholung der Frage nicht, um Euch eine Lösung (in der Tat, es geht um Ihre Frage ein downvote). Füllen Sie die fehlenden Informationen, wie verlangt zweimal jetzt in den Kommentaren. Die Ausgabe von Daten wird nicht auf Magische Weise von Ihrer embedded-Prozessor auf Ihrem PC - Sie brauchen, um eine Bestandsaufnahme der verfügbaren Kommunikations-Kanäle und konkrete Schritte zur Umsetzung ein von Ihnen zu verwenden, zum Beispiel, kaufen Sie eine $10 USB-serial oder Forschung wenn Ihr debug-pod kann passieren, Ausgabe - und sagen Sie uns, was Sie schon
InformationsquelleAutor uɐɪ
Ich weiß nicht, warum dein printf () umgeleitet wird, sondern das zu tun, was Sie wollen, zu tun habe ich Folgendes:
Zuerst zeigen Sie das Konsole-Fenster. (während der Ausführung von debug in der Menü Ansicht-> Terminal I/O
dann beenden Sie die Anwendung, gehen Sie zu Projekt->Optionen und Linker-> Bibliothek überprüfen sind C-SPY debugging-Unterstützung
Gewarnt werden, dies macht den Ablauf des Programms erheblich langsamer, als es sein sollte. Kommentieren Sie alle printfs später bei der Beendigung der debugging
InformationsquelleAutor KansaiRobot