Aufsetzen ESP-IDF Toolchain mit Sublime Text Build System

Dieser Artikel ist eine Anleitung fürs Aufsetzen der Toolchain ESP-IDF der Firma Espressif für das Windows Betriebssystem. Die Toolchain dient zum Programmieren des ESP32-WROOM-32. Die Toolchain für den ESP32-WROOM-32 wird außerdem in den Texteditor Sublime Text 3 integriert, so dass aus dem Texteditor und der Toolchain eine vollständige IDE wird.  Weiterhin ist dieser Artikel der Beginn einer Artikelserie zum ESP32-WROOM-32. Der ESP32-WROOM-32 ist ein System on Chip (kurz SoC) der Firma Espressif, welcher Standardperipherien wie z.B. UART, SPI und I2C hat. Weiterhin hat dieser SoC komplexere Schnittstellen wie z.B. Wifi und Bluetooth 4.2 als Schnittstellen. Für eine detaillierte Auflistung aller Peripherien und Schnittstellen schaue ins Datenblatt (https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf).

Aufsetzen der Toolchain

  1. Als erster Schritt wird die Toolchain heruntergeladen. Die aktuellste Version ist auf der Seite  https://docs.espressif.com/projects/esp-idf/en/latest/get-started/windows-setup.html zu finden. Dort kann die Toolchain unter der Überschrift „Toolchain Setup“ heruntergeladen werden. Es wird ein Zip-Archiv heruntergeladen.
  2. Nach dem vollständigen Herunterladen des Zip-Archivs wird dieses entpackt. Es wird in dieser Anleitung davon ausgegangen, dass das Archiv unter dem Pfad „C:\“ entpackt wird. Bei Änderung dieses Pfades ist dies evtl. zu berücksichtigen.
  3. Es wird die Datei „msysgw32.exe“ aus dem entpackten Archiv gestartet. In diesem Beispiel wäre die Datei unter dem folgenden Pfad zu finden „C:\msys32\msysgw32.exe“
  4. Es wird ein Fenster geöffnet in dem eine Kommandozeile zu sehen ist. Die Befehle sorgen dafür, dass zunächst in der Kommandozeile 2 Ordnerhierarchien hoch gewechselt. Weiterhin wird ein neuer Ordner mit dem Namen „esp“ erstellt. Zum Schluss wird in den neu erstellten Ordner gewechselt. In der Kommandozeile werden folgende Befehle eingegeben
cd ../..
mkdir esp
cd esp
  1. Nun wird die aktuelle Version der Toolchain ESP-IDF heruntergeladen. Diese befindet sich in einem Git-Repository und wird auf Github bereitgestellt. Es wird der Folgende Befehl in die Kommandozeile eingegeben

git clone – – recursive https://github.com/espressif/esp-idf.git

  1. Nachdem die Toolchain heruntergeladen wurde, wird in diesem Schritt die Umgebungsvariable „IDF_PATH“ erzeugt und gesetzt. Diese Variable gibt absoluten Pfad zur Toolchain an. Die Bekanntmachung erfolgt in einem Shell-Skript, welches beim Starten der Kommandozeile aufgerufen wird. Dafür wird zunächst die geöffnete Kommandozeile geschlossen. Anschließend wird das Skript erstellt. Hierfür wird eine Datei mit dem Namen „export_idf_path.sh“ in dem Pfad „C:\msys32\etc\profile.d\“ erzeugt. In der Erstellten Datei wird der folgende Befehl eintragen

export IDF_PATH=“C:/msys32/esp/esp-idf“

Als Überprüfung, ob alles funktioniert hat mit der Bekanntmachung des Pfades zur Toolchain wird die Komanndozeile geöffnet. Zum Öffnen wird die Datei C:\msys32\msysgw32.exe startet. In der Kommandozeile wird der Befehl „$IDF_PATH“ eingegeben. Es müsste nun der eingetragene Pfad zu sehen sein.

Kontrolle, ob der $IDF_PATH korrekt eingestellt ist
  1. Als nächster Schritt werden alle benötigten Python Packages installiert. Dieser Befehl sorgt dafür, dass der Package Manager von Python die Datei „requirements.txt“ einliest und alle Packages herunter lädt und installiert. Nach dem dies erfolgreich abgeschlossen ist, ist die Toolchain bereit benutzt zu werden. Dazu wird die geöffnete Kommandozeile folgender Befehl eingetragen

python -m pip install –user -r $IDF_PATH/requirements.txt

