Forum: Compiler & IDEs Überforderung: System Workbench, ST-Link, Eclipse - Hilfe


von Julius H. (chacky33)


Angehängte Dateien:

Lesenswert?

Hallo Leute

ich bin in der Welt der Mikroprozessoren, Compilern & IDEs ziemlich grün 
hinter den Ohren und bin etwas überfordert.

Ich weiß auch gar nicht wo ich richtig anfangen soll.

*Aktueller Stand:*

Ich habe für ein Projekt eine MCU und ein Softwarepaket bekommen, die 
ich Vermessungen benötige.
Daten aus mehrerer Inertial Sensoren (IMUs) sollen aufgenommen werden um 
damit bewegungen von Körpergliedmaßen zu erfassen.

Mir wurde eine Liste an Programmen gegeben, mit denen ich erstmals vom 
Workflow her nichts anfangen kann.
Das ganze wurde mir einmal kurz gezeigt, jedoch in so einem Tempo, als 
würde man von ausgehen, dass man die Basics besitzt. Leider hatte ich 
auch Angst weiter nachzufragen und versuche es deshalb selber zu 
verstehen und bin jetzt an einem Punkt, wo ich einfach kurz Rat brauche.

Leider war die Demonstration auch noch auf Linux, was mir bisher fremd 
ist.
Auf die Nachfrage ob es auch unter Windows geht, kam die Antwort, dass 
ich probieren müsste, da die Pfade ggf. nicht stimmen.

Aber erstmal zu dem was ich habe:

Hardware - siehe Bild
1x Customized Mikrocontrollerboard
1x STM32F407G-DISC1 Discovery Entwicklungsboard

*Software, die ich installiert habe:*
1x System Workbench for STM32
1x Eclipse Oxygen (C++)
1x ST-Link Utilities

*Projekte bzw. Dateien die ich bekommen habe:*
1x Packet/Projekt für MCU mit ganz vielen Dateien mit der Endung *.c, 
*.ccp, und *.h und Ordnern wie App, Debug, Drivers, Inc, Scr

1x Packet/Projekt für spätere Auswertung mit einer ähnlichen 
Ordnerstruktur

Nun fasse ich mal meinen Workflow und mein Verständnis zusammen und 
korrigiert mich bitte, falls ich falsch liege.


***************************************

Schritt 1 - System Workbench
Hiermit kann ich das bestehende MCU Projekt importieren, welches die 
Funktionen auf meinem Mikrocontroller definiert.

Was bedeutet es, wenn ich nach dem Import das Projekt baue, also "Build 
Project"

Oder macht Build Project erst Sinn nachdem ich alle nötigen Änderungen 
in beispielsweise einer ccp-Datei vorgenommen habe?

Wenn ich das Richtig verstehe, ist das "Build-Project" wie als würde man 
den aktuellen Stand abspeichern, wobei eine bin-Datei im Debug Ordner 
erzeugt wird.

Bis hierhin wurde noch nichts auf die MCU geladen, richtig?
Dazu kommt dann das ST-Link ins Spiel?


Schritt 2 - ST- Link
Die zuvor erzeugte bin-Datei kann ich nun auf die MCU Spielen.
Und dazu brauche ich (warum auch immer) das STM32F407G Entwicklerboard.

Das Aufspielen mache ich über Target>Program und suche mir die Bin aus.
Muss man zuvor die Option "Erase" nutzen?


Schritt 3 - Eclipse
Mit dem entsprechenden Eclipse Projekt kann man mit einem entsprechenden 
Code/Skript die MCU ansteuern und Messdaten speichern.
Auch hier kann ich das vorhanden Projekt importieren, wobei ich schon 2 
Fehlermeldungen bekomme "Error: Program "make" not found in PATH"
Liegt vielleicht daran weil ich gerade unter Windows bin und nicht Linux 
verwende?

