ESP32 stdio \n -> \r\n translation

Gast #6006402
Lesenswert?
• ▲
▼
Ahoi,

beim ESP32 wird bei stdio Ausgaben (printf, putchar) "\n" nach "\r\n" 
übersetzt. Ich bin mir recht sicher, dass es da einen Switch gibt um das 
abzuschalten. Einige Sucherei in der stdio-lib war leider erfolglos.

https://github.com/espressif/newlib-esp32/tree/master/newlib/libc/stdio

Hat jemand eine Idee?

Danke,
 C.B.
Moderator Persönliche Seite #6007082
Lesenswert?
• ▲
▼
Ich bin etwas neugierig geworden: Warum möchtest Du das \r unterdrücken?

Normalerweise ist es sinnvoll, dass bei einer Bildschirmausgabe 
(Unix/Linux: "tty") aus \n ein \r\n gemacht wird, damit der Cursor im 
Terminal tatsächlich durch das \r (Carriage Return) zunächst an den 
Anfang der Zeile geht und dann mit dem \n (Newline) eine Zeile tiefer 
rutscht. Ohne dieses Mapping fängt nämlich jede neue Zeile eingerückt an 
und der Output wandert immer weiter nach rechts.

Unter Unix kann man dieses Mapping durch diverse ioctls bzw. 
termio-Calls manipulieren, um volle Kontrolle über die Bildschirmausgabe 
zu bekommen und solche Mappings zu unterdrücken. Macht man aber 
eigentlich nur, wenn man eine Full-Screen-Anwendung baut wie einen 
Editor oder ein Menüsystem. In diesem Fall kann man dann auf curses 
(Unix) bzw. ncurses (Linux) bzw. mcurses (µCs) zurückgreifen, die so 
etwas verwalten.

Also: Was stört Dich an \r\n?
Gast #6007199
Lesenswert?
• ▲
▼
Ursache ist der Wunsch nach Kompatibiltät zu einem bestehenden System.

Der ESP32 ist nur ein Nebenschauplatz in dem Projekt und soll ebenfalls 
ein seit 20 Jahren etabliertes, proprietäres Telegrammformat nutzen. 
Sowas wie "MU FO 0\n". Mangels Pins hängen ein paar Teilnehmer per 
wired-AND am Konsolen-UART.

Die Frage habe ich geschrieben, weil z.B. ein freopen zur Folge hatte, 
dass gar nichts mehr gesandt wurde.

Tatsächlicher Chip ist der ESP32-WROVER. Die entsprechende Baugruppe ist 
fertig zugelassen und im Markt, wir schrauben im Moment ein paar neue 
Features an die Firmware.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.