ESP32 debuggen mit PlatformIO

OP #7551728
Lesenswert?

Hallo,

zum programmiern und debuggen von ESP32 Projekten verwendet ich PlatformIO mit einem ESP-Prog Adapter. Das debuggen erfolgt über die JTAG Schnittstelle. Mein Problem ist nun, das starten der Debug Umgebung ist sehr tagesabhänig. Es gibt Tage an denen es sofort fehlerfrei funktioniert, an anderen Tagen überhaupt nicht. Am Hardwareaufbau hat sich nichts verändert. Auch ein Neustart des Rechners bringt keinen Erfolg.

Setup:

1
Ich habe per Zadig geprüft ob die richtigen USB-Treiber (WinUSB (v6.1.7600.16385)) geladen sind. 
2
ESP32 Dev. Kit
3
ESP-Prog JTAG Schnittstelle, Verbindung zum Target über ein Flachbandkabel ca. 12cm lang
4
PlatformIO: Core 6.1.11    Home 3.4.4

PlatformIO.ini

1
  [env:esp32doit-devkit-v1]
2
  platform = espressif32
3
  board = esp32doit-devkit-v1
4
  framework = arduino
5
  monitor_speed = 115200
6
  debug_tool = esp-prog
7
  debug_init_break = tbreak setup
8
  lib_deps = 
9
  ESP Async WebServer
10
  ayushsharma82/AsyncElegantOTA @ ^2.2.5
11
  knolleary/PubSubClient@^2.8
12

13
  Fehlermeldung:
14
  Error: target_hash 000...000
15
  Error: file_hash: a1108e...9dcd9c
16
  Target is already running an algorithm
17
  Failed to start algorithm (-4)!
18
  PROF: Flash verified in 101.936 ms 
19
  **** Verification failure! ****
20
  target_hash 000...000
21
  file_hash: a1108e...9dcd9c
22
  ** Verify Failed **
23
  .pioinit:12: Error in sourced command file:
24
  Protocol error with Rcmd

Habt ihr eine Tip was die Ursache für diesen Fehler sein kann. Gibt es JTAG Adapter die evtl besser geeignet sind?

Danke Mario

(Firma: CIA) #7559247
Lesenswert?

Mein Tipp zum Debuggen wäre VisualGDB als Plugin für VisualStudio (nicht Code) ist zwar kostenpflichtig, aber bietet beim Debuggen wesentlich mehr als VSC und läuft im Gegensatz zu Eclipse out of the box und unterstützt auch das Arduino Framework, wenn man es denn braucht.

(Firma: CIA) #7559349
Lesenswert?

Niklas G. schrieb:

Benutzt das einen anderen OpenOCD/GDB-Server welcher stabiler läuft als der normale von ESP?

Ich nehme an es ist mit ESP, Espressif gemeint. Lässt sich alles auf der Webseite des Entwicklers nachlesen. Es arbeitet, -wie auch immer- meiner Meinung nach stabiler. Was aber noch viel interessanter ist, ist dass ich simultan meinen C-Code, den AssemblyCode, alle IO's, CPU-Register und Memory simultan anzeigen lassen kann. Das geht ansonsten nur bei Eclipse. Bei VSC habe ich leider noch keine Möglichkeit gefunden das so hinzubekommen. Zudem schätze ich es, wenn eine IDE out of the Box läuft. Irgendwelche Konfigurationen in plain text files zu editieren, oder mich gar mit der commandline auseinanderzusetzen, dafür habe ich keine Lust und keine Zeit. So was braucht man nicht, das sind unfertige Lösungen.

Persönliche Seite #7559355
Lesenswert?

Thomas H. schrieb:

Irgendwelche Konfigurationen in plain text files zu editieren,

Ist bei Eclipse auch nicht nötig. Man muss lediglich (über die grafische Oberfläche) die Espressif-Plugins installieren, dann funktioniert das auch alles sofort...

Zum Thema: Ich glaube die ESP32 lassen sich nicht wirklich über JTAG flashen. Du musst erst per Serial flashen und danach ohne flashen exakt das selbe Programm per JTAG debuggen.

(Firma: CIA) #7559387
Lesenswert?

Niklas G. schrieb:

Thomas H. schrieb:

Irgendwelche Konfigurationen in plain text files zu editieren,

Ist bei Eclipse auch nicht nötig. Man muss lediglich (über die grafische Oberfläche) die Espressif-Plugins installieren, dann funktioniert das auch alles sofort...

Beim zufügen einer QuellCode datei muss ich leider immer manuell im Cmake file das ganze bekannt machen. Das habe ich bei VisualGDB nicht. Eclipse ist aber eine gute Wahl, wenn es nur nicht JAVA währe....

Zum Thema: Ich glaube die ESP32 lassen sich nicht wirklich über JTAG flashen. Du musst erst per Serial flashen und danach ohne flashen exakt das selbe Programm per JTAG debuggen.

Doch das geht tatsächlich, es dürfen nur die entsprechenden GPIO's nicht kompromittiert sein. Aber dann würde auch das Debuggen nicht funktionieren. Ist tatsächlich eine häufige Fehlerquelle.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren