这篇教程用来带领实现 Ubuntu/Linux 下 ESP32 使用 Jlink 进行 JTAG 调试。分为如下几步:
1. 安装 OpenOCD
如果你已经按照 esp-idf 快速入门 一文中的介绍安装好了 ESP-IDF 及其 CMake 构建系统,那么 OpenOCD 已经被默认安装到了你的开发系统中。在 设置开发环境 结束后,你应该能够在终端中运行如下 OpenOCD 命令:
openocd --version
终端会输出以下信息(实际版本号可能会比这里列出的更新):
Open On-Chip Debugger v0.10.0-esp32-20190708 (2019-07-08-11:04)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
2. Jlink 连线
以下是 Jlink 上的 JTAG 接口对应的引脚图:
上图的左侧那排引脚对应着 Jlink的正面(有 Jlink logo 那一面)。
你需要按如下表格连接 Jlink 与 ESP32:
序号
ESP32 引脚
JTAG 信号
1
CHIP_PU
TRST_N
2
MTDO / GPIO15
TDO
3
MTDI / GPIO12
TDI
4
MTCK / GPIO13
TCK
5
MTMS / GPIO14
TMS
6
GND
GND
注:序号 1 可以不接。
具体的接法如下图:
上图的左侧那排引脚对应着 Jlink的正面(有 Jlink logo 那一面)。
其他硬件连线部分就按正常 ESP32 编译烧写运行所需的连线接好即可,同时 Jlink 另一端也需要通过 USB 连接到电脑。
3. 配置并运行 OpenOCD
3.1 进入 openocd-esp32 目录
首先你需要在终端里进入到 openocd-esp32 目录:
cd ~/esp/openocd-esp32/v0.10.0-esp32-20200406/openocd-esp32
上述 openocd-esp32 目录请按照自己的 openocd-esp32 目录调整。
3.2 查看 openocd-esp32 版本
然后你需要查看 openocd-esp32 版本,一般已经标注在对应的文件夹上,比如 /esp/openocd-esp32/v0.10.0-esp32-20200406。如果是 2019 及以前版本,请忽略此步并直接跳转至 3.3 运行 openocd-esp32。如果是 2020 及以后版本,需要执行以下操作:
进入 openocd-esp32的以下目录:/esp/openocd-esp32/v0.10.0-esp32-20200309/openocd-esp32/share/openocd/scripts/interface,在 interface 文件夹中找到 jlink.cfg 并打开
在 jlink.cfg 中添加 adapter_khz 9600,然后保存文件并关闭(如果不添加&#