STM32Cube & Eclipse & GCC

Gast #3593220
Lesenswert?

Hallo Ihr,
hat jemand von euch schon Erfahrung mit dem STM32Cube und Eclipse?

Hab es soweit hinbekommen das ich das Plugin in Eclipse drin habe und 
auch schon mal aus Spaß mein Grundsystem mit RTOS zusammengeklickt habe.

Der Code wird auch schön generiet..

Und wie bekomme ich den nun in ein neues Projekt rein?

Hab es mal über Import versucht aber dann kann er alles mögliche nicht 
resolven...


Hat es schonmal jemand Zustande gebracht, ohne Keil und IAR ?

Also nur freie uneingeschränkte Tools??
Auf Linux hoffe ich ja schon gar nicht beim STM32Cube... aber nichtmal 
unter Windows gehts es mal so eben...

Da ist Microchip schon bei weitem besser....(sogar Linux läuft direkt 
alles...)


Naja gut Coocox geht soweit ganz gut.. unterstützt aber nicht das Cube 
und Rtos so direkt.. Das Cube ist schon nett wenn ich jetzt  noch in ein 
Projekt eingebunden bekomme...
Gast #3593237
Lesenswert?

>hat jemand von euch schon Erfahrung mit dem STM32Cube und Eclipse?

Ja.

>Hab es soweit hinbekommen das ich das Plugin in Eclipse drin habe und
>auch schon mal aus Spaß mein Grundsystem mit RTOS zusammengeklickt habe.
>
>Der Code wird auch schön generiet..

Ja, cool nich;)

>Und wie bekomme ich den nun in ein neues Projekt rein?

Zu Fuß neues Projekt erstellen und den erzeugten Code dort
von Hand einfügen.

>Hab es mal über Import versucht aber dann kann er alles mögliche nicht
>resolven...

Ging mir genauso.

>Hat es schonmal jemand Zustande gebracht, ohne Keil und IAR ?

Vermutlich diejenigen die Atollic Truestudio haben;)

>Also nur freie uneingeschränkte Tools??

Da will ST scheinbar nicht so richtig. Die Projekte
können nur für IAR, Keil, und Atollic erzeugt werden.
Eclipse und ARM-GCC pur wollen sie wohl nicht unterstützen.

Zumindest ein kleiner Lichtblick erscheint am Horizont.
Mit Eclipse Keppler und dem CDT kann man jetzt ja zumindest
schon mal ein Grundgerüst mit Linker Scripten und Startupcode
für einige STM32 erstellen.
Gast #3593257
Lesenswert?

>Das heißt leeres ARM GCC Projekt erstellen und dann alles von Hand
>hinzufügen?

Ja.

>Könntest du bitte einmal genauer beschrieben was du wo reinfügen
>musstest??

Nein, ich hatte mir das nur mal kurz angesehen und dann erst
mal wieder verworfen ein komplettes Projekt mit dem erzeugten
Code zu basteln.
#3593270
Lesenswert?

Geht es euch hier um den Nachfolger der Standard peripheral library oder 
um die Peripherie-Zusammenklick-Software STM32CubeMX?

Für erstere bin ich gerade dabei, einen Paketmanager zu schreiben, der 
das Archiv von ST runterlädt und einem die gewünschten Bestandteile 
(CMSIS, HAL, etc) entpackt. Funktioniert schon recht gut, muss nur noch 
ein wenig poliert werden, damit's vorzeigbar wird. Landet dann 
hoffentlich dieses Wochenende oder so auf github.
Gast #3593278
Lesenswert?

Eigentlich beides, dass KlickiBunti ist schon ganz nett. Und vor allem 
die einfache Configration und die Überwachung ob etwas nicht 
zusammenpasst.

Wo ich halt nun hänge, wie bekomme ich den erstellten Code in Eclipse 
rein? So das ich den Compilieren kann?

Atollic ist ja Eclipse und GNU GCC...

Also sollte das ja eigentlich klappen. Aber ich bekomme es nicht hin..
Gast #3593281
Lesenswert?

>Geht es euch hier um den Nachfolger der Standard peripheral library oder
>um die Peripherie-Zusammenklick-Software STM32CubeMX?

Laut ST ist dieser Cube Kram der Nachfolger der Standard
Peripheral Library. Dafür gibt es auch ein Eclipse Plugin.
Das erzeugt aber nur Projekte für Atollic. Die erzeugten
Projekte kann man nicht einfach so in Eclipse importieren.
Gast #3593296
Lesenswert?

