CLion+ESP32调试时OpenOCD报LIBUSB_ERROR_ACCESS权限错误
ESP32 JTAG调试问题解决方案(ESP-Prog + OpenOCD + CLion)
问题1:CLion调试时出现libusb_open() failed with LIBUSB_ERROR_ACCESS
解决步骤:
- Windows系统:
- 打开设备管理器,找到ESP-Prog对应的USB设备,确认驱动提供商为
WinUSB(若不是,重新用Zadig替换,务必选中正确的设备)。 - 以管理员身份启动CLion,普通用户权限可能无法访问USB设备。
- 打开设备管理器,找到ESP-Prog对应的USB设备,确认驱动提供商为
- Linux系统:
- 创建udev规则文件
/etc/udev/rules.d/99-esp32.rules,写入:SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", MODE="0666", GROUP="plugdev" - 重新加载udev规则:
sudo udevadm control --reload-rules && sudo udevadm trigger - 将当前用户加入
plugdev组:sudo usermod -aG plugdev $USER - 注销并重新登录,使权限生效。
- 创建udev规则文件
问题2:单独运行openocd -f board/esp32-wrover-kit-3.3v.cfg时CPU1检测失败、反复重置
解决步骤:
- 修正硬件与接线:
- 确保ESP32的BOOT引脚保持高电平(正常启动状态),EN引脚(复位)与ESP-Prog的nRESET引脚可靠连接,所有接线均为3.3V电平。
- 检查ESP32供电稳定性,避免因供电不足导致反复重置。
- 简化OpenOCD配置:
放弃默认board配置文件,自定义custom_esp32.cfg:
运行命令:source [find interface/ftdi/esp32_devkitj_v1.cfg] source [find target/esp32.cfg] adapter speed 2000 esp32 adapter_khz 2000 # 禁用自动重置逻辑,避免反复重启 esp32 no_resetopenocd -f custom_esp32.cfg - 关闭ESP32看门狗:
在代码app_main开头添加看门狗关闭逻辑,避免超时重置干扰调试:#include "esp_system.h" #include "esp_task_wdt.h" void app_main(void) { // 关闭任务看门狗 esp_task_wdt_init(30, false); esp_task_wdt_delete(NULL); // 关闭中断看门狗(可选) esp_int_wdt_disable(); // 后续业务代码 }
内容的提问来源于stack exchange,提问作者NIkita
相关产品推荐
相关产品推荐

