Percepio Tracealyzer是一個強大的工具,可以在運行時跟蹤和可視化分析RTOS系統(tǒng)。超過30種視圖,對系統(tǒng)的實時行為提供了驚人洞察力,加速了應用的調(diào)試、驗證和系統(tǒng)性能優(yōu)化的過程。使用Tracealyzer,可以查看到系統(tǒng)的真實運行情況,為開發(fā)人員節(jié)省排除錯誤的時間。
Tracealyzer由PC應用程序和跟蹤組件組成,Percepio提供了跟蹤記錄庫(Trace Recorder library),支持多個RTOS,未來還計劃支持裸機系統(tǒng)。
移植跟蹤記錄庫
使用Tracealyzer,首先要將跟蹤記錄庫集成到工程。安裝了Tracealyzer 4之后,在安裝路徑下找到以RTOS名稱命名的文件夾,將TraceRecorder子文件夾復制到自己的工程目錄中。以FreeRTOS為例:
1、將trcKernelPort.c、
trcSnapshotRecorder.c和trcStreamingRecorder.c,3個主要源碼文件添加到工程中。
2、將3個配置文件也添加到工程中,方便隨時修改跟蹤記錄庫的配置。建議每個工程分別使用一組配置文件,將trcConfig.h、trcSnapshotConfig.h和trcStreamingConfig.h復制到獨立的工程目錄下即可。
3、將TraceRecorderinclude目錄添加到頭文件路徑中。
4、修改配置文件trcConfig.h,刪除#error "Trace Recorder: Please include your processor's header file here and remove this line.",并#include處理器頭文件。本次以STM32F769為例:添加 #include "stm32f7xx.h"
5、將硬件移植配置為Tracealyzer針對Cortex-M提供的實現(xiàn)。其他架構(gòu)的處理器,如果沒有現(xiàn)存的移植,需要用戶自行提供一個硬件定時器來產(chǎn)生時間戳。
#define TRC_CFG_HARDWARE_PORTTRC_HARDWARE_PORT_ARM_Cortex_M
6、將跟蹤模式設(shè)置為快照模式(Snapshot):
#define TRC_CFG_RECORDER_MODETRC_RECORDER_MODE_SNAPSHOT
快照模式是將跟蹤到是事件緩存到芯片的RAM當中,然后通過工具的支持將事件緩存讀取到PC上并保存為文件,由Tracealyzer進行顯示和分析。
Note:除了快照模式,Tracealyzer還支持流模式(Streaming),實時的將跟蹤到的事件通過 (JTAG/SWD)、串口等接口傳輸?shù)絇C端進行顯示和分析。本文只使用快照模式。
7、設(shè)置所使用的FreeRTOS的版本,這里使用的是FreeRTOS v10版本。
#define TRC_CFG_FREERTOS_VERSIONTRC_FREERTOS_VERSION_10_0_0
8、修改trcSnapshotConfig.h,設(shè)置快照的模式,當事件緩存滿了之后停止跟蹤。#defineTRC_CFG_SNAPSHOT_MODE
TRC_SNAPSHOT_MODE_STOP_WHEN_FULL
9、設(shè)置事件緩存的大小,單位是字,根據(jù)芯片空余的RAM大小酌情設(shè)置。
#define TRC_CFG_EVENT_BUFFER_SIZE 10000
10、在FreeRTOSConfig.h配置文件中使能跟蹤功能:
#define configUSE_TRACE_FACILITY 1
并且在文件尾部添加包含trcRecorder.h頭文件:
#ifdef __ICCARM__
#if ( configUSE_TRACE_FACILITY == 1 )
#include "trcRecorder.h"
#endif
#endif
11、在main函數(shù)中調(diào)用vTraceEnable(TRC_START)初始化并使能跟蹤,調(diào)用的位置須在硬件完成初始化之后,第一個內(nèi)核對象創(chuàng)建之前。
使用Tracealyzer可視化分析
構(gòu)建工程,將程序下載到目標板中運行一段時間。然后打開Tracealyzer,通過J-link的支持將事件緩存讀取出來。
1、從File->Settings打開設(shè)置窗口,在J-Link Settings中設(shè)置所使用的調(diào)試接口和芯片型號。
2、從菜單欄 Trace->Open Snapshot Tool打開Take Snapshot窗口,按“Memory Region”設(shè)置芯片的RAM起始地址和大小,然后按“Read Snapshot”即可將事件緩存讀取到PC端,然后進行顯示和分析。
3、垂直時間軸視圖窗口和事件記錄窗口。
審核編輯 :李倩
-
RTOS
+關(guān)注
關(guān)注
24文章
836瀏覽量
120516 -
應用程序
+關(guān)注
關(guān)注
38文章
3312瀏覽量
58502 -
跟蹤
+關(guān)注
關(guān)注
1文章
38瀏覽量
14410
原文標題:快速入門| Tracealyzer跟蹤記錄庫移植
文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
使用Tracealyzer調(diào)試Zephyr中的優(yōu)先級反轉(zhuǎn)

基于RV1126開發(fā)板移植NCNN部署庫方法

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

AN136 基于GD32F30x系列的IEC60730 ClassB庫移植指南

基于GD32F3x0系列的IEC60730 ClassB庫移植指南

數(shù)據(jù)庫數(shù)據(jù)恢復—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復流程

ElfBoard技術(shù)貼|如何移植Mosquitto庫

HAL庫在Arduino平臺上的使用
HAL庫和標準庫的區(qū)別 HAL庫與CMSIS的關(guān)系
HAL庫在嵌入式系統(tǒng)中的應用
Percepio Tracealyzer 4.9版本改善Linux用戶體驗

從STM32移植QRCODE庫到ESP32,編譯報錯的原因?
手把手帶你移植HAL庫函數(shù)

評論