Hallo, ich hätte mal eine Verständnisfrage zur FPU im Mikrocontroller. Verwende ich eine uC ohne FPU, führe aber Berechnungen mit float-Werten durch, wandelt der compiler diese Rechnung in umfangreiche/aufwändige Befehle um. Das hätte zur Folge, dass der Code "größer" und die Laufzeit länger wird. Verwende ich einen mit FPU, ist der Aufwand für code-size und runtime natürlich geringer. Gibt es eigentlich noch andere Nachteile, wenn ich keine FPU verwende? In den meisten Fällen ist es doch eh so, dass der Speicher reicht und die Laufzeit noch ok ist.
Hans Wurst schrieb: > In den meisten Fällen ist es doch eh so, dass der Speicher reicht und > die Laufzeit noch ok ist. Nö, FP Berechnungen können den Code ganz schnell über die Maßen aufblähen.
die benötigte Rechenzeit natürlich ebendso. je nach Prozessor und Implementierung liegt zwischen fixpoint-Rechnung und sw-FP-Rechnung ein Faktor 200-300
Es kommt immer drauf an was man machen will. Eine IMU kann man beispielsweise gerade noch auf einem XMEGA in FP realisieren.
Sobald du nur eine FP Addition benutzt, wird die FP library mit eingebunden, die den Code gleich enorm aufbläht. Im Code selber sind dann Funktionsaufrufe in die library.
Dass Fliesskommacode den Code "enorm aufbläht" kann man so pauschal nicht sagen. Bei einem kleinen Controller mit 8KB Flash fällt schon sehr deutlich ins Gewicht, ob man mit Fliesskommarechnung arbeitet, insbesondere wenn nicht nur die Rechenoperationen sondern auch printf mit voller Funktionalität verlangt wird. Bei einem Controller mit 128KB Flash hingegen ist der Anteil der Fliesskommalib am gesamten Code jedoch recht überschaubar.
Vlad Tepesch schrieb: > je nach Prozessor und Implementierung liegt zwischen fixpoint-Rechnung > und sw-FP-Rechnung ein Faktor 200-300 Bleib auf dem Teppich. Auch hier ist eine Pauschalaussage problematisch. Konkrete Zahlen zur Laufzeit von Fliesskommarechnung bei 8051: http://www.smxrtos.com/ussw/gofast/gofast_8051.htm ARM7: http://www.smxrtos.com/ussw/gofast/gofast_arm_gnu.htm PIC32: http://www.smxrtos.com/ussw/gofast/gofast_mips32_gnu.htm
A. K. schrieb: > Auch hier ist eine Pauschalaussage >> je nach Prozessor und Implementierung nennst du das eine Pauschalaussage?
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.