SEGGER Embedded Studio可以使用SWO功能将printf输出的内容打印到调试终端,用于代码分析和执行跟踪。我们以Segger emPower评估板为例,了解如何在Embedded Studio的项目中设置并启动SWO功能。
示例环境
本文内容将使用软件和硬件环境如下:
· J-Link 软件包 V6.18c 或更高版本
· Embedded Studio V3.26a 或更高版本
· SEGGER emPower评估板
· J-Link/J-Trace 硬件
· 连接 SWO引脚到调试接口上
设置指南
1、在 Embedded Studio 中,打开示例项目
注:emPower评估板的Embedded Studio应用示例项目下载:emPower_ES_SWO.zip(下载链接https://wiki.segger.com/images/9/9d/EmPower_ES_SWO.zip)
2、在 Project Explorer 中选择这个项目,打开Project-> Edit Options...,检查处理器和调试器设置
3、在Debug -> Target Trace中,选择 SWO 作为跟踪接口类型(Trace Interface Type),输入跟踪时钟速度(Trace Clock Speed):跟踪时钟速度通常是应用程序运行时的目标 CPU 速度。输入SWO波特率:SWO波特率(或SWO速度)需要匹配跟踪时钟速度和使用J-Link。
4、启动调试会话(debug session)
打开执行配置文件窗口(View -> More Debug Windows -> Execution Profile),执行分析。
打开执行跟踪窗口(View -> More Debug Windows -> Execution Trace),执行跟踪。
测量CPU速度
如果目标 CPU 速度未知,可以使用 J-Link Commander或J-Link SWO Viewer进行测量。
使用 J-Link Commander 进行测量
· 打开 J-Link command
· 连接设备
· 执行“testcspeed”
使用 J-Link SWO Viewer进行测量
· 打开 J-Link SWO Viewer
· 选择目标设备
· 点击测量
计算 SWO 速度
SWO的支持速度取决于其使用的仿真器。它们可以从仿真器中检索。要获得仿真器支持的SWO速度,请使用 J-Link Commander,连接到目标板并执行命令“SWOSpeed”。列出的速度可以设置为SWO 波特率。
目标特定的 SWO 引脚初始化
一些目标设备需要对目标特定的SWO引脚进行初始化。须由用户通过在目标应用程序中启用SWO 引脚或通过Embedded Studio脚本或JLinkScript来实现。
故障排除
Q:如果按照设置指南操作,终端 I/O 窗口没有显示任何信息。
A:
·确保 SWO引脚已经连接到J-Link 调试硬件,许多J-Link OB 没有连接SWO 引脚。
· 检查选择的目标设备是否正确。
Q:无法启动调试会话
A:检查目标设备是否正常供电?可以打开 J-Link Commander 查看当前在控制台输出中 VTREF 值表示的的电压是否正确。