【发布时间】:2015-10-16 18:26:18
【问题描述】:
我正在使用Launchpad'sgcc-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 建立连接,它报告超时,最后总是以 segmentation fault 崩溃。
【问题讨论】:
-
看来是stlink usb连接的问题。首先检查 USB 电缆,尝试另一个 USB 端口,或者如果您在 linux 中查看 dmesg,对于 windows 可能是您没有 ST 驱动程序的问题。
-
这个问题是在搜索与 STM32F4-DISCO 板相同的问题时出现的。似乎在某个时候,ST 转而使用该板上的 STLink V2-1(请参阅@sprhawk 的回答)。为任何因此而发现自己在这里的人注意这一点。
-
设置为软件重置对我有用。见链接:openstm32.org/forumthread418#threadId5193
-
有一个类似的问题:想用 stm32f0discovery 调试 stm32f429 芯片,但不管我是否使用
-f interface/stlink-{v2,v2-1}.cfg,它都不能与-f board/stm32f0discovery.cfg一起工作,但最后只使用-f board/stm32f429discovery.cfg和-f interface/stlink-v2.cfg工作.所以也许这取决于目标(这里是 stm32f429x 芯片)?