Hab hiern arm-none-eabi-gcc.exe fürn 32bit SAM3 bei dem default kein float eingeschaltet ist. Wie und wo kann ich das aktivieren? Bitte bitte jetzt keine Bemerkungen wie "Float kannst du dir doch selbst machen".
default user schrieb: > bei dem default kein float eingeschaltet ist. Woram merkst du das denn? Oliver
Grr. Du weiß genau was ich mein ;-)
1 | float fl_my_float; |
2 | fl_my_float = 3.14; |
3 | sprintf( buf1,"float: %f", fl_my_float); |
ergibt float: f
default user schrieb: > Grr. Du weiß genau was ich mein ;-) Nö. Bei deinem Beispiel könnte es ja auch sein, dass eine spezielle abgespeckte Version von sprintf zum Einsatz kommt. Wie das bei der arm Version ist, weiß ich nicht. Aber bei den AVR geht das prinzipiell so, dass man spezielle Libs dazulinkt, wie hier in der FAQ beschrieben.
Bei den 8-Bittern hbe ich das schon gemacht, bei nem ARM aber noch nicht. Wundert mich sowieso, daß das bei so viel Rechenleistung heutzutage default nicht mit bei ist. Ich wittere einen Skandal.
Das ist ja total verrückt! Installier dir zum Beispiel yagarto als toolchain, da gehts.
Karl Heinz Buchegger schrieb: > Wie das bei der arm Version ist, weiß ich nicht. Normalerweise ist das bei ARM die Voreinstellung der newlib. Es gibt dann abgespeckte Versionen, die jeweils ein "i" vorangestellt haben (also iprintf() statt printf() etc.). Aber: soweit ich weiß, ist die Version, die Atmel zusammen mit dem Atmel Studio vertreibt, per Compiletime-Option auf "kein Float in stdio" voreingestellt worden. Dagegen hilft dann natürlich nichts außer dem Selbstcompilieren einer entsprechenden newlib (oder dem Installieren einer Toolchain wie Yagarto).
Ich weiß nicht ob ich yagarto haben will. Ich hab mal Netbeans für PIC18 ausprobiert, das hat ganz schön geschwächt. Hab hier Atmel Studio mit Intellisense und anderen Leckereien die schnell und fehlerfrei ohne Gedöns funktionieren. Aber wir wollen jetzt nicht vom Thread abkommen. Wenn niemand ne Idee hat werd Ich halt mal selber probieren.
default user schrieb: > Hab hier Atmel Studio mit Intellisense und anderen Leckereien die > schnell und fehlerfrei ohne Gedöns funktionieren. Außer, dass dir Atmel halt das FP-stdio vorenthalten hat. "fehlerfrei" kann man das natürlich trotzdem noch nennen, denn es ist ja offenbar deren volle Absicht. Warum du Yagarto mit Netbeans für PIC18 vergleichst, ist nicht klar. Äpfel mit Schraubenziehern verglichen? > Wenn niemand ne Idee hat werd Ich halt mal selber probieren. Reicht dir denn die Aussage, dass es einfach bei Atmel Studio's mitgelieferter Newlib-Version nicht dabei ist, nicht als "Idee"? Mach doch bei denen ein Support-Ticket auf dafür.
Scheinbar haben sie mittlerweile eine Version mit FP-printf: http://support.atmel.com/bin/customer.exe?=&action=viewKbEntry&id=1652 Vermutlich warst du nicht der erste, der das haben wollte …
>Scheinbar haben sie mittlerweile eine Version mit FP-printf:
Tausend Dank!
Ich werd's gleich mal probieren. Hab gerade mit dtostrf experimentiert
aber da scheint's wohl in der ASF verschiedene stdlib.h Versionen zu
geben, in der einen ist es drin, in der anderen nicht...
73
default user schrieb: > mit dtostrf experimentiert Das gibt's nun in der avr-libc. Mehr oder minder historisch bedingt, stammt aus der Zeit, bevor die avr-libc überhaupt printf() hatte (ganz zu schweigen von FP-printf).
Supi, float in printf läuft. Macht den Code mal eben um 10k größer, aber wir haben's ja!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.