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:
快照跟踪模式对硬件要求低,基本上适用于任何电路板,并且特定于硬件的细节(如事件时间戳)由Zephyr内核处理。Zephyr中的TraceRecorder集成已经在600多个电路板上进行了验证。
如果需要连续跟踪流的解决方案,可以使用Percepio View的商用版本Tracealyzer,包括更多视图和特性。
-
应用程序
+关注
关注
38文章
3346浏览量
60422 -
可视化
+关注
关注
1文章
1363浏览量
22903 -
Zephyr
+关注
关注
1文章
61浏览量
6634
原文标题:使用免费的Percepio View工具分析Zephyr应用
文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
如何通过Tracealyzer实现Linux系统的跟踪?
使用Tracealyzer调试Zephyr中的优先级反转
教你快递入门-Tracealyzer跟踪记录库移植
Zephyr与FreeRTOS实时性测试比较
使用Percepio的Tracealyzer和DevAlert实现FreeRTOS的可观察性!
UltraSoC与Percepio结盟为实时系统提供第一个完整的嵌入式分析平台
UltraSoC联手Percepio 嵌入式调试工具实时交流和分享重要信息
浅析Zephyr在ESP32上的启动流程
Zephyr如何在第三方工具链下开启TLS
如何使用Tracealyzer的流模式来跟踪ThreadX应用
如何通过Tracealyzer导出的跟踪数据对任务进行分析?
Percepio Tracealyzer 4.9版本改善Linux用户体验
Tracealyzer如何简化调试
使用Percepio View免费跟踪工具分析Zephyr应用
评论