8

我正在尝试设置一个 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 驱动程序,或者其他原因可能导致问题?

4

3 回答 3

11

如果您在 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 配置目录并重新启动您的机器。然后再次尝试调试。

于 2018-02-18T16:13:38.983 回答
5

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

http://zadig.akeo.ie/

于 2017-03-05T04:31:01.543 回答
0

正如评论中提到的@silverdr,断开设备并重新连接它对我有用。

于 2022-02-27T18:45:47.873 回答