ARM Cortex M4 FPU - Getting started

OP #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.
OP
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
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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.