Wie programmiere ich ein STM32 Microcontroller?
Guten Abend miteinander,
Ich bin leider kompletter Anfänger auf in dem Bereich embedded System, sollte aber im dualen Studium (gerade begonnen, Praxisphase) einen STM32F4-Discovery (dieses Modell: http://blog.tkjelectronics.dk/wp-content/uploads/2012/04/STM32F4-DISCOVERY_Board.jpg ) mit einem Arm Cortex M4 Prozessor einrichten und etwas darauf rumprogrammieren. Jedoch scheitert es dabei leider schon etwas beim "zum laufen bekommen".
Ich bin kein absoluter Anfänger im Bereich der Informatik, aber in diesem Gebiet schon. Momentan sieht es im Betrieb im Bezug auch fachliche Ansprechpersonen etwas schlecht aus, da coronabedingt wenige da sind und etwas Stress herrscht. Grundsätzlich aktuell nicht tragisch, da ich mir selbst viel beibringen kann, aber bei der Aufgabe habe ich gerade etwas Probleme.
Ich weiß schon nicht welche IDE das unterstützt und halbwegs gut ist, zudem kann ich nicht einfach rumprobieren, da ich jedesmal Lizenzquatsch klären und dann in eine andere Abteilung zu einem Adminstator laufen muss um etwas zu installieren. Visual Studio Code mit PlatformIO scheint es zu supporten, aber, obwohl ich den STLink Treiber installiert habe, wird das Gerät von PlatformIO nicht erkannt (vom PC schon).
Kann mir jemand Ratschläge geben, wie ich das einrichte? Also welche IDE muss ich nehmen und was sind die wichtigen Schritte im Prozess?
1 Antwort
Hast du mal auf st.com geschaut?
Ich hab bisher etwas mit einem Nucleo STM32F4 Board rumgespielt mit Rust, da habe ich einfach gdb und openocd genutzt.
Auf Windows gibts aber glaube ich auch ein offizielles Programm zum flashen, eventuell sogar eine ofizielle IDE. Ich hab einfach vim genutzt.
Bei Rust würde sich auch "The Embedded Rust Book" emfehlen, andere Sprachen habe ich selber noch nicht mit einem STM32 ausprobiert.
openocd interagiert mit dem hardware debugger / programmer und macht quasi einen lokalen Server auf mit dem man dann über GDB, ja genau das ist einfach ein debugger, interagieren kann/als Ziel nuzten kann.
Dieses STM32Cube ist scheinbar ein Software Paket in dem auch eine IDE und Programmer zu scheinen seint. Ich denke das ist auch diese offizielle Software die ich meinte, das es da was gibt weiß ich sicher wusste nur den Namen nicht. Ich schätze dieses Package ist die Unterstüzung für die STM32F4 Reihe und der Rest scheint Beispiele und Library/Firmware Code zu sein? Ich weiß es auch nicht genau, aber erscheint schlüssig.
Ja, ich hab es dann doch noch hinbekommen (bin auf Win). Einmal mit Stm32Cube IDE, da war es praktisch plug n play. Dann habe ich es noch mit Makefile, gcc und OpenOcd (+ natürlich beliebigem Editor) zum laufen bekommen, genauso wie mit diversen VS Code extensions, also eine hieß Stm32 irgendwas und die andere Arm Cortex Debugger (oder so ähnlich). Die Lösung die ich aktuell auch wirklich nutze ist jedoch die von mir eigentlich angestrebte Lösung mit VS Code und Platform IO.
Ja, auf st.com war ich schon ein paar mal und das habe ich auch jetzt als Tab offen. Da hab ich auch den STLink Treiber her, aber viel weiter hat es mir leider nicht geholfen, aber vrmtl liegt das auch daran, dass ich die Informationen nicht richtig verwerten kann.
Weißt du zufällig, was unter Tools&Software > MCU & MPU Embedded Software ( https://www.st.com/en/evaluation-tools/stm32f4discovery.html#tools-software ) diese Dateien/Programme für einen Zweck erfüllen?
Gdb und openocd schau ich mir mal genauer an. Gdb ist einfach ein online debugger und mit openocd ziehst du es auf die MCU? Versteh ich das richtig (habs nur ganz kurz angeschaut?
Bei dem Buch schau ich auch mal rein, auch wenn ich mit Rust nichts zu tun hab, schaden kann es sicher nicht.
Vielen Dank für deine Antwort!