Forum: Mikrocontroller und Digitale Elektronik STM32CubeIDE wie importiere ich richtig


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Tittrich (Gast)


Lesenswert?

Hallo,

ich habe mir ein WeAct STM32H743 Board gekauft und es gibt auf github 
Beispielprojekte, mit denen ich gerne arbeiten möchte:

https://github.com/WeActTC/MiniSTM32H7xx/tree/master/SDK/HAL/STM32H743

Es sind die Source-Dateien und die .ioc-Datei vorhanden. Ich habe zwar 
schon einige STM32-Projekte gemacht, habe aber nie wirklich verstanden, 
wie das mit dem Import von Vorlagen funktioniert. Ich habe schon 
probiert das in der CubeIDE als Projekt zu importieren, aber irgendwie 
sind dann die Treiber doppelt vorhanden im Dateibaum links und mit einem 
roten Kreuz versehen, obwohl beim Building kein Fehler ausgeworfen wird. 
Irgendwas mache ich hier falsch. Kann mir wer bitte kurz erklären wie 
das richtig geht?

Danke!!

von Tittrich (Gast)


Angehängte Dateien:

Lesenswert?

Ein Screenshot dazu

von Stefan F. (Gast)


Lesenswert?

Das ist nicht einfach, wie bei diesen Downloads gar keine importierbare 
Projektdatei dabei ist.

Ich würde die ioc Datei in Cube MX öffnen und dann damit ein neues 
Projekt generieren lassen. Danach kopierst du die fehlenden Quelltexte 
in die vorgesehenen Ordner. Die Dateien der CMSIS, HAL und Startup und 
Linker Script werden von CubeMX bereits bereitgestellt.

Da wird viel Handarbeit nötig sein, das ist nichts für Anfänger.

Einfache Alternative: kaufe die Keil IDE.

von Tittrich (Gast)


Lesenswert?

Als Anfänger würde ich mich (zumindest was das Programmieren der STM32 
angeht) nicht bezeichnen, habe nur keine Ahnung wie das mit dem Import 
funktioniert bzw. warum er mir die Dateien rot kennzeichnet. Gibt es da 
eine Möglichkeit herauszufinden, was ihm da aus welchem Grund nicht 
passt. Oder sonstige Ideen? Bin eigentlich mit der IDE sehr zufrieden 
und möchte kein Keil.

von Stefan F. (Gast)


Lesenswert?

Wie gesagt, die IDE kann keine Keil Projekte importieren.

Du bist Anfänger, sonst würdest du dir die Fehlermeldungen der IDE (zu 
den roten Markierungen) anschauen und beseitigen. Die Pfade zu den 
Verzeichnissen kann man in den Projekteinstellungen anpassen oder halt 
die Dateien in die richtigen Verzeichnisse legen.

von Tittrich (Gast)


Lesenswert?

Und du bist Anfänger im Lesen, ich hatte danach gefragt wie man das 
macht

von Harry L. (mysth)


Lesenswert?

Der einfachste Weg (der oft sogar überraschend gut funktioniert) geht 
so:

1. auf Basis der .ioc-Datei aus dem Beispiel ein Neues Projekt erzeugen
2. CubeMX den Code generieren lassen
3. die Dateien in Src und Inc vergleichen, und mit den geänderten 
Dateien aus dem Beispiel die neuen generierten Dateien überschreiben. 
(Alle Dateien, die User-Code enthalten!)
4. mit CubeMX den Code erneut generieren lassen

Bei einfacheren Projekten kommt man so meist zu nem lauffähigen 
Ergebnis.

Viel Glück!

: Bearbeitet durch User
von Frank B. (fbergemann)


Lesenswert?

Du erstellst ein neues Projekt mit dem richtigen Namen in CubeIDE 
(passend zum git repo). Festure Auswahl und Code Generierung kannst Du 
überspringen. Aber Du nutzt "share Project" (git) für das anlegen  ein 
lokales Repos. Danach schliesst Du das Projekt.

Z.B. in einer shell machst Du einen manuellen checkout des remote git 
repos. Anschliessend überschreibst das CubeIDE Projekt-Directory  mit 
dem checkout von git.

Am Ende öffnest Du das Projekt wieder mit CubeIDE.
Danach kannst Du ganz normal in CubeIDE und der Verknüpfung mit dem 
remote git arbeiten.

Alternativ kannst Du die Verknüpfung mit dem remote git repo auch für 
das erstellte CubeIDE Projekt durch ein paar Eintrage in gitconfig 
machen.

Bei mir funktioniert das.

von Johannes S. (Gast)


Lesenswert?

es ging doch garnicht um git??

In dem Screenshot sehe ich auch keinen Fehler oder doppelte Treiber. Die 
roten Kreuze könnten verschwinden wenn man in der Problems Ansicht 
eventuelle Altlasten löscht.

von Frank B. (fbergemann)


Lesenswert?

Wenn ich es richtig verstanden habe, dann will Tittrich ein auf github 
(git) vorhandenes Projekt importieren (übernehmen), übersetzen, 
aufspielen, debuggen.
Also kein Beispiel, dass STM im CubeIDE anbieten, sondern ein "fremdes" 
Projekt importieren, wie es bei eclipse üblich ist(?)

D.h., da hat schon jemand anderes den ganzen workflow in der  CubeIDE 
gemacht.

: Bearbeitet durch User
von Johannes S. (Gast)


Lesenswert?

die verlinkten Projekte sind für die Keil IDE, nicht Cube. Da muss man 
wohl einige manuelle Schritte ausführen.
Hier ist ein Weg über ein keil2gcc / makefile Projekt beschrieben:
https://www.youtube.com/watch?v=ua8jki9Vjx4
Ist schon etwas älter, vielleicht gibt es mittlwerweile etwas 
komfortableres.
Andererseits generiert CubeMX ja auch direkt Code und man braucht solche 
einfachen Beispiele nicht unbedingt.

von Tittrich (Gast)


Lesenswert?

Danke erstmal für die guten Antworten. Ja genau, git spielt hier keine 
Rolle es geht eigentlich rein darum, das in Keil entwickelte Projekt 
(hab das erst gestern gecheckt) auf der CubeIDE von STM laufen zu 
lassen. Ist schon ganz blöd weil das etwas anders aufgebaut ist 
(Initialisierungen von ADC, SPI etc. sind z.B. in einzelne Dateien 
aufgespaltet). Ich mache das so wie das der Harry L. gepostet hat (so 
wollte ich das auch ursprünglich angehen), dann gehts, etwas Handarbeit 
aber nicht wirklich ein Problem.

@Johannes S.
interessanter Vorschlag, werde ich mir anschauen

von Harry L. (mysth)


Lesenswert?

Tittrich schrieb:
> Ist schon ganz blöd weil das etwas anders aufgebaut ist
> (Initialisierungen von ADC, SPI etc. sind z.B. in einzelne Dateien
> aufgespaltet

Das hat gar nix mit Keil zu tun.
Das ist ein Feature, das man in CubeIDE einschalten kann und sollte.

ProjectManager->Code-Generaor-> Generate separate Files for .c and .h 
files

: Bearbeitet durch User
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.