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

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

3天内不再提示

Tracealyzer如何简化调试

麦克泰技术 来源:泰克科技 2025-02-11 11:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

如果没有专为多线程代码设计的有效调试和分析工具,开发基于Zephyr的软件可能更具有挑战性。Percepio Tracealyzer可让您快速解决问题并加快日常开发。优化您的系统以获得可靠的实时性能,获取免费评估非常方便,你在15分钟内开始使用这个软件。

简化调试并加快开发速度

“Tracealyzer将我们的开发速度提高了一倍,使用此工具可以明显解决需要几天才能解决的问题,而且只是一个快速解决方案。我们一直在使用它。

—Alex Pabouctisids,Flyability首席固件工程师

厌倦了无休止地调试嵌入式C/C++代码?告别繁琐的故障排除,欢迎使用Percepio Tracealyzer加速开发。对于当今复杂的RTOSLinux系统,传统调试通常无效,并且可能会消耗40-50%的开发时间。使用Tracealyzer获得可视化跟踪可观察性,以加快你的日常调试速度并解决传统调试无法解决的问题。下面了解Tracealyzer如何简化调试。

优化系统性能

“在运行该工具后不到5天的时间里,我们将图形渲染引擎的性能提高了3倍”

—Serious Integrated Inc.首席执行官Terry West

Tracealyzer提供高级分析功能,显示数字背后的事件。查明性能瓶颈并释放硬件的全部潜力。确保你满足产品性能目标并提供响应式用户体验。

对于多线程的RTOS或Linux系统来说,优化是一项挑战。当线程速度较慢时,通常是由于源代码中不明显的因素造成的。可视化跟踪可观察性提供了完整的画面并简化了优化。

9776f192-e825-11ef-9310-92fbcf53809c.png

跟踪你的任务

Zephyr内核提供多线程,其中每个任务都有自己的堆栈和调度优先级,这对于功能正确性和性能非常重要。Tracealyzer允许你分析不同优先级分配的行为和性能,以及任务的堆栈使用情况。如果你的堆栈太小,则可能会因堆栈溢出而出现错误。如果它们太大,则会浪费宝贵的RAM,而这些RAM可能是应用程序中的需要。

跟踪视图显示任务调度和对内核API函数的调用。这样,你就可以准确查看任务的激活时间、实际执行时间以及有时无法按预期执行的原因。你还可以看到一个概览,其中显示了哪些任务正在消耗处理器时间,如“CPU Load Graph”所示。此外,还提供了详细的统计数据,例如任务执行时间和响应时间。

跟踪Zephyr内核API调用

Zephyr内核提供了许多个API,用于在任务之间传递数据以及保护共享资源,例如队列、信号量和互斥锁。这些API函数可能会阻止调用任务的执行,直到另一个任务执行了匹配的操作。此类API调用可能会在任务之间形成一个依赖关系网络,这在源代码中并不明显。Tracealyzer可以可视化任务交互,这使得开发者理解、调试和优化Zephyr应用程序变得更加容易。下面提供了一些示例。

97d7b3e2-e825-11ef-9310-92fbcf53809c.png

97ed8dc0-e825-11ef-9310-92fbcf53809c.png

9803f132-e825-11ef-9310-92fbcf53809c.png

应用程序日志记录

Tracealyzer提供高级日志记录功能。在应用程序代码中记录自定义事件和数据,并将其与内核跟踪一起显示在Tracealyzer中,并作为图形绘图显示。这提供了在运行时对应用程序代码的更深入的可观察性。

与printf调用不同,Tracealyzer日志记录不会将代码速度减慢几毫秒。与UART上的printf相比,高效的记录功能可以消除超过99%的记录开销。这种低影响的日志记录可确保你在调试中获得正确的图像,而不会因缓慢的日志记录调用而产生探测影响。

例如,状态转换可以记录并显示在“logic analyzer”视图中和状态图中。结果可以显示在跟踪视图中(如左所示)或总结为状态图(右侧),从而轻松发现错误行为。

984f8372-e825-11ef-9310-92fbcf53809c.png

软件运行方式

使用Tracealyzer不需要任何特定的硬件,只需要一个合适的开发板即可。您可以从RAM中的跟踪缓冲区捕获最新活动的快照,或者使用以太网或SEGGER J-Link、IAR I-jet或Keil ULINK等调试探针将数据流式传输到主机。这样,你可以长时间监控你的系统并捕获任何问题。

Zephyr的Tracealyzer依赖于Percepio TraceRecorder,该记录可在Apache 2.0许可证下的Zephyr存储库中使用。按照入门指南,几分钟内即可将其集成到你的项目中。

Tracealyzer适用于大多数嵌入式处理器(例如ARM芯片等),Percepio为常见开发工具提供插件和集成,包括Segger J-Link、GDB、STM32CubeIDE、Keil MDK、IAR和Lauterbach。

麦克泰技术代理Tracealyzer,具有丰富的RTOS分析软件与调试工具使用方面的知识和经验,欢迎咨询info@bmrtech.com。

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

    关注

    4

    文章

    1436

    浏览量

    42499
  • RTOS
    +关注

    关注

    25

    文章

    862

    浏览量

    122617
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73158
  • Zephyr
    +关注

    关注

    0

    文章

    47

    浏览量

    6514

