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

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的详细时间,便于分析错误和对系统进行调优。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章