92 lines
1.9 KiB
C
92 lines
1.9 KiB
C
|
|
/**
|
|||
|
|
******************************************************************************
|
|||
|
|
* @file user\global\g_runtime.c
|
|||
|
|
* @author luhuaishuai
|
|||
|
|
* @version v0.1
|
|||
|
|
* @date 2026-1-12
|
|||
|
|
* @brief Briefly describe the function of your function
|
|||
|
|
******************************************************************************
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/* Includes -------------------------------------------------------------------*/
|
|||
|
|
#include "g_runtime.h"
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/* variables ------------------------------------------------------------------*/
|
|||
|
|
TaskRunTimeTypeDef TaskRunTimeStat;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/* code -----------------------------------------------------------------------*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief GetRunTime:计算线程运行间隔时间
|
|||
|
|
*
|
|||
|
|
* @note none
|
|||
|
|
*
|
|||
|
|
* @param taskID : 任务ID
|
|||
|
|
*
|
|||
|
|
* @retval runtime : 任务周期
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
uint32_t GetTask_RunTime(uint8_t taskID)
|
|||
|
|
{
|
|||
|
|
static uint32_t lasttime[Task_combined] = {0};
|
|||
|
|
|
|||
|
|
uint32_t runtime = 0;
|
|||
|
|
uint32_t curtime = HAL_GetTick();
|
|||
|
|
|
|||
|
|
runtime = curtime - lasttime[taskID]; //计算线程运行间隔时间 runtime运行一次
|
|||
|
|
|
|||
|
|
lasttime[taskID] = curtime;
|
|||
|
|
|
|||
|
|
return runtime;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief GetTask_Beatcnt:线程运行计数,用于判断线程是否在运行
|
|||
|
|
*
|
|||
|
|
* @note none
|
|||
|
|
*
|
|||
|
|
* @param taskID : 任务ID
|
|||
|
|
*
|
|||
|
|
* @retval beatcnt[taskID] : 线程运行计数
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
uint32_t GetTask_Beatcnt(uint8_t taskID)
|
|||
|
|
{
|
|||
|
|
static uint8_t beatcnt[Task_combined] = {0};
|
|||
|
|
|
|||
|
|
beatcnt[taskID]++;
|
|||
|
|
|
|||
|
|
if(beatcnt[taskID] >= 10)
|
|||
|
|
{
|
|||
|
|
beatcnt[taskID] = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return beatcnt[taskID];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Get_Free_Stack:获取剩余任务栈大小
|
|||
|
|
*
|
|||
|
|
* @note none
|
|||
|
|
*
|
|||
|
|
* @param taskID : 任务ID
|
|||
|
|
*
|
|||
|
|
* @retval free_stack[taskID] : 剩余任务栈大小
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
uint32_t Get_Free_Stack(uint8_t taskID)
|
|||
|
|
{
|
|||
|
|
static uint32_t free_stack[Task_combined] = {0};
|
|||
|
|
|
|||
|
|
free_stack[taskID] = uxTaskGetStackHighWaterMark(NULL);
|
|||
|
|
|
|||
|
|
return free_stack[taskID];
|
|||
|
|
}
|