Und um sowas zu umgehen wollte ich wissen ob es schonmal jemand 
geschafft hat und weiß worans hängt..


Hintergrund ist auch es wird mein erstes ARM Projekt (bis auf bissel LED 
Blinken usw.)
Da wollte ich gern direkt möglichst Komfortabel und mit dem aktuellsten 
(was dann hoffentlich auch länger so bleibt) einsteigen..
(Firma: EleLa - www.elela.de) #3593312
Lesenswert?

Ich nutze schon seit Jahren Eclipse/GCC um STM32 Programme zu erstellen.

Nachteil:
Man muss vieles selbst machen

Vorteil:
Man weiß genau welche Dateien eingebunden sind und kann jeden Codeblock 
genau dort hin in den Speicher schieben wie man mag.

Schlussendlich hat man damit die volle Kontrolle - wenn man weiß wie es 
geht. Selbst der Startup-Code habe ich in C geschrieben - und der macht 
genau das was ich will.

Zum Eclipse nutze ich das CDT Plugin und den Segger J-LINK zum debuggen, 
das klappt reibungslos, auch größere Projekt mit 300KB FLASH.

Eclipse & STM32 nutze ich seit Gallileo, bis heute mit Keppler.

Hier ein Artikel: STM32 Eclipse Installation

Ein Projekt von mir:
"Blink-LED, komplettes Eclipse-Workspace von MmVisual"
gibt es auch in dem Artikel zum Download. Damit hätte man zumindest mal 
eine Grundlage und weiß wie es geht.

Wer von 0 anfängt, für den ist CooCox durchaus ausreichend.
Wer die absolute Freiheit mag, für den ist Eclipse die erste Wahl. Damit 
kann man Code für jeden µC (C, C++) erstellen, man muss nur den 
passenden Compiler einbinden (was im "makefile" deklariert wird).
Gast #3593326
Lesenswert?

>Einfach mal die erzeugten Dateien ins Projekt einwerfen und so lange
>HAL-Bibliotheken importieren bis es baut?

Sicher kann man das so machen, und ich hätte auch kein Problem
damit. Aber der Wunsch das das ohne grosse Handarbeit direkt
über das Eclipse Plugin geht bleibt natürlich. Darum geht es.
So wie es jetzt ist muss man sich ausser dem kopieren
von Dateien auch noch die ganzen Compiler defines, die
Include Pfade usw. aus dem Atollic Projekt rauspopeln.
Da hatte ich bisher noch keine Lust zu.
Gast #3593341
Lesenswert?

Naja wie gesagt bisher hab ich nur mit 8bit Pic zu tun gehabt und ein 
wenig mit Pic32.

Nun für meine Masterarbeit bin ich ins kalte Wasser geschmissen worden.
Und da für spätere Projekte Platz nach oben bleiben soll, soll ich einen 
möglichst Leistungsfähigen µC nehmen.

BeagleBone wäre eine alternative (Linux kann ich ein wenig) aber da ich 
außer SPI und UART auch wohl ein paar Sachen Parallel über GPIO 
ansprechen muss ist es mit dem PRU Gedöns nicht ganz so einfach..

Außerdem soll es in C sein (am liebsten Matlab....) und die PRU mit 
Assembler geht also schonmal nicht...
Also würde ich halt nun auf die Cortex M4 oder Pic32MZ gehen. Pic32 wäre 
mir leiber aber die sind ja bisher nur schlecht verfügbar und ein 
geeignetes Dev-Board gibt es auch noch nicht..

Daher wird es wohl auf nen ARM rauslaufen. Die LPC4370 sind wohl die 
schnellsten wobei ein Dual-Core mir den Einstieg wohl nicht 
erleichtert... somit bin ich bei den STM32F437 gelandet. Sollten 
hoffentlich genug Leistung haben...

Man muss dazu sagen ich bin nicht Informatiker sondern E-Techniker..

Daher bevorzuge ich einen leichten Einstieg mit Klicki-Bunti..

Zusätzlich bin ich noch an einem RTOS am überlegen was wohl sinnvoll ist 
bei dem Projekt aber halt nomma bissel die Anforderung an den Einstieg 
nach oben schraubt...
Gast #3593362
Lesenswert?

Ja sowas hab ich ja sogar schon gemacht.

Da ich immermal mit ARM anfangen wollte hab ich bereits ein paar Boards 
und sogar einen J-Link.

Mit Coocox hab ich halt ein wenig blinken lassen und sogar mit ein wenig 
Code Unterstützung auch schon über Bluetooth und UART Sachen versendet.

