Wären ARM Mikrocontroller schon vor Jahren so populär und billig wie heute gewesen,
dann wäre ich wohl direkt vom 68HC11 auf ARM umgestiegen
und hätte den AVR übersprungen.
Obwohl ich - vom 68000er her kommend - auch den 68HC11 schon einen ziemlichen Krampf fand...
Unter Artix Linux installiert man sich einfach die vier Pakete
als dem "extra" Repo von Arch Linux und hat dann eine Toolchain, die stets auf dem neuesten Stand ist. Zum flashen und debuggen braucht man noch entweder stlink oder openocdUnd zu guter Letzt braucht man noch die CMSIS Header für den jeweiligen Controller. Diese findet man auf der Webseite von ST, zum Beispiel für die STM32F0 Familie heisst die Datei STM32CubeF0 (da ist auch die HAL library enthalten, wer die benutzen möchte...)
Inzwischen hat STM die Dateien auch auf GitHub, z.B. für die STM32G0 Familie unter https://github.com/STMicroelectronics/STM32CubeG0/. Dort dann das Unterverzeichnis Drivers/CMSIS wählen.
Für Artix Linux habe ich mir hier PKGBUILDs für Pakete der CMSIS Header gebaut.
Damit auch nicht-root user Zugriff auf den stlink erhalten, legt man eine udev Regel an:
Ich habe meinen beiden STLink-v2 Clones mit der Blackmagic Firmware geflasht. Damit kann man mit dem gdb diese direkt ansteuern und der Zwischenschritt über st-util oder openocd entfällt :-)
Leider müssen die STLinks nach jedem Einstecken mittels stlink-tool auf den Blackmagic "umgeschaltet" werden. Gemäss Anleitung scheint das halt so zu sein (ist also erwartet). Am besten man macht das mit einer udev-regel.
Mehr Infos hier blackmagic
| Pin | Signal | Bemerkung |
|---|---|---|
| 1 | Vdd Target | Target Board könnte damit ST-Link speisen - nicht benötigt |
| 2 | SW_CLK | SWD CLK, muss bei F030 an PA14 |
| 3 | GND | |
| 4 | SW_DATA | SDW DATA, muss bei F030 an PA13 |
| 5 | nRST | RESET für Target MCU |
| 6 | SWO | Serial Wire Output vom Target, unterstützen aber nicht alle |