前提
- 在 windows 上安装 esp-idf CMD 软件编译环境,可参考“Windows 上搭建 ESP-IDF SDK 编译环境 + Visual Studio Code 软件编程环境”说明。
- 硬件上使用 ESP32 JTAG 接口与 ESP-PROG 工具的 JTAG 接口一一建立连接,参见 “配置其他 JTAG 接口” 说明,如下:
| ESP32 管脚 | JTAG 信号 |
|---|---|
| MTDO / GPIO15 | TDO |
| MTDI / GPIO12 | TDI |
| MTCK / GPIO13 | TCK |
| MTMS / GPIO14 | TMS |
| GND | GND |

检查 ESP32 上用于 JTAG 通信的管脚是否被连接到了其它硬件上,这可能会影响 JTAG 的工作。
连接 ESP32 和 JTAG 接口上的管脚或信号。
JTAG 调试详细步骤说明
1 运行 openocd
-
由于 esp-idf CMD 编译环境已经安装好 openocd 的环境,因此不需要手动安装,只需要打开 esp-idf CMD 终端窗口即可。

-
然后运行如下指令查询 openocd 环境:
openocd --version
- 运行如下指令启动
OpenOCD环境
openocd -f interface/ftdi/esp32_devkitj_v1.cfg -f target/esp32.cfg

- 若 openocd 环境运行失败,报错 Not found Device ,需考虑手动安装 Zadig 驱动,请参见 “Windows - 手动更改驱动程序” 说明。
- 若运行 openocd 环境,报错如下,需检查 ESP32 的 JTAG 管脚是否被用于其他功能。
Open On-chip Debugger vo.12.0-esp32-20241016(2024-10-16-14:17)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
dapter speed: 20000 kHz
Info : Listening on port 6666 for tcl connections
Info :
Listening on port 4444 for telnet connections
rror:failed to reset FTDI device: LIBUSB ERROR PIPE
serial '*'at bus location '*
rror:unable to open ftdi device with description '*
E: esp2\Espressifltools openocd-esp32\v0.12.0-esp32-20241016\openocd-esp32\sharelopenocd scripts/target/esp common.cfg:!
Error:
it file "E: \esp2 Espressifltoolslopenocd-esp32 v0.12.0-esp32-20241016\openocd-esp32 share lopenocd scripts/target/esp _co
non.cfg", line 9
2 编译、下载工程固件
- 重新开启一个新的终端环境,可以再次打开 esp-idf CMD 终端窗口

idf.py build
idf.py flash monitor
- 使用
Ctrl + ]退出idf.py monitor环境
3 在当前调试工程下,创建一个名为 gdbinit 的配置文件,写入如下内容:
可参见 “使用命令行调试”说明。
target remote :3333
set remote hardware-watchpoint-limit 2
mon reset halt
maintenance flush register-cache
thb app_main
c

4 准备好启动 GDB,请在新的终端环境中输入以下命令来运行待调试工程下的 build 文件夹下的 elf 文件,elf 文件路径要正确:
可参见“使用命令行调试”说明。

- 运行如下指令
启用 GDB 调试
xtensa-esp32-elf-gdb -x gdbinit build\blink.elf

-
在 GDB 中断环境下,设置和清除断点
- 使用
break 33命令设置断点行 - 使用
c命令运行断点
- 使用

- 使用
Q + Enter退出GDB运行环境
-
更多调试指导请参见:
5 openocd 终端将打印如下日志:

- 使用
Ctrl +C退出openocd运行环境**
407

被折叠的 条评论
为什么被折叠?



