Yagarto printf und float funktioniert nicht richtig

Gast #1444199
Hallo,

ich benutzte die Yagarto Toolchain mit Eclipse um einen STM32F103 
Controller zu Programmieren. Da ich printf benötige, habe ich die 
syscalls.c eingebunden. Allerdings funktioniert die Ausgabe von float 
Zahlen nicht.
1
printf("Test: %d, %f, %s \n", 1234, 2.15, "Hallo");
Als Ausgabe erhalte ich über die serielle Schnittstelle:
1
Test: 1234, 0.000000, Hallo

Woran kann das liegen?

Danke
Tom
Ich kenne jetzt gerade die Umgebung nicht, aber das riecht
nach dem Standardfehler, daß es vielleicht printf() in mehreren
Versionen gibt (eine platzsparende Version, die keine
Gleitkommazahlen kennt und meistens reicht sowie eine vollständige)
und du vielleicht vergessen hast, die vollständige Version der
C-Bibliothek einzubinden?
Gast
Hallo,

ich wüsste nicht wie ich eine andere Bibliothek einbinden kann. Ich hab 
im Makefile -lc -lm -lgcc. Das sollte eigentlich reichen.
Was außerdem seltsam ist, dass ich keine float Werte debuggen kann 
(Siehe Anhang). Ich bin ratlos.

Ich werde das Programm mit einer anderen Toolchain testen.


Grüße
Tom
Angehängte Dateien:
Gast
Hatte grade einen Geistesblitz. Problem gelöst.

Ich hab im Makefile das Optimierungslevel auf "0" gesetzt. Level "s" hat 
wohl einfach die float zahlen weg optimiert..
Hmm.
Das würde mich stutzig machen.
Durch das Einschalten des Optimizers darf sich das beobachtete Verhalten 
eines Programmes nicht verändern. Wenn es das doch tut, dann gibt es 2 
Möglichkeiten
* entweder hast du etwas Verbotenes getan
* die Toolchain ist fehlerhaft

Ich würde das so nicht auf sich beruhen lassen, sondern dem Ganzen 
nachgehen. Das ist eine Zeitbombe.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.