STM32CubeIDE + CMSIS DSP , wie bekomme ich das zum Laufen?

#6376346
Lesenswert?

Hallo,

auf einem Nucleo426 versuche ich die DSP-Bibliothek zum Laufen zu 
bekommen, habe aber das Problem dass es nicht kompilieren mag:

1) Wenn man Libraries wählt werden wahrscheinlich die Libraries nicht 
mit kopiert werden, ich hab auch nichts gefunden.

2) Wenn ich Source wähle wird zwar Code kopiert, aber wahrscheinlich 
nicht alles, es werden Fehler wie "...StatisticsFunctions.c:29:10: fatal 
error: arm_max_f32.c: No such file or directory" ausgegeben.

Kennt jemand das Problem, kann mir jemand ein paar Tipps geben woran das 
liegen kann? Ich würde auch gerne den integrierten FreeRTOS-Configurator 
nuten, das hatte geklappt,... bei der DSP-Lib komme ich irgendwie nicht 
weiter.

Vielen Dank, freue mich auf hilfreiche Kommentare, Grüße, Seppel

P.S. Wenn ich die CMSIS-Lib bei Github per Zip manuell herunterlade ist 
in den *. a Files so was drin wie das hier, was mache damit? Wie bekomme 
ich die kompilierten Lib’s,… ? Eigentlich wäre es kein Problem wenn die 
STM32CubeIDE das alles machen würde,... .

version https://git-lfs.github.com/spec/v1
oid 
sha256:665489491655c7175b701063d3c792ff443e4576ded2eb7fae114d94aae3d595
size 6421864
Angehängte Dateien:
#6378256
Lesenswert?

Hallo,

ja gerne, war nur gestern nicht zu Hause.

In der main.c habe ich:

#include "arm_math.h"


Warum sollte man X-CUBE-ALGOBUILD 1.1.0 wählen, geht nicht das ARM 
Package?


-DARM_MATH_CM4 habe ich gesetzt aber es fehlen trotzdem Dateien.

Hab aus dem Download einfach alles in 
../Middlewares/Third_Party/ARM_CMSIS/CMSIS/ , kopiert, jetzt habe ich 
andere Fehler, funktioniert aber immer noch nicht.

Bin für jede Hilfe sehr dankbar.

Viele Grüße, Seppel
#6378275
Lesenswert?

Hallo,

kleines update,  ich habe das Projekt noch mal neu angelegt, wenn ich 
nur das #include"arm_math.h" in der main.c habe, kompiliert es durch.

Aber wenn ich dann in die while loop die sinus Funktion aufrufe kracht 
es(siehe Screenshot).

Core/Src/main.o: In function `main':
C:/p_projects/STM32CubeIDE/workspace_1p4p0/429_dsp/Debug/../Core/Src/mai 
n.c:112:  undefined reference to `arm_sin_f32'
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:50: 429_dsp.elf] Error 1

Grüße, Seppel
Angehängte Dateien:
#6378378
Lesenswert?

Hallo,

die STM32IDE scheint nicht alle Files zu kopieren, also hab ich aus dem 
Package von Github 
https://github.com/ARM-software/CMSIS_5/releases/tag/5.6.0 
heruntergelasen und in mein STM32CobeIDE Pojekt in den Pfad 
/429_dsp/Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP die Orner Include 
und Source kopiert.

Problem, mehrfach

Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/TransformFunctions/ar 
m_rfft_q31.o:  In function `arm_split_rfft_q31':
C:/p_projects/STM32CubeIDE/workspace_1p4p0/429_dsp/Debug/../Middlewares/ 
Third_Party/ARM_CMSIS/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q31.c 
:131:  multiple definition of `arm_split_rfft_q31'
Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/TransformFunctions/Tr 
ansformFunctions.o:C:/p_projects/STM32CubeIDE/workspace_1p4p0/429_dsp/De 
bug/../Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/TransformFunct 
ions/arm_rfft_q31.c:131:  first defined here
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:60: 429_dsp.elf] Error 1
"make -j12 all" terminated with exit code 2. Build might be incomplete.

16:49:31 Build Failed. 674 errors, 2 warnings. (took 2s.685ms)

