Forum: Compiler & IDEs ESP32 debuggen mit PlatformIO


von Mario S. (mario_s269)


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

von J. S. (jojos)


Lesenswert?

Ich habe das gleiche setup und es funktioniert, ich habe noch zusätzlich
1
debug_speed = 10000
drin

von Thomas H. (Firma: CIA) (apostel13)


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.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Thomas H. schrieb:
> Mein Tipp zum Debuggen wäre VisualGDB als Plugin für VisualStudio

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

: Bearbeitet durch User
von Thomas H. (Firma: CIA) (apostel13)


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.

von Niklas G. (erlkoenig) Benutzerseite


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.

von Thomas H. (Firma: CIA) (apostel13)


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.

von Axel H. (hippie_1954)


Lesenswert?

Hast das inzwischen gelöst ?
Ich kenn das Problem.
Ich geh dann IO-Home, Projekt öffnen, ...
LG
Axel

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.