ESP32-S3 ESP-IDF OpenOCD 调试报错:libusb / Zadig 驱动修复
更多踩坑记录,见公众号 「单片机那点事」。
问题现象
在 VS Code + ESP-IDF 调试 ESP32-S3 时,OpenOCD 报错,USB-JTAG 无法连接。
典型输出包含:
libusb_open() failed with LIBUSB_ERROR_ACCESSesp_usb_jtag: device not foundLIBUSB_ERROR_NOT_FOUND

(VS Code 报错输出)
结论:
这是 Windows USB-JTAG 驱动错误,与代码、ESP-IDF 版本无关。
解决思路
ESP32-S3 使用 原生 USB-JTAG,
但 Windows 常会自动绑定错误驱动,导致 libusb 无权限访问。
解决方法:先卸载自带驱动,再用 Zadig 将 USB-JTAG 驱动替换为 libwdi
操作步骤
1.连接开发板
USB 直连 ESP32-S3 开发板
2.打开 Zadig
下载并运行(管理员权限):
3.显示全部设备(关键)
菜单栏:
Options → List All Devices(勾选)

4.安装 USB-JTAG 驱动
在设备列表中选择:
USB JTAG/serial debug unit (Interface 0)
-
点击 Replace Driver
-
等待安装完成

关键检查(最容易出问题的地方)
5.设备管理器确认
打开设备管理器,会看到 两个 设备:
USB JTAG/serial debug unit
USB JTAG/serial debug unit
这是正常现象(Interface 0 / 1)。

6.检查驱动提供商(必须都一致)
分别查看两个设备:
(双击名称)属性 → 驱动程序
驱动程序提供商必须都是:
libwdi

驱动不正确的处理方式
如果其中任意一个不是 libwdi(如 Microsoft / Windows):

-
在设备管理器中 卸载设备
-
重新使用 Zadig 执行 Replace Driver

重复操作,直到 两个 USB-JTAG 设备的驱动提供商均为 libwdi。
验证结果
重新启动 VS Code 调试:
-
USB-JTAG 正常识别
-
OpenOCD 连接成功
-
ESP32-S3 可正常单步、断点调试

总结
ESP32-S3 USB-JTAG 报错,
本质是 Windows 驱动权限问题。
出现
LIBUSB_ERROR_ACCESS出现
device not found大概率就是 USB-JTAG 驱动没装对
Zadig
libwdi
两个 Interface 都要检查
更多踩坑记录,见公众号 「单片机那点事」。
更多推荐
所有评论(0)