Ich finde aber of `arm_split_rfft_q31' nur ein mal in den Files, da 
scheint nichts doppelt zu sein.

Bin immer mehr verwirrt.

Grüße, Seppel
Gast #6378444
Lesenswert?

So, bin wieder da.

Mein System:
Ubuntu 18.04
STM32CubeIDE-1.4.2
CMSIS-5.7.0
STM32F401CCU Black

Um immer aktuell zu sein, habe ich die Lib neu compiliert.

-CubeIDE: neues Projekt, Static Library, Name: arm_cortexM4lf_math
-µC auswählen, Lib sollte dann für die ganze Familie passen
-Include Verzeichnis anlegen, mit -I Suchpfad darauf einstellen

-Dateien aus: 
~/STM32Cube/Repository/STM32Cube_FW_F4_V1.25.0/Drivers/CMSIS/DSP/Include 
nach Include kopieren

-gewünschte Ordner, oder alle von 
~/STM32Cube/Repository/STM32Cube_FW_F4_V1.25.0/Drivers/CMSIS/DSP/Source 
nach /Src kopieren

das kompiliert sieht dann so aus:
Angehängte Dateien:
Gast #6378462
Lesenswert?

-Projekt erstellen (Executable)

-im Projektverzeichnis /DSP Verzeichnis anlegen, und absoluten Link zu 
den Dateien aus dem Lib Projekt (dsp2.png)
damit kann das Verzeichnis DSP in jedes neue Projekt einfach kopiert 
werden

-Include eintragen (dsp3.png)

-Lib eintragen (dsp4.png)

Damit sollten alle Funktionen zur Verfügung stehen.
Gestestet mit meinem Board.

Wobei float32 natürlich eine Katastrophe ist. ;)
Angehängte Dateien:
#6378746
Lesenswert?

Man muß das Library gar nicht selber bauen.
Wenn man das Package aus CubeMX heraus installiert hat, liegt das 
bereits auf der Platte.
Man muß die Dateien auch nicht in das Projekt kopieren.
Es reicht, den Include-Pfad auf den Repository-Pfad mit dem Package zu 
legen.
Das Selbe macht man mit dem existierenden Library.
Wichtig ist, bei der Angabe des Library-Namen das Prefix lib und die 
Extension .a wegzulassen.
Angehängte Dateien:
#6379580
Lesenswert?

Hallo Harry,

das Problem ist, die Library-Files werden nicht in den Projekt-Workspace 
kopiert. Warum das nicht klapp weiß ich nicht.

Wie bekomme ich über GIT den Tag mit der Version 5.6.0 auf meine Platte 
in dem auch in den .a files etwas drin ist? Wenn ich in das Zip schue 
dann ist da ein LFS-Link drin. Wie kann ich das so "auschecken" dass ich 
nur die 5.6.0 mit den Files habe(Verwende noch SVN, mit Git kenne ich 
mich weniger gut aus).

Anbei ein Screenshot,... keine Ahnung warum jemand ein ZIP macht und da 
ist der LFS-Link, schade.

Vielen Dank, Grüße, Seppel

P.S. Das Update hat geklappt, dank für den Hinweis, hab mal alle 
Packages auf Stand gebracht. :-)
#6379592
Lesenswert?

Seppel V. schrieb:
> das Problem ist, die Library-Files werden nicht in den Projekt-Workspace
> kopiert.

Das ist ja auch vollkommen unnötig.
Wenn du das Paket (CMSIS DSP) aus CubeMX heraus installiert hast, 
befindet sich das Library ja bereits auf deiner Platte.
Du musst das nur noch referenzieren.
Wo du die findest steht in den Einstellungen. (siehe Anhang)

Und hier:
Beitrag "Re: STM32CubeIDE + CMSIS DSP , wie bekomme ich das zum Laufen?"
hab ich ja beschrieben, wie du das einbindest.
Angehängte Dateien:
#6379712
Lesenswert?

Hallo,

ok, super, ohne eure Unterstützung hätte ich das Setting nie gefunden. 
Hab den Pfad geändert und die Dateien sind jetzt im Workspace.

Die Include-pfade und die Linker-Seetings habe ich auch angepasst, die 
hat die STM32CubeIde nicht gesetzt, was ich erwartet hätte.

Funktioniert aber immer noch nicht, der Linker findet anscheinend Objets 
nicht, siehe Screenshot.

Grüße, Seppel

P.S. Das mit GIT würde ich gerne verstehen, wie kann ich das so 
auschecken dass ich die keinen LFS Link drin hab. Hab’s mit SVN 
probiert, Auschecken ging sehr elegant, aber in den Files ist trotzdem 
der LFS-Link drin. Git-Bash, damit kenne ich mich nicht gut aus und die 
Git-GUI bringt mcih auch nicht weiter. Ich sehe den 5.6.0 er Tag, aber 
wie ich die Version mit den .s file auf den rechner bekomme, hab’s noch 
nicht verstanden.
Angehängte Dateien:
#6379722
Lesenswert?

Seppel V. schrieb:
> Funktioniert aber immer noch nicht, der Linker findet anscheinend Objets
> nicht, siehe Screenshot.

Ja, und in den Fehlermeldungen beschwert der Linker sich, daß er dein 
Library nicht findet.
Also entweder stimmt der Pfad nicht, oder der Library-Name.

Du verwendest ja Windoof; gabs da nicht irgendwann mal ein Problem mit 
zu langen Pfaden?
#6379890
Lesenswert?

Hallo,

an den Pfaden liegt es nicht, sonst würde es auch das Headerfile nicht 
includieren können.

Bei q31_t funktioniert es ebenfalls nicht. An float liegt es nicht.
Die FPU ist an, wie man am Screenshot sieht.


Als nächstes werde ich versuchen die Library wie oben im Thread zu 
compilieren.

Grüße, Seppel
Angehängte Dateien:
Gast #6380234
Lesenswert?

Moin,
es gibt das Lib Projekt und das dieses benutzt ist das Exe Projekt.

Das mit den links bedeutet, dass Du die arm_math.h und die erzeugte Lib 
auch einfach in das DSP Verzeichnis kopieren kannst. (dsp2.png)

Du kannst entweder wie oben geschrieben die Quellen des F4 DSP in der 
Version 1.5.1, oder die aus CMSIS-5.7 Version 1.7 benutzen.

Wie weit bist Du?
Gast #6381229
Lesenswert?

Hallo,

ich hab auf einem anderen Rechner auf dem bisher nichts von ST 
installiert war STM32CubeIDE neu installiert. Danach hab ich ein Update 
auf die Version 1.4.2 geamcht,... alles schön up to Date gebracht.

Dann kam die "Überraschung", ich hab im "Embedded Software Packages 
Manager" gar keinen ARM Tab (siehe Screenshot). Wie kann das sein? 
Unterstützt ST die CMSIS nicht mehr?

Grüße Seppel

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