【问题标题】:Flashing and running from clion fails with OpenOCD: Error the tcl port command must be used before init使用 OpenOCD 从 clion 闪烁和运行失败:错误必须在 init 之前使用 tcl port 命令
【发布时间】:2021-07-04 04:11:40
【问题描述】:

好的,这个问题我已经有一段时间了,因为我从来没有在网上找到解决方案。 我想我会在这里问,并希望其他人是否也遇到过这个问题(并且幸运地解决了它)。

因此,从左侧圈出的按钮开始的那些按钮的预期行为是代码在嵌入式硬件上被编译、刷新和运行。圈起来的第二个和前面的一样,但是会监听断点并启动一个 gdb 服务器。

当按下第一个按钮时,它将失败并显示以下错误消息:

[0mOpen On-Chip Debugger 0.10.0 (2020-07-29) [https://github.com/sysprogs/openocd]
Licensed under GNU GPL v2
libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlin
k.cfg
Info : auto-selecting first available session transport "hla_swd". To override u
se 'transport select <transport>[0m'.
Info : The selected transport took over low-level target control. The results mi
ght differ compared to plain JTAG/SWD
Info : clock speed 2000 kHz
Info : STLINK V2J37S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.218361
Info : STM32F439VIT6.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : starting gdb server for STM32F439VIT6.cpu on 3333
Info : Listening on port 3333 for gdb connections
semihosting is enabled

Error: The 'tcl_port' command must be used before 'init'.


但是当按下第二个按钮(调试)时,它会闪烁,运行代码并启动 gdb 服务器都没有问题。

使用的工具是:

  • OpenOCD(版本:OpenOCD-20200729-0.10)。
  • Clion(版本:2021.1,但问题在以前的版本上仍然存在)作为我的 IDE。
  • mingw64 通过 msys 安装。
  • arm gdb 调试器(版本 8.3.1)

如果您知道问题可能是什么,请告诉我。我可以在没有断点的情况下继续使用调试,但是我无法运行,这很烦人。

【问题讨论】:

标签: gdb embedded stm32 clion


【解决方案1】:

在某个地方,某事需要修复。

# Enable semihosting at startup
# Dirty fix for https://youtrack.jetbrains.com/issue/CPP-7103
init
arm semihosting enable

评论 init 和 arm semihosting enable 行解决了这个问题。 仍然很奇怪,它可以在调试配置中工作,但不能在运行配置中工作。如果有人确切地知道为什么。请在 cmets 或帖子中留下答案。 快乐编码:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2020-02-24
    • 2014-09-15
    • 2020-01-18
    • 2017-11-12
    • 1970-01-01
    • 2020-03-21
    相关资源
    最近更新 更多