常用任务管理函数

任务挂起函数

void vTaskSuspend( TaskHandle_t xTaskToSuspend )


有比较简单的两点需要注意。

第一,使用任务挂起函数必须将INCLUDE_vTaskSuspend配置为1。

第二,实参为要挂起任务的句柄。

void vTaskSuspendAll(void)

这个函数的作用是将所有任务都挂起。说白了就是将任务调度器挂起。调度器被挂起后不能进行上下文的切换,但是中断还是使能的。当调度器被挂起的时候,如果有中断需要进行上下文的切换,那么这个任务将会被挂起,在调度器恢复之后才执行切换任务。

任务恢复函数

void vTaskResume(TaskHandle_t  xTaskToResume)

恢复的任务会保留挂起前的状态信息,在恢复的时候根据挂起时的状态继续运行。

要注意的两点和vTaskSuspend一样。

BaseType_t xTaskResumeFromISR( TaskHandle_t xTaskToResume )

该函数专门用于在中断服务程序中恢复被挂起的任务。无论通过调用一次或多次vTaskSuspend()函数而被挂起的任务,也只需调用一次xTaskResumeFromISR()函数即可解挂。

要想使用此函数,除了将INCLUDE_vTaskSuspend置1之外,还需要将INCLUDE_xTaskResumeFromISR置1。

BaseType_t xTaskResumeAll( void )

恢复调度器。

任务删除函数

这个在之前有说

任务延时函数

void vTaskDelay(const TickType_t xTicksToDelay)

void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime,

 const TickType_t xTimeIncrement )

终于来了一个有意思的,前边的都给我整困了。

和前边那位不同,这位大哥是用来实现绝对延时的,适用于周期性执行的任务,so,10ms执行一次的任务绝对跟这个大哥有关。

后边的内容我看了看,需要看代码的具体实现,作为初学者的我,并不是很想阅读这部分代码,而是更专注于使用,等把FreeRTOS都过一遍后,再来更新。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值