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
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.
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
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.
>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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.