0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

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

我快閉嘴 ? 來源:麥克泰技術(shù) ? 作者:麥克泰技術(shù) ? 2022-09-16 11:14 ? 次閱讀

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

添加Tracealyzer跟蹤記錄器庫文件

使用Tracealyzer首先需要在工程中添加用于ThreadX的跟蹤記錄器庫文件,包括源碼,頭文件、配置文件等。這些文件在Tracealyzer的安裝目錄下可以找到,默認(rèn)的保存路徑可以參考:C:Program FilesPercepioTracealyzer 4ThreadXTraceRecorder。

使用流模式,還需要添加流模式端口所用到的文件,以JLink RTT方式為例需要例如添加記錄器庫streamports下的Jlink_RTT文件夾中的文件。本文介紹時使用的是STM32CubeIDE,所有文件添加完成后的工程目錄結(jié)構(gòu)如下圖所示:

29bb06d4-356c-11ed-ba43-dac502259ad0.png

注意在進行操作的時候出現(xiàn)的所有的文件夾名稱及文件保存路徑中均不包含空格和中文字符,以避免在編譯過程中出現(xiàn)一些奇怪的錯誤,以及所有添加文件的頭文件包含路徑都需要在工程中進行設(shè)置。文件的添加過程也可以參考:快速入門| Tracealyzer跟蹤記錄庫移植

工程相關(guān)宏和IDE選項設(shè)置

(1)要在項目中使用跟蹤首先需要在ThreadX的tx_api.h頭文件中包含記錄器庫的頭文件。

29e6ec4a-356c-11ed-ba43-dac502259ad0.png

(2)在ThreadX的配置文件tx_user.h中開啟跟蹤功能和堆棧檢測功能,需要通過修改頭文件中的這兩條宏來開啟。

29f81a24-356c-11ed-ba43-dac502259ad0.png

2a10cfb0-356c-11ed-ba43-dac502259ad0.png

(3)在Tracealyzer的配置文件trcConfig.h文件中需要包含你所使用芯片系列所對應(yīng)的頭文件,以STM32F4系列芯片為例則是#include "stm32f4xx.h"。

在該文件中還需要指定你所使用的芯片內(nèi)核,如果是使用M3/M4/M7內(nèi)核的芯片則選擇TRC_HARDWARE_PORT_ARM_Cortex_M即可。

2a2bdee0-356c-11ed-ba43-dac502259ad0.png

(4)在trcKernelPortConfig.h文件中,通過宏#define TRC_CFG_CPU_CLOCK_HZ設(shè)置所使用MCU運行的時鐘主頻,例如運行在25MHz。

2a410946-356c-11ed-ba43-dac502259ad0.png

(5)為了實現(xiàn)一些ThreadX自帶的跟蹤機制所未提供的更為強大的跟蹤功能,Tracealyzer提供了一個頭文件trcCTI.h,該文件需要被項目工程中的所有代碼文件都包含??梢越柚鶬DE提供的設(shè)置選項來實現(xiàn)。

在STM32CubeIDE的工程設(shè)置中,選擇編譯器Preprocessor選項的Define symbols(-D)一欄添加“__inside_$(notdir $(basename $(@)))”這一全局宏定義命令來實現(xiàn)。

2a63966e-356c-11ed-ba43-dac502259ad0.png

在該位置添加宏定義后還需在Miscellaneous選項中添加“-include trcCTI.h”命令。

2a8f3526-356c-11ed-ba43-dac502259ad0.png

在工程代碼中啟動跟蹤

在ThreadX的入口函數(shù)tx_application_define()的入口位置調(diào)用vTraceEnable()函數(shù)開啟Tracealyzer跟蹤。vTraceEnable()函數(shù)根據(jù)函數(shù)參數(shù)的不同支持多種設(shè)置,此處TRC_START指初始化并直接開始跟蹤。

2ae414a6-356c-11ed-ba43-dac502259ad0.png

Tracealyzer電腦端軟件的設(shè)置

(1)開始實時跟蹤。啟動Tracealyzer,從File->Settings->J-Link Settings設(shè)置調(diào)試器所使用的接口和芯片型號。

2affe0aa-356c-11ed-ba43-dac502259ad0.png

(2)在PSF Streaming Settings,設(shè)置Target Connection為:SEGGER RTT,使用J-Link RTT通訊機制,將Trace數(shù)據(jù)從目標(biāo)板經(jīng)過J-Link調(diào)試器傳送到PC端軟件。

2b1cb4d2-356c-11ed-ba43-dac502259ad0.png

(3)運行目標(biāo)平臺程序,點“Start Recording”圖標(biāo)打開Live Stream窗口,點“Start Session”按鈕即可開始實時跟蹤。

(4)示例中創(chuàng)建了一個簡單的優(yōu)先級為10的循環(huán)打印任務(wù) ,可以看到在Tracealyzer中成功顯示了該任務(wù)中調(diào)用的延時函數(shù),及執(zhí)行過程中被系統(tǒng)中更高優(yōu)先級的定時器任務(wù)System Timer Thread任務(wù)搶占的執(zhí)行情況。

2b415c92-356c-11ed-ba43-dac502259ad0.png

2b5ca272-356c-11ed-ba43-dac502259ad0.png

