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
Zuerst einmal, ich habe keine Ahnung von DSP. Aber: wenn ich das Packet X-CUBE-ALGOBUILD 1.1.0 wähle, kann ich DSP auswählen und alle Funktionen sind bei #include "arm_math.h" verfügbar. Zeig doch mal ein kurzen DSP Code für die main.c zum testen.
Bei "Define Symbols" noch hinzufügen: -DARM_MATH_CM4
Besteht noch Interesse an der Lösung? Ich denke, jetzt habe ich die Beste und Aktuellste für STM32CubeIDE. Getestet mit dem arm_sin_cos_example_f32.c .
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
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
Hi Seppel, das mit dem X-CUBE-ALGOBUILD funktioniert zwar, ist aber nicht die neueste Version. Habe ich wieder verworfen. Ich muss erst mal für ca. 2 Stunden weg, deshalb nur die Kurzfassung: DSP: CubeIDE Lib Projekt anlegen Prog: Lib Ordner mit Links auf die aktuelle Version Bis nachher...
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
P.S. FYI https://github.com/ARM-software/ML-KWS-for-MCU/issues/94 https://github.com/ARM-software/CMSIS_5/issues/581
Zitat: We introduced some "collective C files" which include all the other C files in a group. You must not include both, the collective and the individual files, in your project. Frage: Warum inkludiert man C-Files? Und warum haben die keinen "Include Guard" ? Warum sollte man etwas so lösen? Grüße, Seppel
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:
-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. ;)
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.
:
Bearbeitet durch User
Hallo, ich habe mal nachgesehen welche Version ich habe. Woher habt ihr die Version 1.4.2, ich habe die 1.4.0. https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-ides/stm32cubeide.html#get-software Bei ST gibt es nur die 1.4.0? Vielen Dank, Grüße, Seppel
Seppel V. schrieb: > Bei ST gibt es nur die 1.4.0? Das macht für dein konkretes Problem überhaupt keinen Unterschied. Das Update auf 1.42 geschieht aus der IDE heraus Help->Check for Updates
:
Bearbeitet durch User
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. :-)
Das ist auch aus CubeIDE möglich siehe unter Hilfe:
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.
Da braucht es keine externen links. Die Pakete liegen alle im Repository Verzeichnis
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.
da wird angemeckert das die floating point formate von Lib und Programm nicht übereinstimmen. Gibt es die Lib auch mit HW floating point?
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?
Johannes S. schrieb: > Gibt es die Lib auch mit HW floating point? Ja genau! Hatte ich übersehen. arm_cortexM4lf_math sollte passen.
...uses VFP registers... ...does not Deutet darauf hin, dass einige Dateien mit FPU Unterstützung compiliert sind, andere nicht. Das war die Grundidee dafür, die Lib wie auch die Anwendung für den passenden µC zu bauen.
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
Wenn das bei Win mit den Links zu schwierig ist, kannst Du die beiden Dateien auch einfach in dein Exe Projekt kopieren. Werden dann nur nicht bei Lib Neubau automatisch aktualisiert.
Übrigens kannst Du an Stelle der Version aus: ~/STM32Cube/Repository/STM32Cube_FW_F4_V1.25.0/Drivers/CMSIS/DSP/ auch die neuere aus: ~/STM32Cube/Repository/Packs/ARM/CMSIS/5.7.0/CMSIS/DSP/ benutzen. Der Ablauf ist der Gleiche.
Hallo, was meinst Du mit Exe-Projekt? Die letzten zweiposts kann ich leider nicht nachvollziehen. Vielen Dank. Grüsse, Seppel
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?
Ich verstehe nicht, warum du dir das Leben so schwer machst... Alle Librarys, die du brauchst liegen bereits fertig compiliert auf deiner Platte. Am Anfang der arm_math.h findet sich der folgende Hinweis. (siehe Anhang) Du benötigst das arm_cortexM4lf_math.
:
Bearbeitet durch User
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
Du suchst ja auch an der falschen Stelle.
@Seppel Du kannst auch das Paket herunterladen und dann "From Local" installieren. https://github.com/ARM-software/CMSIS_5/releases/download/5.7.0/ARM.CMSIS.5.7.0.pack
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.