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
Ok, danke euch für die Antworten.
Gast
#2501932
Es kommt immer drauf an was man machen will. Eine IMU kann man beispielsweise gerade noch auf einem XMEGA in FP realisieren.
Gast
#2501949
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?
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.