文章目录
一、前言
最近有小伙伴使用的是
windows
开发的esp32
,在开发过程中,在使用esp32-s3
仿真调试的时候,由于环境问题,一直打开openocd
错误,导致没有办法使用,这里记录一下过程。
二、配置硬件
ESP32-C3
内置了JTAG
调试
2.1 配置 ESP32-S3 内置 JTAG 接口
ESP32-C3 内置 JTAG 电路,无需任何额外芯片即可调试。只需要一根连接到 D+/D- 引脚的 USB 电缆。
ESP32-C3 针脚 | USB信号 |
---|---|
GPIO18 | D- |
GPIO19 | D+ |
5V | V_BUS |
GND | Ground |
请确认用于 USB 通信的 ESP32-C3 引脚未连接到其他可能干扰 JTAG 操作的硬件。
2.2 配置 USB 驱动程序
JTAG通信应该在所有支持的平台上工作。Windows 用户可能会收到LIBUSB_ERROR_NOT_FOUND错误。请使用 ESP-IDF 工具安装器 2.8 (或更新版本),并选择驱动程序“乐鑫 - WinUSB 支持 JTAG (ESP32-C3/S3)”来解决此问题。如果您不想重新运行安装程序,那么可以通过从PowerShell运行以下命令来使用idf-env实现相同的效果:
Invoke-WebRequest 'https://dl.espressif.com/dl/idf-env/idf-env.exe' -OutFile .\idf-env.exe; .\idf-env.exe driver install --espressif
在 Linux 上,需要添加 OpenOCD udev 规则,方法是将以下 udev 规则文件放在文件夹中来完成。/etc/udev/rules.d
参考这个文章:ESP32S3在wsl环境的JTAG、openocd仿真调试-优快云博客
-
设备详情
三、软件调试
3.1 如果vscode 调试时打开 openocd 提示错误
Error: libusb_open() failed with LIBUSB_ERROR_NOT_FOUND
Error: esp_usb_jtag: could not find or open device!
那么还是驱动有问题,如果驱动供应商是 微软 提供的,那么驱动就有问题,要 libwdi 才是对的
3.2 更新驱动
由于刚刚在 2.2 已经下载配置了驱动,所以这里可以直接自动搜索驱动程序
3.3 vscode打开 OpenOCD
-
启动成功、图标会变绿色
-
在
.vscode
目录下新建一个文件launch.json
(这个文件如果自动生成了,那就不用管),并且编辑一下内容{ "version": "0.2.0", "configurations": [ { "type": "espidf", "name": "Launch", "request": "launch" } ] }
3.4 打开函数文件,按下 F5 运行调试
文章是自己总结而记录,有些知识点没说明白的,请各位看官多多提意见,多多交流,欢迎大家留言
如果技术交流可以加以下群,方便沟通