Percepio是著名的Tracealyzer背后的公司。Tracealyzer是一款桌面應(yīng)用程序,方便嵌入式工程師通過追蹤直觀地診斷軟件中的問題。什么是追蹤?追蹤是一種低級(jí)日志記錄機(jī)制,可用于在執(zhí)行過程中解釋系統(tǒng)狀態(tài)。在對(duì)意外行為進(jìn)行故障排除時(shí),使用FreeRTOS分析基于微控制器的應(yīng)用程序的追蹤可以節(jié)省嵌入式工程師大量時(shí)間和精力。如需將此工具與FreeRTOS應(yīng)用程序一起使用,需要簡(jiǎn)單集成TraceRecorder庫以捕獲追蹤。在程序執(zhí)行過程中,追蹤可以快照形式記錄并予以保存,或?qū)崟r(shí)流式傳輸。
加載追蹤后,Tracealyzer可以提供具有可配置視圖的執(zhí)行詳細(xì)信息,例如程序時(shí)間線、事件日志、CPU負(fù)載圖、內(nèi)存使用情況、任務(wù)依賴關(guān)系和許多其他有用的可視化結(jié)果。這些功能有助于實(shí)現(xiàn)可觀察性。您可以在FreeRTOS應(yīng)用程序的深層追蹤任務(wù)以及內(nèi)核API調(diào)用。下圖是在筆記本電腦上運(yùn)行的 Tracealyzer的快照,其中加載了示例FreeRTOS追蹤請(qǐng)注意追蹤視圖面板中的FreeRTOS API調(diào)用,例如xQueueSend()和xQueueReceive()。除了代碼調(diào)試之外,您還可以看到與追蹤序列相關(guān)的CPU負(fù)載圖。
已加載示例FreeRTOS追蹤的Tracealyzer
Tracealyzer可用于嵌入式應(yīng)用程序的開發(fā)和測(cè)試或?qū)ΜF(xiàn)場(chǎng)遇到的問題進(jìn)行分類。如需詳細(xì)了解如何使用該工具,請(qǐng)?jiān)L問Percepio網(wǎng)站上適用于 FreeRTOS的Tracealyzer。此外,請(qǐng)按照實(shí)用入門指南,使用FreeRTOS應(yīng)用程序設(shè)置TraceRecorder庫。
除了Tracealyzer之外,Percepio還提供另外一款基于云的產(chǎn)品 DevAlert。DevAlert與Tracealyzer相得益彰,具有許多適用于生產(chǎn)用例的功能。從可觀察性的不同角度來看,DevAlert服務(wù)可以配置為通過云連接從遠(yuǎn)程設(shè)備群中捕獲特定診斷。更重要的是,您可以定義有意義的特定數(shù)據(jù)元素以及要發(fā)出的警報(bào)類型。此外,設(shè)備固件和診斷數(shù)據(jù)都不需要直接發(fā)送到 DevAlert服務(wù),而是存儲(chǔ)在您自己的云帳戶(例如AWS S3)中。
使用分離存儲(chǔ)可解決隱私和安全問題,因?yàn)榇藬?shù)據(jù)保留在設(shè)備制造商的帳戶中,不會(huì)上傳到Percepio服務(wù)。單擊即可訪問診斷數(shù)據(jù),這得益于桌面客戶端DevAlertDispatcher所采用的混合設(shè)計(jì)。觸發(fā)DevAlert儀表板鏈接時(shí),該客戶端會(huì)從單獨(dú)的存儲(chǔ)中下載請(qǐng)求的數(shù)據(jù)。DevAlert服務(wù)的架構(gòu)圖如下圖所示,顯示了這種分離的存儲(chǔ)范例。
DevAlert 架構(gòu)
得益于這種架構(gòu),可使用相關(guān)桌面工具實(shí)現(xiàn)多種類型的調(diào)試數(shù)據(jù)。您可以獲得Tracealyzer追蹤,查看導(dǎo)致檢測(cè)到異常的事件序列。此外,最近還新增了對(duì)GDB故障轉(zhuǎn)儲(chǔ)的支持,如下列屏幕截圖所示。
GDB 故障轉(zhuǎn)儲(chǔ)屏幕截圖
您可以使用常規(guī)源代碼調(diào)試器更詳細(xì)地分析崩潰和其他異常,就像調(diào)試本地設(shè)備一樣。如果您有更具體的需求,也可以添加自己的診斷負(fù)載、查看器工具和腳本。
要想深入了解DevAlert功能,最簡(jiǎn)單方法是啟動(dòng)沙盒環(huán)境,Percepio 提供免費(fèi)試用版。沙盒包括一個(gè)在QEMU仿真器中運(yùn)行的FreeRTOS示例應(yīng)用程序,作為連接到DevAlert的虛擬設(shè)備。
首先,注冊(cè)并登錄DevAlert,然后在控制臺(tái)中點(diǎn)按“激活服務(wù)”。只需簡(jiǎn)單幾步,即可在瀏覽器中訪問顯示模擬電梯項(xiàng)目的虛擬桌面。示例中的電梯控制器是運(yùn)行FreeRTOS應(yīng)用程序的虛擬設(shè)備,已配置為生成不同類型的警報(bào)。如需了解控制器在任何給定時(shí)間發(fā)生的情況,請(qǐng)參閱電梯動(dòng)畫。
模擬電梯項(xiàng)目
您可以瀏覽源代碼,查看如何根據(jù)正在運(yùn)行的FreeRTOS應(yīng)用程序中遇到的事件類型配置警報(bào)。我們提供了一組場(chǎng)景引發(fā)已知問題來演示警報(bào)的作用。執(zhí)行場(chǎng)景后,返回DevAlert控制臺(tái)并單擊儀表板。此時(shí)您可以看到問題概述,其中警報(bào)已按唯一性分組。警報(bào)發(fā)送到服務(wù)時(shí),儀表板將更新。
DevAlert 控制臺(tái)
從儀表板的“打開”按鈕可以看出,如果想通過設(shè)備更深入地了解追蹤本身,甚至可以通過DevAlert啟動(dòng)Tracelyzer。通過這種方式,這兩種工具相輔相成,為FreeRTOS 應(yīng)用程序帶來全面的可觀察性。適用于FreeRTOS的Tracealyzer和DevAlert 還有很多值得探索之處,因此 請(qǐng)按照上述鏈接內(nèi)容開始使用自己的嵌入式應(yīng)用程序??靵黹_啟快樂追蹤之旅吧!
-
微控制器
+關(guān)注
關(guān)注
48文章
7596瀏覽量
151748 -
嵌入式
+關(guān)注
關(guān)注
5088文章
19158瀏覽量
306479 -
cpu
+關(guān)注
關(guān)注
68文章
10890瀏覽量
212419 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3042瀏覽量
74179 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
484瀏覽量
62277
原文標(biāo)題:使用Percepio的Tracealyzer和DevAlert實(shí)現(xiàn)FreeRTOS的可觀察性!
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論