Angenommen ich konnte ein Projekt ohne Fehler importieren. Wenn ich im 
Anschluss "Build Project" auswähle, was wird dann gemacht? Muss ich das 
auch über den ST-Link auf das Board spielen?

**Noch Wichtiger***
Die Messung wurde unter Linux mit dem Terminal im Ordner /debug mit 
folgenden Befehl gestartet:

sudo ./Hand01 /dev/ttyACM0 1000

Doch wie mache ich das über Windows? So eine Kommandozeile habe ich ja 
nicht.


Das war jetzt viel Text. ich hoffe der ein oder andere kann mir da ein 
bisschen Verständnis vermitteln.

Viele Grüße
Julius

von Max D. (max_d)


Lesenswert?

System-Workbench IST Eclipse mit ein paar Add-Ons und Anpassungen.
Ich würde mir an deiner Stelle (wenn du "darfst") STM32Cube von ST 
laden. Darin kannst du bequem deine Pins und clocks konfigurieren und 
als SW Projekt exportieren.
Das kannst du dann in in System-Workbench laden und deinen Code 
schreiben.
Wenn du aber wirklich 0 Ahnung hast, dann sei darauf vorbereitet, dass 
das ganze einige Zeit dauert bis du von der blinkenden LED zu deinem 
fertigen Projekt gekommen bist.

von Felix U. (ubfx)


Lesenswert?

Julius H. schrieb:
> Was bedeutet es, wenn ich nach dem Import das Projekt baue, also "Build
> Project"
Der Code im Projekt wird kompiliert und gelinkt. Es kommt eine 
Binärdatei raus, die der Mikrocontroller ausführen kann, sobald du sie 
geflasht hast.

> Bis hierhin wurde noch nichts auf die MCU geladen, richtig?
> Dazu kommt dann das ST-Link ins Spiel?

ja

> *Schritt 2 - ST- Link*
> Die zuvor erzeugte bin-Datei kann ich nun auf die MCU Spielen.
> Und dazu brauche ich (warum auch immer) das STM32F407G Entwicklerboard.

Dafür brauchst du nicht das Entwicklungsboard, aber irgendwas wo ein 
passender Mikrocontroller drauf ist.

> Das Aufspielen mache ich über Target>Program und suche mir die Bin aus.
> Muss man zuvor die Option "Erase" nutzen?

Das kannst du machen wie der Pfarrer Astmann.

>
> *Schritt 3 - Eclipse*
> Mit dem entsprechenden Eclipse Projekt kann man mit einem entsprechenden
> Code/Skript die MCU ansteuern und Messdaten speichern.
> Auch hier kann ich das vorhanden Projekt importieren, wobei ich schon 2
> Fehlermeldungen bekomme "Error: Program "make" not found in PATH"
> Liegt vielleicht daran weil ich gerade unter Windows bin und nicht Linux
> verwende?

Ich vermute mal, du hast keinen C/C++ Compiler installiert. Da die 
Leute, die den Kram geschrieben haben scheinbar GNU Lords sind, empfehle 
ich dir MinGW, damit kriegst du Ports von den Linux Compilern. Wenn du 
das installiert hast müsste es in Eclipse irgendwo eine Einstellung 
geben, dass das verwendet wird.
http://www.mingw.org/


> Angenommen ich konnte ein Projekt ohne Fehler importieren. Wenn ich im
> Anschluss "Build Project" auswähle, was wird dann gemacht? Muss ich das
> auch über den ST-Link auf das Board spielen?

Das wird ein PC-Programm kompilieren und linken, das du dann auf deinem 
Rechner ausführen kannst und was dann mit dem Mikrocontroller 
kommuniziert.


> sudo ./Hand01 /dev/ttyACM0 1000
>
> Doch wie mache ich das über Windows? So eine Kommandozeile habe ich ja
> nicht.

