本文主要讲述如何安装 ESP32 的 OpenOCD 调试环境,并介绍如何使用 GDB 来调试 ESP32 的应用程序。本文适用于:
- ESP32
需要的调试硬件有:
-
ESP Prog
安装ESP prog驱动
ESP-Prog 采用 FTDI 公司的 FT2232HL 为 USB Bridge Controller 芯片,可通过配置将 USB 2.0 接口转换为支持多种工业标准的串行和并行接口。ESP-Prog 使用 FT2232HL 默认的双异步串行接口模式,用户只需在电脑上安装相应的 FT2232HL 驱动程序即可使用。
注:电脑端识别出两个端口,端口序号大的是 Program 接口,序号小的是 JTAG 接口。
连接设备
ESP32/8266与ESP Prog连接需遵从如下引脚连接:
序号 | ESP 引脚 | ESP Prog |
---|---|---|
1 | RST/EN | TRST_N |
2 | MTDO / GPIO15 | TDO |
3 | MTDI / GPIO12 | TDI |
4 | MTCK / GPIO13 | TCK |
5 | MTMS / GPIO14 | TMS |
安装OpenOCD
Linux
OpenOCD下载地址:https://github.com/espressif/openocd-esp32/releases
- 选择PC机对应的架构下载
- 然后解压出压缩包里的openocd-esp32目录
- 将其拷贝到~/esp/openocd-esp32目录
Windows
[待定]
MacOS
[待定]
测试OpenOCD
cd ~/esp/openocd-esp32
bin/openocd -s share/openocd/scripts -f interface/ftdi/esp32_devkitj_v1.cfg -f board/esp-wroom-32.cfg
如输出如下信息,则OpenOCD成功工作:
Open On-Chip Debugger v0.10.0-esp32-20191114 (2019-11-14-14:15)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
none separate
adapter speed: 20000 kHz
WARNING: boards/esp-wroom-32.cfg is deprecated, and may be removed in a future release.
Info : Configured 2 cores
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Error: type 'esp32' is missing virt2phys
Info : ftdi: if you experience problems at higher adapter clocks, try the command "ftdi_tdo_sample_edge falling"
Info : clock speed 20000 kHz
Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : esp32: Debug controller 0 was reset.
Info : esp32: Core 0 was reset.
Info : Listening on port 3333 for gdb connections
Info : esp32: Debug controller 0 was reset.
Info : esp32: Core 0 was reset.
Info : esp32: Debug controller 1 was reset.
Info : esp32: Core 1 was reset.
Info : Target halted. CPU0: PC=0x4008094C (active)
Info : Target halted. CPU1: PC=0x40081EF6
启动调试器
ESP32 的工具链中带有 GNU 调试器(简称 GDB) xtensa-esp32-elf-gdb
,它和其它工具链软件存放在同一个 bin 目录下。除了直接在命令行终端中调用并操作 GDB 外,还可以在 IDE (例如 Eclipse,Visual Studio Code 等)中调用它,在图形用户界面的帮助下间接操作 GDB,无需在终端中输入任何命令。
关于以上两种调试器的使用方法,详见以下链接。
建议首先检查调试器是否能在 命令行终端 下正常工作,然后再转到使用 Eclipse 等 集成开发环境 下进行调试工作。
调试范例
本节适用于不熟悉 GDB 的用户,将使用 get-started/blink 下简单的应用程序来演示 调试会话的工作流程,同时会介绍以下常用的调试操作:
此外还会提供 在命令行终端进行调试 的案例。
在演示之前,请设置好 ESP32 目标板并加载 get-started/blink 至 ESP32 中。
网友评论