Im Folgenden beschreiben wir die nötigen Schritte zum Einrichten einer Entwicklungsumgebung mit Fokus auf Linux. Dazu gehört das Einrichten des STLink-Adapters sowie dessen Konfiguration für Udev. Dazu legen Sie mit administrativen Rechten die Datei /etc/udev/rules.d/99-stlink.rules mit den entsprechenden Udev-Regeln an (Listing 1) und weisen anschließend das System an, diese einzulesen (Listing 2).
Listing 1
ATTRSidVendor=="0483", ATTRSidProduct=="3744", MODE="0666"
Listing 2
$ sudo udevadm control --reload-rules $ sudo udevadm trigger
OpenOCD nutzen
Nun stecken Sie den STLink-Adapter an einen USB-Port des Rechners an. Da das Discovery-Board einen STLink-Adapter mit einem Controllermodul vereint, lässt es sich einfach über die USB-Buchse erreichen. Zunächst prüfen Sie, ob das System den Adapter überhaupt erkennt. Unter Linux gelingt das mit den Kommandos lsusb oder dmesg, unter Windows erkennen Sie das Vorhandensein des Adapters im Gerätemanager.
Anschließend kontrollieren Sie die Anbindung unter OpenOCD. Der Open On-Chip Debugger benötigt zur korrekten Ansteuerung ein Konfigurationsskript, das bei systemweiter Installation unter Linux üblicherweise im Verzeichnis /usr/share/openocd/scripts/board liegt. Für das Discovery-Board findet sich hier das Skript stm32vldiscovery.cfg. Zum Test des Discovery-Boards verwenden Sie dann zum Beispiel die Kommandos aus Listing 3.
Listing 3
$ cd /usr/share/openocd/scripts/board $ openocd -f stm32vldiscovery.cfg
Für die STM-Module STM32F103C8T6 beziehungsweise STM32F030F4P6 müssen Sie entsprechende Konfigurationsdateien anlegen (Listing 4 und**5). Im einfachsten Fall legen Sie diese im vom System angelegten board-Verzeichnis ab. Fehlen Ihnen dazu die administrativen Rechte, müssen Sie beim Aufruf von OpenOCD mit der Option -f den vollständigen Pfad zur jeweiligen Datei angeben.
Listing 4
source [find interface/stlink-v2.cfg] transport select hla_swd set WORKAREASIZE 0x2000 source [find target/stm32f1x.cfg] reset_config none
Listing 5
source [find interface/stlink-v2.cfg] set WORKAREASIZE 0x1000 source [find target/stm32f0x_stlink.cfg] reset_config none
Abschließend verbinden Sie noch die Anschlüsse GND, +3.3**V, SWDIO (Daten) und SWCLK mit den gleichnamigen Pins am STM32F103C8T6-Modul (Abbildung 1).
CubeMX einrichten
Die Installation von CubeMX gestaltet sich unter Linux sehr einfach. Auf der Projektseite [4] erhalten Sie nach einer Registrierung unter GET SOFTWARE ein ZIP-Archiv, das Sie entpacken. Anschließend rufen Sie den Installationsassistenten SetupSTM32CubeMX-Version.linux auf.
Da CubeMX nur Projekte für kommerzielle Entwicklungsumgebungen erstellt, benötigen Sie noch einen Konverter für Eclipse. Der findet sich im Github von Baoshi Zhu in Form eines plattformunabhängigen Python-Programms [5]. Sie laden es mit dem Befehl aus Listing 6 auf den Rechner, wozu Sie eventuell noch den Git-Client nachinstallieren müssen.
Listing 6
$ git clone https://github.com/baoshi/CubeMX2Makefile
Die letzte benötigte Komponente, das GNU-ARM-Plugin für Eclipse, erhalten Sie über die Aktualisierungsseite des Projekts [6]. Sie spielen es über Help | Install | New Software | Add in die Entwicklungsumgebung ein. Es empfiehlt sich, das Online-Tutorial zu diesem Plugin durchzuarbeiten.






