VS Code调试Pico出现OpenOCD退出及LIBUSB_ERROR_ACCESS错误
问题对应解决方案
配置文件末尾空格的影响
JSON解析器会自动忽略所有无意义的空白字符,包括配置项末尾、文件末尾的多余空格、换行、制表符。移除这些空格不会触发任何配置错误,多余空格本身也不会导致配置失效,这个因素可以直接排除。
libusb_open() failed with LIBUSB_ERROR_ACCESS 报错修复
这个报错的核心原因是OpenOCD进程没有获得Picoprobe USB设备的访问权限,或者设备被其他进程占用,按以下顺序排查修复:
- 硬件校验:先确认两块Pico的SWD接线完全符合Picoprobe规范:烧录Picoprobe固件的Pico GP2引脚接目标Pico SWCLK、GP3接目标Pico SWDIO,两个板子必须共GND;目标Pico不要按住BOOTSEL按键上电,保持正常运行状态即可。
- Windows环境处理:
- 打开设备管理器,找到Picoprobe对应的设备:如果设备出现在「其他设备」分类下带黄色感叹号,用Zadig工具为Picoprobe的CMSIS-DAP接口(对应PID 000c)安装WinUSB驱动,注意不要选错目标Pico的UF2存储接口。
- 关闭所有可能占用USB设备的进程:包括串口调试助手、之前异常退出的OpenOCD/GDB会话、WSL内运行的设备访问程序,这类进程会独占USB句柄导致OpenOCD无法打开设备。
- Linux环境处理:
- 新建udev规则文件
/etc/udev/rules.d/99-picoprobe.rules,写入以下配置:SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000c", MODE="0666", GROUP="plugdev" - 执行命令重载udev规则后重新插拔Picoprobe即可,不需要用sudo权限启动VS Code:
sudo udevadm control --reload-rules && sudo udevadm trigger
- 新建udev规则文件
- macOS环境处理:
打开「系统设置-隐私与安全性」,检查是否有拦截OpenOCD/libusb访问USB设备的提示,选择允许即可;如果仍有权限问题,在终端执行sudo chmod 666 /dev/tty.usbmodem*为USB串口设备添加读写权限。 - OpenOCD配置校验:确认launch.json中OpenOCD的配置文件参数正确,对应Picoprobe的配置片段参考如下,不要误用其他调试器的配置文件:
"configFiles": [ "interface/cmsis-dap.cfg", "target/rp2040.cfg" ], "openOCDLaunchCommands": [ "adapter speed 5000" ]
内容的提问来源于stack exchange,提问作者Blanca Tonda Pedraja
相关产品推荐
相关产品推荐

