Forum: Compiler & IDEs stdio unter Yagarto (arm7)


von Von K. (klausewitz)


Lesenswert?

Hi,
ich stehe gerade etwas auf dem Schlauch. Bin bei der Portierung eines 
Programm-Teils von AVR-GCC (WinAVR) auf ARM-GCC (Yagarto).

Jedenfalls hänge ich an den IO-Streams. Folgende Zeile compiliert 
wunderbar auf AVR
1
FILE stdout2 = FDEV_SETUP_STREAM(STDOUT_Send_Byte,STDOUT_Get_Byte,_FDEV_SETUP_RW);

Yagarto nörgelt aber an der nicht existenten Definition von 
_FDEV_SETUP_RW herum. Wie heißt das denn bei der arm-libc?
Gibt es da eine Doku? In den Header-Dateien habe ich nicht mal 
FDEV_SETUP_STREAM gefunden. Oder unterstützt Yagarto auch keine Streams?

Google drängt mir immer nur AVR-Dokus zu dem Thema auf...  :(

von Klaus W. (mfgkw)


Lesenswert?

FDEV_SETUP_STREAM ist doch kein Standard-C.

Wieso erwartest du das auf einem anderen System dann?

von Von K. (klausewitz)


Lesenswert?

Klaus Wachtler schrieb:
> FDEV_SETUP_STREAM ist doch kein Standard-C.
>
> Wieso erwartest du das auf einem anderen System dann?

Ah ja. Und wie funktioniert es nun richtig?
fdevopen gibt anscheinend einen int zurück, das geht nur mit recht 
abenteuerlichem Typecast oder wilden Compiler-Meldungen. Kann ja wohl 
auch nicht die Lösung sein...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Meines Wissens musst du die Unix-Kernelfunktionen für open(), read()
und write() und dergleichen dort manuell implementieren.

von Klaus W. (mfgkw)


Lesenswert?

von Klausewitz schrieb:
> fdevopen gibt anscheinend einen int zurück,

Ich kenne jetzt dein System nicht, aber ich würde erwarten, daß fdevopen 
ein FILE* liefert - falls es fdevopen überhaupt gibt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Klaus Wachtler schrieb:
> von Klausewitz schrieb:
>> fdevopen gibt anscheinend einen int zurück,
>
> Ich kenne jetzt dein System nicht, aber ich würde erwarten, daß fdevopen
> ein FILE* liefert - falls es fdevopen überhaupt gibt.

Ja, so ist es bei der avr-libc (und nur diese hat meines Wissens ein
fdevopen(), weil ich den ganzen Overhead der kompletten Unix-like
Implementierung wie bei newlib auf dem AVR aus Ressourcengründen nicht
haben wollte).

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
Noch kein Account? Hier anmelden.