概述
Tracealyzer可以以圖形化的方式跟蹤記錄FreeRTOS操作系統(tǒng)的工作相關(guān)信息。本文結(jié)合官方教程以及自己的實(shí)踐,總結(jié)出了Tracealyzer在STM32CubeIDE開發(fā)環(huán)境中的使用方法。
網(wǎng)上很多同類教程是基于MDK(keil的),這里針對STM32CubeIDE進(jìn)行了修改。
工作原理
Tracealyzer具有2種工作模式,快照模式snapshot mode和流模式streaming mode。在快照模式下,數(shù)據(jù)被存儲(chǔ)到目標(biāo)板的RAM中,當(dāng)系統(tǒng)暫停時(shí),可以讀取數(shù)據(jù)。流模式下可以持續(xù)讀取數(shù)據(jù),時(shí)間可以長達(dá)幾分鐘或幾個(gè)小時(shí),但這需要某種高級的調(diào)試器支持如Jlink,或者是網(wǎng)絡(luò)連接。
快照模式和流模式的設(shè)置基本上相同,流模式的設(shè)置僅有稍許不同。
FreeRTOS包含了超過100個(gè)跟蹤hook,Tracelyzer正是利用這些hook進(jìn)行數(shù)據(jù)的捕獲和記錄的,Tracelyzer同時(shí)還提供了自定義日志和事件的庫
快照模式設(shè)置方法
步驟1:安裝軟件
- 下載并安裝Tracelyzer軟件,方法自行尋找。我這里使用的是4.6.6版本,10天試用版,可以從官方網(wǎng)站申請,但不對大陸IP開放。
- 在CubeIDE中,安裝percepio插件,注意必須是for STM32CubeIDE版,否則會(huì)導(dǎo)致出錯(cuò),如下圖所示。
步驟2:添加源代碼
安裝完畢后,從軟件help菜單,選擇FreeRTOS Trace Recoder,打開源代碼目錄。
在cude工程中,新建一個(gè)Tracelyzer目錄,把所有的文件都拷貝到該目錄下面。
步驟3:修改配置文件
打開trcConfig.h文件,對文件內(nèi)容進(jìn)行如下修改
- 注釋掉
#error "Trace Recorder: Please include your processor's header file here and remove this line."
修改為下圖所示包含文件。
2. 將45行的
#define TRC_CFG_HARDWARE_PORT TRC_HARDWARE_PORT_NOT_SET,
修改為:
#define TRC_CFG_HARDWARE_PORT TRC_HARDWARE_PORT_ARM_Cortex_M
步驟4:修改配置文件2
打開trcKernelPortConfig.h文件,對文件內(nèi)容進(jìn)行如下修改
- 將
#define TRC_CFG_FREERTOS_VERSION FREERTOS_VERSION_NOT_SET
修改為對應(yīng)版本的FreeROTS版本號:
#define TRC_CFG_FREERTOS_VERSION TRC_FREERTOS_VERSION_10_3_1
- 將
#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_STREAMING
修改為:
#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_SNAPSHOT
步驟5:修改配置文件3
打開 trcSnapshotConfig.h文件,將TRC_CFG_NTASK, TRC_CFG_NQUEUE等設(shè)置的足夠大,如果不確定具體大小,可以在之后的調(diào)試中進(jìn)行調(diào)整。
步驟6:修改配置文件4
打開CUDE系統(tǒng)配置,確認(rèn)configUSE_TRACE_FACILITY為1。
打開FreeRTOSConfig.h文件,在文件的最后,添加如下代碼:
#include "trcRecorder.h"如下所示:
#define USE_CUSTOM_SYSTICK_HANDLER_IMPLEMENTATION 0
/* USER CODE BEGIN Defines */
#include "trcRecorder.h"
/* Section where parameter definitions can be added (for instance, to override default ones in FreeRTOS.h) */
/* USER CODE END Defines */
#endif /* FREERTOS_CONFIG_H */
步驟7:添加頭文件路徑
添加對應(yīng)的頭文件路徑
步驟8:添加啟動(dòng)代碼
在main.c文件中,在硬件初始化后,F(xiàn)reeRTOS任務(wù)調(diào)度開始之前,添加下列語句:vTraceEnable(TRC_START),如下圖所示。
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
vTraceEnable(TRC_START);
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_ETH_Init();
MX_USART3_UART_Init();
MX_USB_OTG_FS_PCD_Init();
步驟9:編譯工程
編譯整個(gè)工程
步驟10:配置插件
在IDE中,選擇Percepio菜單的Preferences選項(xiàng),進(jìn)行配置
配置如下所示:文章來源:http://www.zghlxwxcb.cn/news/detail-698246.html
步驟11:捕獲數(shù)據(jù)
運(yùn)行程序,并在適當(dāng)?shù)臅r(shí)間暫停,選擇Save Snapshot Trace選項(xiàng),便可打開跟蹤數(shù)據(jù)窗口。文章來源地址http://www.zghlxwxcb.cn/news/detail-698246.html
到了這里,關(guān)于在STM32CubeIDE中使用Tracealyzer圖形化調(diào)試FreeRTOS的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!