Integration der Toolchain in Sublime Text 3

In diesem Abschnitt wird die Integration der ESP-IDF Toolchain in den Texteditor Sublime Text 3 beschrieben. Sublime Text 3 ist ein schlanker Texteditor, welcher die Möglichkeit hat, eigene Buildsysteme zu integrieren. Er hat die üblichen Eigenschaften wie z.B. Syntaxhighlighting, Projektverwaltung, Build Systeme, optische Anpassung. Es können auch verschiedenste Plugins installiert werden, um die Funktionalität zu erweitern. Ich verwende die Version Sublime Text 3.1.1, Build 3176. Für die Integration der ESP-IDF Toolchain wird zunächst ein neues Build System erstellt. Hierfür wird unter dem Menüpunkt „Tools -> Build System“ der Punkt „New Build System“ angeklickt.

Screenshot Sublime Text 3 wie ein neues Build System erstellt wird

Es öffnet sich eine neuer Tab mit einem Template. Das Template wird mit folgendem Code ersetzt:

Code für das Build System der ESP-IDF Toolchain
Die detaillierte Syntax Beschreibung für das Build System von Sublime Text 3 ist unter http://docs.sublimetext.info/en/latest/file_processing/build_systems.html#file-format und unter https://www.sublimetext.com/docs/3/build_system.html zu finden. Im folgenden erfolgt nur eine kurze Erläuterung der verwendeten Befehle.
  • „cmd“ – Dies ist der Befehl welcher auf der Kommandozeile von Windows ausgeführt wird. Die Argumente für ein Batch-Skript werden mit Kommas abgetrennt und jedes Argument wird in Hochkommata “ umgeben.  In Zeile 2 ist zu sehen, dass das Batch-Skript „msys2_shell.cmd“ aufgerufen wird. Dabei werden die Parameter „-mingw32“, „-where“ und „$folder“ übergeben. $folder ist der Pfad zum Obersten Ordner in der Sidebar.
    • -mingw32 – Dieser Parameter dient zum Starten der Mingw32 Bit Umgebung. Dies ist Äquivalent mit dem Starten der msysgw32.exe.
    • -where $folder – Dieser Parameter gibt an, dass der Pfad in welchem sich die Kommandozeile befindet, d.h. Ordnerpfad ändert. Der Ordnerpfad wird über die Variable $folder angegeben. Diese Variable von Sublime Text zeigt auf den Ordner der Datei, welche gerade den Fokus besitzt, also welcher Tab gerade aktiv markiert ist.
  • „file_regex“ – Dieser Eintrag wird für die Regular Expressions verwendet um Dateien für die Verarbeitung zu finden
  • „selector“ – Basisname für die Programmiersprache, die verwendet werden soll.
  • „variants“ – Hier werden Varianten aufgezählt, welche von der obigen Beschreibung abgeleitet sind.
    • „name“ – Der Angezeigt Name der Variante
    • „cmd“ – Das Veränderte Kommando. Wie in der Abbildung zu sehen ist, werden hier zusätzliche Befehle benutzt. Dadurch entstehen Varianten um z.B. das Projekt zu konfigurieren, das Projekt zu kompilieren und zu flashen

Weitere Hinweise

Nachdem nun die sowohl die Toolchain ESP-IDF als auch die Integration in Sublime Text abgeschlossen ist, gebe ich noch 2 Hinweise. Ein Hinweis dreht sich um die COM-Schnittstelle unter Windows als auch einen Hinweis bzgl. der Frequenz.

COM-Schnittstelle

Über die COM-Schnittstelle wird der ESP32-WROOM-32 geflasht. Diese COM Schnittstelle muss in der Konfiguration des Projekts eingetragen werden. Es ist dabei darauf auf den Names des COM-Ports zu achten. Der Name des COM-Ports ist im Geräte Manager zu finden. Dort wird unter dem Punkt „Anschlüsse (COM & LPT) die verwendete COM-Schnittstelle angezeigt, z.B. COM5. Dieser Name muss in der Projektkonfiguration unter dem Punkt „Serial flasher config –> Default serial port“ eingetragen werden.

Konfigurationsscreenshot für das ESP32-WROOM-32 Modul

ESP32-Taktfrequenz

Der ESP32 Referenztaktfrequenz muss bei dem ESP32-WROOM-32 auf 40MHz eingestellt werden. Diese Einstellung erfolgt unter dem Punkt „Component config –> Esp32-specific –> Main XTAL frequency“.

Schreibe einen Kommentar

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