STM32F103、Stlink-v2、OpenOCD:打开失败

STM32F103, Stlink-v2, OpenOCD: open failed

这看起来不像是一个明确的问题。它可以是 USB 3.0,或者 stlink*.cfg,正如我的研究表明的那样;似乎都不是我的情况。

$ st-flash write blinkyx.bin 0x8000000
st-flash 1.4.0
2018-02-18T18:36:09 INFO src/usb.c: -- exit_dfu_mode
2018-02-18T18:36:09 INFO src/common.c: Loading device parameters....
2018-02-18T18:36:09 INFO src/common.c: Device connected is: F1 Medium-density device, id 0x20036410
2018-02-18T18:36:09 INFO src/common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x20000 bytes (128 KiB) in pages of 1024 bytes
2018-02-18T18:36:09 INFO src/common.c: Attempting to write 8332 (0x208c) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08002000 erased
2018-02-18T18:36:10 INFO src/common.c: Finished erasing 9 pages of 1024 (0x400) bytes
2018-02-18T18:36:10 INFO src/common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2018-02-18T18:36:10 INFO src/flash_loader.c: Successfully loaded flash loader in sram
  9/9 pages written
2018-02-18T18:36:10 INFO src/common.c: Starting verification of write complete
2018-02-18T18:36:10 INFO src/common.c: Flash written and verified! jolly good!

$ openocd -f /usr/share/openocd/scripts/interface/stlink-v2-1.cfg -f /usr/share/openocd/scripts/target/stm32f1x.cfg

Open On-Chip Debugger 0.10.0
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'

实际上我一直在尝试配置 GNU MCU Eclipse;此输出在控制台中手动生成,但 IDE 控制台输出完全相同。

有什么建议吗?

要在 Eclipse 中使用 OpenOCD,您需要配置外部工具配置 > 主选项卡

位置:(openOCD 二进制文件位置)

    /home/username/opt/gnu-mcu-eclipse/openocd/0.10.0-7-20180123-1217/bin/openocd

工作目录:

   /home/username/opt/gnu-mcu-eclipse/openocd/0.10.0-7-20180123-1217/scripts

参数:

  -f board/stm32f103c8t6.cfg

在 openOCD 的 board 目录中创建一个名为 stm32f103c8t6.cfg 的文件,例如:

  /home/username/opt/gnu-mcu-eclipse/openocd/0.10.0-7-20180123-1217/scripts/board/

打开它并粘贴以下行:

   source [find interface/stlink.cfg]

   transport select hla_swd

   source [find target/stm32f1x.cfg]

   reset_config none

这应该有效