Forum: Mikrocontroller und Digitale Elektronik wo könnten die CMSIS DSP Lib liegen?


von atollicer (Gast)


Lesenswert?

Liebes Forum,

ich arbeite mich gerade in STM32F4 Programmierung unter Atollic True 
Studio ein. Ich möchte eine FFT rechnen und dazu die DSP Lib ansprechen. 
Die entsprechenden Funktionsaufrufe sind unter

arm_math.h

vorhanden und werden von TrueStudio auch gesehen. Wenn ich das ganze 
aber kompiliere, kommt bei den Aufrufen von Funktionen (z.B. 
arm_cfft_radix4_init_f32()) aus arm_math.h die Meldung

undefined reference to `arm_cfft_radix4_init_f32'

Mir scheint das Ganze so auszusehen, als ob die eigentliche Library zu 
arm_math.h fehlen würde.

Wenn ja, wo bekommt man die her? Meiner Meinung nach bei silver.arm.com, 
ist das richtig?

Wo packt man sie sich hin?

oder bin ich auf dem Holzweg, und die Lib ist schon längst in 
TrueStudio, und ich finde sie nur nicht?


Danke für einen Tipp,

Grüße, atollicer

von Mr. Big (Gast)


Lesenswert?

Ich benutze kein TrueStudio, aber die Library ist entweder
  libarm_cortexM4l_math.a
oder
  libarm_cortexM4lf_math.a

von Johannes S. (Gast)


Lesenswert?

Atollic habe ich nicht mehr auf dem Rechner, aber ähnliche Eclipse IDEs: 
die Lib eintragen in Project Settings -  C/C++ Build - Settings - Linker 
- Librariers. Da müssen Pfad und Name des Archives gesetzt werden, beim 
Namen das prefix 'lib' und suffix '.a' weglassen.

von B e r n d W. (smiley46)


Lesenswert?

IMO sollte es hier dabei sein, STM32F4xx_DSP_StdPeriph_Lib:
http://www.st.com/en/embedded-software/stsw-stm32065.html

von Mr. Big (Gast)


Lesenswert?

B e r n d W. schrieb:
> IMO sollte es hier dabei sein, STM32F4xx_DSP_StdPeriph_Lib:
> http://www.st.com/en/embedded-software/stsw-stm32065.html


Wieso "IMO"?
Natürlich ist die dabei, ebenso wie beim CubeMX, aber das dürfte nicht 
sein Problem sein.

von atollicer (Gast)


Lesenswert?

Danke für die Hinweise,

ich hab es so gemacht:

1 STMCube MCU Packages für STM32F4 heruntergeladen (groß, dauert)
2 entpacken und die libarm_cortexM4lf_math.a gesucht (hoffe es ist die 
richtige und nicht die libarm_cortexM4l_math.a)
3 Verzeichnis eingerichtet in meinem Workspace zum jeweiligen Projekt, 
z.B. unter ../CMSIS/.../meine_CMSIS_libs/   und lib hinkopiert
4 Projekt Properties angepaßt
Project Properties --> C/c++ Builders -->Settings-->C 
Linker-->Libraries-->Path and Name?

bei PATH gibt es einen Hilfeknopf, der dafür sorgt, dass der angeklickte 
Pfand syntaktisch richtig umgesetzt wird

bei Libraries den Namen der Lib angeben ohne Präfix lib und ohne ".a" am 
Ende.

Dann konnte ich erstmal durchkompilieren. Hoffe es hilft anderen, die 
anders als ich keine Stunden für die Recherche verbraten möchten

atollicer

von Johannes S. (Gast)


Lesenswert?

zu 2):
es gibt Lib Versionen mit Hardware FPU und SW FP Mathe, die erstgenannte 
müsste die richtige mit FPU sein für den Cortex-M4. In der 
Initialisierung muss die FPU noch aktiviert werden, auf die Schnelle 
sind hier zwei Links ergoogelt:

https://www.silabs.com/community/mcu/32-bit/knowledge-base.entry.html/2014/04/16/how_to_enable_hardwa-vM9u
https://community.st.com/thread/22288

Die FPU des M4 kann aber nur 32 Bit float in HW, da muss man aufpassen 
das man z.B. auch Konstanten richtig definiert (wie 1.0f), sonst werden 
da schnell double Berechnungen raus.

zu den Librarynamen:
das möchte der GCC so haben und die IDE reicht die Namen nur an den 
Linker weiter, da hatte ich auch mal lange gesucht.

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
Noch kein Account? Hier anmelden.