Inhaltsverzeichnis:

So verwenden Sie einen Debugger auf einem ESP32 – wikiHow
So verwenden Sie einen Debugger auf einem ESP32 – wikiHow

Video: So verwenden Sie einen Debugger auf einem ESP32 – wikiHow

Video: So verwenden Sie einen Debugger auf einem ESP32 – wikiHow
Video: JTAG für den ESP32 2024, Kann
Anonim
So verwenden Sie einen Debugger auf einem ESP32
So verwenden Sie einen Debugger auf einem ESP32

Wollten Sie schon immer einen Blick in Ihren Code werfen, um zu sehen, warum er sich so verhält, wie er ist? Traditionell hätten Sie in ESP32-Projekten endlose print-Anweisungen hinzufügen müssen, um herauszufinden, was vor sich ging, aber es gibt einen besseren Weg!

Ein Debugger ist eine Möglichkeit, zu sehen, was in bestimmten Abschnitten Ihres Codes passiert, und verschiedene Variablenwerte auszuprobieren, ohne Ihren Code neu zu kompilieren. Normalerweise steht uns dies bei eingebetteten Projekten nicht zur Verfügung, aber in diesem Handbuch werde ich es Ihnen zeigen wie man es auf einem ESP32 verwendet.

In dieser Anleitung zeige ich Ihnen, wie Sie die Hardware einrichten, die Software einrichten und ein einfaches Beispiel für die Verwendung des Debuggers zeigen.

Lieferungen

  • ESP-Prog - Dies ist das Board, das zum Debuggen benötigt wird

    • Genau eins habe ich gekauft*
    • $5 Günstiger, aber ich habe ihn nicht getestet*
  • Ein ESP32, das Pin 12, 13, 14, 15. ausbricht

    • Adafruchtfeder Huzzah32
    • D1 Mini-ESP32*
  • [OPTIONAL] Debug Shield, das ich auf Tindie verkaufe

    • Feder Huzzah32
    • D1 Mini ESP32

* = Affiliate-Link

Schritt 1: Sehen Sie sich das Video an

Image
Image

Ich habe ein Video zu diesem Thema, wenn Sie es sich ansehen möchten.

Auf meinem Kanal mache ich normalerweise ESP8266- und ESP32-basierte Videos. Wenn Sie also daran interessiert sind, schauen Sie sich bitte an!

Schritt 2: Hardware - Teile & Verkabelung

Hardware - Teile & Verkabelung
Hardware - Teile & Verkabelung
Hardware - Teile & Verkabelung
Hardware - Teile & Verkabelung
Hardware - Teile & Verkabelung
Hardware - Teile & Verkabelung

Um den Debugger zu verwenden, benötigen Sie nur ein ESP-Prog und fast jedes ESP32-Board (Links zu diesen in einem früheren Schritt)

ESP-Prog:

Das ESP-Prog ist ein Board von espressif, den Herstellern der ESP32- und ESP8266-Chips. Es wird an JTAG-Pins des ESP32 angeschlossen, damit wir den Debugger verwenden können. Es kann auch zum Programmieren von ESP32-Boards verwendet werden, aber ich werde hier nicht darauf eingehen.

ESP32-Board:

Sie können dafür grundsätzlich jedes ESP32-Board verwenden, sobald es die JTAG-Pins 12, 13, 14 und 15 ausbricht. Ich habe sowohl ein Adafruit-Feder Huzzah32- als auch ein D1 Mini 32-Board getestet und beide funktionierten gut.

Bitte beachten Sie, dass Sie die JTAG-Pins in Ihrem Sketch mit dem Debugger verwenden können, zum Beispiel befindet sich die eingebaute LED des Huzzah32-Boards auf Pin 13, sodass Sie sie beim Debuggen nicht verwenden können.

Verdrahtung:

Um das ESP-Prog mit dem ESP32 zu verbinden, verwenden Sie einfach die Verkabelungsanleitung wie im Bild oben gezeigt. Überprüfen Sie mit dem Schaltplan Ihrer ESP32-Platine, wenn Sie die entsprechenden Pins nicht sofort sehen, da sie manchmal ein anderes Namensschema verwenden.

Debug-Schilde:

Diese sind optional, aber ich verkaufe auf Tindie einige Abschirmungen für den Huzzah32 und den D1 Mini 32, die den Anschluss des ESP-Prog wirklich einfach machen das Schild und das ESP-Prog

Schritt 3: Hardware - Treiber-Setup

