- 使用前準備工作
將宏configGENERATE_RUN_TIME_STATS置爲1。
#define configGENERATE_RUN_TIME_STATS 1 //爲1時啓用運行時間統計功能
定義兩個宏,第一個是任務運行統計時間的時基初始化,第二個是計數的。
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() ConfigureTimeForRunTimeStats()
#define portGET_RUN_TIME_COUNTER_VALUE() FreeRTOSRunTimeTicks
時基必須快滴答定時器20倍
void ConfigureTimeForRunTimeStats(void)
{
FreeRTOSRunTimeTicks = 0;
MX_TIM3_Init(); //20khz
}
void TIM3_IRQHandler(void) //中端服務函數
{
FreeRTOSRunTimeTicks++;
HAL_TIM_IRQHandler(&htim3);
}
- 調用vTaskGetRunTimeStats()
vTaskGetRunTimeStats(PrintBuffer);
//PrintBuffer爲一個字符數組,可以打印出來。
注意:PrintBuffer是用來存儲信息的,最好不要在任務函數中定義,因爲局部變量會消耗很大一部分堆棧空間,可以定義爲全局變量,調試成功後可以刪除。