你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

IAR ETM Trace提供哪些调试功能

[复制链接]
麦克泰技术 发布时间:2021-4-16 14:06

之前的推文我们有介绍了ETM Trace功能的原理以及使用该调试功能的要求(可点击文字查阅),本文中我们将结合IAR提供的调试功能窗口进一步介绍ETM Trace指令跟踪提供的强大调试功能。借助ETM Trace,IAR提供了包括Trace指令记录、函数分析、代码覆盖率分析和Timeline时间线等调试功能。


2 |2 h( N2 y  b5 C3 P
(1)Trace窗口

进入调试界面后,通过I-jet->Trace选项打开如下界面,将显示通过Trace记录到的CPU上执行的所有指令,支持显示包含汇编代码和C语句的混合视图,便于掌握指令的执行情况。在该窗口中会包含一些高亮图标来指示不同的信息,如函数调用和返回用绿色三角形表示。

中断则以红色图标显示,在某些代码突然跑飞或者产生异常和中断时,我们能够根据这里的指令记录清楚的了解到该异常或者中断触发之前代码的执行情况,进而迅速定位问题原因。减少耗费在问题定位上的时间,能够有效减少项目开发时间。

1.png

图1:Trace窗口

为了便于找到关注的问题位置,在Trace窗口中右键即可打开Find搜索窗口,可以迅速跳转到源码关键函数的位置。

2.png
图2:Trace的查找功能

6 o- j: N, A% S* F1 I6 a2 D
(2)Function Trace窗口

Function Trace跟踪窗口能够提供函数级别的函数调用和返回关系,在不想要关注函数内部细节进行问题分析的时候这个窗口非常有用。下图中用红框高亮了main函数的调用和返回位置,蓝色箭头则显示了DoForegroundProcess函数的调用和返回位置。可以通过该视图清晰的掌握在运行过程中函数的调用及返回顺序。

3.png
图3:Function Trace窗口
( n5 L0 Y  T" ]! Y9 l  P: j
(3)Timeline时间窗口

除了上述形式的函数分析外,IAR还提供了Timeline视图,能够在时间轴上清晰的展现函数的执行情况,以及各子函数的执行时间,借助Timeline视图,可以清晰的了解函数的调用层级关系,以及函数时序和时间占用方面的信息。

Timeline的时间间隔可以进行调整,放大后可以清晰呈现所想要了解的函数的执行情况,下图中显示了printf函数在执行时子函数的调用层级及执行时间等信息,可以发现printf函数的执行过程中包含多个层级的函数调用,且最终执行的是__dwrite函数。

5.png
图4:Timeline窗口) G" W+ _0 X1 ^1 k1 j- K8 I4 J+ F

: S2 Z& ^/ y- F& {+ ^1 m9 J
(4)函数分析功能

通过I-jet->Function Profiling打开函数分析窗口,基于Trace记录的数据,可以分析得出执行最多次数的函数,即占用CPU运行时间最多的函数,针对性的对这些函数进行优化可以进一步提升系统性能。使用SWO Trace引脚和采样原理也可以实现该调试窗口,但是如果函数的执行次数很少,则可能由于未被采样到而结果为0。ETM Trace则能够完整记录CPU所执行的所有指令,执行次数较少的函数也能够被记录。

4.png
图5:Function Profiling窗口2 C( a5 y% X: A

/ x8 U$ ^; F; O+ \- c1 k3 A
(5)函数覆盖率分析

在源码测试过程中,往往需要进行函数覆盖率分析,检查所有的函数是否有被执行到,IAR 函数覆盖率分析能够显示出整个工程、某个C文件和某一个函数内部的执行情况,若所有函数和指令都被执行到了,则显示为绿色,未执行到的部分则以红色显示,部分被执行的则是红绿混合。

通过函数覆盖率分析,可以进一步分析哪些函数分支未被执行到,测试团队可以参考函数覆盖率分析结果针对性的修改测试用例,保证源码的质量。

下图中红色显示的函数即未被执行到,点击跳转到对应源码位置进行进一步分析,可以发现此处为一个判断语句且该判断条件一直未成立。借助函数覆盖率分析功能,可以进一步提升代码的质量。

6.png
图6:代码覆盖率窗口
$ ~: T7 X* ?) z6 a" @3 e' X# h! d

5 a+ D( X% N2 y- @+ p
总结

借助I-jet Trace及IAR提供的丰富的调试功能,可以帮助用户发现应用代码中的问题,提供代码质量。

* \& `  y( j- m( Q. z) F
收藏 评论0 发布时间:2021-4-16 14:06

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版