Hallo,
auf meinem Tisch habe ich ein ESP32-S3-ZERO Board. Die S3 Varianten hat
internen einen Debugger. Diesen möchte ich in VSCode mit PlatformIO
nutzen. Leider ist dies mir noch nicht gelungen, dass ich debuggen kann.
platformio.ini:
[env:esp32-s3-devkitc-1]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
Hat hier jemand damit bereits Erfahrungen sammeln können?
Andreas B. schrieb:> @kirnbichler, unter "intern" versteht Espressif, dass der ESP32-S3 im> Gegensatz zum ESP32 auch über den internen USB Anschluß debugged werden> kann.
Danke für Hinweis und Link.
Laut Recherche müsste der ESP32C3 auch einen integrierten JTAG Debugger
besitzen. Áuch mit dem ESP32C3 hab ich den internen Debugger bisher
nicht erfolgreich zum Laufen bekommen.
Guten Morgen,
irgendwie will das nicht so mit dem debuggen. Ich habe einen esp32c3, da
soll nur der debugger in vscode + platformio laufen. Das mit dem esp32s3
sollte ja eigentlich auch mit dem internen debugger funktionieren. Tut
es aber nicht.
Ich habe alles mögliche schon gesucht und probiert. Ich verenne mich da
komplett. Geht überhaupt der interne Debugger auf dem esp32C3?
ini file:
[env:seeed_xiao_esp32c3]
platform = espressif32
board = seeed_xiao_esp32c3
framework = arduino
upload_protocol = esp-prog
debug_tool = esp-prog
debug_init_break = tbreak setup
Ich habe auch schon auf der Kommandozeile versucht mit openoced und gdp
das zum laufen zu bringen. Ohne Erfolg.
Im Windows Gerätemanager ist der Treiber auch korrekt installiert und
vorhanden.
Zo R. schrieb:> Error: esp_usb_jtag: could not find or open device!
Muss man unter Windows da nicht auch mit Zadig die libusb für das device
als Treiber ersetzen? So ist es auch wenn man den esp-prog verwendet.
Zo R. schrieb:> Error: libusb_open() failed with LIBUSB_ERROR_ACCESS> Error: esp_usb_jtag: could not find or open device!
da ist nichts zerchoßen. Die Fehlermeldung ist doch eindeutig, es wird
libusb verwendet und damit wird ein device mit vid:pid gesucht. Und die
wird nicht gefunden.
Das ist doch ein Berechtigungsproblem.
Dieselbe Fehlermeldung kommt unter Linux, wenn der Benutzer nicht die
nötigen Rechte hat.
Unter Linux passt man dann die udev-Regeln an.
Wie es unter Windows geht, weiss ich leider nicht.
Also der interne USB Debugger funktioniert eigentlich recht gut.
Habe darüber schon gut 500 esp32s3 programmiert.
Aber es ist unter Windows eine Qual, weil jeder esp als neues device
erkannt wird mit dem üblichen Treiber gesuche.
Es werden 3 Geräte erkannt und sollten alle mit Treiber lauffähig sein.
Den einzurichten hatte schon mir einiges an Nerven gekostet. Im Grunde
war es aber genauso wie in der Anleitung vom Hersteller.
Ich schau mal ob ich das wieder finde.
Dirk E. schrieb:> weil jeder esp als neues device> erkannt wird
Wenn in dessen Devicedescriptor eine eindeutige Seriennummer steht, ist
das nicht weiter verwunderlich. Windows unterscheidet USB-Geräte mit
identischer VID/PID anhand der Seriennummer und/oder anhand der Adresse
im USB-Gerätebaum (die sich ändert, wenn das Gerät in eine andere Buchse
gesteckt wird).
FTDI kennt die Einstellungsmöglichkeit "ignoriere Seriennummer", so daß
jeder FT232, der in die selbe USB-Buchse gesteckt wird, als das selbe
Gerät erkannt wird, d.h. ohne weitere Treiberinstallation und ohne
Durcheinander bei den virtuellen Schnittstellnnummern.
https://ftdichip.com/utilities/, "Ignore Hardware Serial Number Registry
Editor Utility"
Ok und was bringt mir diese Erkenntnis. Bei mir ist es mittlerweile so,
dass nun nichts mehr geht. Kein COM Port wurde mehr gefunden. Ich musste
alle USB Komponenten im Gerätemanager deinstallieren.
Mit dem Tool zadiag.exe kann ich trotz Installation WinUSB keinen
Eintrag im Gerätemanager finden mit "USB JTAG/Serial debug unit
(Interface 0) (COMX)".
Ich verstehe das ganze nicht mehr.
An den ESP32C3 habe ich auch mal den Segger JLink Plus Debugger
angeschlossen. Auch da funktioniert die JTAG Verbindung nicht.
Kann mir hierzu jemand helfen?
JTAG Signal XIAO ESP32-C3 Pin
TMS Pin7 D4
TDI Pin5 D5
TDO Pin13 D7
TCK Pin9 D6
GND Pin4 GND
VREF Pin1 3V3
JTAG Signal => Sub-D 20polig
Zo R. schrieb:> An den ESP32C3 habe ich auch mal den Segger JLink Plus Debugger> angeschlossen. Auch da funktioniert die JTAG Verbindung nicht.> Kann mir hierzu jemand helfen?>> JTAG Signal XIAO ESP32-C3 Pin> TMS Pin7 D4> TDI Pin5 D5> TDO Pin13 D7> TCK Pin9 D6> GND Pin4 GND> VREF Pin1 3V3>> JTAG Signal => Sub-D 20polig
Bei dem C3 ist der Trick mit dem eingebauten Debugger, den GPIO8 pin (D8
beim XIAO) auf 3,3V zu legen. Dann braucht man keinen externen Debugger
in PlatformIO.
Gruß Dieter
Hi Dieter, wo hast du diese Information her?
Ich muss D8 zusätzlich auf 3.3V legen, dann funktioniert auch der
interne Debugger?
Da mit den Treibern für USB einige Änderungen durchgeführt wurden, sehe
ich den COM im Gerätemanager als USB serial com. Ich bekomme es nicht
mehr hin, dass der COM auf USB Jtag/Serial COM gestellt wird.
Zo R. schrieb:> Danke ich arbeite unter Windows.
Und? Wo ist jetzt das Problem?
Erwartest Du eine freundliche Oberfläche mit drei sanften, in
beruhigenden Farben getönten Buttons, die erkennen, was Du meinst zu
wollen?
Die relevanten Dinge - Espressif-IDF, OpenOCD und GDB existieren
allesamt auch für Windows.
Und auch unter Windows kann man Dinge in eine Kommandozeile eingeben;
man muss nur dran denken, daß der Pfadtrenner \ und nicht / ist.
Und wenn Du ein bisschen nach unten scrollst, siehst Du auch, daß der
Kram für PlatformIO beschrieben wird. Und das gibt es erst recht für
Windows.
Ein bisschen Transferleistung muss man hinbekommen, insbesondere, wenn
man Programmierer und nicht "Gamer" sein will.
Zo R. schrieb:> Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
Hast Du geprüft, ob die stimmen?
(Im "Gerätemanager" nachsehen, welche VID/PID das USB-Ding hat)
Was steht in Zeile 9 von
"C:/platformio/packages/openocd-esp32/bin/../share/openocd/scripts/targe
t/esp_common.cfg"?
So ich habe nun zahlreiche Informationen im Netz gelesen.
Ich habe mit zadiag nun für das Interface 0 den WinUSB treiber
installiert und für das Interface 1 den libusbK Treiber. Jetzt konnte
ich mit dem internen Debugger zunächst mal eine Verbindung herstellen
(ESP32S3-ZERO).
Jetzt wird in vscode in die Datei "panic:abort.dbgasm" gesprungen aber
nicht in die main Datei, wo ich einen Breakpoint in setup gesetzt habe.
Das wiederum versteh ich auch nicht ganz. Was kann ich verdammt tun
damit dieser Mist erflogreich läuft.
platformio.ini:
Ich denke das ist nur die halbe Miete. Ich hab grad mal nachgeschaut wie
ich das damals gemacht hab. Wichtig waren die "build parameter" von
unten, d.h. die debug_build_flags.
Ich bin echt am verzweifeln. Das kann doch nicht sein. Ich habe auch die
Befürchtung, dass wenn ich den esp-prog anschließe, das mit dem
Debubgging auch nicht gescheit funktionieren wird. Das ist so ein
Billigscheiss.
Man will eigentlich nur eine Anwendung entwickeln. Ich will nicht die
ganze IDE Scheisse durchkauen und schaune wo und warum das nicht geht.