Inhaltsverzeichnis:
- Schritt 1: Softwarevoraussetzungen
- Schritt 2: Treiberinstallation und Konfiguration
- Schritt 3: OpenOCD, Toolchain und Gdb
- Schritt 4: Verdrahtung und erster Test
- Schritt 5: Debug-Konfiguration zu Visual Studio-Code hinzufügen
Video: ESP32 - Günstige Lösung für in Circuit Debug - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Hallo, In diesem anweisbaren wird beschrieben, wie man einen billigen JTAG-Adapter basierend auf dem FTDI 2232HL-Chip mit visuellem Code und Arduino-Addon einrichtet.
- FTDI 2232HL Modul mit USB Anschluss ab 8$ bei ebay und es wird keine kostenpflichtige Software benötigt. Dies ist eine großartige Lösung für Bastler, die nicht mehr als 50 $ für einen professionellen JTAG-Adapter ausgeben möchten.
- Dieser Adapter kann zum Debuggen anderer Plattformen wie ESP8266, ARM, AVR und vielen anderen verwendet werden. Einige Konfigurationen hängen von der Zielplattform ab. Diese Anleitung behandelt nur die Einrichtung für ESP32.
- Wenn Sie bereits einen JTAG-Adapter besitzen, können Sie ihn verwenden, wenn er von openOCD unterstützt wird. Starten Sie openocd einfach mit einer anderen Konfigurationsdatei, je nach Typ Ihres JTAG-Adapters.
- platform.io kann Ihnen die Einrichtung erleichtern, aber das Debuggen wird nur in der kostenpflichtigen professionellen Version unterstützt.
- Funktioniert mit den meisten ESP32-Modulen. (zum Beispiel billig wemos Lolin 32)
- dieser Jtag-Adapter sollte auch mit Linux funktionieren, aber ich persönlich habe ihn nicht getestet.
Schritt 1: Softwarevoraussetzungen
Arduino-IDE-Version 1.8 oder neuer. Die Windows Store-Version wird nicht unterstützt. Sie müssen die klassische Installationsversion verwenden, die von der offiziellen Arduino-Seite https://www.arduino.cc heruntergeladen werden kann
Microsoft Visual Studio-Code
Diese Addons für Visual Studio Code sind obligatorisch
- Arduino
- Natives Debugging
Ich empfehle auch, dieses Addon zu installieren, das Intelisense für C/C++ aktiviert
C/C++
In diesem Handbuch verwende ich 2 Arbeitsordner:
D:\devel\ESP32\tools\ - hier habe ich alle Tools abgelegt
C:\Users\xxxxx\Documents\Arduino\YourProject\ - das ist der Ordner mit der Skizze
Sie können Ihre Dateien woanders platzieren, wenn Sie möchten, vergessen Sie jedoch nicht, alle Verweise mit Ihrem tatsächlichen Pfad zu aktualisieren.
Schritt 2: Treiberinstallation und Konfiguration
Selbst wenn Windows FT2232 standardmäßig automatisch erkennt, reichen die Windows-Standardtreiber nicht für alle erweiterten Funktionen aus und es ist erforderlich, den Treiber von der FTDI-Site https://www.ftdichip.com/Drivers/VCP.htm herunterzuladen und zu installieren
Wenn der richtige Treiber installiert ist, sollten Sie Ihr FT2232-Modul im Gerätemanager nicht nur als 2 serielle Ports sehen, sondern auch als "USB-Seriell-Konverter A" und "USB-Seriell-Konverter B"
Der zweite Schritt besteht darin, den Treiber für einen Kanal unseres Konverters zu ändern. Laden Sie das Zadig-Tool von https://zadig.akeo.ie/ herunter. Wenn ich das richtig verstehe, verbindet dieses Tool den WinUSB-Treiber mit dem FTDI-Gerät, das eine Low-Level-Kommunikation zwischen openOCD und USB-Gerät ermöglicht.
Aktivieren Sie im zadig-Tool im Menü "Optionen" die Option "Alle Geräte anzeigen", dann sollten Sie Ihren Adapter in der Liste der verfügbaren Geräte sehen. Wählen Sie „Dual RS232-HS (Interface 0)“aus, wählen Sie dann den Ersatztreiber „WinUSB v6.1.xxxx“und klicken Sie abschließend auf die Schaltfläche „Treiber ersetzen“.
Wenn Sie Ihren Adapter an einen anderen USB-Port Ihres Computers anschließen, müssen Sie die Treibereinstellungen erneut über das zadig-Tool ändern, ansonsten findet openOCD Ihren Adapter nicht.
Schritt 3: OpenOCD, Toolchain und Gdb
1. Open OCD ist ein Tool für das Debugging im Kreislauf, auf der einen Seite kommuniziert es mit dem Chip, auf der anderen Seite bietet es einen gdb-Server, mit dem sich der Debugger (Client) verbinden kann. Laden Sie openOCD für ESP32 von https://github.com/espressif/openocd-esp32/releases herunter und entpacken Sie es in den Ordner D:\devel\ESP32\tools
2. Bearbeiten Sie die openOCD-Konfigurationsdateien:
esp-wroom-32.cfg
Der vollständige Pfad zu dieser Datei lautet:
D:\devel\ESP32\tools\openocd-esp32\share\openocd\scripts\board\esp-wroom-32.cfg
In dieser Datei können Sie die Kommunikationsgeschwindigkeit einstellen, indem Sie den Parameter "adapter_khz" ändern. Zum Beispiel bedeutet "adapter_khz 8000" 8Mhz.
Der Standardwert ist 20 MHz und kann zu hoch sein, wenn Sie längere Steckbrücken oder Steckbretter verwenden. Ich empfehle mit 1Mhz zu starten und wenn alles in Ordnung ist, auf höhere Geschwindigkeit zu gehen, bei mir funktioniert 8Mhz zuverlässig.
minimodule.cfg
Der vollständige Pfad zu dieser Datei lautet: D:\devel\ESP32\tools\openocd-esp32\share\openocd\scripts\interface\ftdi\minimodule.cfg
Wenn ich das richtig verstehe, ist das Original-Minimodul ein überteuertes Brakeout-Board mit FT 2232 von FTDI und der einzige Unterschied zwischen dem Original-Minimodul und dem billigen Modul oder dem auf dem Markt erhältlichen Bare-Chip ist die Standard-USB-Beschreibung. open OCD sucht Jtag-Adapter basierend auf Gerätebeschreibung, auch Layout-Init muss angepasst werden.
Günstige Module haben die Bezeichnung "Dual RS232-HS". Wenn Sie sich bei der Beschreibung Ihres Geräts nicht sicher sind, können Sie diese im Gerätemanager -> Geräteeigenschaften -> Registerkarte Details -> Wert der Eigenschaft "Bus-gemeldete Gerätebeschreibung" überprüfen.
Der Inhalt der minimodule.cfg sollte wie im Beispiel unten aussehen, Zeilen, die mit # beginnen, können gelöscht werden.
Schnittstelle ftdi#ftdi_device_desc "FT2232H MiniModule" ftdi_device_desc "Dual RS232-HS" ftdi_vid_pid 0x0403 0x6010 #ftdi_layout_init 0x0018 0x05fb ftdi_layout_init 0x0008 0x000b ftdi_layout_data
esp32.cfg
Der vollständige Pfad zu dieser Datei lautet:
D:\devel\ESP32\tools\openocd-esp32\share\openocd\scripts\target\esp32.cfg
Hängen Sie die folgenden 2 Zeilen an das Ende von esp32.cfg an. Ohne diese Modifikation funktioniert das Hinzufügen von Bremspunkten nicht.
#HW-Haltepunkte erzwingen. Sobald wir eine Speicherkarte haben, können wir auch Software bps.gdb_breakpoint_override hard erlauben
3. Laden Sie die xtensa-esp32-elf-Toolchain herunter und installieren Sie sie – diese Toolchain enthält einen Befehlszeilen-Debugger (gdb-Client), der für ein funktionierendes Debugging von jeder grafischen IDE unerlässlich ist. Die reine Toolchain kann von der espressif-Site heruntergeladen werden, Abschnitt "Alternatives Setup"
Schritt 4: Verdrahtung und erster Test
FT2322-Modul mit ESP verbinden. Ich empfehle, so kurze Drähte wie möglich zu verwenden. Wenn Sie neu bei JTAG sind, vergessen Sie nicht, dass TDI des Adapters zu TDI des Chips geht, auch TDO des Adapters wird zu TDO des Chips gehen. JTAG-Datenleitungen werden NICHT wie Rx/Tx auf uart gekreuzt!
Für den folgenden Test empfehle ich das Hochladen einer Blinkbeispielskizze oder einer anderen Skizze, die durch Blinken der LED oder Piepen oder Schreiben auf die serielle Konsole anzeigen kann, ob die CPU läuft oder nicht.
Starten Sie openOCD mit folgendem Befehl
D:\devel\ESP32\tools\openocd-esp32\bin\openocd.exe-s D:\devel\ESP32\tools\openocd-esp32\share\openocd\scripts -f interface/ftdi/minimodule.cfg -f board /esp-wroom-32.cfg
Dadurch wird openOCD gestartet und wenn alles in Ordnung ist, sollten Sie in der Befehlszeilenausgabe folgende Zeilen sehen:
Info: Taktfrequenz 8000 kHzInfo: JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info: JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), Teil: 0x2003, Version: 0x1)
Auch der Openocd-Prozess hört auf TCP-Port 3333
Öffnen Sie ein neues Terminal und starten Sie den Befehlszeilen-gdb-Client, indem Sie dem Befehl folgen
D:\devel\ESP32\tools\xtensa-esp32-elf\bin\xtensa-esp32-elf-gdb.exe
Warten Sie eine Sekunde und wenn das gdb-Terminal bereit ist, schreiben Sie die folgenden Befehle nacheinander
Zielfernbedienung: 3333mon Reset Halt fortsetzen
Der erste Befehl öffnet die Verbindung zum Openocd-Debug-Server, der zweite stoppt die Programmausführung auf ESP und die LED sollte aufhören zu blinken, die Wiederherstellung der Programmausführung fortsetzen und die LED sollte wieder anfangen zu blinken.
Schritt 5: Debug-Konfiguration zu Visual Studio-Code hinzufügen
Ich gehe davon aus, dass Sie zu diesem Zeitpunkt bereits Visual Studio-Code und Arduino-Addon richtig konfiguriert haben und Ihre Skizze überprüfen und auf das Board hochladen können. Wenn nicht, lesen Sie bitte einige Anweisungen zum Konfigurieren von Visual Studio-Code und Arduino, zum Beispiel auf dieser Seite
Damit das Debugging funktioniert, muss der Build-Ausgabeordner angegeben werden. Unter Ihrem Sketch-Ordner befindet sich der (versteckte) Ordner.vscode, in dem sich die Datei arduino.json befindet. fügen Sie dieser Datei folgende Zeile hinzu:
"output": "BuildOutput/"
Führen Sie die Überprüfung aus oder laden Sie sie hoch und überprüfen Sie Ihren Skizzenordner erneut. Es sollte ein neuer BuildOutput-Ordner und darin eine Datei mit der Erweiterung.elf vorhanden sein. elf Datei ist für das Debuggen von entscheidender Bedeutung.
Debugger-Einstellungen befinden sich in der Datei launch.json. Erstellen Sie diese Datei mit folgendem Inhalt, oder kopieren Sie diese Datei aus dem angehängten Beispielprojekt. Vergessen Sie nicht, Zeile 26 anzupassen und den richtigen Pfad zu Ihrer Projekt-.elf-Datei zu definieren.
{ // Verwenden Sie IntelliSense, um mehr über mögliche Attribute zu erfahren. // Bewegen Sie den Mauszeiger, um Beschreibungen vorhandener Attribute anzuzeigen. // Weitere Informationen finden Sie unter: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [{ "name": "Arduino-GDB-openOCD ", "type": "cppdbg", "request": "launch", "program": "${file}", "cwd": "${workspaceRoot}/BuildOutput/", "MIMode": "gdb", "targetArchitecture": "arm", "miDebuggerPath": "D:/devel/ESP32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-gdb.exe", "debugServerArgs": "", " customLaunchSetupCommands": [{ "text": "target remote: 3333" }, { "text": "mon reset halt" }, { //dynamische Variante "text": "file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf" //statische Variante //"text": "file c:/Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf" }, { "text": "flushregs" }, { "text": "thb app_main" }, { "text": "c", "ignoreFailures": true }], "stopAtEntry": true, "serverStarted": "Info \: [w\d\.]*:\ hardware", "launchCompleteCommand": "exec-continue", "filterStderr": true, "args": }] }
So starten Sie das Debuggen:
- Kompilieren Sie Ihre Skizze und laden Sie sie auf die Tafel hoch
- openOCD mit Parametern starten
- Setzen Sie Bremspunkte im Code, wo Sie möchten
- Stellen Sie nach dem Setzen aller Bremspunkte sicher, dass Sie die Haupt-.ino-Datei Ihres Projekts geöffnet haben. (oder Hardcode-Pfad zur.elf-Datei in launch.json)
- Debug-Panel im vs-Code öffnen (Strg + Umschalt + D)
- Wählen Sie den Debugger "Arduino-GDB-openOCD", sollte nur verfügbar sein.
- Drücken Sie F5, um das Debuggen zu starten
Empfohlen:
Arduino Auto-Rückfahrwarnsystem - Schritt für Schritt: 4 Schritte
Arduino Auto-Rückfahrwarnsystem | Schritt für Schritt: In diesem Projekt entwerfe ich eine einfache Arduino-Auto-Rückwärts-Parksensorschaltung mit Arduino UNO und dem Ultraschallsensor HC-SR04. Dieses Arduino-basierte Car-Reverse-Warnsystem kann für eine autonome Navigation, Roboter-Ranging und andere Entfernungsr
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): 3 Schritte
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): Manchmal korrigiert die Autokorrektur möglicherweise etwas, das Sie nicht korrigieren möchten, z. Textabkürzungen beginnen sich in Großbuchstaben zu setzen (imo korrigieren zum Beispiel zu IMO). So erzwingen Sie, dass die Korrektur eines Wortes oder einer Phrase beendet wird, ohne aut zu deaktivieren
Interessante Programmieranleitung für Designer - Bringen Sie Ihr Bild zum Laufen (Teil 2): 8 Schritte
Interessante Programmieranleitung für Designer – Bringen Sie Ihr Bild zum Laufen (Teil 2): Mathematik scheint für die meisten von Ihnen nutzlos zu sein. Die in unserem täglichen Leben am häufigsten verwendete ist einfach Addieren, Subtrahieren, Multiplizieren und Dividieren. Es ist jedoch ganz anders, wenn Sie mit Programm erstellen können. Je mehr Sie wissen, desto mehr wundervolle Ergebnisse werden Sie erhalten
Installieren des Windows-Subsystems für Linux (WSL): 3 Schritte
Installieren des Windows-Subsystems für Linux (WSL): Diese Anleitung soll Benutzern helfen, das Windows-Subsystem für Linux auf ihrem Windows 10-Computer zu installieren. Die spezifische Linux-Distribution, die dieser Befehlssatz verwendet, heißt Ubuntu. Schauen Sie hier für eine Übersicht über die verschiedenen Linux
So erhalten Sie eine GEHEIME WELT !!!!!! (Debug-Modus): 3 Schritte
So erhalten Sie eine GEHEIME WELT !!!!!! (Debug-Modus): In diesem anweisbaren zeige ich Ihnen, wie Sie in Minecraft zu einem geheimen Weltmodus gelangen