首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Trace32函数RunTime不按预期工作

Trace32函数RunTime不按预期工作
EN

Stack Overflow用户
提问于 2020-05-26 10:12:31
回答 1查看 609关注 0票数 0

我正在尝试调试从A点到函数调用B点的代码执行流程。

为此,我使用cmm脚本激活了一些跟踪图形

代码语言:javascript
复制
SYStem.RESetTarget
Break.Delete
Break EcuM_Prv_StartOS
Go
WAIT !STATE.RUN() 5.s
Trace.Init
Trace.METHOD SNOOPer
Trace.Mode PC
Trace.Arm
Break  RE_CS_S_SquibDrv_Reset_func
Go
WAIT !STATE.RUN() 5.s
Trace.CHART.FUNC

在图表中,我期望看到从A (EcuM_Prv_StartOS)到B (RE_CS_S_SquibDrv_Reset_func)的所有函数调用和所花费的时间。但是,我只在中间看到一些函数,因为我探测哪些函数已经执行了,我还在图中附加了一个窗口,其中的堆栈框架有效地显示了所有的调用,直到我在B中的断点。

因此,我想知道我是做错了什么,还是简单地说,这个图不像我预期的那样工作,意思是显示代码的所有执行流程。

注意: uC是一个Infineon TC27X;而这个核心实际上没有内部跟踪功能。但是这个功能在Perf下,而不是TRace TAB下,而Powerview没有阻止这些图表的使用,所以我想与其他跟踪功能不同,它是可用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-26 12:48:06

您已经选择了Trace.METHOD SNOOPer。该方法意味着某些项目(在您的情况下,PC)是定期抽样的。这并不是复杂运行时分析的合适跟踪方法。

对于复杂的运行时分析,需要使用以下内容之一:

serial))

  • Trace.METHOD

  • Trace.METHOD Anayzer (需要一个支持片外跟踪的PowerTrace和CPU (并行或onchip-trace)

CAnalyzer )(需要一个CombiProbe和一个支持芯片外跟踪的CPU通过一个微小的4位跟踪port)

  • Trace.METHOD Onchip )(需要一个支持onchip-trace)

的CPU )。

由于您编写了内核具有内部跟踪功能(因此您可能有一个所谓的"TriCore仿真设备“),所以我认为Trace.METHOD Onchip是您所需要的。

对于使用片上跟踪的定时测量,您必须确保内核的片上跟踪实际上提供了程序流信息的一些计时信息。对于TriCore,请在MCDS窗口中检查TimeSTamp和TImeMode。

为了使用程序计数器的示例来获得目标软件中执行最多的部分的粗略线索,我建议使用PERF命令组,它非常类似于SNOOPer。

为了测量A和B之间的时间,核心在A和B中都停止,RunTime命令也可能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62019720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档