Percepio View免費跟蹤工具現在可以針對Zephyr應用程序進行跟蹤和可視化分析了。Percepio View可以幫助開發人員理解和調試Zephyr中的固定優先級的多線程行為及復雜的線程交互。
Percepio是Zephyr項目的活躍成員,將Percepio View作為免費工具提供給Zephyr社區,幫助開發者構建更好的實時應用程序。
Percepio View不僅僅是一個“事件查看器”,它還可以理解互斥信號量、信號量和消息隊列等RTOS概念,以及Zephyr系統調用的含義。例如,對阻塞的系統調用通過標簽顏色突出顯示,在紅色標簽(阻塞調用)選中時,相應的綠色標簽(從阻塞調用返回)也被突出顯示。通過按鈕“Selection Details”高亮顯示相關的事件,如下所示。
Percepio View依賴于TraceRecorder庫,該庫包含在Zephyr代碼中,并可通過Kconfig系統進行配置。啟用后,它將使用Zephyr內核中的跟蹤hook函數來跟蹤內核事件,如上下文切換和系統調用。
用戶還可以通過調用TraceRecorder API來記錄用戶定義的事件(“用戶事件”)。讓用戶可以同時觀測內核事件和應用程序事件。用戶事件日志比printf日志記錄方式更快。
Percepio View僅提供“快照跟蹤”模式,跟蹤的數據將存儲在目標RAM中的環形緩沖區中,后續使用GDB調試器連接方式保存到主機。該方式將跟蹤長度限制為跟蹤緩沖區的大小,但即使是短的快照跟蹤也可能非常有用。例如,如果某個系統調用出現了零星的超時錯誤,可以在返回值錯誤處理代碼中設置一個斷點,通過在此時保存快照數據,可以檢查最有可能解釋問題的事件序列。
讀取快照可以使用以下GDB命令:dump binary value trace.bin *RecorderDataPtr
如果使用VS Code,可以在調試控制臺輸入“-exec
還可以配置Percepio View,自動執行跟蹤快照。
? 在主菜單中選擇Trace->Open Snapshot Tool,選擇GDB作為Snapshot Engine
? 單擊“Settings”按鈕,在Percepio View中配置GDB設置
GDB路徑:輸入GDB客戶端可執行文件的完整路徑,例如在Zephyr SDK文件夾中的“arm-zephyr-eabi-gdb”。
鏡像路徑:指定構建文件夾中*.elf文件的路徑。
初始化命令:target remote localhost:
快照跟蹤模式對硬件要求低,基本上適用于任何電路板,并且特定于硬件的細節(如事件時間戳)由Zephyr內核處理。Zephyr中的TraceRecorder集成已經在600多個電路板上進行了驗證。
如果需要連續跟蹤流的解決方案,可以使用Percepio View的商用版本Tracealyzer,包括更多視圖和特性。
-
應用程序
+關注
關注
38文章
3322瀏覽量
58726 -
可視化
+關注
關注
1文章
1244瀏覽量
21636 -
Zephyr
+關注
關注
0文章
35瀏覽量
6232
原文標題:使用免費的Percepio View工具分析Zephyr應用
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
如何通過Tracealyzer實現Linux系統的跟蹤?

使用Tracealyzer調試Zephyr中的優先級反轉

教你快遞入門-Tracealyzer跟蹤記錄庫移植
Zephyr與FreeRTOS實時性測試比較
使用Percepio的Tracealyzer和DevAlert實現FreeRTOS的可觀察性!
UltraSoC與Percepio結盟為實時系統提供第一個完整的嵌入式分析平臺

UltraSoC聯手Percepio 嵌入式調試工具實時交流和分享重要信息
淺析Zephyr在ESP32上的啟動流程
Zephyr如何在第三方工具鏈下開啟TLS
如何使用Tracealyzer的流模式來跟蹤ThreadX應用
如何通過Tracealyzer導出的跟蹤數據對任務進行分析?
Percepio Tracealyzer 4.9版本改善Linux用戶體驗
Tracealyzer如何簡化調試

評論