0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Tracealyzer如何簡化調(diào)試

麥克泰技術(shù) ? 來源:泰克科技 ? 2025-02-11 11:11 ? 次閱讀

如果沒有專為多線程代碼設(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ù)雜的RTOSLinux系統(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)化。

9776f192-e825-11ef-9310-92fbcf53809c.png

跟蹤你的任務(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)用程序變得更加容易。下面提供了一些示例。

97d7b3e2-e825-11ef-9310-92fbcf53809c.png

97ed8dc0-e825-11ef-9310-92fbcf53809c.png

9803f132-e825-11ef-9310-92fbcf53809c.png

應(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)錯誤行為。

984f8372-e825-11ef-9310-92fbcf53809c.png

軟件運(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)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 內(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)載請注明出處。

收藏 0人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何通過Tracealyzer實(shí)現(xiàn)Linux系統(tǒng)的跟蹤?

    Tracealyzer是Percepio 公司開發(fā)的一款可視化跟蹤工具, 目前它提供了30多種相互關(guān)聯(lián)的運(yùn)行時(shí)行為視圖,支持裸機(jī)、FreeRTOS、μC/OS-III、Zephyr、ThreadX、VxWorks、Linux系統(tǒng)的跟蹤。能夠幫助開發(fā)人員加快固件的開發(fā),減少對系統(tǒng)驗(yàn)證和性能優(yōu)化所需要的時(shí)間。
    的頭像 發(fā)表于 12-08 14:08 ?1553次閱讀
    如何通過<b class='flag-5'>Tracealyzer</b>實(shí)現(xiàn)Linux系統(tǒng)的跟蹤?

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

    Percepio Tracealyzer已經(jīng)在600多個支持Zephyr的開發(fā)板上完成了驗(yàn)證,可以幫助開發(fā)人員改進(jìn)Zephyr應(yīng)用的調(diào)試和性能分析。
    的頭像 發(fā)表于 04-21 11:31 ?554次閱讀
    使用<b class='flag-5'>Tracealyzer</b><b class='flag-5'>調(diào)試</b>Zephyr中的優(yōu)先級反轉(zhuǎn)

    Tracealyzer 技術(shù)分享

    的FreeRTOS越來越顯示其應(yīng)用的強(qiáng)大性。因此本文對于開發(fā)嵌入式操作的工程師有一定的幫助。帖子我會采用一點(diǎn)一點(diǎn)不定期的更新,畢竟我也是上班一族請大家見諒。以下是Tracealyzer 軟件界面
    發(fā)表于 01-04 21:10

    教你快遞入門-Tracealyzer跟蹤記錄庫移植

    PercepioTracealyzer是一個強(qiáng)大的工具,可以在運(yùn)行時(shí)跟蹤和可視化分析RTOS系統(tǒng)。超過30種視圖,對系統(tǒng)的實(shí)時(shí)行為提供了驚人洞察力,加速了應(yīng)用的調(diào)試、驗(yàn)證和系統(tǒng)性能優(yōu)化的過程
    發(fā)表于 07-31 14:08

    Tracealyzer利用CortexM的ITM實(shí)現(xiàn)流跟蹤

    事件,達(dá)到1175KB/s的傳輸速率。使用ARM-ITM流模式下文將以IAR EWARM 8.40、I-jet調(diào)試器和Tracealyzer 4.35為例說明如何配置和使用ITM實(shí)現(xiàn)流模式跟蹤。Note
    發(fā)表于 12-05 15:34

    通過Tracealyzer用戶事件來了解應(yīng)用程序

    Tracealyzer自動分析并可視化RTOS的行為,對軟件開發(fā)者來說,可視化分析是很大的一個改進(jìn)。但是,對于一些不是RTOS自動生成的事件,或者說如果你想要可視化一些應(yīng)用程序數(shù)據(jù),測量兩個事件之間
    發(fā)表于 08-20 10:11

    如何使用Tracealyzer理解多任務(wù)調(diào)度?

    調(diào)試器視圖的補(bǔ)充。我們今天來了解一下如何通過Tracealyzer記錄的數(shù)據(jù)獲取任務(wù)優(yōu)先級及執(zhí)行時(shí)間相關(guān)的信息。優(yōu)先級決定何時(shí)調(diào)度大多數(shù)RTOS使用固定優(yōu)先級調(diào)度策略,開發(fā)人員為每個任務(wù)分配一個靜態(tài)
    發(fā)表于 12-17 16:01

    如何使用Tracealyzer流模式跟蹤ThreadX?

    Tracealyzer是Percepio 公司開發(fā)的一款用于RTOS的嵌入式軟件系統(tǒng)的可視化跟蹤工具,提供了30多種相互關(guān)聯(lián)的可視化運(yùn)行時(shí)行為視圖,本文將介紹如何使用Tracealyzer的流模式來
    發(fā)表于 09-23 13:25

    是否需要在iMXRT1060 EVK板上執(zhí)行任何特定操作才能使tracealyzer正常工作?

    我有 iMXRT1060EVK,想在 FreeRTOS 的流模式下使用 Tracealyzer。我正在使用 IAR EW 和 I-jet 調(diào)試探針。我已按照以下鏈接中的步驟進(jìn)行操作,但數(shù)據(jù)流仍然存在
    發(fā)表于 04-17 08:02

    使用Percepio的Tracealyzer和DevAlert實(shí)現(xiàn)FreeRTOS的可觀察性!

    Tracealyzer的快照,其中加載了示例FreeRTOS追蹤請注意追蹤視圖面板中的FreeRTOS API調(diào)用,例如xQueueSend()和xQueueReceive()。除了代碼調(diào)試之外,您還
    發(fā)表于 05-18 13:41

    Tracealyzer實(shí)現(xiàn)流跟蹤最簡單的方法

    Tracealyzer 實(shí)現(xiàn)流跟蹤最簡單的方法就是使用SEGGER J-Link調(diào)試器,通過RTT功能來實(shí)現(xiàn)數(shù)據(jù)的傳送。RTT需要在RAM上建立一段緩存,在目標(biāo)系統(tǒng)運(yùn)行期間,由J-Link讀取緩存中的數(shù)據(jù)。一般來說RTT的速度和可靠性比較高,但是如果您遇到了問題,可以參照
    的頭像 發(fā)表于 09-02 11:11 ?2650次閱讀

    如何使用Tracealyzer的流模式來跟蹤ThreadX應(yīng)用

    Tracealyzer是Percepio 公司開發(fā)的一款用于RTOS的嵌入式軟件系統(tǒng)的可視化跟蹤工具,提供了30多種相互關(guān)聯(lián)的可視化運(yùn)行時(shí)行為視圖,本文將介紹如何使用Tracealyzer的流模式來跟蹤ThreadX應(yīng)用。
    的頭像 發(fā)表于 09-16 11:14 ?1705次閱讀

    Tracealyzer跟蹤記錄庫移植

    使用Tracealyzer,首先要將跟蹤記錄庫集成到工程。安裝了Tracealyzer 4之后,在安裝路徑下找到以RTOS名稱命名的文件夾,將TraceRecorder子文件夾復(fù)制到自己的工程目錄中。以FreeRTOS為例:
    的頭像 發(fā)表于 11-08 11:17 ?2089次閱讀

    Xilinx Zynq上FreeRTOS的Tracealyzer

    電子發(fā)燒友網(wǎng)站提供《Xilinx Zynq上FreeRTOS的Tracealyzer.zip》資料免費(fèi)下載
    發(fā)表于 12-07 14:59 ?5次下載
    Xilinx Zynq上FreeRTOS的<b class='flag-5'>Tracealyzer</b>

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

    多任務(wù)軟件系統(tǒng)在運(yùn)行時(shí)的實(shí)際行為,取決于許多因素,比如任務(wù)和中斷的時(shí)間、它們的相互作用和輸入。通過Tracealyzer跟蹤工具,用戶可以更好地了解系統(tǒng)的運(yùn)行時(shí)世界,并加速開發(fā)、調(diào)試和驗(yàn)證。
    的頭像 發(fā)表于 06-09 15:03 ?1496次閱讀
    <b class='flag-5'>Tracealyzer</b>發(fā)布4.8新版本!

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品