18

我正在使用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'

这里可能有什么问题?

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

4

6 回答 6

16

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
于 2016-04-14T17:57:56.657 回答
4

文件stlink-v2.cfg可能没问题。您可能应该使用stlink-v2-1.cfg文件(该文件内是hla_vid_pid 0x0483 0x3748)。

于 2018-01-30T11:37:14.677 回答
2

就我而言,我也得到了Error: open failed,但所有配置都还可以。然后我确实dmesg | grep usb看到了为什么它无法通过 USB 连接(在 Ubuntu 上)。dmesg 告诉我有电源问题,可能电缆有故障。由于我在同一天早些时候使用了同一根电缆,并且板上的一些 LED 仍然闪烁,我首先忽略了该消息。但后来我终于决定试一试,买了另一条电缆,瞧!这是一根有故障的电缆 - 新的电缆一切正常。因此,毕竟并不总是软件问题。

虽然如果你这样做lsusb(或在 Windows 中使用设备管理器)并且该板很好地列出,它可能不会是电缆问题。如果它丢失了,它可能是。

于 2019-03-11T13:55:46.687 回答
1

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

hla_vid_pid 0x0483 0x3748

但应该是这样的:

hla_vid_pid 0x0483 0x374 B

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

于 2016-04-06T23:35:15.320 回答
0

与 OPENOCD 相关的 ID 错误失败:

修复-1:

修改 Stm32f1x.cfg 文件从 set _CPUTAPID 0x1ba01477
之前设置 _CPUTAPID 0x2ba01477:set _CPUTAPID 0x2ba01477

之后:设置_CPUTAPID 0x1ba01477

fix-2(如果未解决):

修改 stlink.cfg ,stlink-v2.cfg 和 stlink-v2-1.cfg 文件,添加额外的命令如下

hla_vid_pid 0x0483 0x374B 0

dubug 运行期间的任何电源重置问题:

调试配置 -> 调试器选项卡 -> 显示生成选项 -> 将设置更改为软件重置

于 2022-02-09T18:50:02.493 回答
0

1.在eclipse ide-->project-->inc --> {project_name} debug.cfg ->source [find interface/stlink.cfg]

检查您的接口调试器是 stlink.cfg 还是 stlink-v2.cfg 还是 stlink-v2-1.cfg 并更改 [find interface/stlink.cfg]

{或}试试

2.C:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.debug_2.5.0.201904120827\resources\openocd\st_scripts\interface\stlink.cfg(或stlink-v2.cfg或stlink-v2-1.cfg)

添加 hla_vid_pid 0

于 2020-08-14T11:52:30.570 回答