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
Ich benutze kein TrueStudio, aber die Library ist entweder libarm_cortexM4l_math.a oder libarm_cortexM4lf_math.a
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.
IMO sollte es hier dabei sein, STM32F4xx_DSP_StdPeriph_Lib: http://www.st.com/en/embedded-software/stsw-stm32065.html
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.