Hardware - Treiber-Setup
Hardware - Treiber-Setup
Hardware - Treiber-Setup
Hardware - Treiber-Setup
Hardware - Treiber-Setup
Hardware - Treiber-Setup

Um das ESP-prog zum Debuggen zu verwenden, müssen wir die entsprechenden Treiber dafür installieren. PlatformIO bietet hier einige Schritte dafür, aber ich werde die Windows-Schritte in diesem Handbuch durchgehen.

  1. Laden Sie die FTDI-Treiber für das ESP-Prog von hier herunter und installieren Sie sie, scrollen Sie nach rechts, um die "setup Executable"-Version herunterzuladen, um es einfacher zu machen.
  2. Laden Sie das Tool Zadig von hier herunter und installieren Sie es. Dies ermöglicht uns die Installation eines generischen Treibers, der zum Debuggen benötigt wird.
  3. Öffnen Sie bei angeschlossenem ESP-Prog Zadig
  4. Klicken Sie in der Zadig-Anwendung unter "Optionen" auf "Alle Geräte auflisten".
  5. Das Dropdown-Menü in Zadig wird nun ausgefüllt, wählen Sie die Option "Dual RS232-HS (Interface 0)". Stellen Sie sicher, dass Sie Schnittstelle 0 auswählen!
  6. Rechts neben dem grünen Pfeil sollte "WinUSB" ausgewählt sein, dann auf "Treiber ersetzen" klicken

Wenn dies abgeschlossen ist, sollten Ihre Treiber für die Verwendung eingerichtet sein!

Hinweis: Wenn Sie den USB-Port ändern, den Sie für das ESP-Prog verwenden, müssen Sie möglicherweise die Schritte 3-6 erneut wiederholen. Wenn Sie beim Debuggen einen Fehler wie im Bild oben gezeigt erhalten, müssen Sie die Schritte wiederholen.

Schritt 4: Software: Installieren von PlatformIO

Software: Installieren von PlatformIO
Software: Installieren von PlatformIO
Software: Installieren von PlatformIO
Software: Installieren von PlatformIO
Software: Installieren von PlatformIO
Software: Installieren von PlatformIO

PlatformIO ist eine IDE für die Entwicklung mit verschiedenen eingebetteten Frameworks, einschließlich des Arduino-Ökosystems. Es ist komplizierter zu verwenden als so etwas wie die Arduino IDE, aber es ist sehr leistungsfähig und hat einige Funktionen, die die Arduino IDE schmerzlich vermisst, wie z. B. die automatische Vervollständigung.

Es ist für PlatformIO erforderlich, den Debugger zu verwenden. Wenn Sie mit PlatformIO bereits vertraut sind, können Sie gerne ein paar Schritte überspringen.

  • Laden Sie Visual Studio Code (VS Code) über den Link auf der PlatformIO.org-Website herunter und installieren Sie ihn
  • Öffnen Sie VS Code und öffnen Sie das Erweiterungsmenü, die Schaltfläche ist im Bild oben hervorgehoben
  • Geben Sie "platformio" in die Suche ein, wählen Sie es aus und klicken Sie auf Installieren.

Schritt 5: Software: Verwenden von PlatformIO

Software: Verwenden von PlatformIO
Software: Verwenden von PlatformIO
Software: Verwenden von PlatformIO
Software: Verwenden von PlatformIO
Software: Verwenden von PlatformIO
Software: Verwenden von PlatformIO

Die Verwendung von PlatformIO unterscheidet sich ein wenig von der Verwendung der Arudino-IDE, daher behandeln wir in diesem Schritt nur die Grundlagen, um ein Beispiel auf einem Board zum Laufen zu bringen.

Öffnen eines Beispiels:

  1. Klicken Sie auf die Home-Schaltfläche in der PlatformIO-Symbolleiste (wie im Bild gezeigt)
  2. Klicken Sie auf die Schaltfläche "Projektbeispiele"
  3. Wählen Sie im Abschnitt Espressif 32 das Beispiel "Arduino-blink" aus

Dies öffnet ein Beispiel-Blinkprojekt. Das Layout eines PlatformIO unterscheidet sich ziemlich von einem Arduino-Projekt, also gehen wir die Grundlagen durch.

Wo ist der Code?

Der Code für Ihr Projekt wird im Ordner "src" gespeichert, für das Blink-Beispiel sehen Sie eine Datei "blink.cpp", diese Datei ist die gleiche wie Ihre Skizzendatei (.ino) in einem Arduino-Projekt.

Wie konfiguriere ich mein Board?

