我正在尝试设置一个eclipse开发环境来使用stm32f303 nucleo 32板。http://www.st.com/en/evaluation-tools/nucleo-f303k8.html
到目前为止,所有的工具似乎都正确地安装和工作:我已经成功地编译并启动了stm32f4发现的openocd调试器,当我连接stm32f303 nucleo 32板并启动openocd时,板上的led指示它已连接。(我已经刷新了黑板。)
问题是,当我一步一步地调试时,openocd会迷失方向,这似乎与openocd在启动时给我的消息有关(查找粗体行):
Open On-Chip Debugger 0.9.0 (2015-05-19-12:09)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
**Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED**
Info : STLINK v2 JTAG v27 API v2 SWIM v15 VID 0x0483 PID 0x374B
Info : using stlink api v2
Info : Target voltage: 3.239293
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints
有没有人知道在这种情况下如何修复usb驱动程序,或者可能是其他原因导致了问题?
发布于 2018-02-18 16:13:39
如果您在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配置目录,然后重新启动计算机。然后再次尝试调试。
发布于 2017-03-05 04:31:02
OpenOCD发行版包含一些libusb驱动程序,建议运行zadig.exe工具来激活它们。这将解决您的问题。
发布于 2022-02-27 10:45:48
正如@silverdr在评论中提到的那样,断开设备并重新连接对我来说很管用。
https://stackoverflow.com/questions/41066653
复制