如何使用J-Trace PRO进行流式跟踪
来源: | 作者:风标电子工程师 | 发布时间: 2026-04-03 | 5 次浏览 | 🔊 点击朗读正文 ❚❚ | 分享到:

开始使用J-Trace PRO 很简单。有了Ozone J-Trace例程项目,开发者们可以轻松开始。

Ozone J-Trace PRO例程可以作为您学习和使用J-Trace PRO流式跟踪和实时分析功能的起点。例程展示了如何在15分钟内获得对系统的最先进分析。

例程项目从目标硬件上运行的简单应用程序开始,无需特殊代码或配置即可展示跟踪功能。项目中还包括更高级的示例,如系统初始化和使用embOS,也可以使用J-Trace PRO进行分析。它包括预构建的应用程序、Ozone项目以及一个Embedded Studio项目,用于修改和重新构建应用程序。

下载Ozone J-Trace PRO例程项目:

https://www.segger.com/downloads/jlink/J-Trace_PRO_CortexM_Tutorial.zip

这个例程项目是以Cortex-M Trace参考板为背景编写的。







Trace例程演练

1. 下载例程项目,并确保已安装J-Link软件和最新的Ozone。

2. 将项目解压到计算机上的任何目标目录。

3. 将J-Trace PRO与计算机和目标板连接,并给板供电。

4. 使用Ozone打开项目目录中的

SEGGER_CortexM_Trace_Reference_Board.jdebug。

5. 打开Code Profile窗口和Instruction Trace

窗口。(view → Code Profile和视图→Instruction Trace








6. 在OS_TraceDemo.c中的main()函数的BSP_Init处设置一个断点。

7. 开始调试会话(Debug → Start Debug Session → Download and Reset program)。Ozone启动并加载为您的Cortex-M Trace参考板预构建的可执行文件。应用程序被加载到您的Cortex-M Trace参考板,它启动并运行到main。








8. 继续运行到您的断点处(Debug → Continue)。Ozone在从OS_InitHW()返回后中断。指令跟踪窗口显示了到目前为止已执行的内容。最近的指令在底部。指令按源行和相应函数分组。折叠所有块将显示已调用的函数以及应用程序返回到的函数。要折叠所有块,请右键单击“Instruction Trace”,然后点击“Collapse all”。

当所有块都展开时,您可以浏览指令以在源代码查看器和反汇编窗口中跟踪执行情况,并查看从main开始直到命中断点为止确切发生了什么。要展开所有块,请右键单击“Instruction Trace”,然后点击“Expand all”。

9. 再次继续执行((Debug → Continue)。

应用程序正在运行,LED灯正在闪烁。源代码查看器中的源代码行可以展开以显示每行源代码生成的指令。

源代码查看器的左列显示代码覆盖率级别。每行代码都被标记为完全执行(黄色)、部分执行(橙色)或未执行(灰色)。








10. 在源代码查看器中显示代码配置文件计数器(右键单击Source Viewer → Execution Counters)

除了代码覆盖率标记之外,左列还可以显示执行的源代码行和指令的数量。在应用程序运行时,计数器会从跟踪流中实时更新。将鼠标悬停在计数器上,可以在工具提示中获取提取和未执行计数,以及该行的CPU负载。








11. 代码配置文件窗口(View → Code Profile)

代码配置文件窗口按函数显示代码覆盖率和分析信息。它允许按负载或覆盖率排序,并过滤函数,使其不计入负载统计。在下面的示例屏幕截图中,OS_Idle()未被选入负载计算,因为应用程序在该函数中花费了超过99%的时间。








12. 将跟踪数据导出到报告(右键单击Code Profile→ Export...)

代码配置文件窗口中的信息可以导出到具有不同格式的报告中,这可以用于验证过程。

要修改项目,请使用Embedded Studio打开

J-Trace_PRO_CortexM_Tutorial.emProject。

您可以更改OS_TraceDemo.c或添加您自己的应用程序文件。

完成所有更改后,重新编译项目(Build → Build Solution),为参考板创建应用程序。如果Ozone项目仍然打开,它将提示重新加载刚刚更改的应用程序文件。如果Ozone未启动,请启动它并加载SEGGER_CortexM_Trace_Reference_Board.jdebug。