FreeRTOS任务管理和相关说明
-
任务状态
- 运行态
当前正在运行的状态为运行态,并且该任务占用CPU的使用权。 - 就绪态
处于就绪态就是说明任务已经准备好运行了,但是当前有正在同优先级或者高于该任务优先级的任务正在运行。 - 阻塞态
等待运行条件(信号量,事件,消息队列等)或者调用延时函数所处于的状态为阻塞态。 - 挂起态
挂起态和阻塞态类似,只不过通过调用函数 vTaskSuspend()对指定任务进行挂起,调用函数 xTaskResume()才可以将这个任务从挂起态恢复。
- 运行态
-
任务创建
函数 xTaskCreate用于创建任务,函数内详细的参数如下解释BaseType_t xTaskCreate( TaskFunction_t pvTaskCode, /* 任务函数 */ const char * const pcName, /* 任务名 */ unsigned short usStackDepth, /* 任务栈大小,单位 word,也就是 4 字节 */ void *pvParameters, /* 任务参数 */ UBaseType_t uxPriority, /* 任务优先级 */ TaskHandle_t *pvCreatedTask /* 任务句柄 */ );
xTaskCreate(vTaskLED, /* 任务函数 */ "vTaskLED", /* 任务名 */ 50, /* 任务栈大小,单位 word,也就是 4 字节 */ NULL, /* 任务参数 * 1, /* 任务优先级 */ &xHandleTaskLED ); /* 任务句柄 */
-
任务删除
FreeRTOSConfig.h #define INCLUDE_vTaskDelete 1 //打开宏定义开启任务删除的功能
函数vTaskDelete()用于删除函数。
vTaskDelete(xHandleTaskLED) //删除LED任务 vTaskDelete(NULL) //删除当前正在执行的任务
如果要删除哪个任务只需要将该任务的任务句柄传入该函数即可。参数为NULL表示删除当前任务。
if(xHandleTaskLED != NULL) { printf("\r\n删除LED任务\r\n"); vTaskDelete(xHandleTaskLED); }
-
任务挂起
FreeRTOSConfig.h #define INCLUDE_vTaskSuspend 1 //打开宏定义开启任务挂起的功能
函数vTaskSuspend()用于挂起函数。
vTaskSuspend(xHandleTaskLED) //挂起LED任务 vTaskSuspend(NULL) //挂起当前正在执行的任务
如果要挂起哪个任务只需要将该任务的任务句柄传入该函数即可。参数为NULL表示挂起当前正在执行的任务。
if(xHandleTaskLED != NULL) { printf("\r\n挂起LED任务\r\n"); vTaskSuspend(xHandleTaskLED); }
-
任务恢复
FreeRTOSConfig.h #define INCLUDE_vTaskResume 1 //打开宏定义开启任务恢复的功能
函数vTaskResume()用于恢复函数。
vTaskResume(xHandleTaskLED) //恢复LED任务 vTaskResume(NULL) //恢复当前正在执行的任务
如果要恢复哪个任务只需要将该任务的任务句柄传入该函数即可。参数为NULL表示挂起当前正在执行的任务。
if(xHandleTaskLED != NULL) { printf("\r\n恢复LED任务\r\n"); vTaskResume(xHandleTaskLED); }
-
任务恢复(中断方式)
FreeRTOSConfig.h #define INCLUDE_xResumeFromISR 1 //打开宏定义开启任务恢复(中断)的功能
函数vTaskResumeFromISR()用于恢复任务(中断)。
vTaskResumeFromISR(xHandleTaskLED) //恢复LED任务 vTaskResumeFromISR(NULL) //恢复当前正在执行的任务
如果要恢复(中断)哪个任务只需要将该任务的任务句柄传入该函数即可。参数为NULL表示挂起当前正在执行的任务。
-
空闲任务
空闲任务的作用
1:免得系统满负荷运行
2:用于低功耗控制> 参考 > 安富莱STM32 -V4 开发板 FreeRTOS教程 >FreeRTOS 内核实现与应用开发实战 > https://www.cnblogs.com/seifguo/p/9480935.html > https://blog.csdn.net/zhzht19861011/article/details/50717549