openocd **错误:libusb_open()因LIBUSB_ERROR_NOT_SUPPORTED而失败**

时间:2016-12-09 18:25:39

标签: eclipse openocd nucleo

我正在尝试设置eclipse开发环境以使用stm32f303核32板。 http://www.st.com/en/evaluation-tools/nucleo-f303k8.html

到目前为止,所有工具似乎都已正确安装并正常工作:我已成功编译并启动了stoc32f4发现的openocd调试器,当我连接stm32f303 nucleo 32板并启动openocd时,板上的led指示它是连接的。 (我已经闪过董事会。)

当我逐步调试时,openocd就丢失了,这似乎与openocd在启动时给出的消息有关(查找粗线):

Open On-Chip Debugger 0.9.0(2015-05-19-12:09) 在GNU GPL v2下获得许可 对于错误报告,请阅读     http://openocd.org/doc/doxygen/bugs.html 适配器速度:1000 kHz adapter_nsrst_delay:100 信息:选定的传输接管了低级目标控制。与普通的JTAG / SWD相比,结果可能会有所不同 没有分开 srst_only分隔srst_nogate srst_open_drain connect_deassert_srst 信息:无法使用950 kHz匹配请求的速度1000 kHz 信息:无法使用950 kHz匹配请求的速度1000 kHz 信息:时钟速度950 kHz 错误:libusb_open()因LIBUSB_ERROR_NOT_SUPPORTED 而失败 信息:STLINK v2 JTAG v27 API v2 SWIM v15 VID 0x0483 PID 0x374B 信息:使用stlink api v2 信息:目标电压:3.239293 信息:stm32f3x.cpu:硬件有6个断点,4个观察点

在这种情况下,是否有人知道如何修复USB驱动程序,或者其他可能导致问题的原因?

谢谢

2 个答案:

答案 0 :(得分:2)

OpenOCD发行版包含一些libusb驱动程序,并建议运行zadig.exe工具来激活它们。这将解决您的问题。

http://zadig.akeo.ie/

答案 1 :(得分:1)

如果您在Linux上遇到此问题,则必须配置udev规则以使用该设备。在Contributions下找到openOCD源代码分发中包含的99-openocd.rules。连接您的ST-Link USB设备并从终端运行'lsusb',它将列出如下内容:

Bus 004 Device 009: ID 0483:3748 STMicroelectronics ST-LINK/V2

注意ID后面的值,你要检查99-openocd.rules以查看是否有支持该设备的匹配条目,在上面的例子中就是这个:

# STLink v2
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="664", GROUP="plugdev"

将此文件复制到/etc/udev/rules.d配置目录并重新启动计算机。然后再尝试调试。