原文标题:支持Zephyr RTOS内核分析:Tracealyzer简介

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何通过Tracealyzer实现Linux系统的跟踪?

    Tracealyzer是Percepio 公司开发的一款可视化跟踪工具, 目前它提供了30多种相互关联的运行时行为视图,支持裸机、FreeRTOS、μC/OS-III、Zephyr、ThreadX、VxWorks、Linux系统的跟踪。能够帮助开发人员加快固件的开发,减少对系统验证和性能优化所需要的时间。
    的头像 发表于 12-08 14:08 1954次阅读
    如何通过<b class='flag-5'>Tracealyzer</b>实现Linux系统的跟踪?

    使用Tracealyzer调试Zephyr中的优先级反转

    Percepio Tracealyzer已经在600多个支持Zephyr的开发板上完成了验证,可以帮助开发人员改进Zephyr应用的调试和性能分析。
    的头像 发表于 04-21 11:31 990次阅读
    使用<b class='flag-5'>Tracealyzer</b><b class='flag-5'>调试</b>Zephyr中的优先级反转

    Tracealyzer 技术分享

    的FreeRTOS越来越显示其应用的强大性。因此本文对于开发嵌入式操作的工程师有一定的帮助。帖子我会采用一点一点不定期的更新,毕竟我也是上班一族请大家见谅。以下是Tracealyzer 软件界面
    发表于 01-04 21:10

    教你快递入门-Tracealyzer跟踪记录库移植

    PercepioTracealyzer是一个强大的工具,可以在运行时跟踪和可视化分析RTOS系统。超过30种视图,对系统的实时行为提供了惊人洞察力,加速了应用的调试、验证和系统性能优化的过程
    发表于 07-31 14:08

    Tracealyzer利用CortexM的ITM实现流跟踪

    事件,达到1175KB/s的传输速率。使用ARM-ITM流模式下文将以IAR EWARM 8.40、I-jet调试器和Tracealyzer 4.35为例说明如何配置和使用ITM实现流模式跟踪。Note
    发表于 12-05 15:34

    通过Tracealyzer用户事件来了解应用程序

    Tracealyzer自动分析并可视化RTOS的行为,对软件开发者来说,可视化分析是很大的一个改进。但是,对于一些不是RTOS自动生成的事件,或者说如果你想要可视化一些应用程序数据,测量两个事件之间
    发表于 08-20 10:11

    如何使用Tracealyzer理解多任务调度?

    调试器视图的补充。我们今天来了解一下如何通过Tracealyzer记录的数据获取任务优先级及执行时间相关的信息。优先级决定何时调度大多数RTOS使用固定优先级调度策略,开发人员为每个任务分配一个静态
    发表于 12-17 16:01

    如何使用Tracealyzer流模式跟踪ThreadX?

    Tracealyzer是Percepio 公司开发的一款用于RTOS的嵌入式软件系统的可视化跟踪工具,提供了30多种相互关联的可视化运行时行为视图,本文将介绍如何使用Tracealyzer的流模式来
    发表于 09-23 13:25

    是否需要在iMXRT1060 EVK板上执行任何特定操作才能使tracealyzer正常工作?

    我有 iMXRT1060EVK,想在 FreeRTOS 的流模式下使用 Tracealyzer。我正在使用 IAR EW 和 I-jet 调试探针。我已按照以下链接中的步骤进行操作,但数据流仍然存在
    发表于 04-17 08:02

    使用Percepio的Tracealyzer和DevAlert实现FreeRTOS的可观察性!

    Tracealyzer的快照,其中加载了示例FreeRTOS追踪请注意追踪视图面板中的FreeRTOS API调用,例如xQueueSend()和xQueueReceive()。除了代码调试之外,您还
    发表于 05-18 13:41

    Tracealyzer实现流跟踪最简单的方法

    Tracealyzer 实现流跟踪最简单的方法就是使用SEGGER J-Link调试器,通过RTT功能来实现数据的传送。RTT需要在RAM上建立一段缓存,在目标系统运行期间,由J-Link读取缓存中的数据。一般来说RTT的速度和可靠性比较高,但是如果您遇到了问题,可以参照
    的头像 发表于 09-02 11:11 3041次阅读

    如何使用Tracealyzer的流模式来跟踪ThreadX应用

    Tracealyzer是Percepio 公司开发的一款用于RTOS的嵌入式软件系统的可视化跟踪工具,提供了30多种相互关联的可视化运行时行为视图,本文将介绍如何使用Tracealyzer的流模式来跟踪ThreadX应用。
    的头像 发表于 09-16 11:14 2022次阅读

    Tracealyzer跟踪记录库移植

    使用Tracealyzer,首先要将跟踪记录库集成到工程。安装了Tracealyzer 4之后,在安装路径下找到以RTOS名称命名的文件夹,将TraceRecorder子文件夹复制到自己的工程目录中。以FreeRTOS为例:
    的头像 发表于 11-08 11:17 2518次阅读

    Xilinx Zynq上FreeRTOS的Tracealyzer

    电子发烧友网站提供《Xilinx Zynq上FreeRTOS的Tracealyzer.zip》资料免费下载
    发表于 12-07 14:59 5次下载
    Xilinx Zynq上FreeRTOS的<b class='flag-5'>Tracealyzer</b>

    Tracealyzer发布4.8新版本!

    多任务软件系统在运行时的实际行为,取决于许多因素,比如任务和中断的时间、它们的相互作用和输入。通过Tracealyzer跟踪工具,用户可以更好地了解系统的运行时世界,并加速开发、调试和验证。
    的头像 发表于 06-09 15:03 1785次阅读
    <b class='flag-5'>Tracealyzer</b>发布4.8新版本!