在stm32上使用调试器swo

Spy*_*tos 5 c c++ stm32 jtag

正如标题所示,我想使用 swo 在 stm32F1 设备上进行调试,而不使用 st-link utils。我想我已经刷新了代码以通过我的芯片上的 swo 发送消息,但我无法与正确的设备建立连接一些教程建议我将 putty 与 telnet 端口 2332 一起使用。关于我的配置的具体信息:cubemx swo 配置 我的 main 上的相关代码

    int _write(int file, char *ptr, int len)
{
    int DataIdx;
    for (DataIdx = 0; DataIdx < len; DataIdx++)
    {
        __io_putchar(*ptr++);
    }
    return len;
}
Run Code Online (Sandbox Code Playgroud)

...

   int main(){
    while (1)
      {
        printf("Hi\n");
      }
}
Run Code Online (Sandbox Code Playgroud)

我看过一些使用 eclipse 配置或 st-link utils 的教程,但我有一个非常自定义的工具链(我使用 conan、obko cmake 配置https://github.com/ObKo/stm32-cmake、 ocb 和 linux )用于唯一目的使用 c++ 2017 和 boost 这样的库,所以我不能使用 st-link utils。

Spy*_*tos 1

我的配置的问题是,我的计算机上没有用于消息的解析器ITM,因此即使在芯片上进行了正确的配置,当我打开端口与芯片通信时,我的终端也没有消息。希望我在 github 上找到了这个非常有用的解析器,所以在使用上述配置编译程序后,我所要做的就是 openocd配置有关芯片频率和端口打开f1这一事实的两个选项来运行(这是我的文件):ITM.cfg

source [find interface/stlink-v2.cfg]
source [find target/stm32f1x.cfg]
init
tpiu config internal - uart off 72000000
itm ports on
Run Code Online (Sandbox Code Playgroud)

在另一个终端上我运行了 github 上的解析器脚本python3 swo_parser.py