如果沒有專為多線程代碼設(shè)計(jì)的有效調(diào)試和分析工具,開發(fā)基于Zephyr的軟件可能更具有挑戰(zhàn)性。Percepio Tracealyzer可讓您快速解決問題并加快日常開發(fā)。優(yōu)化您的系統(tǒng)以獲得可靠的實(shí)時(shí)性能,獲取免費(fèi)評估非常方便,你在15分鐘內(nèi)開始使用這個軟件。
簡化調(diào)試并加快開發(fā)速度
“Tracealyzer將我們的開發(fā)速度提高了一倍,使用此工具可以明顯解決需要幾天才能解決的問題,而且只是一個快速解決方案。我們一直在使用它。
—Alex Pabouctisids,Flyability首席固件工程師
厭倦了無休止地調(diào)試嵌入式C/C++代碼?告別繁瑣的故障排除,歡迎使用Percepio Tracealyzer加速開發(fā)。對于當(dāng)今復(fù)雜的RTOS或Linux系統(tǒng),傳統(tǒng)調(diào)試通常無效,并且可能會消耗40-50%的開發(fā)時(shí)間。使用Tracealyzer獲得可視化跟蹤可觀察性,以加快你的日常調(diào)試速度并解決傳統(tǒng)調(diào)試無法解決的問題。下面了解Tracealyzer如何簡化調(diào)試。
優(yōu)化系統(tǒng)性能
“在運(yùn)行該工具后不到5天的時(shí)間里,我們將圖形渲染引擎的性能提高了3倍”
—Serious Integrated Inc.首席執(zhí)行官Terry West
Tracealyzer提供高級分析功能,顯示數(shù)字背后的事件。查明性能瓶頸并釋放硬件的全部潛力。確保你滿足產(chǎn)品性能目標(biāo)并提供響應(yīng)式用戶體驗(yàn)。
對于多線程的RTOS或Linux系統(tǒng)來說,優(yōu)化是一項(xiàng)挑戰(zhàn)。當(dāng)線程速度較慢時(shí),通常是由于源代碼中不明顯的因素造成的。可視化跟蹤可觀察性提供了完整的畫面并簡化了優(yōu)化。
跟蹤你的任務(wù)
Zephyr內(nèi)核提供多線程,其中每個任務(wù)都有自己的堆棧和調(diào)度優(yōu)先級,這對于功能正確性和性能非常重要。Tracealyzer允許你分析不同優(yōu)先級分配的行為和性能,以及任務(wù)的堆棧使用情況。如果你的堆棧太小,則可能會因堆棧溢出而出現(xiàn)錯誤。如果它們太大,則會浪費(fèi)寶貴的RAM,而這些RAM可能是應(yīng)用程序中的需要。
跟蹤視圖顯示任務(wù)調(diào)度和對內(nèi)核API函數(shù)的調(diào)用。這樣,你就可以準(zhǔn)確查看任務(wù)的激活時(shí)間、實(shí)際執(zhí)行時(shí)間以及有時(shí)無法按預(yù)期執(zhí)行的原因。你還可以看到一個概覽,其中顯示了哪些任務(wù)正在消耗處理器時(shí)間,如“CPU Load Graph”所示。此外,還提供了詳細(xì)的統(tǒng)計(jì)數(shù)據(jù),例如任務(wù)執(zhí)行時(shí)間和響應(yīng)時(shí)間。
跟蹤Zephyr內(nèi)核API調(diào)用
Zephyr內(nèi)核提供了許多個API,用于在任務(wù)之間傳遞數(shù)據(jù)以及保護(hù)共享資源,例如隊(duì)列、信號量和互斥鎖。這些API函數(shù)可能會阻止調(diào)用任務(wù)的執(zhí)行,直到另一個任務(wù)執(zhí)行了匹配的操作。此類API調(diào)用可能會在任務(wù)之間形成一個依賴關(guān)系網(wǎng)絡(luò),這在源代碼中并不明顯。Tracealyzer可以可視化任務(wù)交互,這使得開發(fā)者理解、調(diào)試和優(yōu)化Zephyr應(yīng)用程序變得更加容易。下面提供了一些示例。
應(yīng)用程序日志記錄
Tracealyzer提供高級日志記錄功能。在應(yīng)用程序代碼中記錄自定義事件和數(shù)據(jù),并將其與內(nèi)核跟蹤一起顯示在Tracealyzer中,并作為圖形繪圖顯示。這提供了在運(yùn)行時(shí)對應(yīng)用程序代碼的更深入的可觀察性。
與printf調(diào)用不同,Tracealyzer日志記錄不會將代碼速度減慢幾毫秒。與UART上的printf相比,高效的記錄功能可以消除超過99%的記錄開銷。這種低影響的日志記錄可確保你在調(diào)試中獲得正確的圖像,而不會因緩慢的日志記錄調(diào)用而產(chǎn)生探測影響。
例如,狀態(tài)轉(zhuǎn)換可以記錄并顯示在“logic analyzer”視圖中和狀態(tài)圖中。結(jié)果可以顯示在跟蹤視圖中(如左所示)或總結(jié)為狀態(tài)圖(右側(cè)),從而輕松發(fā)現(xiàn)錯誤行為。
軟件運(yùn)行方式
使用Tracealyzer不需要任何特定的硬件,只需要一個合適的開發(fā)板即可。您可以從RAM中的跟蹤緩沖區(qū)捕獲最新活動的快照,或者使用以太網(wǎng)或SEGGER J-Link、IAR I-jet或Keil ULINK等調(diào)試探針將數(shù)據(jù)流式傳輸?shù)街鳈C(jī)。這樣,你可以長時(shí)間監(jiān)控你的系統(tǒng)并捕獲任何問題。
Zephyr的Tracealyzer依賴于Percepio TraceRecorder,該記錄可在Apache 2.0許可證下的Zephyr存儲庫中使用。按照入門指南,幾分鐘內(nèi)即可將其集成到你的項(xiàng)目中。
Tracealyzer適用于大多數(shù)嵌入式處理器(例如ARM芯片等),Percepio為常見開發(fā)工具提供插件和集成,包括Segger J-Link、GDB、STM32CubeIDE、Keil MDK、IAR和Lauterbach。
麥克泰技術(shù)代理Tracealyzer,具有豐富的RTOS分析軟件與調(diào)試工具使用方面的知識和經(jīng)驗(yàn),歡迎咨詢info@bmrtech.com。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1410瀏覽量
41162 -
RTOS
+關(guān)注
關(guān)注
24文章
844瀏覽量
120846 -
代碼
+關(guān)注
關(guān)注
30文章
4891瀏覽量
70322 -
Zephyr
+關(guān)注
關(guān)注
0文章
35瀏覽量
6245
原文標(biāo)題:支持Zephyr RTOS內(nèi)核分析:Tracealyzer簡介
文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何通過Tracealyzer實(shí)現(xiàn)Linux系統(tǒng)的跟蹤?

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

Tracealyzer 技術(shù)分享
教你快遞入門-Tracealyzer跟蹤記錄庫移植
Tracealyzer利用CortexM的ITM實(shí)現(xiàn)流跟蹤
通過Tracealyzer用戶事件來了解應(yīng)用程序
如何使用Tracealyzer理解多任務(wù)調(diào)度?
如何使用Tracealyzer流模式跟蹤ThreadX?
是否需要在iMXRT1060 EVK板上執(zhí)行任何特定操作才能使tracealyzer正常工作?
使用Percepio的Tracealyzer和DevAlert實(shí)現(xiàn)FreeRTOS的可觀察性!
Tracealyzer實(shí)現(xiàn)流跟蹤最簡單的方法
如何使用Tracealyzer的流模式來跟蹤ThreadX應(yīng)用
Tracealyzer跟蹤記錄庫移植
Xilinx Zynq上FreeRTOS的Tracealyzer

Tracealyzer發(fā)布4.8新版本!

評論