Bug in printf und codesourcery for ARM

OP #2698410
Grüß Euch,

ich habe glaub ich einen Bug beim printf() entdeckt.

Wenn ich mit
printf("Hallo\n");
diesen Text über die Serielle an den PC sende, kommt das \n-zeichen 
nicht an.

printf("%s Hallo\n", "dummyString");
Erst wenn irgendein parameter dem Formatstring im printf() übergeben 
wird, so wird auch das abschließende \n mitgesendet.

Somit funktioniert auch folgendes richtig:
printf("Hallo%c",'\n');

Hat diesen Fehler schon mal jemand entdeckt?

Ich verwende "codesourcery-codebench-lite-2011.09-69-arm-eabi".

Das problem tritt dabei unabhängig davon auf, ob das Programm auf Linux 
oder Windows kompiliert wurde.

lg, Karl
OP #2699035
wir haben das nun nochmals überdacht. ich hatte zuvor deine antwort 
nicht richtig interpretiert.
mein kollege hat nun den bug in der stdio.c von Atmel behoben.
dort wird in der puts() wird fputs() ohne hinzufügen eines \n 
aufgerufen!
Es handelt sich um die at91lib Version 1.5!

Vielen Dank für deinen Hinweis!
Moderator Persönliche Seite #2711711
Karl Zeilhofer schrieb:
> Es handelt sich um die at91lib Version 1.5!

Dann solltet ihr wohl auch noch Atmel darüber berichten.  Ist mir
allerdings unklar, warum die überhaupt an stdio rumfummeln.  Ist
das von der newlib so schlecht?

> dort wird in der puts() wird fputs() ohne hinzufügen eines \n
> aufgerufen!

In so eine Richtung ging meine Vermutung schon, nachdem ich über
die Effekte nachgedacht hatte.  Ich wusste allerdings aus der
Vergangenheit (als ich das stdio für die avr-libc entworfen habe),
dass der Compiler rigoros ein printf("...\n") durch puts("...")
ersetzt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.