18-任务管理常用API函数

  • 任务挂起函数

void vTaskSuspend(TaskHandle_t xTaskToSuspend)

void vTaskSuspendAll(void)——挂起所有任务

其实就是将调度器锁定,直白点挂起所有的任务,就是挂起任务调度器,调度器被挂起后,就不可以进行上下文的切换,但是中断还是使能的。

当调度器被挂起的时候,如果有中断需要进行上下文切换,那么这个任务就会被挂起,再调度器恢复之后,才能执行任务的切换

注意:调用多少次挂起所有任务函数,就需要调用多少次恢复所有任务函数

  • 任务恢复函数

任务恢复函数就是让挂起的任务重新进入就绪状态,恢复的任务会保留挂起前的信息,在恢复的时候根据挂起时的状态继续运行。(相当于恢复被挂起的任务后,这个任务会继续执行之前执行到的位置)

void vTaskResume(TaskHandle_t xTaskToResume)——适用于普通任务

BaseType_t xTaskResumeFromISR(TaskHandle_t xTaskToResume)——适用于中断任务

  • 任务删除函数

void vTaskDelete( TaskHandle_t xTaskToDelete )

如果删除自己的话,传入NULL就可以,如果删除其他任务的话,传入其他任务的句柄。

注意:任务删除函数并不会释放对应的内存,因此,在使用任务删除函数之前,需要先将对应的内存释放掉,然后再进行删除任务。

  • 任务延时函数

void vTaskDelay( const TickType_t xTicksToDelay )——相对延时函数

传递的参数为节拍(再配置文件中设置)

从执行这个函数开始算起需要延时的时间。

局限性:其他的任务,或中断服务也会影响这个函数延时的时间

void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime,

                                   const TickType_t xTimeIncrement );   ——绝对延时函数

传递的参数(上一次的时钟节拍,  需要延时的时钟节拍)

这个函数延时的时间精确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值