查看: 1908|回复: 0

[原创] 使用Tracealyzer分析RTOS需掌握的基本概念

[复制链接]
  • TA的每日心情
    开心
    2023-6-12 14:34
  • 签到天数: 165 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2019-9-27 10:21:16 | 显示全部楼层 |阅读模式
    分享到:
    Tracealyzer是一款RTOS行为分析工具,支持包括VxWorks、μC/OS-III、FreeRTOS在内的众多RTOS,以及Linux系统。

    Tracealyzer能够分析RTOS和中间件协议栈中的软件事件,并且提供了许多专门的可视化视图展示,如任务调度,中断、任务之间的交互。视图之间直观的链接在一起,相关事件突出显示,使得理解问题和验证方案变得更加容易。

    将Tracealyzer集成到自己的工程的操作方法请参考:快速入门| Tracealyzer跟踪记录库移植

    使用Tracealyzer对RTOS进行分析,需要掌握基础的概念
    01  Actor
    被定义为任务/线程或者ISR。一个任务,一个中断服务程序都是一个Actor。
    02  Instance
    实例。Actor的一次执行,在时间轴视图上以带颜色的矩形表示,矩形的长度代表着执行的时间长度。矩形中阴影部分表示任务处于就绪态,但是期间CPU正被就绪的更高优先级任务占用。
    1.jpg

    图 1   任务实例

    03  与实例相关的时间
    时间是Tracealyzer的核心,几乎所有的视图都依赖于时间戳。通过时间才能知晓任务调度的时机,系统服务调用的时间点。
    2.jpg

    图 2    实例信息中的时间

    a、Start and End Times:起始和结束时间。
    b、Execution Time:执行时间。一个实例使用的CPU时间量,不包括任务抢占的时间。
    c、Response Time:响应时间。从实例开始到结束的时间。更准确地说应该是:任务的响应时间是从任务准备执行时开始计算的(即内核将任务的调度状态设置为就绪的时刻)。
    d、Wait Time:等待时间。这是响应时间减去执行时间(Response Time - Execution Time)。即当Actor未执行时,实例(instance)所消耗的时间。
    e、Startup Time:启动时间。从任务就绪到执行开始的时间。
    3.png

    图 3    响应时间与执行时间、启动时间的关系
    04 Fragmentation
    Actor实例执行的片段数量(由于任务/中断抢占,执行过程被打断)。如果一个Actor实例完全执行而没有抢占,这个实例的片段将是1。

    05 View Ports and Sync
    视区与同步。视区是Tracealyzer当前视图窗口所显示的内容时长(与时间的分辨率相关)。默认的“Details”视区,显示100ms时长的内容;默认的“Overview”视区,显示10s时长的内容。时间轴同步到Details或者Overview视区,各视图窗口放大、缩小和滚动都是联动的,除非选择Unsynchronized,将当前视图独立。
    4.png

    图 4   默认Details视区(窗口显示100ms时长)


    5.png

    图 5    默认的Overview视区(窗口显示10s时长)

    以上是使用Tracealyzer分析RTOS系统时所需要掌握的几个基础概念。在此之上,我们可以查看任务或者ISR的详细时间,便于分析错误和对系统进行调优。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 21:41 , Processed in 0.120088 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.