0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈Zephyr的Trace功能

恩智浦MCU加油站 来源:恩智浦MCU加油站 2025-04-10 17:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

相信调试过RTOS的朋友们一定都有一个感悟,和裸板开发相比,调试具有多个线程,同时线程间还有各种千丝万缕的数据通信的代码,是一个无比痛苦的事情。

请大家不要气馁,Zephyr就专门针对这种调试困难,提供了一个叫做Trace的功能。所谓Trace功能是一个用于实时跟踪和调试嵌入式系统的子系统,它提供了强大的工具来监控操作系统的运行状态、线程调度以及内核服务。

功能定义

Zephyr的Trace功能是一个调试跟踪子系统,可以将操作系统的线程调度、内核服务等信息输出至串口或专用工具中供调试分析。

支持格式

Zephyr支持多种tracing格式输出,包括Percepio Tracealyzer格式、Segger SystemView格式、Common Trace Format(CTF)格式等。这些格式对应不同的分析工具,如Tracealyzer,SystemView等。

主要特点

实时性:Zephyr的Trace功能可以实时地收集和传输调试信息,帮助开发者快速定位问题。

灵活性:支持多种输出方式,包括串口输出和通过JLink SWD输出至PC上位机软件。

可配置性:可以根据需要配置不同的tracing格式和输出方式,以满足不同的调试需求。

使用场景

开发调试:在嵌入式系统开发过程中,使用Zephyr的Trace功能可以帮助开发者实时监控程序的运行状态,快速定位和解决问题。

性能分析:通过收集和分析Trace信息,开发者可以了解系统的性能瓶颈,并进行针对性的优化。

总的来说,Zephyr的Trace功能为嵌入式系统开发提供了强大的实时监控和调试能力。通过合理配置和使用Trace功能,开发者可以更加高效地进行系统开发、调试和优化工作。

这里推荐两款工具,第一个是PercepioTracealyzer:

https://docs.zephyrproject.org/latest/services/tracing/index.html

25f2abfc-15a6-11f0-9310-92fbcf53809c.png

第二个是Segger SystemView:

260f924e-15a6-11f0-9310-92fbcf53809c.png

我们以Segger的SystemView为例进行说明,添加方式可以说非常方便,我们只需要添加以下Kconfig配置属性到工程中:

CONFIG_STDOUT_CONSOLE=y
CONFIG_THREAD_NAME=y
CONFIG_SEGGER_SYSTEMVIEW=y
CONFIG_USE_SEGGER_RTT=y
CONFIG_TRACING=y

重新编译工程即可添加Trace功能:

这样一来,有了Trace功能的加持,再也不用担心我们的bug了!!

至此,Zephyr系列就迎来了全剧终,小编在这里首先感谢下大家的支持,也相信随着Zephyr社区的不断发展,会有越来越多的伙伴加入到Zephyr这个大家庭中,共享Zephyr之美!

恩智浦MCU加油站

恩智浦半导体NXP Semiconductors N.V.(纳斯达克股票代码:NXPI)是汽车、工业物联网、移动设备和通信基础设施市场值得信赖的合作伙伴,致力于提供创新解决方案。

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

    关注

    41

    文章

    3716

    浏览量

    133107
  • RTOS
    +关注

    关注

    25

    文章

    862

    浏览量

    122613
  • Zephyr
    +关注

    关注

    0

    文章

    47

    浏览量

    6513

