使用Percepio View免费跟踪工具分析Zephyr应用

描述

Percepio View免费跟踪工具现在可以针对Zephyr应用程序进行跟踪和可视化分析了。Percepio View可以帮助开发人员理解和调试Zephyr中的固定优先级的多线程行为及复杂的线程交互。

Percepio是Zephyr项目的活跃成员,将Percepio View作为免费工具提供给Zephyr社区,帮助开发者构建更好的实时应用程序。

应用程序

Percepio View不仅仅是一个“事件查看器”,它还可以理解互斥信号量、信号量和消息队列等RTOS概念,以及Zephyr系统调用的含义。例如,对阻塞的系统调用通过标签颜色突出显示,在红色标签(阻塞调用)选中时,相应的绿色标签(从阻塞调用返回)也被突出显示。通过按钮“Selection Details”高亮显示相关的事件,如下所示。

应用程序

Percepio View依赖于TraceRecorder库,该库包含在Zephyr代码中,并可通过Kconfig系统进行配置。启用后,它将使用Zephyr内核中的跟踪hook函数来跟踪内核事件,如上下文切换和系统调用。

应用程序

用户还可以通过调用TraceRecorder API来记录用户定义的事件(“用户事件”)。让用户可以同时观测内核事件和应用程序事件。用户事件日志比printf日志记录方式更快。

Percepio View仅提供“快照跟踪”模式,跟踪的数据将存储在目标RAM中的环形缓冲区中,后续使用GDB调试器连接方式保存到主机。该方式将跟踪长度限制为跟踪缓冲区的大小,但即使是短的快照跟踪也可能非常有用。例如,如果某个系统调用出现了零星的超时错误,可以在返回值错误处理代码中设置一个断点,通过在此时保存快照数据,可以检查最有可能解释问题的事件序列。

应用程序

读取快照可以使用以下GDB命令:dump binary value trace.bin *RecorderDataPtr

如果使用VS Code,可以在调试控制台输入“-exec ”来运行这个命令。

还可以配置Percepio View,自动执行跟踪快照。

• 在主菜单中选择Trace->Open Snapshot Tool,选择GDB作为Snapshot Engine

• 单击“Settings”按钮,在Percepio View中配置GDB设置

GDB路径:输入GDB客户端可执行文件的完整路径,例如在Zephyr SDK文件夹中的“arm-zephyr-eabi-gdb”。

镜像路径:指定构建文件夹中*.elf文件的路径。

初始化命令:target remote localhost:,其中是GDB服务器的TCP端口号。

快照跟踪模式对硬件要求低,基本上适用于任何电路板,并且特定于硬件的细节(如事件时间戳)由Zephyr内核处理。Zephyr中的TraceRecorder集成已经在600多个电路板上进行了验证。

如果需要连续跟踪流的解决方案,可以使用Percepio View的商用版本Tracealyzer,包括更多视图和特性。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分