Hallo, man kann ja bei vielen uCs die UART/RS232-Schnittstelle als stdout und stdin definieren. Zur Zeit arbeite ich an einem Projekt, wo ein Softcore-uC auf einem FPGA wie oben konfiguriert ist. Ich möchte nun über RS232 Daten empfangen und senden. In einem mitgelieferten Testprogramm werden die Meldungen, ob die Tests erfolgreich waren oder nicht, per stdout (Mit der Funktion "print") ausgegeben und die Übertragung über UART funktioniert auch. Vorher wurde lediglich eine Initialisierungsroutine aufgerufen. Es gibt aber auch eine umfangreiche Beschreibung des UART-Treibers, in der jede Menge Funktionen aufgeführt sind, z.B. Send, Receive, spezielle Konfigurationen, Interrupt-Handler, usw. Dazu drei Fragen: Wie steuert der uC durch die Funktion "print" überhaupt den UART? Wenn man es "händisch" programmieren würde, müßten doch Register abgefragt, Flags gesetzt, Interrupt-Handler bestimmt werden etc. Wird das alles im Hintergrund für mich übernommen? Kann ich dann auch einfach mit der Funktion "scanf" den UART auslesen? Wie gehe ich jetzt für mein Projekt vor? Genügt der einfache Weg über die Std-Funktionen oder sollte ich die Funktionen des UART-Treibers benutzen?
Nachtrag: Mir ist klar dass man stdout eine bestimmte Funktion zuweisen muss, die dann das Handling der Ausgabe übernimmt. Nur dies ist eben nirgendwo im Quelltext geschehen. In einem Header-File wird per define für STDIN und STDOUT ein bestimmer Adressbereich zugewiesen, das war's dann aber auch schon. Ist die Implementierung (fdevopen, stdout= etc.) vielleicht irgendwo in einer lib versteckt?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.