Forum: Mikrocontroller und Digitale Elektronik DSP Library STM32F407 + CooCox IDE


von opcode (Gast)


Lesenswert?

Sehr geehrte Forummitglieder,

hat einer von euch die DSP Funktionen der DSP Library auf der STM Seite 
für das STM32F4 Discovery Board mit der CooCox CoIDE zum Laufen gebracht 
?!

Kann ich die *.lib Dateien direkt in CooCox CoIDE integrieren ?!

Bin für jeden Tipp dankbar.

mfGruß,
opcode

von Torsten S. (tse)


Lesenswert?

Das interessiert mich auch...

von opcode (Gast)


Lesenswert?

Sehr geehrte Forummitglieder,
ich habe es nun geschaft, dass CooCox IDE die fft Funktion 
"arm_rfft_init_f32()" aufrufen kann, habe jedoch noch nicht die Funktion 
getestet !

Ich habe folgendes durchgeführt:
1.) Die Headerdateien "arm_math.h" und "arm_common_tables.h" aus der 
DSP_Library in den CMIS Ordner des jeweiligen CooCox CoIDE Projektes 
reinkopieren und in der IDE im Project-View (links) über Rechtsklick -> 
Add Files diese Headerdateien dem Projekt kenntlich machen. Die 
Headerdateien befinden sich in dem Ordner:
1
stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.0.1\Libraries\CMSIS\Include
. Diese Datei bzw. den Ordner gibt es hier als ZIP Archiv zum 
Downloaden:
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f4_dsp_stdperiph_lib.zip

2.) Die folgenden Library Files (*.lib) Dateien in das 
Projektverzeichnis (Wurzelverzeichnis; da wo sich z.B. die main.c Datei 
befindet) kopieren:

2.1) libgcc.a - zu finden in dem Ordner des Toolchains 
"C:\Programme\arm-none-eabi-gcc-4_6\lib\gcc\arm-none-eabi\4.6.2\armv7e-m 
\fpu"

2.2) libc.a, libg.a  und libm.a - zu finden in dem Ordner des 
Toolchains: 
"C:\Programme\arm-none-eabi-gcc-4_6\arm-none-eabi\lib\armv7e-m\fpu"

Es muss hier beachtet werden, welches FPU später gewählt wird. Bei Soft 
FPU müssen die entsprechenden Libraries aus dem Verzeichnus 
"....\softfp" verwendet werden.

Nach dem diese Libraries in dem Projektordner sind, müssen diese in den 
Einstellungen (Configuration -> Link: Linked Libraries) hinzugefügt 
werden.

Des Weiteren habe ich folgende Symbole definiert (Configuration - 
Compile):
1
STM32F407VG
2
STM32F4XX
3
__ASSEMBLY__
4
USE_STDPERIPH_DRIVER 
5
ARM_MATH_CM4
6
__FPU_PRESENT
7
ARM_MATH_ROUNDING
8
ARM_MATH_MATRIX_CHECK
9
__FPU_PRESENT=1
10
__FPU_USED

Die Einstellung für FPU: FPU Hard

Anschliessend muss dann in der "main" Datei die Headerdatei "arm_math.h" 
eingefügt werden:
#include "arm_math.h"

Ich benutze:
Windows XP 32 Bit Version, CooCox CoIDE Version 1.7.0 und das Toolchain 
arm-none-eabi-gcc-4_6

Ich kann mit diesen Schritten das Projekt fehlerfrei kompilieren.

Ob das nun die optimale Lösung ist, steht natürlich außer Frage. 
Vielleicht sind sogar einige Schritte falsch oder "dirty". Ich bitte um 
Verbesserungen ! Die Library Files müssen eventuell gar nicht in das 
Projektverzeichnis kopiert werden, sondern können direkt aus dem 
Toolchain Ordner gewählt werden ?!

mfGruß,
opcode

von opcode (Gast)


Lesenswert?

-Ich meine den Ordner: CSMIS und nicht CMIS !
-Die Library Files sind natürlich vom Dateityp *.a und nicht *.lib

von Alex (Gast)


Lesenswert?

Hallo,

ich wollte jetzt auch einmal die DSP-Funktionen auf dem F4-Discovery 
Board testen und bin auf diesen thread gestoßen, ich krieg es allerdings 
nicht zum laufen.

Wenn ich es wie oben mache, dann kommt ein ganzer Haufen Fehler dieser 
Art:
1
[cc] C:\CooCox\CoIDE\workspace\DSPtest\cmsis/arm_math.h:412:3: error: unknown type name '__STATIC_INLINE'
2
[cc] C:\CooCox\CoIDE\workspace\DSPtest\cmsis/arm_math.h:412:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'clip_q63_to_q31'

Hat das mittlerweile jemand mit CooCox erfolgreich am Laufen und kann 
helfen?

MfG,
Alex

von ♪Geist (Gast)


Lesenswert?

Probier Mal es mal mit #define ARM_MATH_CM4

von Alex (Gast)


Lesenswert?

ARM_MATH_CM4 ist schon definiert

von sagexs (Gast)


Lesenswert?

bind mal die beiden header dateien mit ein, das hat bei mir gerade 
geholfen

#include "stm32f4xx.h"
#include "system_stm32f4xx.h"

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.