我使用的是基于STM32Cube的Eclipse。我的代码中没有什么花哨的东西,只是初始化了一个板载LED,并在无限循环中打开它。它第一次构建和调试成功( LED确实亮起),但第二次它可以构建但不能调试。
这是我得到的错误。
>Open On-Chip Debugger 0.10.0+dev-00021-g524e8c8 (2019-06-12-13:13)
>Licensed under GNU GPL v2
>For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
none separate
>Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
>adapter speed: 8000 kHz
>adapter_nsrst_delay: 100
>Info : Listening on port 6666 for tcl connections
>Info : Listening on port 4444 for telnet connections
>Info : clock speed 8000 kHz
>Info : STLINK v2 JTAG v25 API v2 SWIM v0 VID 0x0483 PID 0x3748
>Info : using stlink api v2
>Info : Target voltage: 2.891943
>Error: init mode failed (unable to connect to the target)
>in procedure 'init'
>in procedure 'ocd_bouncer'
当我尝试st-info --probe (在linux上)时,我得到:
Found 1 stlink programmers
serial: 390069063058303044662143
openocd: "\x39\x00\x69\x06\x30\x58\x30\x30\x44\x66\x21\x43"
flash: 0 (pagesize: 0)
sram: 0
chipid: 0x0000
descr: unknown device
但在上传之前,我得到了相关数据,例如:
flash: 131072 (pagesize: 1024)
sram: 20480
chipid: 0x0410
descr: F1 Medium-density device
再也不能把代码上传到微控制器了。当我尝试新的电路板时,它只适用于一次上传-在那块电路板被杀死后,不再工作:(程序的第一次上传工作,即使在重启之后(发光二极管仍然闪烁),但不报告给ST-LINK v2。
我尝试重置为默认设置,但也没有帮助。有没有人遇到过类似的问题?
发布于 2020-03-28 19:56:28
已在Stackexchange上找到解决方案。
当您忘记在STM32CubeIDE中配置调试端口并上传代码时,ST-Link将停止工作,因为它正在等待调试器附加,但它尚未定义。
您必须在集成开发环境中指定系统调试端口(配置文件-> SYS ->模式->串行线):Setup image
你可以通过ST-Link Utility移除整个闪存来让你的STM32再次工作(我在linux中尝试过,但不能工作,因为它不支持重置下的连接)。在ST-Link实用程序中,转到重置下的设置->模式->连接。然后将mcu与ST-Link连接并保持复位。之后,在ST-link实用程序中单击“连接到目标”,您就可以擦除它了。
发布于 2019-08-24 00:09:45
可能是流氓断点导致了GDB的错误行为。重新开始工作的可能解决方法:
https://stackoverflow.com/questions/57628401
复制相似问题