出于某种原因,我无法再刷新我的Nucleo (STM32F446) 板。它曾经运作良好......我收到以下消息:
openocd -f ./cfg/openocd.cfg -c "program ./build/ch.elf verify reset" -c "shutdown"
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
none separate
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : clock speed 1800 kHz
Info : STLINK v2 JTAG v34 API v2 SWIM v25 VID 0x0483 PID 0x374B
Info : using stlink api v2
Info : Target voltage: 3.247800
Error: init mode failed (unable to connect to the target)
in procedure 'program'
in procedure 'init' called at file "embedded:startup.tcl", line 506
in procedure 'ocd_bouncer'
** OpenOCD init failed **
shutdown command invoked
Makefile:210: recipe for target 'flash' failed
make: *** [flash] Error 1
另外,当我发行时:
telnet localhost 4444
我得到:
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
当我插入我的 Nucleo 板时,我可以看到它的构建版本等。奇怪。
编辑:插入电路板时 LD1 是实心的。我认为它通常应该闪烁红色。
我使用了 st 链接实用程序,它是 st 提供的 Windows 程序。
它允许我使用 SWD 接口擦除和重新刷新 MCU。
我的问题背后的原因是我在使用 CubeMX 生成我的项目文件之前勾选了将所有空闲引脚设置为模拟以优化功耗。它实际上破坏了引导配置,因为 BOOT0 引脚设置为模拟。
TLDR:不要勾选在 CubeMX 中将所有空闲引脚设置为模拟