Konfigurationen für Ihr Projekt werden in einer "platformio.ini"-Datei in Ihrem Projekt gespeichert. Dies ist eigentlich eines meiner Lieblingsdinge an PlatformIO im Vergleich zur Arduino IDE, es machte für mich nie Sinn, dass die Board-Einstellungen nicht an Skizzen gebunden waren.

Die.ini-Beispieldatei enthält Definitionen für mehrere verschiedene Boards, aber der Einfachheit halber löschen wir die unteren beiden Definitionen.

Wo stelle ich meinen COM-Port ein?

PlatformIO wird tatsächlich automatisch versuchen, den richtigen COM-Port zu finden, der verwendet werden soll, sodass Sie tatsächlich davonkommen können, nichts dafür einzustellen. Aber wenn Sie mehrere COM-Ports haben, was Sie bei der Verwendung des Debuggers tun werden, ist es meiner Meinung nach sinnvoll, den spezifischen einzustellen, den Sie benötigen. Sie können die verschiedenen Geräte sehen, die Sie haben, indem Sie auf den Abschnitt "Geräte" auf der Registerkarte "Startseite" klicken Sie können festlegen, welches Ihr ESP32 in der "platformio.ini" ist, indem Sie eine "upload_port" -Konfiguration hinzufügen.

Wie lade ich meinen Code hoch?

Klicken Sie auf die Schaltfläche Hochladen (Symbol ist ein Pfeil nach rechts) und es sollte den Code kompilieren und hochladen. Sie sollten jetzt eine blinkende LED auf Ihrem Board haben.

Schritt 6: Debugging: Potenzielle Bananenhaut

Debugging: Potenzielle Bananenhaut!
Debugging: Potenzielle Bananenhaut!
Debugging: Potenzielle Bananenhaut!
Debugging: Potenzielle Bananenhaut!
Debugging: Potenzielle Bananenhaut!
Debugging: Potenzielle Bananenhaut!

Das hat mich bei der Vorbereitung aufgefallen und wird hoffentlich behoben, wenn Sie es versuchen, aber ich dachte, es wäre wichtig, hier wegzugehen.

Zum Zeitpunkt der Erstellung dieses Handbuchs ist die neueste Version von PlatformIO 4.3.0 und weist einen Fehler auf, der sich auf die Möglichkeit zum Debuggen bezieht. Zum Glück können wir ziemlich einfach auf die neueste Entwicklungsversion aktualisieren, was das Problem löst.

Überprüfen Sie auf der Startseite die Version von PlatformIO Core, wenn es sich um "4.3.0" handelt, führen Sie die folgenden Schritte aus.

  1. Klicken Sie in der PlatformIO-Symbolleiste auf das Terminalsymbol
  2. Im Terminal-Typ: pio upgrade --dev
  3. RestartVS-Code und PlatfromIO sollten aktualisiert werden

Schritt 7: Debuggen: Konfiguration

Debuggen: Konfiguration
Debuggen: Konfiguration

Wir müssen die Datei "PlatofrmIO.ini" bearbeiten, um das Debuggen zu ermöglichen, wir müssen ihr nur zwei Dinge hinzufügen.

debug_tool = esp-prog

Dies legt das Debug-Tool fest, das wir verwenden.

debug_init_break = tbreak-Setup

Dies ist ein Trick, den wir aus dem Video von Andress Spiess zum Debuggen auf dem ESP32 gelernt haben. Es weist den Debugger an, das Setup unserer Anwendung zu stoppen.

Schritt 8: Debuggen: Debuggen starten

Debuggen: Debuggen starten
Debuggen: Debuggen starten
Debuggen: Debuggen starten
Debuggen: Debuggen starten
Debuggen: Debuggen starten
Debuggen: Debuggen starten
Debuggen: Debuggen starten
Debuggen: Debuggen starten

Bevor wir darauf eingehen, werden wir eine kleine Änderung an der Skizze vornehmen, die es einfacher macht, zu demonstrieren, was Sie mit dem Debuggen tun können.

  1. Erstellen Sie eine neue Variable, "int delayTime = 1000;" Außerhalb von Methoden wird sie dadurch zu einer globalen Variablen.
  2. Ersetzen Sie die Zahl innerhalb der Verzögerungsaufrufe in der Schleife durch diese neue Variable: delay(delayTime);

Laden Sie den Code noch einmal auf das Board hoch und klicken Sie dann in der Symbolleiste auf "Ausführen" und dann auf "Debugging starten", um das Debugging zu starten.

