My question:
Would anyone who is using JTAG with OpenOCD and GDB to debug ESP32s care to share their experiences? Setup and workflow? Debugging techniques? I finally got JTAG/GDB set up and I'm really excited have the tools that I've had for years with PICs (and 80xx's long before that...)
I can see a number of possible ways to do it, and I'd appreciate any suggestions from those who are farther long than I am.
---------------------------------------------------------------------
For those not afraid of tl;dr:
(It's not really necessary to read below this line, it's just me blabbing a bit...) ---------------------------------------------------------------------
I've always preferred to use breakpoints and single-stepping when working with microcontrollers. Back in the '70s when we had Intel's 8031/8048 development systems, huge 8" floppy-based systems that ran the ISIS OS (based on CP/M). Antique stuff now.
Years later I got into PICs. I've always used Microchip's MPLAB/MPLABX IDEs and their ICD2/ICD3 products to allow simulation, breakpoints, single-stepping and other useful debugging techniques.
I briefly looked at the Arduino world but was put off by the lack of diagnostic tools. SERIAL.PRINT statements peppered throughout the code aren't quite enough for me, especiallty when you're trying to debug or understand some of the more complex Arduino library code available online. Sometimes I like to see what's happening step-by-step.
Later, I started using the ESP8266 in serial AT-command-mode to get wifi with PICs. I soon realized that the ESP8266 processor was in many ways more powerful than the PICs I was using. But I didn't want to get into developing directly on them because of the seeming lack of diagnostic tools.
Then I discovered the ESP32. Wow. Not perfect, but powerful and feature-rich. So I ended up moving to the Arduino IDE to work with them.
But it was still frustrating to have to resort to SERIAL.PRINT debug statements...until I discovered JTAG and OpenOCD and GDB and the ability to use them to debug effectively via sophisticated breakpoints, single-stepping, etc.
So now that I've just gotten my setup working, I'm really excited about it. I want to set things up in the best way for project development, with minimal time spent hassling with the tools.
Currently I do most of my dev work on the Mac, but I'm using MS Visual Studio under Windows via Parallels to do the JTAG debugging. It's a little awkward using two platforms (even though I map the Mac's Arduino setup to the Windows VM, so Windows sees everything properly).
So...has anyone who's already traveled this road have suggestions on the best way to set things up? Software, tools, techniques, etc.?
Thanks in advance....