Tracealyzer是Percepio 公司開發的一款用于RTOS的嵌入式軟件系統的可視化跟蹤工具,提供了30多種相互關聯的可視化運行時行為視圖,本文將介紹如何使用Tracealyzer的流模式來跟蹤ThreadX應用。
添加Tracealyzer跟蹤記錄器庫文件
使用Tracealyzer首先需要在工程中添加用于ThreadX的跟蹤記錄器庫文件,包括源碼,頭文件、配置文件等。這些文件在Tracealyzer的安裝目錄下可以找到,默認的保存路徑可以參考:C:Program FilesPercepioTracealyzer 4ThreadXTraceRecorder。
使用流模式,還需要添加流模式端口所用到的文件,以JLink RTT方式為例需要例如添加記錄器庫streamports下的Jlink_RTT文件夾中的文件。本文介紹時使用的是STM32CubeIDE,所有文件添加完成后的工程目錄結構如下圖所示:
注意在進行操作的時候出現的所有的文件夾名稱及文件保存路徑中均不包含空格和中文字符,以避免在編譯過程中出現一些奇怪的錯誤,以及所有添加文件的頭文件包含路徑都需要在工程中進行設置。文件的添加過程也可以參考:快速入門| Tracealyzer跟蹤記錄庫移植
工程相關宏和IDE選項設置
(1)要在項目中使用跟蹤首先需要在ThreadX的tx_api.h頭文件中包含記錄器庫的頭文件。
(2)在ThreadX的配置文件tx_user.h中開啟跟蹤功能和堆棧檢測功能,需要通過修改頭文件中的這兩條宏來開啟。
(3)在Tracealyzer的配置文件trcConfig.h文件中需要包含你所使用芯片系列所對應的頭文件,以STM32F4系列芯片為例則是#include "stm32f4xx.h"。
在該文件中還需要指定你所使用的芯片內核,如果是使用M3/M4/M7內核的芯片則選擇TRC_HARDWARE_PORT_ARM_Cortex_M即可。
(4)在trcKernelPortConfig.h文件中,通過宏#define TRC_CFG_CPU_CLOCK_HZ設置所使用MCU運行的時鐘主頻,例如運行在25MHz。
(5)為了實現一些ThreadX自帶的跟蹤機制所未提供的更為強大的跟蹤功能,Tracealyzer提供了一個頭文件trcCTI.h,該文件需要被項目工程中的所有代碼文件都包含。可以借助IDE提供的設置選項來實現。
在STM32CubeIDE的工程設置中,選擇編譯器Preprocessor選項的Define symbols(-D)一欄添加“__inside_$(notdir $(basename $(@)))”這一全局宏定義命令來實現。
在該位置添加宏定義后還需在Miscellaneous選項中添加“-include trcCTI.h”命令。
在工程代碼中啟動跟蹤
在ThreadX的入口函數tx_application_define()的入口位置調用vTraceEnable()函數開啟Tracealyzer跟蹤。vTraceEnable()函數根據函數參數的不同支持多種設置,此處TRC_START指初始化并直接開始跟蹤。
Tracealyzer電腦端軟件的設置
(1)開始實時跟蹤。啟動Tracealyzer,從File->Settings->J-Link Settings設置調試器所使用的接口和芯片型號。
(2)在PSF Streaming Settings,設置Target Connection為:SEGGER RTT,使用J-Link RTT通訊機制,將Trace數據從目標板經過J-Link調試器傳送到PC端軟件。
(3)運行目標平臺程序,點“Start Recording”圖標打開Live Stream窗口,點“Start Session”按鈕即可開始實時跟蹤。
(4)示例中創建了一個簡單的優先級為10的循環打印任務 ,可以看到在Tracealyzer中成功顯示了該任務中調用的延時函數,及執行過程中被系統中更高優先級的定時器任務System Timer Thread任務搶占的執行情況。
作為一款功能強大的RTOS可視化跟蹤工具,系統運行時的行為提供了前所未有的洞察方法。能夠幫助開發人員加快固件的開發,減少對系統驗證和性能優化所需要的時間。
審核編輯:湯梓紅
-
嵌入式
+關注
關注
5082文章
19104瀏覽量
304810 -
threadx
+關注
關注
0文章
15瀏覽量
13828 -
RTOS
+關注
關注
22文章
811瀏覽量
119593
原文標題:如何使用Tracealyzer流模式跟蹤ThreadX?
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論