Nur jetzt wird es halt größer und da wollte ich auf die STM32Cube 
Unterstützung zurückgreifen. Eben weil ich auch mit FreeRTOS Einsteigen 
werde (wohl muss aber auch möchte...)

Und da kam mir das Klicki-Bunti sehr recht.. Leider habe ich halt kein 
Keil/IAR/Atollic zur Verfügung...
Gast #3594075
Lesenswert?

GRRRECLIPSE schrieb:
> Das ist sehr interessant. Werde ich morgen mal ausprobieren.

Bevor du die 30Mb evtl. umsonst runterlädst, wenn du ein Keil Project in 
E::B importierst muss zum kompilieren der Keil Compiler installiert 
sein.

Es lässt sich aber recht einfach ein Projekt erstellen das das gleiche 
Projekt Verzeichnis wie CubeMx benutzt. Dann kannst du in CubeMX den 
Code generieren lassen kannst und in Em::Blocks kompilieren lassen 
kannst.
Das sollte auch mit CooCox gehen. Ich kann es dir bei Interesse aber nur 
für E::B erklären.
Gast #3594198
Lesenswert?

Also wenn ich mit EM:Blocks ein Projekt erstelle und mit CubeMX den Code 
generieren lasse kann ich den irgendwie in EM:Blocks reinbekommen und 
mit einem freien Compiler also GCC ohne Beschränkungen nutzen??

Wenn ja, dann erklär bitte ein wenig mehr hier. Wenn ich heut Abend zu 
Hause bin versuche ich es mal. Es interessiert bestimmt noch andere.
Gast #3594731
Lesenswert?

Um ein Project in E::B zu erstellen das mit CubeMX läuft.

1. ein neues Project erstellen wie hier beschrienen 
http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks 
"Das erste Projekt erstellen" nur Schritte bei 1. ausführen.

2. im E::B Project Manager rechtsklick auf den Projectnamen und 'remove 
files' wählen , im folgenden Auswahlfenster alle Dateien auswählen.

3. im Project Ordner die Datei startup_stm32f4xx.S aus dem /src 
Verzeichnis ins Project Verzeichnis verschieben. Also eine Ebene hoch.

4. In CubeMX neues Project erstellen, Verzeichnis und Namen wählen wie 
in E::B erstellt.

5. In CubeMX Configuration zusammenklicken und Generate Code wählen.

6. im E::B Project Manager rechtsklick auf den Projectnamen und 'add 
files recursively' wählen.

7. In E::B die Pfade zu den Header Dateien angeben, und Compiler 
#defines STM32F407xx und USE_HAL_DRIVER eingeben.

Dann sollte es gehen ;)
Gast #3595500
Lesenswert?

So, ich bin bis Punkt 7 gekommen. Sieht soweit auch gut aus. Habe in 
CubeMX Keil genommen.

Aber mit Punkt 7 komm ich nicht klar.

Habe untern den Build Options #defines die 2 Sachen eingetragen.
Also direkt einfach ohne was davor 1:1 reingeschrieben.

Wo ich jetzt die Headerfile Pfade angeben muss erschließt sich mir 
gerade nicht.

Naja auf jedenfall wenn ich auf "Build" klicke kommen unmengen Fehler. 
Der benutzt anscheinend die Falsche startup:
Mein Build Log:

[Code]

-------------- Build: Debug in Test_Cube2 ---------------

