FreeRTOS-任务查询及延时函数
- 下面是一些FreeRTOS任务状态查询及运行时间统计的API函数
uxTaskPriorityGet();
vTaskPrioritySet();
uxTaskGetNumberOfTasks();
uxTaskGetSystemState();
vTaskGetInfo();
xTaskGetCurrentTaskHandle();
xTaskGetHandle();
uxTaskGetStackHighWaterMark();
eTaskGetState();
vTaskList();
vTaskGetRunTimeStats();
#define INCLUDE_uxTaskPriorityGet 1
UBaseType_t uxTaskPriorityGet(const TaskHandle_t xTask);
#define INCLUDE_vTaskPrioritySet 1
void vTaskPrioritySet(TaskHandle_t xTask,UBaseType_t uxNewPriority);
UBaseType_t uxTaskGetNumberOfTasks();
UBaseType_t uxTaskGetSystemState(TaskStatus_t* const pxTaskStatusArray,const UBaseType_t uxArraySize,configRUN_TIME_COUNTER_TYPE*const pulTotalRunTime);
#define configUSE_TRACE_FACILITY 1
void vTaskGetInfo(TaskHandle_t xTask,TaskStatus_t* pxTaskStatus,BaseType_t xGetFreeStackSpace,eTaskState eState);
#define INCLUDE_xTaskGetCurrentTaskHandle 1
TaskHandle_t xTaskGetCurrentTaskHandle()
#define INCLUDE_xTaskGetHandle 1
TaskHandle_t xTaskGetHandle(const char* pcNameToQuery);
- 获取任务的任务栈历史剩余最小值
- 当你获取到剩余最小值很小时,说明快要溢出,需要加大
#define INCLUDE_uxTaskGetStackHighWaterMark 1
UBaseType_t uxTaskGetStackHighWaterMark(TaskHandle_t xTask);
#define INCLUDE_eTaskGetState 1
eTaskState eTaskGetState(TaskHandle_t xTask)
- 以表格形式获取任务状态信息
- 主要获取的内容有:Name(任务名)、State(任务状态信息BRSD)、Priority(任务优先级)、Stack(堆栈历史最小剩余大小)、Num(任务编号)
#define configUSE_TRACE_FACILITY 1;
#define config_STATS_FORMATTING_FUNCTIONS 1;
void vTaskList(char* pcWriteBuffer);
- 统计任务运行时间
- 会获取到任务的Task(任务名称)、Abs Time(任务实际运行的总时间)、%Time(占总时间的百分比)
#define configGENERATE_RUN_TIME_STAT 1;
#define portCONFIGURE_TIMER_FOR_RUNTIME_STATE() function;
#define portGET_RUN_TIME_COUNTER_VALUE() function
#define configUSE_STATS_FORMATTING_FUNCTIONS 1;
void vTaskGetRunTimeStats(char* pcWriteBuffer);
vTaskDelay();
xTaskDelayUntil();