轉載_[原創] 使用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的詳細時間,便於分析錯誤和對系統進行調優。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章