Assembling: 
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s
Assembling: 
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xe.s
Assembling: 
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f405 
xx.s
Assembling: 
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407 
xx.s
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:  Assembler messages:
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:1:  Error: junk at end of line, first unrecognized character is `*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:2:  Error: junk at end of line, first unrecognized character is `*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:3:  Error: junk at end of line, first unrecognized character is `*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:4:  Error: junk at end of line, first unrecognized character is `*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:5:  Error: junk at end of line, first unrecognized character is `*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:6:  Error: junk at end of line, first unrecognized character is `*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:7:  Error: junk at end of line, first unrecognized character is `*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:8:  Error: junk at end of line, first unrecognized character is `*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:9:  Error: junk at end of line, first unrecognized character is `*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:10:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:11:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:12:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:13:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:14:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:15:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:16:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:18:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:19:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:20:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:21:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:22:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:23:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:24:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:25:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:26:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:27:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:28:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:29:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:30:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:31:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:32:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:33:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:34:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:35:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:35:  Error: bad instruction `loss OF USE,DATA,OR PROFITS'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:35:  Error: bad instruction `or BUSINESS INTERRUPTION)HOWEVER'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:36:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:37:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:38:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:40:  Error: junk at end of line, first unrecognized character is 
`*'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:42:  Error: bad instruction `amount of memory(in bytes)allocated 
for Stack'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:43:  Error: bad instruction `tailor this value to your application 
needs'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:44:  Error: junk at end of line, first unrecognized character is 
`<'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:45:  Error: junk at end of line, first unrecognized character is 
`<'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:46:  Error: junk at end of line, first unrecognized character is 
`<'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:48:  Error: bad instruction `stack_size EQU 0x00000400'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:50:  Error: bad instruction `area STACK,NOINIT,READWRITE,ALIGN=3'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:51:  Error: bad instruction `stack_mem SPACE Stack_Size'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:52:  Error: bad instruction `__initial_sp'
Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f401 
xc.s:55:  Error: junk at end of line, first unrecognized character is 
`<'
Process terminated with status 1 (0 minutes, 4 seconds)
50 errors, 0 warnings (0 minutes, 4 seconds)

Process terminated with status 1 (0 minutes, 6 seconds)

Process terminated with status 1 (0 minutes, 8 seconds)

Process terminated with status 1 (0 minutes, 10 seconds)
Gast #3595573
Lesenswert?

GRRRECLIPSE schrieb:
> Wo ich jetzt die Headerfile Pfade angeben muss erschließt sich mir
> gerade nicht.

Du solltest die #defines nicht nur fürs Debug Build setzten sondern für 
das gesamte Projekt. Siehe Bilder.

Und c99 unter Compiler Flags -> Language standard setzen.

>Naja auf jedenfall wenn ich auf "Build" klicke kommen unmengen Fehler.

Du siehst wahrscheinlich im Project Manager unter ASM Sources einen 
Ordner 'Drivers' , entfern den mit Rechtsklick 'Remove Drivers/*'
So das im Project Manager unter ASM Sources nur die Datei 
startup_stm32f4xx.S drin steht, die gehört zu E::B.
Angehängte Dateien:
Gast #3595613
Lesenswert?

Bei mir findet er komischerweise die Standardbibliothek (denke ich, da 
er die Befehle nicht kennt) nicht, obwohl sie eingebunden sind und unter 
directories die includes hinzugefügt sind.

Das mit dem klicken auf "Projekt" war zwar ein wichtiger hinweis den ich 
ebenfalls falsch gemacht habe (sollte im Tutorial ergänzt werden, da 
standardmäßig debug ausgeählt ist) gebracht hat es dennoch nichts :(
Angehängte Dateien:
Gast #3595623
Lesenswert?

Bin mittlerweile auch weiter gekommen. Aber jetzt komm ich mal wieder 
nicht weiter:
1
-------------- Build: Debug in Test_Cube2 ---------------
2

3
Compiling: Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c
4
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c
5
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c
6
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c
7
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c
8
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c
9
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c
10
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c
11
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c
12
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dac.c
13
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dac_ex.c
14
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dcmi.c
15
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c
16
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma2d.c
17
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c
18
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_eth.c
19
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c
20
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c
21
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c
22
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hash.c
23
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hash_ex.c
24
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hcd.c
25
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c
26
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c
27
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2s.c
28
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2s_ex.c
29
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_irda.c
30
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_iwdg.c
31
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_ltdc.c
32
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_msp_template.c
33
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_nand.c
34
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_nor.c
35
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pccard.c
36
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pcd.c
37
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c
38
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c
39
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c
40
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c
41
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c
42
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc.c
43
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc_ex.c
44
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sai.c
45
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sd.c
46
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sdram.c
47
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_smartcard.c
48
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c
49
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c
50
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c: In function 'HAL_SPI_Receive':
51
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c:465:17: warning: variable 'tmpreg' set but not used [-Wunused-but-set-variable]
52
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c: In function 'HAL_SPI_TransmitReceive':
53
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c:639:17: warning: variable 'tmpreg' set but not used [-Wunused-but-set-variable]
54
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c: In function 'SPI_RxCloseIRQHandler':
55
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c
56
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c:1621:17: warning: variable 'tmpreg' set but not used [-Wunused-but-set-variable]
57
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c: In function 'SPI_DMAReceiveCplt':
58
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c:1802:17: warning: variable 'tmpreg' set but not used [-Wunused-but-set-variable]
59
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c: In function 'SPI_DMATransmitReceiveCplt':
60
Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c:1862:17: warning: variable 'tmpreg' set but not used [-Wunused-but-set-variable]
61
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c
62
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c
63
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c
64
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_wwdg.c
65
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_fmc.c
66
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_fsmc.c
67
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_sdmmc.c
68
Compiling: Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_usb.c
69
Compiling: Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS\cmsis_os.c
70
Compiling: Middlewares\Third_Party\FreeRTOS\Source\croutine.c
71
Compiling: Middlewares\Third_Party\FreeRTOS\Source\list.c
72
Compiling: Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_1.c
73
Compiling: Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_2.c
74
Compiling: Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_3.c
75
Compiling: Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_4.c
76
Compiling: Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c
77
Compiling: Middlewares\Third_Party\FreeRTOS\Source\queue.c
78
Compiling: Middlewares\Third_Party\FreeRTOS\Source\tasks.c
79
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:75:3: error: #error This port can only be used when the project options are configured to enable hardware floating point support.
80
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:258:7: error: expected '(' before 'void'
81
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:269:2: error: stray '#' in program
82
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:302:2: error: stray '#' in program
83
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:436:2: error: stray '#' in program
84
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:447:2: error: stray '#' in program
85
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:450:2: error: stray '#' in program
86
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:463:2: error: stray '#' in program
87
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:684:2: error: stray '#' in program
88
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:161:13: warning: 'prvStartFirstTask' declared 'static' but never defined [-Wunused-function]
89
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:166:13: warning: 'prvEnableVFP' declared 'static' but never defined [-Wunused-function]
90
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:204:24: warning: 'ucMaxSysCallPriority' defined but not used [-Wunused-variable]
91
Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\port.c:205:24: warning: 'ulMaxPRIGROUPValue' defined but not used [-Wunused-variable]
92
Process terminated with status 1 (0 minutes, 11 seconds)
93
9 errors, 9 warnings (0 minutes, 11 seconds)
Gast #3612216
Lesenswert?

Hello

First of all, sorry for my english. I'm a regular visitor of this site 
due to the high level of knowledge here on the forum. I'm from the 
Netherlands but my English is much better than my German, so that's why 
I will write in English.

I'm Also trying to get Emblocks work together with CubeMx. I produced 
the steps 1 till 7 which stated above. Now I get the same error message 
as quoted above by: GRRRECLIPSE

||=== testcube, Debug ===|
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h|857|error: 
unknown type name 'RCC_PeriphCLKInitTypeDef'|
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h|858|error: 
unknown type name 'RCC_PeriphCLKInitTypeDef'|
||=== Build finished: 2 errors, 0 warnings (0 minutes, 0 seconds) ===|
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h|857|error: 
unknown type name 'RCC_PeriphCLKInitTypeDef'|
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h|858|error: 
unknown type name 'RCC_PeriphCLKInitTypeDef'|

Gerald_G replies with:

Kommando zurück, man muss "#include "stm32f4xx.h" anstatt "#include
"stm32f4xx_hal.h" nutzen, dann geht es :)

But I can't seem to find what Gerald means with this.
Can someone or maybe Gerald himself explains what the solution for my 
problem is?

My sincerly!

Leddel
Gast #3612815
Lesenswert?

I removed the #include "stm32f4xx_hal.h in the main file and replaced it 
with: #include "stm32f4xx.h"

But the compiler still gives error with the RCC_PeriphClkInitTypeDef:

||=== testcube, Debug ===|
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h|857|error: 
unknown type name 'RCC_PeriphCLKInitTypeDef'|
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h|858|error: 
unknown type name 'RCC_PeriphCLKInitTypeDef'|
||=== Build finished: 2 errors, 0 warnings (0 minutes, 2 seconds) ===|
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h|857|error: 
unknown type name 'RCC_PeriphCLKInitTypeDef'|
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h|858|error: 
unknown type name 'RCC_PeriphCLKInitTypeDef'|


Very strange.
Gast #3613209
Lesenswert?

In der Release Notes steht, dass nur REV C (MB997C) des STM32F4 
DISCOVERY Boards unterstützt wird.

Seltsam, denn der einzige dokumentierte Unterschied ist der verwendete 
Beschleunigungssensor. Für den alten (REV B und REV A) ist aber trotzdem 
noch Code vorhanden in der STM32Cube Software.

Was stimmt denn nun? Ich habe nur das REV B board. REV C scheint zielich 
neu zu sein, und ist sicherlich noch nicht überall zu haben.

Hinzu kommt, dass REV C wegen des neuen Beschleunigungssensors auch 
nicht mit dem alten Firmwarepaket kompatibel ist.

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