Erste Schritte mit dem Espressif ESP32 - DevKit C und dem ESP-WROVER-KIT - FreeRTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte mit dem Espressif ESP32 - DevKit C und dem ESP-WROVER-KIT

Wichtig

Dies ist eine archivierte Version des FreeRTOS-Benutzerhandbuchs zur Verwendung mit der FreeRTOS-Version 202012.00. Die neueste Version dieses Dokuments finden Sie im FreeRTOS-Benutzerhandbuch.

Folgen Sie diesem Tutorial, um mit dem DevKit Espressif-C zu beginnen, der mit den Modulen ESP32 ESP32 -WROOM-32, -SOLO-1 oder ESP-WROVER ausgestattet ist, und ESP32 dem. ESP-WROVER-KIT-VB Verwenden Sie die folgenden Links, um eines von unserem Partner im Partnergerätekatalog zu erwerben: AWS

Diese Versionen von Entwicklungsboards werden auf FreeRTOS unterstützt.

Weitere Informationen zu den neuesten Versionen dieser Boards finden Sie unter ESP32- DevKit C V4 oder ESP-WROVER-KITv4.1 auf der Espressif-Website.

Anmerkung

Derzeit unterstützt der FreeRTOS-Port für ESP32 -WROVER-KIT und ESP DevKit C die Funktion Symmetric Multiprocessing (SMP) nicht.

Übersicht

In diesem Tutorial führen Sie die folgenden Schritte aus:

  1. Verbinden Sie Ihr Board mit einem Host-Computer

  2. Installation von Software auf dem Host-Computer zum Entwickeln und Debuggen eingebetteter Anwendungen für Ihr Mikrocontroller-Board

  3. Cross-Compilierung einer FreeRTOS-Demo-Anwendung zu einem Binär-Image

  4. Laden Sie das Binär-Image der Anwendung auf Ihr Board und führen Sie die Anwendung dann aus

  5. Interaktion mit der Anwendung, die auf Ihrem Motherboard über eine serielle Verbindung ausgeführt wird, zu Überwachungs- und Debugging-Zwecken

Voraussetzungen

Bevor Sie mit FreeRTOS auf Ihrem Espressif-Board beginnen, müssen Sie Ihr Konto und Ihre AWS Berechtigungen einrichten.

Melde dich an für ein AWS-Konto

Wenn Sie noch keine haben AWS-Konto, führen Sie die folgenden Schritte aus, um eine zu erstellen.

Um sich für eine anzumelden AWS-Konto
  1. Öffnen Sie https://portal.aws.amazon.com/billing/die Anmeldung.

  2. Folgen Sie den Online-Anweisungen.

    Ein Teil des Anmeldevorgangs umfasst den Empfang eines Telefonanrufs oder einer Textnachricht und die Eingabe eines Bestätigungscodes auf der Telefontastatur.

    Wenn Sie sich für eine anmelden AWS-Konto, wird eine Root-Benutzer des AWS-Kontoserstellt. Der Root-Benutzer hat Zugriff auf alle AWS-Services und Ressourcen des Kontos. Als bewährte Sicherheitsmethode weisen Sie einem Administratorbenutzer Administratorzugriff zu und verwenden Sie nur den Root-Benutzer, um Aufgaben auszuführen, die Root-Benutzerzugriff erfordern.

AWS sendet Ihnen nach Abschluss des Anmeldevorgangs eine Bestätigungs-E-Mail. Du kannst jederzeit deine aktuellen Kontoaktivitäten einsehen und dein Konto verwalten, indem du zu https://aws.amazon.com/gehst und Mein Konto auswählst.

Erstellen eines Benutzers mit Administratorzugriff

Nachdem Sie sich für einen angemeldet haben AWS-Konto, sichern Sie Ihren Root-Benutzer des AWS-Kontos AWS IAM Identity Center, aktivieren und erstellen Sie einen Administratorbenutzer, sodass Sie den Root-Benutzer nicht für alltägliche Aufgaben verwenden.

Sichern Sie Ihre Root-Benutzer des AWS-Kontos
  1. Melden Sie sich AWS Management Consoleals Kontoinhaber an, indem Sie Root-Benutzer auswählen und Ihre AWS-Konto E-Mail-Adresse eingeben. Geben Sie auf der nächsten Seite Ihr Passwort ein.

    Hilfe bei der Anmeldung mit dem Root-Benutzer finden Sie unter Anmelden als Root-Benutzer im AWS-Anmeldung Benutzerhandbuch zu.

  2. Aktivieren Sie die Multi-Faktor-Authentifizierung (MFA) für den Root-Benutzer.

    Anweisungen finden Sie unter Aktivieren eines virtuellen MFA-Geräts für Ihren AWS-Konto Root-Benutzer (Konsole) im IAM-Benutzerhandbuch.

Erstellen eines Benutzers mit Administratorzugriff
  1. Aktivieren Sie das IAM Identity Center.

    Anweisungen finden Sie unter Aktivieren AWS IAM Identity Center im AWS IAM Identity Center Benutzerhandbuch.

  2. Gewähren Sie einem Administratorbenutzer im IAM Identity Center Benutzerzugriff.

    Ein Tutorial zur Verwendung von IAM-Identity-Center-Verzeichnis als Identitätsquelle finden Sie IAM-Identity-Center-Verzeichnis im Benutzerhandbuch unter Benutzerzugriff mit der Standardeinstellung konfigurieren.AWS IAM Identity Center

Anmelden als Administratorbenutzer
Weiteren Benutzern Zugriff zuweisen
  1. Erstellen Sie im IAM-Identity-Center einen Berechtigungssatz, der den bewährten Vorgehensweisen für die Anwendung von geringsten Berechtigungen folgt.

    Anweisungen hierzu finden Sie unter Berechtigungssatz erstellen im AWS IAM Identity Center Benutzerhandbuch.

  2. Weisen Sie Benutzer einer Gruppe zu und weisen Sie der Gruppe dann Single Sign-On-Zugriff zu.

    Eine genaue Anleitung finden Sie unter Gruppen hinzufügen im AWS IAM Identity Center Benutzerhandbuch.

Um Zugriff zu gewähren, fügen Sie Ihren Benutzern, Gruppen oder Rollen Berechtigungen hinzu:

Anmerkung

Die Version FreeRTOS 202012.00 unterstützt ESP-IDF v3.3. Wenn Sie eine neuere Version von FreeRTOS verwenden, folgen Sie den spezifischen Anweisungen für IDFv4 .2 unter. Fangen Sie mit der ESP-IDF v4.2 an

Beginnen Sie mit ESP-IDF v3.3

In diesem Abschnitt erfahren Sie, wie Sie ESP-IDF v3.3 auf Espressif-Hardware verwenden. Informationen zur Verwendung von ESP-IDF v4.2 finden Sie unter. Fangen Sie mit der ESP-IDF v4.2 an

Einrichten der Espressif-Hardware

Weitere Informationen zur Einrichtung der Hardware für das ESP32 DevKit C-Entwicklungsboard finden Sie im DevKitC V4 Getting ESP32 Started Guide.

Informationen zur Einrichtung der Hardware für das ESP-WROVER-KIT Entwicklungsboard finden Sie im ESP-WROVER-KITV4.1 Getting Started Guide.

Wichtig

Wenn Sie den Abschnitt „Erste Schritte“ der Espressif-Anleitungen erreicht haben, halten Sie an und führen Sie dann die folgenden Schritte aus.

Einrichten Ihrer Entwicklungsumgebung

Um mit deinem Board zu kommunizieren, musst du eine Toolchain herunterladen und installieren.

Einrichten der Toolchain

Anmerkung

ESP-IDF v3.3 unterstützt die neueste Version des Compilers nicht. ESP32 Wenn Sie die neueste Version des ESP32 Compilers bereits installiert haben, sollten Sie sie deinstallieren und die kompatible Version des Compilers verwenden, die in der Toolchaininstallation enthalten ist. Sehen Sie sich die Links in diesem Abschnitt an. Führen Sie den folgenden Befehl aus, um die Version Ihres Compilers zu überprüfen.

xtensa-esp32-elf-gcc --version

Um die Toolchain einzurichten, folgen Sie diesen Anweisungen für das Betriebssystem Ihres Host-Computers:

Wichtig

Wenn Sie unter „Nächste Schritte“ zu den Anweisungen „Get ESP-IDF“ gelangen, halten Sie an und kehren Sie dann zu den Anweisungen auf dieser Seite zurück.

Wenn Sie die Anweisungen „Get ESP-IDF“ unter „Nächste Schritte“ gerade oder bei einer früheren Gelegenheit befolgt haben, sollten Sie die IDF_PATH Umgebungsvariable aus Ihrem System löschen, bevor Sie fortfahren. Diese Umgebungsvariable wurde automatisch gesetzt, wenn Sie die Anweisungen „Get ESP-IDF“ befolgt haben.

Installieren CMake

Das CMake Build-System ist erforderlich, um die FreeRTOS-Demo zu erstellen und Anwendungen für dieses Gerät zu testen. FreeRTOS unterstützt Versionen 3.13 und höher.

Sie können die neueste Version von von CMake von.org herunterladen. CMake Die Quell- und die binäre Verteilung sind beide verfügbar.

Weitere Informationen zur Verwendung CMake mit FreeRTOS finden Sie unter. Verwendung CMake mit FreeRTOS

