STM32F0,ST-link v2,OpenOCD 0.9.0:打开失败

Chr*_*oph 13 stm32 openocd

我正在使用Launchpad的 gcc-arm-none-eabi 4.9-2015q2来编译STM32F0,现在我想使用该集合中的arm-none-eabi-gdb进行调试.我的ST-Link v2是Nucleo F411RE板的一部分,附带外部硬件(STM32F0目标).闪烁F0工作正常,所以我得出结论,我的SWD连接是好的.

现在我想启动OpenOCD,但它失败了:

$ openocd -f interface/stlink-v2.cfg -f target/stm32f0x.cfg
Open On-Chip Debugger 0.9.0 (2015-07-26-16:02)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
none separate
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: open failed
in procedure 'init'
in procedure 'ocd_bouncer'
Run Code Online (Sandbox Code Playgroud)

这可能有什么问题?

我也无法使用st-util建立连接,它报告超时并且最终总是因为分段错误而崩溃.

spr*_*awk 12

Nucleo F411RE嵌入了一个stlink v2-1而不是stlink v2

所以像这样更改脚本文件:

source [find interface/stlink-v2-1.cfg]

transport select hla_swd

source [find target/stm32f4x.cfg]

reset_config srst_only
Run Code Online (Sandbox Code Playgroud)


Chr*_*ris 1

我找到了解决办法。stlink-v2.cfg 中的 VID/PID 对错误。他们有这个:

hla_vid_pid 0x0483 0x3748

但应该是这样的:

hla_vid_pid 0x0483 0x374 B

字母“B”,而不是数字“8”。

  • 正如 @sprhawk 在他们的回答中指出的那样,还有另一个带有 ST Link v2-1 的配置文件,它具有正确的 0x374B PID。 (5认同)