Wenn man ein Microcontrollersytem programmieren will benötigt man einige Werkzeuge.
Die grundsätzlichen Werkzeuge sind:

1.:Eine Auswahlhilfe, den passenden Mikrocontroller für das aktuelle Projekt zu finden.
2.:Ein Werkzeug, um grundsätzliche Einstellungen für den Mikrocontroller vorzunehmen.
3.:Einen Editor, um den eigenen Sourcecode bequem eingeben zu können.
4.:Eine Kompilierumgebung, um den Sourcecode in ausführbare Programme verwandeln zu können.
5.:Ein Programmiertool um das kompilierte Programm in den Mikrocontroller zu laden.
6.:Ein Debugger, um das laufende Programm analysieren zu können.
7.:Eine Schnittstelle, um das Mikrocontrollersystem mit z.B. einem PC zu verbinden.

Theoretisch kann man jeden einzelnen Punkt mit einfachsten Mitteln "von Hand" erledigen, Dank Open Source und reichhaltiger Dokumentation im Internet. Da aber mit der Weiterentwicklung der Prozessoren die Komplexität steigt werden einst einfache Aufgaben immer komplexer. Um nicht immer wieder das Rad neu zu erfinden und Routineaufgaben überspringen zu können habe ich einige Lösungsansätze durchprobiert. Das Ergebnis ist eine für mich passende Arbeitsumgebung, die meine gewünschen Arbeitsabläufe unterstützt.

1 : Es soll ein ARM Prozessor sein. Die STM32 haben mir wegen dem Funktionsumfang am Besten gefallen.
2 : Besonders CubeMX für war ein gewichtiger Grund, STM32 uCs zu wählen, um Routineaufgaben an den PC zu deligieren.
3 : CubeMX macht es gleichgültig, ob ich IAR, Keil oder SW4STM32 verwende. Der Preis hat mich zu SW4STM gebracht, da ich nur STmicro CPUs verwenden will. Eclipse ist mir auch von anderen Systemen bekannt und als gut benutzbar in Erinnerung geblieben. Ich kann meinen Arbeitsablauf damit abbilden. Als Bonus kann man SW4STM32 sowohl mit Linux als auch unter Windows verwenden.
4 : SW4STM32 benutzt den GCC ARM Compiler ohne das ich mich damit im Detail auseinandersetzen muss. Wieder eine tägliche Routineaufgabe an den PC delegiert.
5 : SW4STM32 benutzt unter Windows so wie Linux OpenOCD, unter Windows kann man noch ST-Link Utility verwenden. Als Hardware kann ich den Segger J-Link oder den ST-Link verwenden. Beides gute Lösungen, der ST-Link ist jedoch auf allen Eval-Boards bereits integriert, so das meine J-Links nur für Lösungen abseits von STM32 zum Einsatz kommen.
6 : Die Debug Optionen von SW4STM32 sind umfangreich, allerdings verwende ich unter Windows lieber das STMStudio. Ein LogikAnalyzer und ein Oszilloskop sind bei hardwarenahen Projekten aber unverzichtbar.
7 : Für die ersten Schritte bei einem neuen Projekt ist die serielle Schnittstelle zum PC über den ST-Link ein zuverlässiges Mittel der Kommunikation. Komplexere Boards haben eine Benutzereingabe wie Joystick oder Tastenfeld mit einem TFT Display, so das die Verbindung zum PC unwichtiger wird.



Nun die nötigen Schritte, um alles auf einem PC unter Windows oder Linux einzurichten :
- Installation von Oracle Java Version 8 mit aktuellen Updates (32 oder 64 bit Version beachten !)
- Installation von CubeMX und allen Libraries (die werden in CubeMX geladen und installiert)
- Installation vom ST-Link Utility (nur Windows)
- Installation der ST-Link Treiber für Programmer und VCP(VirtualComPort) (nur Windows)
- Installation von STMStudio (nur Windows)
- Installation von SW4STM32 (32 oder 64 bit Version beachten !)

Zum Test am Besten ein minimales CubeMX Beispielprojekt erstellen, kompilieren und programmieren. Wenn das geklappt hat ist die neue Arbeitsumgebung erfolgreich eingerichtet.

Alle Komponenten können auch im Vorraus aus dem Netz geladen werden und anschliessend offline auf mehreren Rechnern installiert werden. Das erspart viel Downloadzeit, da alles zusammen mehrere Gigabyte werden können. Eine DVD sollte aber ausreichend sein zum Verteilen.