STM32 FreeRTOS 的任务挂起与恢复以及查看任务状态
目录
任务的挂起与恢复的API函数
任务挂起函数
任务恢复函数
任务恢复函数(中断中恢复)
函数说明
注意事项
查看任务状态
任务的挂起与恢复的API函数
vTaskSuspend():挂起任务, 类似暂停,可恢复
vTaskResume():恢复被挂起的任务
xTaskResumeFromISR():在中断中恢复被挂起的任务
任务挂起函数
void vTaskSuspend( TaskHandle_t xTaskToSuspend )
xTaskToSuspend:待挂起任务的任务句柄,为NULL表示挂起任务自身。
需将宏INCLUDE_vTaskSuspend配置为 1。
任务恢复函数
void vTaskResume( TaskHandle_t xTaskToResume )
INCLUDE_vTaskSuspend必须定义为 1。
不论任务被使用 vTaskSuspend() 挂起多少次,只需调用 vTaskResume() 一次,即可使其继续执行。被恢复的任务会重新进入就绪状态。
任务恢复函数(中断中恢复)
函数说明
BaseType_t xTaskResumeFromISR( TaskHandle_t xTaskToResume )
返回值
pdTRUE:任务恢复后需要进行任务切换。
pdFALSE:任务恢复后不需要进行任务切换。
注意事项
INCLUDE_vTaskSuspend 和 INCLUDE_xTaskResumeFromISR 必须定义为 1。
在中断服务程序中调用FreeRTOS的API函数时,中断的优先级不能高于FreeRTOS所管理的最高任务优先级。
查看任务状态
/* 开启跟踪task信息 */
#define configUSE_TRACE_FACILITY 1
#define configUSE_STATS_FORMATTING_FUNCTIONS 1
void vTaskList( char * pcWriteBuffer )
名称 状态 优先级 堆栈使用 任务编号
'X'(运行) 'B'(阻塞)、'R'(就绪)、'S'(暂停)或 'D'(删除)。