FreeRTOS之任务挂起和恢复函数

来源:互联网 发布:java项目包命名规范 编辑:程序博客网 时间:2024/05/21 03:27

1.任务挂起和恢复相关的函数如下
vTaskSuspend():挂起一个任务
vTaskResume():恢复一个任务的运行
vTaskResumeFromISR():中断服务函数中恢复一个任务的运行

2.函数的详细描述
(1)函数vTaskSuspend()
该函数用于将某个任务设置为挂起态。
进入挂起态的任务永远都不会进入运行态,退出挂起态的唯一方法就是调用任务恢复函数vTaskResume()或xTaskResumeFromISR()。
函数原型如下:
void vTaskSuspend( TaskHandle_t xTaskToSuspend ) // 要挂起的任务的任务句柄,挂起任务自己使用NULL
返回值:无
(2)函数vTaskResume()
将一个任务从挂起态恢复到就绪态。
只有通过函数vTaskSuspend()设置为挂起态的任务才可以使用vTaskResume()恢复。
函数原型如下:
void vTaskResume( TaskHandle_t xTaskToResume ) // 要恢复的任务的任务句柄
返回值:无
(3)函数xTaskResumeFromISR()
此函数是vTaskResume()的中断版本,用于在中断服务函数中恢复一个任务。
函数原型如下:
BaseType_t xTaskResumeFromISR( TaskHandle_t xTaskToResume ) // 要恢复的任务的任务句柄
返回值:pdTRUE–恢复运行的任务的优先级等于或高于正在运行的任务,表明在中断服务函数退出后必须进行一次上下文切换。
pdFALSE–恢复运行的任务的优先级低于当前正在运行的任务,表明在中断服务函数退出后可以不进行上下文切换。
注意:当该函数的返回值为pdTRUE时,使用portYIELD_FROM_ISR()进行上下文切换。

原创粉丝点击