Yagarto printf und float funktioniert nicht richtig

Gast #1444199
Lesenswert?

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
#1444676
Lesenswert?

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 #1445132
Lesenswert?

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:
#1445165
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren