Forum: Mikrocontroller und Digitale Elektronik ESP-S3 wie debuggen?


von Dirk (Gast)


Lesenswert?

Hallo.

Ich habe einen ESP32-S3 und stehe gerade vor dem Problem das ich an den 
internen Debugger nicht ran komme bzw ich nicht debuggen kann.

1. Test unter VS Code
WINDOWS erkennt den ESP Debugger auf der USB Schnittstelle.
Ich kann mein Programm flashen und auf der UART-USB Schnittstelle sehe 
ich meine Ausgaben. Also das Programm ist drauf, nur wie kann man nun 
anhalten / starten und Variablen ansehen?

2. Test unter Expresif IDF
WINDOWS erkennt den ESP Debugger auf der USB Schnittstelle.
Build läuft, aber dann hört es auf.


Also wie geht das und was muss ich wo eintragen?

von Dirk (Gast)


Lesenswert?

So auch nach weiteren Lesen und Testen bin ich kein Stück weiter.

So kompliziert kann das doch gar nicht sein. So was muss doch eigentlich 
jeder machen/wissen der ernsthaft mit einem esp32-s3 was macht.

Nur finde ich die Beschreibung (drücke hier, dann da) nicht.
Wäre jemand von euch so nett und teilt sein Wissen.

von A. B. (funky)


Lesenswert?

https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/jtag-debugging/index.html

unter Windows brauchst du wahrscheinlich noch die zadig Treiber suite 
damit du openocd nutzen kannst
 Das ist aber abhängig von der debug hardware
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/jtag-debugging/configure-ft2232h-jtag.html

von Dirk (Gast)


Lesenswert?

Kenne ich und bekomme es nicht hin.

VS code als Editor wäre noch besser.
Aber da finde ich nichts. Das Programm drauf laden geht aber.

von J. S. (jojos)


Lesenswert?

im VSCode fehlt praktisch die Debug Anbindung über gdb an OpenOCD. 
Relativ einfach ist es PlatformIO zu benutzen, das installiert einen 
angepassten OpenOCD und hat eine gute Debug Engine. Für das Interface 0 
vom esp-prog muss dann der WinUSB Treiber aktiv sein. In der Debug 
Console bekommt man Ausgaben wenn etwas nicht klappt.

von Vincent H. (vinci)


Lesenswert?

Dirk schrieb:
> Ich habe einen ESP32-S3 und stehe gerade vor dem Problem das ich an den
> internen Debugger nicht ran komme bzw ich nicht debuggen kann.

Was meinst du mit "internen Debugger"?

von Dirk (Gast)


Lesenswert?

Der esp32-s3 hat über die USB Schnittstelle einen intern jtag.
Man kann aber auch extern einen dran hängen. Das wäre dann mein nächster 
Versuch gewesen.

Wenn da sozusagen die Verbindung zwischen den beiden Debugg 
Schnittstellen fehlt ist es ja dann kein Wunder warum ich das nicht 
hinbekomme.

PlatformIO werde ich ausprobieren.

von Vincent H. (vinci)


Lesenswert?

Ach tatsächlich ja. Ich dachte es gibt nur eine interne 
"Debug-unterstützende" UART Bridge. Ich würd mich bei der üblichen 
Qualität von Espressif aber hüten diesen internen JTAG zu nutzen. Die 
Erstkunden sind wie immer Alpha Tester.

Ansonsten würde ich raten erstmal auf jegliches IDE Gedings zu 
verzichten und zu versuchen via Kommandozeile einzusteigen. Sprich 
wirklich händisch GDB starten... Solang das schon nicht geht macht 
PlatformIO und Co kaum Sinn (außer vielleicht um sich diverse Parameter 
für die Übergabe abzuschaun)

/edit
Typo

: Bearbeitet durch User
von Heino (Gast)


Lesenswert?

Warum sollte man für einen ESP/Arduino einen Debugger brauchen?
Serial.println reicht doch vollkommen aus.

von Dirk (Gast)


Lesenswert?

Adruino kann ich zumindest mit dem offiziellen loop nicht gebrauchen.
Bei mir ist alles Std c.

Ob das nun eine USB Bridge ist oder etwas besseres kann ich nicht sagen.
Da frag mich mal in ein paar Monaten. Muss noch mal schauen ob mein 
j-link da funktioniert.

So richtig hab ich das noch nicht verstanden wie das ganze funktioniert.
Da ist ein STM32 um Klassen einfacher oder die Umgebung ist einfacher zu 
bedienen.
Ich denke inzwischen das vs code und ich nicht kompatibel sind.

Warum einen Debugger?
Ist das eine ernst gemeinte Frage?
Wie kann man ohne ernsthaft Arbeiten?

von Heino (Gast)


Lesenswert?

Dirk schrieb:
> Warum einen Debugger?
> Ist das eine ernst gemeinte Frage?
> Wie kann man ohne ernsthaft Arbeiten?

Ja die Frage ist ernst gemeint. Debugger habe ich damals bei der 
Erstellung von Windows-Programmen eingesetzt. Seit 15J programmiere ich 
uCs und habe dabei noch nie einen Debugger genutzt.
Die spannenden Probleme wie Verhalten bei Signaljitter, 
Regler-Abstimmung etc kann man kaum mit einem Debugger nachvollziehen. 
Um das Zusammenspiel von  Statemachines zu debuggen sind mmn Traces oft 
besser. Mit dem Debugger komme ich da nicht weit

von Dirk (Gast)


Lesenswert?

Gut Laufzeitabläuft macht man mit Portpins und messen, da hilft kein 
Debugger.
Aber für alles andere ist es das Werkzeug Nummer 1.

Wenn Du und wohl auch viele andere mit printf klar kommen warum nicht, 
nur wirklich effektiv finde ich das nicht.

Bsonders wenn mal was nicht so läuft wie gedacht, da kann ich einfach 
anhalten und Schritt für Schritt den Code ablaufen. Dazu kann ich mir 
die Variablen ansehen und so den Fehler einkreisen. Mit printf brauche 
ich da erheblich länger wenn  ich es überhaupt damit finde.

von Rolf J. (rolf_j)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.