STM32使用SWO引脚调试

时间:2024-05-31 11:34:18

目前有在调试STM32F207+DP83848做的一款带以太网的IP网关。在软件上使用了FreeRTOS的操作系统。由于第一次在工程上使用FreeRTOS,遇到了不少困难,有时候调试起来有些无法入手。因此特地将收集到的资料写在这里:

目前使用的IAR for ARM做的调试,首先我会先把SWO功能开起来。具体操作步骤如下:

1. 在IAR工程配置中启用SWO功能。General Options -> Library Confiuration -> Library low-level interface implementation -> Semihosted -> Via SWO。 启用SWO功能。

STM32使用SWO引脚调试

2. 在硬件上,需要将MCU的SWO引脚连接至仿真器的SWO引脚。

3. 在程序中,需要包含“stdio.h”

4. 在程序中,需要打印输出的地方,使用printf()函数将数据打印输出

5. 当进入仿真模式时,就可以看到一个绿色的SWO按钮,点击之后,Clock Setup打勾Override project defatult,  我这里用的是STM32F207,主频为120MHz, 因此设置成120MHz。SWO Clock可以选择Autodetect。 另外就是在Timestamps中的Resolution,可以选择选择SWO的采样速率。这个越快,SWO和PC的沟通频率也就会越频繁。其他就可以保持默认。

STM32使用SWO引脚调试

5. 在调试环境下,打开View -> Terminal IO界面。调出输出界面。

6. 然后点击运行。就可以在Terminal界面里,看到printf输出的信息了。

7. 另外,可以通过在Debug -> Logging -> Set Terminal I/O Log File, 将Terminal IO内的信息保存成文件.

STM32使用SWO引脚调试