ARM Cortex M4 FPU - Getting started

#5163357
Lesenswert?

Hallo zusammen,

ich will auf meinem STM32F446 die FPU nutzen. Um genau zu sein, war das 
der Sinn, mich überhaupt auf diese MCU zu stürzen.

Nun bin ich in der Numerik weiß Gott nicht unbewandert - aber in C und 
auf µCs komplett unbeleckt.

Die Build-Optionen (--cpu=Cortex-M4.fp.sp) habe ich schon gefunden.

Jetzt suche ich den Anfang. Das ARM Instruction Manual ist nett. Wie ich 
die FPU in C sinnvoll nutze, weiß ich dadurch noch nicht. ("OK - es gibt 
also einen Befehl zur bilinearen Interpolation - toll, aber unerwartet -
 wie nutze ich das in C?")

Erkennt der Compiler automatisch, welche C-Sequenzen die FPU sinnvoll 
machen kann, oder muß ich spezielle FPU-funktionen nutzen? Wo würde ich 
Funktionen wie die obengenannte bilineare Interpolation finden?

Ich nehme mal an, ich muß peinlich darauf achten, daß nicht irgendwie 
irgendwo etwas heimlich zu double gecastet wird (die Compilerwarnung 
habe ich auch schon gefunden).

Sprich: Wo kann man sich zu diesem Thema sinnvoll einlesen?

Viele Grüße
W.T.
#5163756
Lesenswert?

Danke! Die FPU aktiviert habe ich. Jetzt fehlt mir aber noch der Zugriff 
für eine effiziente Nutzung.

Die <math.h> aus der Newlib scheint das meiste in double precision zu 
machen. Damit dauert schon die einfache Berechnung eines Sinus schon 
eine gefühlte Ewigkeit.

Gibt es eine vernünftige 32-Bit-Float-Library, die für diese Plattform 
geeignet ist? Oder muß man alles selbst implementieren?

Keine Sorge- den Teil mit der numerischen Stabilität bei einfacher 
Genauigkeit bekomme ich in den Griff.
Persönliche Seite #5163804
Lesenswert?

Walter T. schrieb:
> Die <math.h> aus der Newlib scheint das meiste in double precision zu
> machen. Damit dauert schon die einfache Berechnung eines Sinus schon
> eine gefühlte Ewigkeit.

Dann verwende einfach sinf oder powf oder logf oder oder oder ... 
Einfach immer ein f anhängen^^

Ahja und konstanten immer ála 1234.0f ... Brav das f anhängen, sonst ist 
es eine Double-Konstante.

Macht nicht immer was aus - insbesondere, wenn man sie sowieso einem 
float zuweist, aber sollte man sich angewöhnen :)
Beitrag #5173401 wurde von einem Moderator gelöscht.

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