作為一款功能強大的RTOS可視化跟蹤工具,系統(tǒng)運行時的行為提供了前所未有的洞察方法。能夠幫助開發(fā)人員加快固件的開發(fā),減少對系統(tǒng)驗證和性能優(yōu)化所需要的時間。

審核編輯:湯梓紅

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

    關(guān)注

    5141

    文章

    19537

    瀏覽量

    315112
  • threadx
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    14010
  • RTOS
    +關(guān)注

    關(guān)注

    24

    文章

    841

    瀏覽量

    120777

原文標(biāo)題:如何使用Tracealyzer流模式跟蹤ThreadX?

文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏

    評論

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

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

    Tracealyzer是Percepio 公司開發(fā)的一款可視化跟蹤工具, 目前它提供了30多種相互關(guān)聯(lián)的運行時行為視圖,支持裸機、FreeRTOS、μC/OS-III、Zephyr、ThreadX、VxWorks、Linux系統(tǒng)
    的頭像 發(fā)表于 12-08 14:08 ?1513次閱讀
    如何通過<b class='flag-5'>Tracealyzer</b>實現(xiàn)Linux系統(tǒng)的<b class='flag-5'>跟蹤</b>?

    Tracealyzer 技術(shù)分享

    有兩種方式1.Snapshot Mode(快照模式)特點:跟蹤的數(shù)據(jù)保存在目標(biāo)RAM中,幾KB的跟蹤緩沖區(qū)通常足以獲得最新事件的可靠跟蹤?;旧先魏蜗到y(tǒng)都可以使用。2.Streamin
    發(fā)表于 01-04 21:10

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

    。使用Tracealyzer,可以查看到系統(tǒng)的真實運行情況,為開發(fā)人員節(jié)省排除錯誤的時間。Tracealyzer由PC應(yīng)用程序和跟蹤組件組成,Percepio提供了跟蹤記錄庫(Trac
    發(fā)表于 07-31 14:08

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

    通過EWARM實時獲取跟蹤數(shù)據(jù)。圖 6 設(shè)置模式的連接方式九、開啟實時跟蹤。需要先啟動Traceal
    發(fā)表于 12-05 15:34

    如何使用Tracealyzer預(yù)先定義的記錄器擴展文件實現(xiàn)用戶應(yīng)用程序跟蹤?

    需要注意的是目前Tracealyzer V4.2.9版本僅支持模式,暫不支持快照模式。 請參考Tracealyzer用戶手冊在項目中集成
    發(fā)表于 12-18 13:37

    出現(xiàn)“丟失事件”?看Tracealyzer模式如何調(diào)優(yōu)

    Tracealyzer 針對FreeRTOS和 Micrium μC/OS的記錄器庫可以配置成通過可用的通信接口(例如串口)傳輸跟蹤數(shù)據(jù)。用戶通過提供一個自定義的“端口”(stre
    發(fā)表于 02-19 10:06

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

    Tracealyzer跟蹤記錄器庫的集成??梢暬囟☉?yīng)用程序的自定義信息的第一步是創(chuàng)建一個用戶事件通道。這是一個字符串輸出通道,允許開發(fā)人員添加自己的自定義事件,在Tracealyzer中稱為用戶事件。例如,如果想要傳輸
    發(fā)表于 08-20 10:11

    使用Tracealyzer跟蹤FreeRTOS內(nèi)核

    Tracealyzer。我在幾分鐘內(nèi)將FreeRTOS支持Tracealyzer運行的必要的幾個功能函數(shù)集成到代碼里面,工具鏈的安裝以及通過 J-Link 模式連接到開發(fā)板的過程很
    發(fā)表于 12-01 14:57

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

    任務(wù)使用了多少CPU時間?在運行時系統(tǒng)中實際發(fā)生了什么?Tracealyzer是一款記錄RTOS運行時行為的可視化分析工具,通過30多個相互關(guān)聯(lián)的視圖對記錄數(shù)據(jù)進行解析,向用戶展示應(yīng)用層級詳細視圖,作為
    發(fā)表于 12-17 16:01

    如何使用Tracealyzer模式跟蹤ThreadX

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

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

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

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

    Tracealyzer 實現(xiàn)跟蹤最簡單的方法就是使用SEGGER J-Link調(diào)試器,通過RTT功能來實現(xiàn)數(shù)據(jù)的傳送。RTT需要在RAM上建立一段緩存,在目標(biāo)系統(tǒng)運行期間,由J-Link讀取緩存中的數(shù)據(jù)。一般來說RTT的速度和
    的頭像 發(fā)表于 09-02 11:11 ?2627次閱讀

    Tracealyzer跟蹤記錄庫移植

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

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

    Tracealyzer快照模式,能夠跟蹤RTOS系統(tǒng)的運行時間受限于硬件可用的RAM大小,通常只能追蹤幾十秒的時間。使用模式則不會存在這
    的頭像 發(fā)表于 12-20 11:12 ?2200次閱讀

    如何通過Tracealyzer導(dǎo)出的跟蹤數(shù)據(jù)對任務(wù)進行分析?

    Tracealyzer是Percepio 公司開發(fā)的一款用于RTOS的可視化跟蹤工具, 目前Tracealyzer提供了30多種相互關(guān)聯(lián)的運行時行為視圖,對系統(tǒng)運行時的行為提供了前所未有的洞察方法。能夠幫助開發(fā)人員加快固件的開發(fā)
    的頭像 發(fā)表于 02-06 14:13 ?1364次閱讀