Herstellen einer seriellen Verbindung

Um eine serielle Verbindung zwischen Ihrem Host-Computer und dem ESP32 DevKit -C herzustellen, müssen Sie CP21 0x USB to UART Bridge VCP-Treiber installieren. Sie können diese Treiber von Silicon Labs herunterladen.

Um eine serielle Verbindung zwischen Ihrem Host-Computer und dem ESP32 -WROVER-KIT herzustellen, müssen Sie einige virtuelle FTDI-COM-Port-Treiber installieren. Sie können diese Treiber von FTDI herunterladen.

Weitere Informationen finden Sie unter Herstellen einer seriellen Verbindung mit. ESP32 Nachdem Sie eine serielle Verbindung hergestellt haben, notieren Sie sich den seriellen Port für Ihre Board-Verbindung. Sie benötigen ihn beim Erstellen der Demo-Anwendung.

Laden Sie FreeRTOS herunter und konfigurieren Sie es

Nachdem Sie Ihre Umgebung eingerichtet haben, können Sie FreeRTOS von herunterladen. Anweisungen finden Sie in der GitHubDatei README.md auf der Website. GitHub

Konfigurieren Sie die FreeRTOS-Demoanwendungen

  1. Wenn Sie macOS oder Linux verwenden, öffnen Sie eine Terminal-Eingabeaufforderung. Wenn Sie Windows verwenden, öffnen Sie diemingw32.exe. MinGW ist eine minimalistische Entwicklungsumgebung für native Microsoft Windows-Anwendungen.

  2. Um zu überprüfen, ob Python 2.7.10 oder höher installiert ist, führe folgenden Befehl aus

    python --version

    Die installierte Version wird angezeigt. Wenn Sie Python 2.7.10 oder höher nicht installiert haben, können Sie es von der Python-Website installieren.

  3. Sie benötigen das AWS Command Line Interface (AWS CLI), um Befehle auszuführen AWS IoT . Wenn Sie Windows verwenden, verwenden Sie das, easy_install awscli um das AWS CLI in der mingw32-Umgebung zu installieren.

    Wenn Sie macOS oder Linux verwenden, finden Sie weitere Informationen unter Installation von AWS CLI.

  4. Führen Sie den aus aws configure und konfigurieren Sie ihn AWS CLI mit Ihrer AWS Zugriffsschlüssel-ID, Ihrem geheimen Zugriffsschlüssel und Ihrer AWS Region. Weitere Informationen finden Sie unter Konfigurieren der AWS CLI.

  5. Verwenden Sie den folgenden Befehl, um das AWS SDK für Python (boto3) zu installieren:

    • Führen Sie unter Windows in der mingw32-Umgebung Folgendes aus

      easy_install boto3
    • Führen Sie unter macOS oder Linux Folgendes aus

      pip install tornado nose --user

      und dann ausführen

      pip install boto3 --user

FreeRTOS enthält das SetupAWS.py Skript, mit dem Sie Ihr Espressif-Board für die Verbindung einfacher einrichten können. AWS IoT Wenn Sie das Skript konfigurieren möchten, öffnen Sie freertos/tools/aws_config_quick_start/configure.json und legen die folgenden Attribute fest:

afr_source_dir

Der vollständige Pfad zum freertos-Verzeichnis auf Ihrem Computer. Stellen Sie sicher, dass Sie diesen Pfad mit Schrägstrichen angeben.

thing_name

Der Name, den Sie dem AWS IoT Ding zuweisen möchten, das Ihr Board repräsentiert.

wifi_ssid

Die SSID Ihres WLANs.

wifi_password

Das Passwort für Ihr WLAN-Netzwerk

wifi_security

Der Sicherheitstyp für Ihr WLAN-Netzwerk

