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