So eine Kommandozeile hast du auch, das Problem wird eher sein, dass du 
deine serielle Schnittstelle nicht über einen Unix-Path ansprechen 
können wirst. Da wirst du den Code entsprechend für Windows anpassen 
müssen. Wenn du nicht programmieren kannst wird es vermutlich einfacher 
sein, du setzt dir eine Linux (Ubuntu) VM auf, und schleifst das USB 
Device da rein.

: Bearbeitet durch User
von StinkyWinky (Gast)


Lesenswert?

Das STM32F407G-DISC1 Discovery Entwicklungsboard übernimmt bei deinem 
Aufbau die Funktion des Flashers und Debuggers. Er empfängt vom PC quasi 
die fertige Bin-Datei und schreibt sie in das Flash des Customized 
Mikrocontrollerboards. Zudem kannst du über diesen Pfad dein Programm 
debuggen.

Anstelle des STM32F407G-DISC1 könnte man auch einen allgemeinen Adapter 
wie z.B. J-Link benützen.

von Amateur (Gast)


Lesenswert?

>Was bedeutet es, wenn ich nach dem Import das Projekt baue, also "Build
>Project"

Ein Projekt besteht meist aus vielen Einzelteilen. Im Rahmen von 
Software sind das meist Textdateien (d. h. von Menschen lesbare Dateien) 
mit Deinem Programm und z. T. fertigen Bibliotheken (konkreter Inhalt: 
oft unbekannt).
Während des Build-Prozesses werden diese in interne Formate "übersetzt" 
und am Ende zusammengefügt.
Am Ende sollte "eine" Datei, jetzt natürlich nicht mehr lesbare Datei, 
herauskommen, die ihrerseits aber der Zielprozessor versteht. Diese wird 
dann in letzteren geladen.
Während des Build-Prozessses wird meist der Status, in Form von einem 
Haufen Textzeilen ausgegeben. Hier kann man sehen, was gerade passiert, 
und ob irgendwelche Fehler aufgetreten sind. Bei größeren Projekten, vor 
allem am Anfang, ein toller Job für Sysiphos. Nur in Deinem Falle 
notwendig, wegen der eingestreuten Fehlermeldungen.

von Julius H. (chacky33)


Lesenswert?

Wow, ich danke euch Vieren.

Glaube so langsam blicke ich in dieser Thematik oberflächlich durch, 
bzw. habe jetzt verstanden, wozu jedes einzelne Programm und jeder 
Schritt notwendig ist. Das hilft schonmal sehr.

Das Anpassen der Dateien im Projekt werde ich versuchen mit meinen 
rudimentären Programmierkenntnissen und dem Internet zu bewerkstelligen.

@ubfx - Felix

Felix U. schrieb:
> So eine Kommandozeile hast du auch, das Problem wird eher sein, dass du
> deine serielle Schnittstelle nicht über einen Unix-Path ansprechen
> können wirst. Da wirst du den Code entsprechend für Windows anpassen
> müssen. Wenn du nicht programmieren kannst wird es vermutlich einfacher
> sein, du setzt dir eine Linux (Ubuntu) VM auf, und schleifst das USB
> Device da rein.

Das hört sich ja nicht so gut an. Dachte es gäbe da auch einfach ein 
Plugin für Windows, sodass ich das Programm starten kann.
Bleibt mir wohl nix anderes übrig um ein Linux System aufzusetzen. 
Schade.

Grüße

von Felix U. (ubfx)


Lesenswert?

Julius H. schrieb:
> Das hört sich ja nicht so gut an. Dachte es gäbe da auch einfach ein
> Plugin für Windows, sodass ich das Programm starten kann.
Ich kann nicht ausschließen, dass das möglich ist. Über Cygwin 
vielleicht.

Außerdem behandeln im Prinzip sowohl Linux als auch Windows die serielle 
Schnittstelle wie eine Datei, aus der gelesen und in die geschrieben 
wird. Wenn derjenige das also geschickt programmiert hat, musst du 
eventuell nur drei Funktionen anpassen, nämlich das Öffnen, Lesen und 
Schreiben der Schnittstelle.

: 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.