Die folgenden Sicherheitstypen sind gültig:

  • eWiFiSecurityOpen (Open, no security (Offen, keine Sicherheit)

  • eWiFiSecurityWEP (WEP-Sicherheit)

  • eWiFiSecurityWPA (WPA-Sicherheit)

  • eWiFiSecurityWPA2(WPA2 Sicherheit)

So führen Sie das Konfigurationsskript aus:
  1. Wenn Sie macOS oder Linux verwenden, öffnen Sie eine Terminal-Eingabeaufforderung. Wenn Sie Windows verwenden, öffnen Siemingw32.exe.

  2. Navigieren Sie zum freertos/tools/aws_config_quick_start Verzeichnis und führen Sie es aus

    python SetupAWS.py setup

Das -Skript führt folgende Aktionen aus:

  • Es erstellt ein IoT-Objekt, ein Zertifikat und eine Richtlinie.

  • Es fügt die IoT-Richtlinie dem Zertifikat und das Zertifikat dem AWS IoT -Objekt an.

  • Füllt die aws_clientcredential.h Datei mit Ihrem AWS IoT Endpunkt, Ihrer Wi-Fi-SSID und Ihren Anmeldeinformationen

  • Es formatiert Ihr Zertifikat und Ihren privaten Schlüssel und schreibt sie in die Header-Datei aws_clientcredential_keys.h.

    Anmerkung

    Das Zertifikat ist nur zu Demonstrationszwecken fest codiert. Anwendungen auf Produktionsebene sollten diese Dateien an einem sicheren Ort speichern.

Weitere Informationen dazu SetupAWS.py finden Sie README.md im freertos/tools/aws_config_quick_start Verzeichnis.

Das FreeRTOS-Demoprojekt erstellen, flashen und ausführen

Sie können CMake es zum Generieren der Build-Dateien, Make zum Erstellen der Anwendungs-Binärdatei und das IDF-Hilfsprogramm von Espressif zum Flashen Ihres Boards verwenden.

FreeRTOS auf Linux und macOS erstellen (ESP-IDF v3.3)

Wenn Sie Windows verwenden, finden Sie weitere Informationen unter. FreeRTOS unter Windows erstellen (ESP-IDF v3.3)

Verwenden Sie CMake , um die Build-Dateien zu generieren, und verwenden Sie dann Make, um die Anwendung zu erstellen.

Um die Build-Dateien der Demo-Anwendung mit zu generieren CMake
  1. Ändern Sie die Verzeichnisse in das Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses.

  2. Verwenden Sie den folgenden Befehl, um die Build-Dateien zu generieren.

    cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B your-build-directory
    Anmerkung

    Wenn Sie die Anwendung zum Debuggen erstellen möchten, fügen Sie diesem Befehl das Flag -DCMAKE_BUILD_TYPE=Debug hinzu.

    Wenn Sie die Build-Dateien der Testanwendung generieren möchten, fügen Sie das Flag -DAFR_ENABLE_TESTS=1 hinzu.

    Bei dem von Espressif bereitgestellten Code wird der Lightweight IP (lwIP)-Stack als Standard-Netzwerk-Stack verwendet. Um stattdessen den FreeRTOS+TCP-Netzwerkstack zu verwenden, fügen Sie dem Befehl das –DAFR_ESP_FREERTOS_TCP Flag hinzu. CMake

    Um die LwIP-Abhängigkeit für nicht vom Hersteller bereitgestellten Code hinzuzufügen, fügen Sie der CMake Abhängigkeitsdatei für Ihre benutzerdefinierte Wi-Fi-Komponente CMakeLists.txt die folgenden Zeilen hinzu.

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
So erstellen Sie die Anwendung mit Make
  1. Wechseln Sie die Verzeichnisse in das Verzeichnis build.

  2. Verwenden Sie den folgenden Befehl, um die Anwendung mit Make zu erstellen.

    make all -j4
    Anmerkung

    Sie müssen die Build-Dateien mit dem Befehl cmake jedes Mal generieren, wenn Sie zwischen dem Projekt aws_demos und dem Projekt aws_tests wechseln.

FreeRTOS unter Windows erstellen (ESP-IDF v3.3)

Unter Windows müssen Sie einen Build-Generator für angeben. CMake Andernfalls wird CMake standardmäßig Visual Studio verwendet. Espressif empfiehlt offiziell das Ninja-Build-System, da es unter Windows, Linux und MacOS funktioniert. Sie müssen CMake Befehle in einer systemeigenen Windows-Umgebung wie cmd oder ausführen. PowerShell Das Ausführen von CMake Befehlen in einer virtuellen Linux-Umgebung wie MSYS2 oder WSL wird nicht unterstützt.

Verwenden Sie diese CMake Option, um die Build-Dateien zu generieren, und verwenden Sie anschließend Make, um die Anwendung zu erstellen.

Um die Build-Dateien der Demo-Anwendung mit zu generieren CMake
  1. Ändern Sie die Verzeichnisse in das Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses.

  2. Verwenden Sie den folgenden Befehl, um die Build-Dateien zu generieren.

    cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -GNinja -S . -B build-directory
    Anmerkung

    Wenn Sie die Anwendung zum Debuggen erstellen möchten, fügen Sie diesem Befehl das Flag -DCMAKE_BUILD_TYPE=Debug hinzu.

    Wenn Sie die Build-Dateien der Testanwendung generieren möchten, fügen Sie das Flag -DAFR_ENABLE_TESTS=1 hinzu.

    Bei dem von Espressif bereitgestellten Code wird der Lightweight IP (lwIP)-Stack als Standard-Netzwerk-Stack verwendet. Um stattdessen den FreeRTOS+TCP-Netzwerkstack zu verwenden, fügen Sie dem Befehl das –DAFR_ESP_FREERTOS_TCP Flag hinzu. CMake

    Um die LwIP-Abhängigkeit für nicht vom Hersteller bereitgestellten Code hinzuzufügen, fügen Sie der CMake Abhängigkeitsdatei für Ihre benutzerdefinierte Wi-Fi-Komponente CMakeLists.txt die folgenden Zeilen hinzu.

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
So erstellen Sie die Anwendung
  1. Wechseln Sie die Verzeichnisse in das Verzeichnis build.

  2. Rufen Sie Ninja auf, um die Anwendung zu erstellen.

    ninja

    Oder verwenden Sie die generische CMake Schnittstelle, um die Anwendung zu erstellen.

    cmake --build build-directory
    Anmerkung

    Sie müssen die Build-Dateien mit dem Befehl cmake jedes Mal generieren, wenn Sie zwischen dem Projekt aws_demos und dem Projekt aws_tests wechseln.

FreeRTOS flashen und ausführen (ESP-IDF v3.3)

In diesem Abschnitt erfahren Sie, wie Sie ESP-IDF v3.3 auf Espressif-Hardware verwenden. Informationen zur Verwendung von ESP-IDF v4.2 finden Sie unter. Fangen Sie mit der ESP-IDF v4.2 an

Verwenden Sie das IDF-Dienstprogramm von Espressif (freertos/vendors/espressif/esp-idf/tools/idf.py), um Ihr Board zu flashen, die Anwendung auszuführen und Protokolle anzuzeigen.

Um den Flash des Boards zu löschen, gehen Sie in das freertos Verzeichnis und verwenden Sie den folgenden Befehl.

./vendors/espressif/esp-idf/tools/idf.py erase_flash -B build-directory

Um die Anwendungs-Binärdatei auf Ihr Board zu flashen, verwenden Sie make

make flash

Sie können auch das IDF-Skript verwenden, um Ihr Board zu flashen:

./vendors/espressif/esp-idf/tools/idf.py flash -B build-directory

Zur Überwachung:

./vendors/espressif/esp-idf/tools/idf.py monitor -p /dev/ttyUSB1 -B build-directory
Anmerkung

Sie können diese Befehle kombinieren. Zum Beispiel:

./vendors/espressif/esp-idf/tools/idf.py erase_flash flash monitor -p /dev/ttyUSB1 -B build-directory

Fangen Sie mit der ESP-IDF v4.2 an

In diesem Abschnitt erfahren Sie, wie Sie ESP-IDF v4.2 auf Espressif-Hardware verwenden. Informationen zur Verwendung von ESP-IDF v3.3 finden Sie unter. Beginnen Sie mit ESP-IDF v3.3

Anmerkung

Die Linux-Befehle in diesem Tutorial setzen voraus, dass Sie die Bash-Shell verwenden.

Einrichten der Espressif-Hardware

Informationen zur Einrichtung der Hardware für das ESP32 DevKit C-Entwicklungsboard finden Sie im ESP32DevKitC V4 Getting Started Guide.

Informationen zur Einrichtung der Hardware für das ESP-WROVER-KIT Entwicklungsboard finden Sie im ESP-WROVER-KITV4.1 Getting Started Guide.

Wichtig

Wenn Sie den Abschnitt „Erste Schritte“ der Espressif-Anleitungen erreicht haben, halten Sie an und kehren Sie dann zu den Anweisungen auf dieser Seite zurück.

Einrichten Ihrer Entwicklungsumgebung

Um mit deinem Board zu kommunizieren, musst du eine Toolchain herunterladen und installieren.

Einrichten der Toolchain

Um die Toolchain einzurichten, befolge diese Anweisungen für das Betriebssystem deines Host-Computers:

Wichtig

Wenn Sie zu den Anweisungen „Get ESP-IDF“ unter „Nächste Schritte“ gelangen, beenden Sie den Vorgang und kehren Sie dann zu den Anweisungen auf dieser Seite zurück.

Schließe die Installation ab (Linux/macOS)

Das ESP-IDF Windows-Installationsprogramm installiert alle erforderlichen Tools. Für die Plattformen Linux und macOS ist ein zusätzlicher Schritt erforderlich, um die Installation abzuschließen.

  1. Öffnen Sie ein Befehlszeilenfenster

  2. Navigieren Sie zum FreeRTOS-Download-Verzeichnis und führen Sie dann das folgende Skript aus, um die espressif-Toolchain für Ihre Plattform herunterzuladen und zu installieren.

    vendors/espressif/esp-idf/install.sh
  3. Fügen Sie die ESP-IDF-Toolketten-Tools mit dem folgenden Befehl zum Pfad Ihres Terminals hinzu.

    source vendors/espressif/esp-idf/export.sh

Herstellen einer seriellen Verbindung

Um eine serielle Verbindung zwischen Ihrem Host-Computer und dem ESP32 - DevKit C herzustellen, müssen Sie die CP21 0x-USB-zu-UART-Bridge-VCP-Treiber installieren. Sie können diese Treiber von Silicon Labs herunterladen.

Um eine serielle Verbindung zwischen Ihrem Host-Computer und dem ESP32 -WROVER-KIT herzustellen, müssen Sie den virtuellen FTDI-COM-Port-Treiber installieren. Sie können diesen Treiber von FTDI herunterladen.

Weitere Informationen finden Sie unter Herstellen einer seriellen Verbindung mit ESP32. Nachdem Sie eine serielle Verbindung hergestellt haben, notieren Sie sich den seriellen Port für Ihre Board-Verbindung. Sie benötigen ihn beim Erstellen der Demo-Anwendung.

Laden Sie FreeRTOS herunter und konfigurieren Sie es

Nachdem Sie Ihre Umgebung eingerichtet haben, können Sie FreeRTOS von herunterladen. GitHub Anweisungen finden Sie in der Datei README.md auf der Website. GitHub

Konfigurieren Sie die FreeRTOS-Demoanwendungen

  1. Wenn Sie macOS oder Linux verwenden, öffnen Sie eine Terminal-Eingabeaufforderung. Wenn Sie Windows verwenden, öffnen Siemingw32.exe. (MinGW ist eine minimalistische Entwicklungsumgebung für native Microsoft Windows-Anwendungen.)

  2. Um zu überprüfen, ob Sie Python3 installiert haben, führen Sie folgenden Befehl aus

    python --version

    Die installierte Version wird angezeigt. Wenn Sie Python 3.0.1 oder höher nicht installiert haben, können Sie es von der Python-Website installieren.

  3. Sie benötigen das AWS Command Line Interface (AWS CLI), um AWS IoT Befehle auszuführen. Wenn Sie Windows verwenden, verwenden Sie das, easy_install awscli um das AWS CLI in der mingw32-Umgebung zu installieren.

    Wenn Sie macOS oder Linux verwenden, finden Sie weitere Informationen unter Installation von AWS CLI.

  4. Ausführen

    aws configure

    und konfigurieren Sie das AWS CLI mit Ihrer AWS Zugriffsschlüssel-ID, Ihrem geheimen Zugriffsschlüssel und Ihrer AWS Standardregion. Weitere Informationen finden Sie unter Konfigurieren der AWS CLI.

  5. Verwenden Sie den folgenden Befehl, um das AWS SDK für Python (boto3) zu installieren:

    • Führen Sie unter Windows in der mingw32-Umgebung Folgendes aus

      easy_install boto3
    • Führen Sie unter macOS oder Linux Folgendes aus

      pip install tornado nose --user

      und dann ausführen

      pip install boto3 --user

FreeRTOS enthält das SetupAWS.py Skript, mit dem Sie Ihr Espressif-Board für die Verbindung einfacher einrichten können. AWS IoT Wenn Sie das Skript konfigurieren möchten, öffnen Sie freertos/tools/aws_config_quick_start/configure.json und legen die folgenden Attribute fest:

afr_source_dir

Der vollständige Pfad zum freertos-Verzeichnis auf Ihrem Computer. Stellen Sie sicher, dass Sie diesen Pfad mit Schrägstrichen angeben.

thing_name

Der Name, den Sie dem AWS IoT Ding zuweisen möchten, das Ihr Board repräsentiert.

wifi_ssid

Die SSID Ihres WLANs.

wifi_password

Das Passwort für Ihr WLAN-Netzwerk

wifi_security

Der Sicherheitstyp für Ihr WLAN-Netzwerk

Die folgenden Sicherheitstypen sind gültig:

  • eWiFiSecurityOpen (Open, no security (Offen, keine Sicherheit)

  • eWiFiSecurityWEP (WEP-Sicherheit)

  • eWiFiSecurityWPA (WPA-Sicherheit)

  • eWiFiSecurityWPA2(WPA2 Sicherheit)

So führen Sie das Konfigurationsskript aus:
  1. Wenn Sie macOS oder Linux verwenden, öffnen Sie eine Terminal-Eingabeaufforderung. Wenn Sie Windows verwenden, öffnen Sie die mingw32.exe Datei.

  2. Navigieren Sie zum freertos/tools/aws_config_quick_start Verzeichnis und führen Sie es aus

    python SetupAWS.py setup

Das -Skript führt folgende Aktionen aus:

  • Es erstellt ein IoT-Objekt, ein Zertifikat und eine Richtlinie.

  • Es fügt die IoT-Richtlinie dem Zertifikat und das Zertifikat dem AWS IoT -Objekt an.

  • Füllt die aws_clientcredential.h Datei mit Ihrem AWS IoT Endpunkt, Ihrer Wi-Fi-SSID und Ihren Anmeldeinformationen

  • Es formatiert Ihr Zertifikat und Ihren privaten Schlüssel und schreibt sie in die Header-Datei aws_clientcredential_keys.h.

    Anmerkung

    Das Zertifikat ist nur zu Demonstrationszwecken fest codiert. Anwendungen auf Produktionsebene sollten diese Dateien an einem sicheren Ort speichern.

Weitere Informationen dazu SetupAWS.py finden Sie README.md im freertos/tools/aws_config_quick_start Verzeichnis.

Erstellen, flashen und starten Sie das FreeRTOS-Demoprojekt mit dem Skript idf.py

Sie können das IDF-Hilfsprogramm von Espressif verwenden, um die Build-Dateien zu generieren, die Anwendungs-Binärdatei zu erstellen und Ihr Board zu flashen.

FreeRTOS unter Windows, Linux und macOS erstellen und flashen (ESP-IDF v4.2)

Verwenden Sie das idf.py Skript, um das Projekt zu erstellen und die Binärdateien auf Ihr Gerät zu flashen.

Anmerkung

Bei einigen Setups müssen Sie möglicherweise die Port-Option "-p port-name" mit verwenden, idf.py um den richtigen Port anzugeben, wie im folgenden Beispiel.

idf.py -p /dev/cu.usbserial-00101301B flash
Um das Projekt zu erstellen und zu flashen
  1. Navigieren Sie zum Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses.

  2. Geben Sie in einem Befehlszeilenfenster den folgenden Befehl ein, um die ESP-IDF-Tools zum PATH Ihres Terminals hinzuzufügen.

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux//macOS

    source vendors/espressif/esp-idf/export.sh
  3. Konfigurieren Sie cmake im build Verzeichnis und erstellen Sie das Firmware-Image mit dem folgenden Befehl.

    idf.py -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 build

    Die Ausgabe sollte ungefähr wie die folgende aussehen.

    Running cmake in directory /path/to/hello_world/build Executing "cmake -G Ninja --warn-uninitialized /path/to/hello_world"... Warn about uninitialized values. -- Found Git: /usr/bin/git (found version "2.17.0") -- Building empty aws_iot component due to configuration -- Component names: ... -- Component paths: ... ... (more lines of build system output) [527/527] Generating hello-world.bin esptool.py v2.3.1 Project build complete. To flash, run this command: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 build/hello-world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin or run 'idf.py -p PORT flash'

    Wenn keine Fehler vorliegen, generiert der Build die binären Firmware-Dateien.

  4. Löschen Sie den Flash-Speicher Ihres Entwicklungsboards mit dem folgenden Befehl.

    idf.py erase_flash
  5. Verwenden Sie das idf.py Skript, um die Binärdatei der Anwendung auf Ihr Board zu flashen.

    idf.py flash
  6. Überwachen Sie die Ausgabe von der seriellen Schnittstelle Ihrer Platine mit dem folgenden Befehl.

    idf.py monitor
Anmerkung

Sie können diese Befehle wie im folgenden Beispiel kombinieren.

idf.py erase_flash flash monitor
Anmerkung

Bei bestimmten Host-Rechner-Setups müssen Sie den Port angeben, wenn Sie die Karte flashen, wie im folgenden Beispiel.

idf.py erase_flash flash monitor -p /dev/ttyUSB1

FreeRTOS erstellen und flashen mit CMake

Zusätzlich zu dem vom IDF SDK bereitgestellten idf.py Skript zum Erstellen und Ausführen Ihres Codes können Sie das Projekt auch verwenden. CMake Derzeit unterstützt es entweder Unix-Makefiles oder das Ninja-Build-System.

Um das Projekt zu erstellen und zu flashen
  1. Navigieren Sie in einem Befehlszeilenfenster zum Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses.

  2. Führen Sie das folgende Skript aus, um die ESP-IDF-Tools zum PATH Ihrer Shell hinzuzufügen.

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux//macOS

    source vendors/espressif/esp-idf/export.sh
  3. Geben Sie den folgenden Befehl ein, um die Build-Dateien zu generieren.

    Mit Unix-Makefiles

    cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0

    Mit Ninja

    cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja
  4. Lösche den Blitz und flashe dann die Platine.

    Mit Unix-Makefiles

    make -C ./YOUR_BUILD_DIRECTORY erase_flash
    make -C ./YOUR_BUILD_DIRECTORY flash

    Mit Ninja

    ninja -C ./YOUR_BUILD_DIRECTORY erase_flash
    ninja -C ./YOUR_BUILD_DIRECTORY flash

Überwachung von MQTT-Nachrichten in der Cloud

Sie können den MQTT-Client in der AWS IoT Konsole verwenden, um die Nachrichten zu überwachen, die Ihr Gerät an die AWS Cloud sendet.

Um das MQTT-Thema mit dem MQTT-Client zu abonnieren AWS IoT
  1. Navigieren Sie zur AWS IoT -Konsole.

  2. Wählen Sie im Navigationsbereich die Option Test aus, um den MQTT-Client zu öffnen.

  3. Geben Sie im Feld Subscription topic (Abonnementthema) die Option your-thing-name/example/topic ein und wählen Sie dann Subscribe to topic (Thema abonnieren).

Ausführen der Bluetooth Low Energy-Demos

FreeRTOS unterstützt Bluetooth Low Energy-Konnektivität.

Um das FreeRTOS-Demoprojekt über Bluetooth Low Energy auszuführen, müssen Sie die FreeRTOS Bluetooth Low Energy Mobile SDK-Demoanwendung auf einem iOS- oder Android-Mobilgerät ausführen.

So richten Sie die mobile FreeRTOS Bluetooth Low Energy SDK-Demoanwendung ein
  1. Folgen Sie den Anweisungen unter Mobile SDKs for FreeRTOS Bluetooth-Geräte, um das SDK für Ihre mobile Plattform herunterzuladen und auf Ihrem Host-Computer zu installieren.

  2. Folgen Sie den Anweisungen in der FreeRTOS Bluetooth Low Energy Mobile SDK Demo-Anwendung, um die mobile Demo-Anwendung auf Ihrem Mobilgerät einzurichten.

Anweisungen zum Ausführen der MQTT over Bluetooth Low Energy Demo auf Ihrem Board finden Sie unter MQTT over Bluetooth Low Energy Demo Application.

Anweisungen zum Ausführen der WLAN-Bereitstellungs-Demo auf Ihrem Board finden Sie im Abschnitt zur WLAN-Bereitstellungs-Demoanwendung.

Verwenden Sie FreeRTOS in Ihrem eigenen CMake Projekt für ESP32

Wenn Sie FreeRTOS in Ihrem eigenen CMake Projekt verwenden möchten, können Sie es als Unterverzeichnis einrichten und zusammen mit Ihrer Anwendung erstellen. Besorgen Sie sich zunächst eine Kopie von FreeRTOS von. GitHub Sie können es auch mit dem folgenden Befehl als Git-Submodul einrichten, damit es in future einfacher aktualisiert werden kann.

git submodule add -b release https://github.com/aws/amazon-freertos.git freertos

Wenn eine neuere Version veröffentlicht wird, können Sie Ihre lokale Kopie mit diesen Befehlen aktualisieren.

# Pull the latest changes from the remote tracking branch. git submodule update --remote -- freertos
# Commit the submodule change because it is pointing to a different revision now. git add freertos
git commit -m "Update FreeRTOS to a new release"

Wenn Ihr Projekt die folgende Verzeichnisstruktur hat:

- freertos (the copy that you obtained from GitHub or the AWS IoT console) - src - main.c (your application code) - CMakeLists.txt

Dann ist das Folgende ein Beispiel für die CMakeLists.txt Top-Level-Datei, die verwendet werden kann, um Ihre Anwendung zusammen mit FreeRTOS zu erstellen.

ESP-IDF v3.3
cmake_minimum_required(VERSION 3.13) project(freertos_examples) add_executable(my_app src/main.c) # Tell IDF build to link against this target. set(IDF_PROJECT_EXECUTABLE my_app) # Add FreeRTOS as a subdirectory. AFR_BOARD tells which board to target. set(AFR_BOARD espressif.esp32_devkitc CACHE INTERNAL "") add_subdirectory(freertos) # Link against the mqtt library so that we can use it. Dependencies are transitively # linked. target_link_libraries(my_app PRIVATE AFR::mqtt)
ESP-IDF v4.2
cmake_minimum_required(VERSION 3.13) project(freertos_examples) # Pull in ESP-IDF defined CMake build infrastructure logic to configure the project, discover all the components, etc set(esp_idf_dir "${CMAKE_CURRENT_LIST_DIR}/freertos/vendors/espressif/esp-idf") include(${esp_idf_dir}/tools/cmake/idf.cmake) # Tell IDF build to link against this target. set(IDF_PROJECT_EXECUTABLE my_app) get_filename_component( IDF_EXECUTABLE_SRCS "src/main.c" ABSOLUTE )

Führen Sie die folgenden Befehle aus, um das Projekt zu erstellen. CMake Stellen Sie sicher, dass sich der ESP32 Compiler in der Umgebungsvariablen PATH befindet.

cmake -S . -B build-directory -DCMAKE_TOOLCHAIN_FILE=freertos/tools/cmake/toolchains/xtensa-esp32.cmake -GNinja
cmake --build build

Führen Sie den folgenden Befehl aus, um die Anwendung auf Ihr Board zu flashen.

cmake --build build-directory --target flash

Komponenten von FreeRTOS verwenden

Nach der Ausführung CMake finden Sie alle verfügbaren Komponenten in der Übersichtsausgabe. Es sollte ungefähr wie das folgende Beispiel aussehen.

====================Configuration for FreeRTOS==================== Version: 201910.00 Git version: 201910.00-388-gcb3612cb7 Target microcontroller: vendor: Espressif board: ESP32-DevKitC description: Development board produced by Espressif that comes in two variants either with ESP-WROOM-32 or ESP32-WROVER module family: ESP32 data ram size: 520KB program memory size: 4MB Host platform: OS: Linux-4.15.0-66-generic Toolchain: xtensa-esp32 Toolchain path: /opt/xtensa-esp32-elf CMake generator: Ninja FreeRTOS modules: Modules to build: ble, ble_hal, ble_wifi_provisioning, common, crypto, defender, dev_mode_key_provisioning, freertos_plus_tcp, greengrass, https, kernel, mqtt, ota, pkcs11, pkcs11_implementation, platform, secure_sockets, serializer, shadow, tls, wifi Enabled by user: ble, ble_hal, ble_wifi_provisioning, defender, greengrass, https, mqtt, ota, pkcs11, pkcs11_implementation, platform, secure_sockets, shadow, wifi Enabled by dependency: common, crypto, demo_base, dev_mode_key_provisioning, freertos, freertos_plus_tcp, kernel, pkcs11_mbedtls, secure_sockets_freertos_plus_tcp, serializer, tls, utils 3rdparty dependencies: http_parser, jsmn, mbedtls, pkcs11, tinycbor Available demos: demo_ble, demo_ble_numeric_comparison, demo_defender, demo_greengrass_connectivity, demo_https, demo_mqtt, demo_ota, demo_shadow, demo_tcp, demo_wifi_provisioning Available tests: =========================================================================

Sie können auf alle Komponenten aus der Modules to build Liste verweisen. Um sie mit Ihrer Anwendung zu verknüpfen, stellen Sie den AFR:: Namespace vor den Namen, zum Beispiel, AFR::mqttAFR::ota, und so weiter.

Hinzufügen benutzerdefinierter Komponenten zu ESP-IDF

Sie können der ESP-IDF-Build-Umgebung weitere Komponenten hinzufügen. Nehmen wir zum Beispiel an, Sie möchten eine Komponente mit dem Namen hinzufügenexample_component, und Ihr Projekt sieht so aus

- freertos - components - example_component - include - example_component.h - src - example_component.c - CMakeLists.txt - src - main.c - CMakeLists.txt

dann ist das Folgende ein Beispiel für die CMakeLists.txt Datei für Ihre Komponente.

ESP-IDF v3.3
# include paths of this components. set(COMPONENT_ADD_INCLUDEDIRS include) # source files of this components. set(COMPONENT_SRCDIRS src) # Alternatively, use COMPONENT_SRCS to specify source files explicitly # set(COMPONENT_SRCS src/example_component.c) # add this components, this will define a CMake library target. register_component()
ESP-IDF v4.2
# Use idf_component_register to add this component, this will define a CMake library target. # Specify component sources in SRCS. # Specify component include directories in INCLUDE_DIRS. idf_component_register(SRCS "src/foo.c" INCLUDE_DIRS "include") # Standard CMake function can be used to specify dependencies. ${COMPONENT_TARGET} is defined # from esp-idf when you call register_component, by default it's idf_component_<folder_name>. target_link_libraries(${COMPONENT_TARGET} PRIVATE AFR::mqtt)

Sie können Abhängigkeiten auch mit der CMake Standardfunktion angebentarget_link_libraries. Beachten Sie, dass der Zielname Ihrer Komponente in der vom ESP-IDF definierten Variablen COMPONENT_TARGET gespeichert ist.

ESP-IDF v3.3
# add this component, this will define a CMake library target. register_component() # standard CMake function can be used to specify dependencies. ${COMPONENT_TARGET} is defined # from esp-idf when you call register_component, by default it's idf_component_<folder_name>. target_link_libraries(${COMPONENT_TARGET} PRIVATE AFR::mqtt)
ESP-IDF v4.2
# add this component, this will define a CMake library target. idf_component_register(SRCS "src/foo.c" INCLUDE_DIRS "include") # standard CMake function can be used to specify dependencies. ${COMPONENT_TARGET} is defined # from esp-idf when you call register_component, by default it's idf_component_<folder_name>. target_link_libraries(${COMPONENT_TARGET} PRIVATE AFR::mqtt)

Bei ESP-Komponenten erfolgt dies durch das Setzen von zwei Variablen COMPONENT_REQUIRES undCOMPONENT_PRIV_REQUIRES. Weitere Informationen finden Sie unter Build System (CMake) im ESP-IDF-Programmierhandbuch v4.2.

ESP-IDF v3.3
# If the dependencies are from ESP-IDF, use these 2 variables. Note these need to be # set before calling register_component(). set(COMPONENT_REQUIRES log) set(COMPONENT_PRIV_REQUIRES lwip)
ESP-IDF v4.2
# If the dependencies are from ESP-IDF, use these 2 variables (REQUIRES, PRIV_REQUIRES) # in the idf_component_register call: (Refer here for information on the # idf_component_register function: https://docs.espressif.com/projects/esp-idf/en/v4.2/esp32/api-guides/build-system.html#cmake-component-register) idf_component_register(SRCS "src/foo.c" INCLUDE_DIRS "include" REQUIRES log PRIV_REQUIRES lwip)

Dann teilen Sie ESP-IDF in der Datei CMakeLists.txt der obersten Ebene mit, wo diese Komponenten zu finden sind. Fügen Sie die folgenden Zeilen an einer beliebigen Stelle hinzu. add_subdirectory(freertos)

ESP-IDF v3.3
# Add some extra components. IDF_EXTRA_COMPONENT_DIRS is a variable used by ESP-IDF # to collect extra components. get_filename_component( EXTRA_COMPONENT_DIRS "components/example_component" ABSOLUTE ) list(APPEND IDF_EXTRA_COMPONENT_DIRS ${EXTRA_COMPONENT_DIRS})
ESP-IDF v4.2
# Add some extra components. IDF_EXTRA_COMPONENT_DIRS is a variable used by ESP-IDF # to collect extra components. get_filename_component( EXTRA_COMPONENT_DIRS "components/example_component" ABSOLUTE ) idf_build_component(${EXTRA_COMPONENT_DIRS})

Diese Komponente ist jetzt standardmäßig automatisch mit Ihrem Anwendungscode verknüpft. Sie sollten in der Lage sein, ihre Header-Dateien einzuschließen und die von ihr definierten Funktionen aufzurufen.

Überschreiben Sie die Konfigurationen für FreeRTOS

Derzeit gibt es keinen klar definierten Ansatz zur Neudefinition der Konfigurationen außerhalb des FreeRTOS-Quellbaums. Standardmäßig wird nach den Verzeichnissen und CMake gesucht. freertos/vendors/espressif/boards/esp32/aws_demos/config_files/ freertos/demos/include/ Sie können jedoch eine Problemumgehung verwenden, um den Compiler anzuweisen, zuerst andere Verzeichnisse zu durchsuchen. Sie können beispielsweise einen weiteren Ordner für FreeRTOS-Konfigurationen hinzufügen.

- freertos - freertos-configs - aws_clientcredential.h - aws_clientcredential_keys.h - iot_mqtt_agent_config.h - iot_config.h - components - src - CMakeLists.txt

Die Dateien unter freertos-configs werden aus den Verzeichnissen freertos/vendors/espressif/boards/esp32/aws_demos/config_files/ und freertos/demos/include/ kopiert. Fügen Sie dann in Ihrer CMakeLists.txt Datei auf oberster Ebene zuvor diese Zeile hinzu, add_subdirectory(freertos) damit der Compiler zuerst dieses Verzeichnis durchsucht.

include_directories(BEFORE freertos-configs)

Bereitstellen Ihrer eigenen sdkconfig für ESP-IDF

Falls Sie Ihre eigene Variable angeben möchtensdkconfig.default, können Sie die CMake Variable IDF_SDKCONFIG_DEFAULTS über die Befehlszeile festlegen:

cmake -S . -B build-directory -DIDF_SDKCONFIG_DEFAULTS=path_to_your_sdkconfig_defaults -DCMAKE_TOOLCHAIN_FILE=freertos/tools/cmake/toolchains/xtensa-esp32.cmake -GNinja

Wenn Sie keinen Speicherort für Ihre eigene sdkconfig.default Datei angeben, verwendet FreeRTOS die Standarddatei unter. freertos/vendors/espressif/boards/esp32/aws_demos/sdkconfig.defaults

Übersicht

Wenn Sie in einem Projekt mit einer Komponente mit dem Namen example_component einige Konfigurationen außer Kraft setzen möchten, finden Sie hier ein vollständiges Beispiel für die Datei CMakeLists.txt der obersten Ebene.

ESP-IDF v3.3
cmake_minimum_required(VERSION 3.13) project(freertos_examples) add_executable(my_app src/main.c) # Tell IDF build to link against this target. set(IDF_PROJECT_EXECUTABLE my_app) # Add some extra components. IDF_EXTRA_COMPONENT_DIRS is a variable used by ESP-IDF # to collect extra components. get_filename_component( EXTRA_COMPONENT_DIRS "components/example_component" ABSOLUTE ) list(APPEND IDF_EXTRA_COMPONENT_DIRS ${EXTRA_COMPONENT_DIRS}) # Override the configurations for FreeRTOS. include_directories(BEFORE freertos-configs) # Add FreeRTOS as a subdirectory. AFR_BOARD tells which board to target. set(AFR_BOARD espressif.esp32_devkitc CACHE INTERNAL "") add_subdirectory(freertos) # Link against the mqtt library so that we can use it. Dependencies are transitively # linked. target_link_libraries(my_app PRIVATE AFR::mqtt)
ESP-IDF v4.2
cmake_minimum_required(VERSION 3.13) project(freertos_examples) # Pull in ESP-IDF defined CMake build infrastructure logic to configure the project, discover all the components, etc set(esp_idf_dir "${CMAKE_CURRENT_LIST_DIR}/freertos/vendors/espressif/esp-idf") include(${esp_idf_dir}/tools/cmake/idf.cmake) # Tell IDF build to link against this target. set(IDF_PROJECT_EXECUTABLE my_app) get_filename_component( IDF_EXECUTABLE_SRCS "src/main.c" ABSOLUTE ) # Add some extra components. IDF_EXTRA_COMPONENT_DIRS is an variable used by ESP-IDF # to collect extra components. get_filename_component( EXTRA_COMPONENT_DIRS "components/foo" ABSOLUTE ) idf_build_component(${EXTRA_COMPONENT_DIRS}) # Override the configurations for FreeRTOS. include_directories(BEFORE freertos-configs) # Add FreeRTOS as a subdirectory. AFR_BOARD tells which board to target. set(AFR_BOARD espressif.esp32_devkitc CACHE INTERNAL "") add_subdirectory(freertos) # Link against the mqtt library so that we can use it. Dependencies are transitively # linked. target_link_libraries(my_app PRIVATE AFR::mqtt)

Weitere Informationen zum Espressif-Build-System mit CMake finden Sie unter Build System in den Espressif API-Leitfäden

Fehlerbehebung

  • Wenn Sie macOS verwenden und das Betriebssystem Ihren nicht erkennt, stellen Sie sicher ESP-WROVER-KIT, dass Sie die D2XX-Treiber nicht installiert haben. Befolgen Sie zum Deinstallieren die Anweisungen im FTDI-Treiber-Installationsleitfaden für macOS X.

  • Mit dem Monitor-Dienstprogramm von ESP-IDF (das mit make monitor aufgerufen wird) können Sie Adressen decodieren. Aus diesem Grund kann es Ihnen helfen, aussagekräftige Rückverfolgungen für den Fall zu erhalten, dass die Anwendung nicht mehr funktioniert. Weitere Informationen finden Sie unter Automatische Adressdekodierung auf der Espressif-Website.

  • Es ist auch möglich, die Kommunikation mit gdb GDBstub zu aktivieren, ohne dass spezielle JTAG-Hardware erforderlich ist. Weitere Informationen finden Sie unter Launching GDB with GDBStub auf der Espressif-Website.

  • Informationen zum Einrichten einer OpenOCD-basierten Umgebung, falls hardwarebasiertes JTAG-Debugging erforderlich ist, finden Sie unter JTAG-Debugging auf der Espressif-Website.

  • Wenn es nicht unter macOS pip installiert werden pyserial kann, laden Sie es von der Pyserial-Website herunter.

  • Wenn das Board kontinuierlich zurückgesetzt wird, versuchen Sie, den Flash zu löschen, indem Sie den folgenden Befehl am Terminal eingeben.

    make erase_flash
  • Wenn Fehler bei der Ausführung von idf_monitor.py auftreten, verwenden Sie Python 2.7.

  • Erforderliche Bibliotheken von ESP-IDF sind in FreeRTOS enthalten, sodass sie nicht extern heruntergeladen werden müssen. Wenn die IDF_PATH Umgebungsvariable gesetzt ist, empfehlen wir, dass Sie sie löschen, bevor Sie FreeRTOS erstellen.

  • Unter Windows kann es drei bis vier Minuten dauern, bis das Projekt erstellt wird. Sie können den -j4-Schalter im make-Befehl verwenden, um die Erstellungszeit zu reduzieren:

    make flash monitor -j4
  • Wenn Ihr Gerät Probleme hat, eine Verbindung herzustellen AWS IoT, öffnen Sie die aws_clientcredential.h Datei und überprüfen Sie, ob die Konfigurationsvariablen in der Datei richtig definiert sind. clientcredentialMQTT_BROKER_ENDPOINT[]sollte so aussehen1234567890123-ats.iot.us-east-1.amazonaws.com.

  • Wenn Sie die Schritte in Verwenden Sie FreeRTOS in Ihrem eigenen CMake Projekt für ESP32 ausführen und undefinierte Referenzfehler vom Linker sehen, liegt dies normalerweise an fehlenden abhängigen Bibliotheken oder Demos. Um sie hinzuzufügen, aktualisieren Sie die CMakeLists.txt Datei (im Stammverzeichnis) mit der CMake Standardfunktiontarget_link_libraries.

  • ESP-IDF v4.2 unterstützt die Verwendung von xtensa-esp32-elf-gcc 8.2.0. Werkzeugkette. Wenn Sie eine frühere Version der Xtensa-Toolchain verwenden, laden Sie die erforderliche Version herunter.

  • Wenn Sie ein Fehlerprotokoll wie das folgende über Python-Abhängigkeiten sehen, die für ESP-IDF v4.2 nicht erfüllt sind.

    The following Python requirements are not satisfied: click>=5.0 pyserial>=3.0 future>=0.15.2 pyparsing>=2.0.3,<2.4.0 pyelftools>=0.22 gdbgui==0.13.2.0 pygdbmi<=0.9.0.2 reedsolo>=1.5.3,<=1.5.4 bitstring>=3.1.6 ecdsa>=0.16.0 Please follow the instructions found in the "Set up the tools" section of ESP-IDF Getting Started Guide

    Installieren Sie die Python-Abhängigkeiten auf Ihrer Plattform mit dem folgenden Python-Befehl:

    root/vendors/espressif/esp-idf/requirements.txt

Weitere Informationen zur Fehlerbehebung finden Sie unterFehlerbehebung – Erste Schritte.

Debugging

Debuggen von Code auf Espressif ESP32 — DevKit C und ESP-WROVER-KIT (ESP-IDF v3.3)

In diesem Abschnitt erfahren Sie, wie Sie Espressif-Hardware mit ESP-IDF v3.3 debuggen. Informationen zum Debuggen mit ESP-IDF v4.2 finden Sie unter. Debugging-Code auf Espressif ESP32 — DevKit C und ESP-WROVER-KIT (ESP-IDF v4.2)

Sie benötigen ein JTAG zu USB-Kabel. Wir verwenden ein USB zu MPSSE-Kabel (z. B. FTDI-C232HM DDHSL-0).

ESP-C JTAG-Einrichtung DevKit

Für das FTDI C232HM-DDHSL-0-Kabel sind dies die Verbindungen zum DevkitC. ESP32

C232HM DDHSL-0-Kabelfarbe ESP32 GPIO-Pin JTAG-Signalname

Braun (Pin 5)

IO14

TMS

Gelb (Pin 3)

IO12

TDI

Schwarz (Pin 10)

GND

GND

Orange (Pin 2)

IO13

TCK

Grün (Pin 4)

IO15

TDO

ESP-WROVER-KIT JTAG-Einrichtung

Für das FTDI C232HM-DDHSL-0-Kabel sind dies die Verbindungen zum -WROVER-KIT. ESP32

C232HM DDHSL-0-Kabelfarbe ESP32 GPIO-Pin JTAG-Signalname

Braun (Pin 5)

IO14

TMS

Gelb (Pin 3)

IO12

TDI

Orange (Pin 2)

IO13

TCK

Grün (Pin 4)

IO15

TDO

Diese Tabellen wurden aus dem FTDI-C232HM-DDHSL-0-Datenblatt entwickelt. Weitere Informationen finden Sie im Abschnitt „C232HM MPSSE-Kabelanschluss und mechanische Details“ im Datenblatt.

Um JTAG auf dem zu aktivieren ESP-WROVER-KIT, platzieren Sie Jumper an den TMS-, TDO-, TDI-, TCK- und S_TDI-Pins, wie hier gezeigt.

Platzierung der Jumper

Debuggen unter Windows (ESP-IDF v3.3)

So richten Sie das Debugging in Windows ein:
  1. Verbinden Sie die USB-Seite von FTDI-C232HM-DDHSL-0 mit Ihrem Computer und der anderen Seite, siehe Debuggen von Code auf Espressif ESP32 — DevKit C und ESP-WROVER-KIT (ESP-IDF v3.3). Das FTDI-C232HM-DDHSL-0-Gerät sollte im Device Manager (Geräte-Manager) unter Universal Serial Bus Controllers (Universal-Serial-Bus-Controller) erscheinen.

  2. Klicken Sie unter der Liste der USB-Geräte mit der rechten Maustaste auf das Gerät C232HM-DDHSL-0 und wählen Sie Properties (Eigenschaften) aus.

    Anmerkung

    Das Gerät ist möglicherweise als USB-Serial Port (Serieller USB-Anschluss) aufgeführt.

    Wählen Sie im Fenster "Eigenschaften" die Registerkarte Details aus, um die Eigenschaften des Geräts zu sehen. Wenn das Gerät nicht aufgeführt ist, installieren Sie den Windows-Treiber für FTDI C232HM-DDHSL-0.

  3. Wählen Sie auf der Registerkarte Details die Option Eigenschaft und dann Hardware aus. IDs Im Feld Wert sollte etwas Ähnliches angezeigt werden.

    FTDIBUS\COMPORT&VID_0403&PID_6014

    In diesem Beispiel lautet die Anbieter-ID 0403 und die Produkt-ID 6014.

    Stellen Sie sicher, dass diese IDs mit IDs der Eingabe übereinstimmenprojects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. Sie IDs werden in einer Zeile angegeben, die mit beginnt, ftdi_vid_pid gefolgt von einer Lieferanten-ID und einer Produkt-ID.

    ftdi_vid_pid 0x0403 0x6014
  4. Laden Sie OpenOCD für Windows herunter.

  5. Entpacken Sie die Datei in das Verzeichnis C:\ und fügen Sie C:\openocd-esp32\bin Ihrem Systempfad hinzu.

  6. OpenOCD erfordert libusb. Dies wird unter Windows nicht standardmäßig installiert.

    Um libusb zu installieren

    1. Laden Sie zadig.exe herunter.

    2. Führen Sie zadig.exe. Wählen Sie im Menü Optionen die Option List All Devices (Alle Geräte auflisten) aus.

    3. Wählen Sie im Dropdown-Menü C232HM-DDHSL-0 aus.

    4. Wählen Sie im Feld für den Zieltreiber rechts neben dem grünen Pfeil WinUSB aus.

    5. Wählen Sie in der Dropdownliste unter dem Zieltreiberfeld den Pfeil und dann Treiber installieren aus. Klicken Sie auf Replace Driver (Treiber ersetzen).

  7. Öffnen Sie eine Befehlszeile, navigieren Sie zu dem folgenden Befehl projects/espressif/esp32/make/aws_demos und führen Sie ihn aus.

    Für ESP32 -WROOM-32 und -WROVER ESP32

    openocd.exe -f esp32_devkitj_v1.cfg -f esp-wroom-32.cfg

    Für ESP32 -SOLO-1

    openocd.exe -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg

    Lassen Sie dieses Befehlszeilenfenster geöffnet.

  8. Öffnen Sie ein neues Befehlszeilenfenster, navigieren Sie zu Ihrem msys32-Verzeichnis und führen Sie mingw32.exe aus.

  9. Navigieren Sie im mingw32-Terminal zu und führen Sie es aus projects/espressif/esp32/make/aws_demos

    make flash monitor
  10. Öffnen Sie ein anderes mingw32 Terminal, navigieren Sie zu projects/espressif/esp32/make/aws_demos und warten Sie, bis die Demo auf Ihrem Board gestartet wird. Wenn dies zutrifft, führen Sie xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf aus. Das Programm sollte in der main-Funktion stoppen.

Anmerkung

Der ESP32 unterstützt maximal zwei Breakpoints.

Debuggen auf macOS (ESP-IDF v3.3)

  1. Laden Sie den FTDI-Treiber für macOS herunter.

  2. Laden Sie OpenOCD herunter.

  3. Extrahieren Sie die heruntergeladen TAR-Datei und legen Sie den Pfad in .bash_profile auf OCD_INSTALL_DIR/openocd-esp32/bin fest.

  4. Verwenden Sie den folgenden Befehl, um die Installation libusb auf macOS durchzuführen.

    brew install libusb
  5. Verwenden Sie den folgenden Befehl, um den Treiber für die serielle Schnittstelle zu entladen.

    sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
  6. Wenn Sie eine neuere macOS-Version als 10.9 verwenden, verwenden Sie den folgenden Befehl, um den Apple FTDI-Treiber zu entladen.

    sudo kextunload -b com.apple.driver.AppleUSBFTDI
  7. Verwenden Sie den folgenden Befehl, um die Produkt-ID und Anbieter-ID des FTDI-Kabels zu bekommen. Er listet die angeschlossenen USB-Geräte auf.

    system_profiler SPUSBDataType

    Die Ausgabe von system_profiler sollte wie folgt aussehen.

    DEVICE: Product ID: product-ID Vendor ID: vendor-ID (Future Technology Devices International Limited)
  8. Öffnen Sie die projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg Datei. Die Anbieter-ID und Produkt-ID für Ihr Gerät sind in einer Zeile angegeben, die mit ftdi_vid_pid beginnt. Ändern Sie IDs das so, dass es mit der system_profiler Ausgabe im vorherigen Schritt übereinstimmt. IDs

  9. Öffnen Sie ein Terminalfenster, navigieren Sie zu projects/espressif/esp32/make/aws_demos und verwenden Sie den folgenden Befehl, um OpenOCD auszuführen.

    Für ESP32 -WROOM-32 und -WROVER: ESP32

    openocd -f esp32_devkitj_v1.cfg -f esp-wroom-32.cfg

    Für ESP32 -SOLO-1:

    openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
  10. Öffnen Sie ein neues Terminal und laden Sie mit dem folgenden Befehl den FTDI-Treiber für die serielle Schnittstelle.

    sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
  11. Navigieren Sie zu projects/espressif/esp32/make/aws_demos und führen Sie den folgenden Befehl aus.

    make flash monitor
  12. Öffnen Sie ein anderes neues Terminal, navigieren Sie zu projects/espressif/esp32/make/aws_demos dem folgenden Befehl und führen Sie ihn aus.

    xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf

    Das Programm sollte bei main() stoppen.

Debuggen unter Linux (ESP-IDF v3.3)

  1. Laden Sie OpenOCD herunter. Extrahieren Sie den Tarball und befolgen Sie die Installationsanweisungen in der Readme-Datei.

  2. Verwenden Sie den folgenden Befehl, um libusb unter Linux zu installieren.

    sudo apt-get install libusb-1.0
  3. Öffnen Sie ein Terminal und geben Sie ls -l /dev/ttyUSB* ein, um alle mit Ihrem Computer verbundenen USB-Geräte aufzulisten. Auf diese Weise können Sie überprüfen, ob die USB-Anschlüsse der Platine vom Betriebssystem erkannt werden. Die Ausgabe sollte ungefähr wie die folgende aussehen.

    $ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Jul 10 19:04 /dev/ttyUSB1
  4. Melden Sie sich ab und anschließend wieder an und schalten Sie die Stromversorgung zum Board ab und wieder an, damit die Änderungen wirksam werden. Listen Sie in einer Terminal-Eingabeaufforderung die USB-Geräte auf. Stellen Sie sicher, dass der Gruppenbesitzer von dialout zu gewechselt hatplugdev.

    $ls -l /dev/ttyUSB* crw-rw---- 1 root plugdev 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root plugdev 188, 1 Jul 10 19:04 /dev/ttyUSB1

    Die /dev/ttyUSBn-Schnittstelle mit der niedrigeren Zahl wird für die JTAG-Kommunikation verwendet. Die andere Schnittstelle wird an die serielle Schnittstelle (UART) ESP32 von weitergeleitet und dient zum Hochladen von Code in den Flash-Speicher ESP32 von.

  5. Navigieren Sie in einem Terminalfenster zu projects/espressif/esp32/make/aws_demos und nutzen Sie den folgenden Befehl, um OpenOCD auszuführen:

    Für ESP32 -WROOM-32 und -WROVER: ESP32

    openocd -f esp32_devkitj_v1.cfg -f esp-wroom-32.cfg

    Für ESP32 -SOLO-1:

    openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
  6. Öffnen Sie ein anderes Terminal, navigieren Sie zu dem folgenden projects/espressif/esp32/make/aws_demos Befehl und führen Sie ihn aus.

    make flash monitor
  7. Öffnen Sie ein anderes Terminal, navigieren Sie zu projects/espressif/esp32/make/aws_demos und führen Sie den folgenden Befehl aus:

    xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf

    Das Programm sollte bei main() stoppen.

Debugging-Code auf Espressif ESP32 — DevKit C und ESP-WROVER-KIT (ESP-IDF v4.2)

In diesem Abschnitt erfahren Sie, wie Sie Espressif-Hardware mit ESP-IDF v4.2 debuggen. Informationen zum Debuggen mit ESP-IDF v3.3 finden Sie unter. Debuggen von Code auf Espressif ESP32 — DevKit C und ESP-WROVER-KIT (ESP-IDF v3.3)

Sie benötigen ein JTAG zu USB-Kabel. Wir verwenden ein USB zu MPSSE-Kabel (z. B. FTDI-C232HM DDHSL-0).

ESP-C JTAG-Einrichtung DevKit

Für das FTDI C232HM-DDHSL-0-Kabel sind dies die Verbindungen zum DevkitC. ESP32

C232HM DDHSL-0-Kabelfarbe ESP32 GPIO-Pin JTAG-Signalname

Braun (Pin 5)

IO14

TMS

Gelb (Pin 3)

IO12

TDI

Schwarz (Pin 10)

GND

GND

Orange (Pin 2)

IO13

TCK

Grün (Pin 4)

IO15

TDO

ESP-WROVER-KIT JTAG-Einrichtung

Für das FTDI C232HM-DDHSL-0-Kabel sind dies die Verbindungen zum -WROVER-KIT. ESP32

C232HM DDHSL-0-Kabelfarbe ESP32 GPIO-Pin JTAG-Signalname

Braun (Pin 5)

IO14

TMS

Gelb (Pin 3)

IO12

TDI

Orange (Pin 2)

IO13

TCK

Grün (Pin 4)

IO15

TDO

Diese Tabellen wurden aus dem FTDI-C232HM-DDHSL-0-Datenblatt entwickelt. Weitere Informationen finden Sie im Abschnitt „C232HM MPSSE-Kabelanschluss und mechanische Details“ im Datenblatt.

Um JTAG auf dem zu aktivieren ESP-WROVER-KIT, platzieren Sie Jumper an den TMS-, TDO-, TDI-, TCK- und S_TDI-Pins, wie hier gezeigt.

Platzierung der Jumper

Debuggen unter Windows (ESP-IDF v4.2)

So richten Sie das Debugging in Windows ein:
  1. Verbinden Sie die USB-Seite von FTDI-C232HM-DDHSL-0 mit Ihrem Computer und der anderen Seite, siehe Debugging-Code auf Espressif ESP32 — DevKit C und ESP-WROVER-KIT (ESP-IDF v4.2). Das FTDI-C232HM-DDHSL-0-Gerät sollte im Device Manager (Geräte-Manager) unter Universal Serial Bus Controllers (Universal-Serial-Bus-Controller) erscheinen.

  2. Klicken Sie unter der Liste der USB-Geräte mit der rechten Maustaste auf das Gerät C232HM-DDHSL-0 und wählen Sie Properties (Eigenschaften) aus.

    Anmerkung

    Das Gerät ist möglicherweise als USB-Serial Port (Serieller USB-Anschluss) aufgeführt.

    Wählen Sie im Fenster "Eigenschaften" die Registerkarte Details aus, um die Eigenschaften des Geräts zu sehen. Wenn das Gerät nicht aufgeführt ist, installieren Sie den Windows-Treiber für FTDI C232HM-DDHSL-0.

  3. Wählen Sie auf der Registerkarte Details die Option Eigenschaft und dann Hardware aus. IDs Im Feld Wert sollte etwas Ähnliches angezeigt werden.

    FTDIBUS\COMPORT&VID_0403&PID_6014

    In diesem Beispiel lautet die Anbieter-ID 0403 und die Produkt-ID 6014.

    Stellen Sie sicher, dass diese IDs mit IDs der Eingabe übereinstimmenprojects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg. Sie IDs werden in einer Zeile angegeben, die mit beginnt, ftdi_vid_pid gefolgt von einer Lieferanten-ID und einer Produkt-ID.

    ftdi_vid_pid 0x0403 0x6014
  4. Laden Sie OpenOCD für Windows herunter.

  5. Entpacken Sie die Datei in das Verzeichnis C:\ und fügen Sie C:\openocd-esp32\bin Ihrem Systempfad hinzu.

  6. OpenOCD erfordert libusb. Dies wird unter Windows nicht standardmäßig installiert.

    Um libusb zu installieren

    1. Laden Sie zadig.exe herunter.

    2. Führen Sie zadig.exe. Wählen Sie im Menü Optionen die Option List All Devices (Alle Geräte auflisten) aus.

    3. Wählen Sie im Dropdown-Menü C232HM-DDHSL-0 aus.

    4. Wählen Sie im Feld für den Zieltreiber rechts neben dem grünen Pfeil WinUSB aus.

    5. Wählen Sie in der Dropdownliste unter dem Zieltreiberfeld den Pfeil und dann Treiber installieren aus. Klicken Sie auf Replace Driver (Treiber ersetzen).

  7. Öffnen Sie eine Befehlszeile, navigieren Sie zum Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses und führen Sie den folgenden Befehl aus.

    idf.py openocd

    Lassen Sie dieses Befehlszeilenfenster geöffnet.

  8. Öffnen Sie eine neue Eingabeaufforderung, navigieren Sie zum Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses und führen Sie

    idf.py flash monitor
  9. Öffne eine weitere Eingabeaufforderung, navigiere zum Stammverzeichnis deines FreeRTOS-Download-Verzeichnisses und warte, bis die Demo auf deinem Board läuft. Wenn das der Fall ist, starte

    idf.py gdb

    Das Programm sollte in der main-Funktion stoppen.

Anmerkung

Der ESP32 unterstützt maximal zwei Breakpoints.

Debuggen auf macOS (ESP-IDF v4.2)

  1. Laden Sie den FTDI-Treiber für macOS herunter.

  2. Laden Sie OpenOCD herunter.

  3. Extrahieren Sie die heruntergeladen TAR-Datei und legen Sie den Pfad in .bash_profile auf OCD_INSTALL_DIR/openocd-esp32/bin fest.

  4. Verwenden Sie den folgenden Befehl, um die Installation libusb auf macOS durchzuführen.

    brew install libusb
  5. Verwenden Sie den folgenden Befehl, um den Treiber für die serielle Schnittstelle zu entladen.

    sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
  6. Wenn Sie eine neuere macOS-Version als 10.9 verwenden, verwenden Sie den folgenden Befehl, um den Apple FTDI-Treiber zu entladen.

    sudo kextunload -b com.apple.driver.AppleUSBFTDI
  7. Verwenden Sie den folgenden Befehl, um die Produkt-ID und Anbieter-ID des FTDI-Kabels zu bekommen. Er listet die angeschlossenen USB-Geräte auf.

    system_profiler SPUSBDataType

    Die Ausgabe von system_profiler sollte wie folgt aussehen.

    DEVICE: Product ID: product-ID Vendor ID: vendor-ID (Future Technology Devices International Limited)
  8. Öffnen Sie die projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg Datei. Die Anbieter-ID und Produkt-ID für Ihr Gerät sind in einer Zeile angegeben, die mit ftdi_vid_pid beginnt. Ändern Sie IDs das so, dass es mit der system_profiler Ausgabe im vorherigen Schritt übereinstimmt. IDs

  9. Öffnen Sie ein Terminalfenster, navigieren Sie zum Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses und verwenden Sie den folgenden Befehl, um OpenOCD auszuführen.

    idf.py openocd

    Lassen Sie dieses Terminalfenster geöffnet.

  10. Öffnen Sie ein neues Terminal und laden Sie mit dem folgenden Befehl den FTDI-Treiber für die serielle Schnittstelle.

    sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
  11. Gehen Sie zum Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses und starten Sie

    idf.py flash monitor
  12. Öffne ein anderes neues Terminal, navigiere zum Stammverzeichnis deines FreeRTOS-Download-Verzeichnisses und führe

    idf.py gdb

    Das Programm sollte bei main stoppen.

Debuggen unter Linux (ESP-IDF v4.2)

  1. Laden Sie OpenOCD herunter. Extrahieren Sie den Tarball und befolgen Sie die Installationsanweisungen in der Readme-Datei.

  2. Verwenden Sie den folgenden Befehl, um libusb unter Linux zu installieren.

    sudo apt-get install libusb-1.0
  3. Öffnen Sie ein Terminal und geben Sie ls -l /dev/ttyUSB* ein, um alle mit Ihrem Computer verbundenen USB-Geräte aufzulisten. Auf diese Weise können Sie überprüfen, ob die USB-Anschlüsse der Platine vom Betriebssystem erkannt werden. Die Ausgabe sollte ungefähr wie die folgende aussehen.

    $ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Jul 10 19:04 /dev/ttyUSB1
  4. Melden Sie sich ab und anschließend wieder an und schalten Sie die Stromversorgung zum Board ab und wieder an, damit die Änderungen wirksam werden. Listen Sie in einer Terminal-Eingabeaufforderung die USB-Geräte auf. Stellen Sie sicher, dass der Gruppenbesitzer von dialout zu gewechselt hatplugdev.

    $ls -l /dev/ttyUSB* crw-rw---- 1 root plugdev 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root plugdev 188, 1 Jul 10 19:04 /dev/ttyUSB1

    Die /dev/ttyUSBn-Schnittstelle mit der niedrigeren Zahl wird für die JTAG-Kommunikation verwendet. Die andere Schnittstelle wird an die serielle Schnittstelle (UART) ESP32 von weitergeleitet und dient zum Hochladen von Code in den Flash-Speicher ESP32 von.

  5. Navigieren Sie in einem Terminalfenster zum Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses und verwenden Sie den folgenden Befehl, um OpenOCD auszuführen.

    idf.py openocd
  6. Öffnen Sie ein anderes Terminal, navigieren Sie zum Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses und führen Sie den folgenden Befehl aus.

    idf.py flash monitor
  7. Öffnen Sie ein anderes Terminal, navigieren Sie zum Stammverzeichnis Ihres FreeRTOS-Download-Verzeichnisses und führen Sie den folgenden Befehl aus:

    idf.py gdb

    Das Programm sollte bei main() stoppen.