Debugging 实时调试stm32

Debugging 实时调试stm32,debugging,microcontroller,stm32,firmware,Debugging,Microcontroller,Stm32,Firmware,我想知道,如果有人知道如何使用eclipse进行实时调试,我有一个stm32微控制器的固件,希望能够看到我的变量随着时间的推移而变化,而不必使用断点或其他东西,有人知道如何做吗?快速回答是-使用半托管 较长的一个-为了减少通过SWO传输的数据量,只发送原始值。互联网上有很多可用的工具,或者(我自己使用这种方法)用C/C++或C#编写一个短程序来显示/可视化接收到的数据。它实际上对我最有效。最简单的方法是在UART上传输数据,并在计算机上使用任何串行实用程序(如Windows上的Putty和Lin

我想知道,如果有人知道如何使用eclipse进行实时调试,我有一个stm32微控制器的固件,希望能够看到我的变量随着时间的推移而变化,而不必使用断点或其他东西,有人知道如何做吗?

快速回答是-使用半托管


较长的一个-为了减少通过SWO传输的数据量,只发送原始值。互联网上有很多可用的工具,或者(我自己使用这种方法)用C/C++或C#编写一个短程序来显示/可视化接收到的数据。它实际上对我最有效。

最简单的方法是在UART上传输数据,并在计算机上使用任何串行实用程序(如Windows上的Putty和Linux上的cutecom、miniterm.py)观察数据

其次,如果您的系统支持半托管,您可以启用它使用
printf
在控制台上打印变量的值

您需要的是ST提供的用于实时数据监控的强大工具

  • 数据可以在条形图、x-y图和表格中显示
  • 变量是从.elf文件加载的
  • 该工具使用ST Link和社会福利署连接到芯片并获取数据
  • 您甚至可以在运行时更改变量的值,因此它也可以作为MCU的输入。看起来是这样的:

基本上,在使用STM时,默认情况下您有一个客户端应用程序。 ST列出的主要功能:

主要特征

  • 在装有Microsoft®Windows XP、Vista和Windows 7操作系统的电脑上运行
  • 通过ST-LINK(JTAG或SWD协议)连接到任何STM32
  • 在应用程序运行时从RAM中动态读取(非侵入性)变量
  • 解析ELF应用程序可执行文件中的矮人调试信息
  • 两种类型的查看器:
    • 可变查看器:实时波形、类似示波器的图形
    • 接触点查看器:两个变量的关联,一个在X轴上,一个在Y轴上
  • 可以将数据记录到文件中,并在以后重播(详尽记录显示,非实时)

通常不会影响代码的性能和/或计时/执行。半托管传统上是一个rom监视器,基本上是“断点之类的”。我没有看所有的手册,但(至少部分)cortex ms有一个数据观察点功能(在硬件/逻辑中),因此您可以配置该功能以观察数据变化,然后您需要使用应用程序、rom监视器,或者定期使用SWD接口停止处理器以查看是否启动。这些都在arm文档中,您可以选择如何提取捕获的结果。这种方法非常糟糕。为什么它改变程序流程、计时和使用,而不是调试uC硬件。我同意,但我觉得这些是实时观察数据的最简单技术。跟踪技术可能比这些技术更好。我听从Bence Kaulics的建议,开始使用STM Studio,它真的非常有效。我使用一个ST-LINK板进行调试,效果良好。谢谢大家。