STM8 Entwicklung mit Eclipse unter macOS

STM8 Entwicklung mit Eclipse unter macOS

Für den STM8 Mikrocontroller von STMicroelectronics gibt es mehrere IDE’s zur Auswahl. Vom Hersteller selbst gibt es die STVD-STM8. Diese ist jedoch schon reichlich veraltet und läuft nur unter Windows. Die Empfehlung des Herstellers lautet deshalb das IAR Studio zu nutzen. Leider ist dies aber als kommerzielle Lizenz sehr teuer, wenig komfortabel und ebenfalls nur für Windows zu haben. Die gute Nachricht ist, es gibt eine kostenfreie Entwicklungsumgebung für den STM8 welche sogar unter Mac OS X läuft: Eclipse.


Entwicklungsumgebung einrichten

Um Firmware für den STM8 Microcontroller zu entwickeln muss zuerst die Hardware der Entwicklungsumgebung eingerichtet werden. Der Microcontroller benötigt ein Entwicklungsboard und muss mit dem Mac verbunden werden.

Benötigte Hardware

STM8L-DISCOVERY Board
  • USB zu Serial Adapterkabel
    • z.B. von Prolific der PL2303 USB-Serial Adapter 
    • z.B. von Olimex der USB-Serial-Cable-F Adapter
Prolific USB-Serial Adapter mit Beschaltung

STM8 Entwicklerboard mit Mac verbinden

Anschluss des STM8L-DISCOVERY Boards
  1. STM8L-DISCOVERY Board über USB mit Strom versorgen
    • Stromversorgung erfolgt über Micro-USB Anschluss des Boards (auf oberem Bild rechter Anschluss)
    • → beide roten LED’s sollten leuchten
  2. USB-Serial-Adapter von Prolific über die seriellen Anschlüsse mit dem STM8L-DISCOVERY Board verbinden
    • schwarz (GND) an GND
    • weiß(RxD) an PC3
    • grün(TxD) an PC2
    • siehe Bild
  3. Alternativ USB-Serial-Adapter von Olimex über die seriellen Anschlüsse mit dem STM8L-DISCOVERY Board verbinden
    • blau (GND) an GND
    • grün (RxD) an PC3
    • rot (TxD) an PC2
  4. USB-Serial-Adapter mit Mac verbinden
  5. Verbindung über Terminal in Eclipse aufbauen 
    • siehe weiter unten
Fertig!

Einrichtung von Eclipse

Eclipse kann so eingerichtet werden, dass mit C++ Code für den STM8 geschrieben, eingespielt und debuggt werden kann. Dabei gibt es einige entscheidende Schritte zu beachten, damit die Softwareentwicklung möglich ist.

1. HomeBrew auf Mac installieren

  • HomeBrew wird genutzt um benötigte Programme über die Kommandozeile zu installieren
  • muss nur installiert werden, wenn noch nicht installiert
  • Ggf. Sind Probleme aufzulösen, die ‚brew doctor‘ aufzeigt.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew doctor

2. Programmer ST-Link/V2 einrichten

  • ST-LINK/V2 ist ein Programmer und Debugger für STM8 und STM32
  • kann per HomeBrew eingerichtet werden
brew install autoconf automake pkg-config libusb libusb-compat stlink
st-util -h
Stop!
st-util erkennt leider nicht das DISCOVERY Board bzw. steuert es nicht korrekt an. Außerdem wurde recherchiert, dass das Tool nur den SWD-Modus für STM32-MCU’s unterstützt. Die STM8-MCU’s benötigen jedoch den SWIM-Modus. Dieser Modus wird aber lediglich von dem schlecht gepflegten Tool stm8-flash unterstütz. Dieses bietet wiederum keine Möglichkeit zum Debuggen.

Fazit: Unter Linux oder Mac OS X ist kein Debuggen des STM8 möglich.

3. SDCC Cross-Compiler installieren

brew install sdcc
sdcc -v

4. STM8Flash installieren

git clone https://github.com/vdudouyt/stm8flash.git
cd stm8flash
make
make install
cd ..
rm -R stm8flash
stm8flash

5. Test ob das STM8L-DISCOVERY Board ansprechbar ist

stm8flash -c stlinkv2 -p stm8l152?6 -r test.ihx

6. Eclipse installieren

  1. Prüfung, ob die Java Runtime auf dem Rechner aktuell ist (java -version), und Update der Java Runtime. Zum Zeitpunkt des Schreibens ist Java 8 Update 181 aktuell.
  2. Eclipse herunterladen. Aktuell ist Photon V4.8.0.
  3. Bei der Installation die C/C++-Edition wählen.
  4. Eclipse starten und aktualisieren: Menü HelpCheck for Updates

7. SDCC-Plugin installieren

  1. Mac OS X Version des CDCC Plugin von Sourceforge.net herunterladen und entpacken
  2. Im Finder das Installationsverzeichnis von Eclipse öffnen: <Benutzerordner>/eclipse/cpp-photon/
  3. im Kontextmenü von eclipse.app (Rechtsklick) → Paketinhalt zeigen
  4. in Unterverzeichnis Contents/Eclipse/dropins navigieren
  5. das entpackte Verzeichnis des SDCC Plugins (net.sourceforge.eclipsesdcc-1.0.0-macosx.carbon.ppc) ins Verzeichnis dropins verschieben
  6. ggf. Eclipse neu starten
  7. Prüfen ob das Plugin installiert wurde
    • Eclipse → About Eclipse → Installation Details Installed Software → Liste runter scrollen und nach „SDCC Compiler Plug-in“ suchen

8. STM8 mit Mac verbinden

  • das STM8L-DISCOVERY Board über USB mit Strom versorgen und über den USB Adapter mit dem Mac verbinden
  • siehe oben für genauere Details

9. Terminal einrichten

  • Je nach dem, welcher USB-Serial-Adapter verwendet werden soll, ist der passende Treiber zu installieren. Für den Prolific Adapter sollte der Treiber Prolific-Serial/PL2303_MacOSX_1_6_1 verwendet werden.
    Die Installation erfordert, dass man in der Systemsteuerung die Installation an der passenden Stelle erlaubt und danach den Rechner neu startet.
  • In Eclipse ist der Serielle Zugriff auf den Adapter direkt über das integrierte Terminal möglich: Window → Show View → Terminal
  • Im Terminal die Verbindung öffnen, mit dem Icon für Launch Terminal
  • Terminal type → Serial Terminal
  • Serial Port → /dev/cu.usbserial
    • Das STM8L-DISCOVERY Board muss am Mac per USB-Adapter angesteckt sein und laufen! Nur dann ist dieses serielle Gerät auswählbar.
  • Baud rate → 38400
Terminal Einstellungen auf einen Blick

10. Projekt in Eclipse laden

  • in Eclipse ein STM8 Beispiel als Projekt einrichten oder laden
STM8 Firmware in Eclipse

11. Funktionstest

  • Terminal in Eclipse öffnen
  • Run → Run… oder Button mit Run-Icon
    • der Fehler Program "sdcc" not found in PATH kann dauerhaft ignoriert werden
  • im Terminal erscheint die Ausgabe des Programms welches auf dem STM8 ausgeführt wurde
    • die unleserlichen Zeichen davor können ignoriert werden
    • im Terminal sollte nun die Beispielausgabe  alive :)erscheinen  
Funktioniert!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.