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

使用Tracealyzer調(diào)試Zephyr中的優(yōu)先級(jí)反轉(zhuǎn)

教你快遞入門-Tracealyzer跟蹤記錄庫移植
Spectrum View具有哪些功能?
Zephyr與FreeRTOS實(shí)時(shí)性測(cè)試比較
使用Percepio的Tracealyzer和DevAlert實(shí)現(xiàn)FreeRTOS的可觀察性!
UltraSoC與Percepio結(jié)盟為實(shí)時(shí)系統(tǒng)提供第一個(gè)完整的嵌入式分析平臺(tái)

UltraSoC聯(lián)手Percepio 嵌入式調(diào)試工具實(shí)時(shí)交流和分享重要信息
淺析Zephyr在ESP32上的啟動(dòng)流程
Zephyr如何在第三方工具鏈下開啟TLS
如何使用Tracealyzer的流模式來跟蹤ThreadX應(yīng)用
如何通過Tracealyzer導(dǎo)出的跟蹤數(shù)據(jù)對(duì)任務(wù)進(jìn)行分析?
Percepio Tracealyzer 4.9版本改善Linux用戶體驗(yàn)
Tracealyzer如何簡化調(diào)試

評(píng)論