原文标题:Zephyr高级调试篇之Trace功能

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    恩智浦解读Zephyr log系统的使用 Zephyr的shell和log功能介绍

    Zephyr log系统的使用,在使用log前需要:     1. 修改proj.conf打开log功能: CONFIG_LOG =y 2. 编辑main.c使用log功能: # include
    的头像 发表于 02-27 09:19 1709次阅读
    恩智浦解读<b class='flag-5'>Zephyr</b> log系统的使用 <b class='flag-5'>Zephyr</b>的shell和log<b class='flag-5'>功能</b>介绍

    恩智浦分享Zephyr调试技巧

    前面几期中,我们着重给大家介绍了如何搭建Zephyr开发环境,以及如何添加自己的应用代码。今天让我们开始一个新的篇章:Zephyr调试技巧以及介绍Ozone进行Zephyr的调试分享。 Zep
    的头像 发表于 03-13 09:05 1886次阅读

    如何利用Trace机制实现LLCP预览功能

    在蓝牙协议栈开发过程中,有时需要预先知道 LLCP。本文将介绍如何利用 Trace 机制实现 LLCP 预览功能
    的头像 发表于 10-09 17:55 1526次阅读

    请问STM32H7是否支持Trace功能

    以前用JLNK 和 keil MDK 开发stmF1,StmF2,stm32F4都可以使用Trace功能,这样就可以使用逻辑分析仪调试程序,但开发stmH7就不行了,如果勾选了Trace,就会
    发表于 04-25 07:38

    如何使用MCUXpresso IDE中内置的SWO Trace功能?

    如何使用MCUXpresso IDE中内置的SWO Trace功能?
    发表于 03-17 08:08

    程序的TRACE需求及功能

    面向用户的最终发行版中,TRACE功能需要被卸掉以保证不会对程序的执行效率造成影响。 2. 需求 * 要求程序在执行过程中能够给出反映程序状态的可视化信息,如包括时间、当前线程、源文件及代码行号等
    发表于 07-05 08:27

    使用IAR ETM Trace调试功能的要求

    `在某些情况下,应用代码可能突然跑飞或者产生异常中断,此时导致问题的原因可能难以发现。调试这类问题时,可以考虑使用IAR所支持的ETM Trace调试功能,ETM Trace调试功能
    发表于 03-05 14:49

    Trace thickness

    Trace thickness The thickness of a trace is usually .0014 per ounce of copper. Our standard material is 1/2 ounce copper that is plate
    发表于 12-29 09:20 1767次阅读

    Trace32的高级功能特性

    Trace32的高级功能特性 Logic analyzer Real-time Streaming and Profiling Boundary Scan Third Party Tools Intergrations Virtual Targets Debugging
    发表于 11-16 12:52 29次下载
    <b class='flag-5'>Trace</b>32的高级<b class='flag-5'>功能</b>特性

    浅谈Zephyr ESP32 wifi如何使用

    Zephyr ESP32 wifi驱动简析一文中简要分析了esp32 wifi如何集成进Zephyr,本文接着说明要如何使用esp32 wifi。 从前文可知由于esp32 wifi的驱动
    的头像 发表于 06-01 10:17 8361次阅读

    浅析Zephyr应用的代码结构中的自定义驱动

    本篇是《《Zephyr应用的代码结构》》系列的终篇和下面两篇文章一起可以构建出一个有app独立管理的zephyr项目 Zephyr应用的代码结构--West提货单: zephyr
    的头像 发表于 08-18 09:08 6546次阅读

    TRACE功能概述

    在TIA博途软件中,通过轨迹功能记录测量值变化,并通过逻辑分析器对记录进行评估分析。将配置好的TRACE下载到PLC中,从而根据条件采样变量值。多个采样值形成了以时间变化为横坐标的曲线,称为记录。
    的头像 发表于 03-11 14:08 5948次阅读

    泰凌微电子Zephyr编译环境搭建

    如上文所介绍,Telink Zephyr是由社区的Zephyr仓库fork而来的,用于维护我们在社区的内容,并开发新的功能。若要查看 Telink Zephyr 最新的开发内容,可以查
    的头像 发表于 01-30 11:28 4538次阅读

    Trace功能的添加、组态及测试

    本节为工程添加Trace曲线,在Trace中配置Diagram,并为每个Diagram组态变量监控。 具体操作介绍 1.在Application下添加Object,选择Trace。添加Trac
    发表于 03-08 14:42 1943次阅读

    深入解析Zephyr RTOS的技术细节

    Zephyr是一个针对资源受限设备优化的小型、可缩放、多体系架构实时操作系统(RTOS)。Zephyr由Linux基金会维护[1],是一个以构建业界最佳的RTOS为目标的开源合作项目。近年来
    的头像 发表于 10-22 16:47 3955次阅读
    深入解析<b class='flag-5'>Zephyr</b> RTOS的技术细节