Sie werden sehen, wie sich die Dinge im Terminalfenster bewegen, aber selbst wenn dies anzeigt, dass es erfolgreich war, wenn Sie auf die "Debug-Konsole" klicken, sehen Sie, dass es noch funktioniert. Es dauert einige Sekunden, bis es fertig ist.

Wenn alles wie erwartet gelaufen ist, wird der Debugger beim Start des Setups gestoppt.

Schritt 9: Debuggen: Grundlegende Verwendung

Debuggen: Grundlegende Verwendung
Debuggen: Grundlegende Verwendung
Debuggen: Grundlegende Verwendung
Debuggen: Grundlegende Verwendung
Debuggen: Grundlegende Verwendung
Debuggen: Grundlegende Verwendung
Debuggen: Grundlegende Verwendung
Debuggen: Grundlegende Verwendung

Lassen Sie uns einige der Grundlagen dessen behandeln, was Sie mit dem Debugger tun können

Haltepunkte erstellen:

Ein Haltepunkt ist ein Punkt in Ihrem Code, an dem der Debugger anhalten soll. Um einen Breakpoint zu erstellen, klicken Sie links neben der Zeilennummer. Fügen Sie als Demo einen Breakpoint in die erste Zeile der Schleifenmethode ein.

Haltepunkt-Navigation:

Um zwischen Haltepunkten oder zur nächsten Codezeile zu wechseln, können Sie die Tools verwenden, die oben auf dem Bildschirm angezeigt werden. Drücken Sie den "Weiter"-Button (sieht aus wie ein Play-Button), um den gerade erstellten Breakpoint innerhalb der Schleife zu verschieben.

Variable Uhren:

Mit Variablenüberwachungen können Sie den Wert von Variablen überwachen, wenn der Debugger an einem Haltepunkt angehalten wird. Um eine neue Variablenüberwachung hinzuzufügen, können Sie auf das +-Symbol klicken und dann einfach den Namen der Variablen eingeben. Geben Sie als Demo die Variable ein, die wir im vorherigen Schritt "delayTime" hinzugefügt haben

Variablenbetrachter:

Sie können auch alle Variablen und ihre Werte sehen, die an Ihrem aktuellen Haltepunkt verfügbar sind. Um dies zu demonstrieren, Wenn Sie im Abschnitt "Global" nachsehen, sollten Sie die Variable "delayTime" finden.

Bearbeiten des Werts von Variablen:

Sie können auch die Werte von Variablen bearbeiten und dies wirkt sich sofort auf das Verhalten Ihres Codes aus. Um dies zu demonstrieren, klicken Sie auf die Variable delayTime im Abschnitt „Variable Viewer“und ändern Sie den Wert in „100“. Um dies zu zeigen, deaktivieren Sie den Haltepunkt innerhalb der Schleife, indem Sie erneut links neben der Zeilennummer klicken. Drücken Sie die Schaltfläche Weiter in der Haltepunkt-Navigationsleiste. Die LED auf Ihrem ESP32 sollte jetzt viel schneller blinken als zuvor.

Schritt 10: Fehlerbehebung

Fehlerbehebung
Fehlerbehebung

Ich habe während meiner Tests festgestellt, dass ich manchmal nicht auf den ESP32 hochladen konnte, während er mit dem ESP-prog verbunden war, und ich konnte kein Muster herausfinden, warum dies geschah, da ich die meiste Zeit ohne hochladen konnte irgendwelche Probleme. Ich fand, dass ich einfach den ESP32 und das ESP-Prog trennen, den Code auf den ESP32 hochladen und sie dann wieder verbinden könnte und es würde gut funktionieren.

Schritt 11: Fazit

Ich denke, dies ist ein wirklich cooles Tool, das Sie der Toolbox hinzufügen können, um herauszufinden, was in Ihrem Projekt vor sich geht.

Ich würde gerne hören, wenn Sie dies nützlich finden!. Bitte lass es mich in den Kommentaren unten wissen oder schließe dich mir und ein paar anderen Machern auf meinem Discord-Server an, wo wir dieses Thema oder jedes andere herstellerbezogene Thema diskutieren können. Die Leute sind dort wirklich hilfreich, also ist es ein großartiger Ort zum Abhängen aus.

Ein großes Dankeschön möchte ich auch meinen Github-Sponsoren aussprechen, die mir helfen, meine Arbeit zu unterstützen, ich weiß das wirklich zu schätzen. Wenn Sie es nicht wissen, passt Github die Patenschaften für das erste Jahr an. Wenn Sie also eine Patenschaft eingehen, werden sie in den nächsten Monaten zu 100% übereinstimmen. Danke fürs Lesen!

Empfohlen: