FreeRTOS学习笔记—任务挂起与恢复

任务挂起与恢复

FreeRTOS挂起和恢复任务的相关API函数

FreeRTOS 中用于挂起和恢复任务的 API 函数如下表所示:

函数描述需要在FreeRTOSconfig.h中设置
vTaskSuspend()挂起任务INCLUDE_vTaskSuspend 配置为 1
vTaskResume()恢复被挂起的任务将宏 INCLUDE_vTaskSuspend 配置为 1
xTaskResumeFromISR()在中断中恢复被挂起的任务INCLUDE_xTaskResumeFromISR 配置为 1
挂起函数 vTaskSuspend()
函数原型:void vTaskSuspend(TaskHandle_t xTaskToSuspend);

返回值:

作用:此函数用于挂起任务,无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复。

此函数并不支持嵌套,不论使用此函数重复挂起任务多少次,只需调用一次恢复任务的函数,那么任务就不再被挂起。

在任务中恢复函数 vTaskResume()
函数原型: void vTaskResume(TaskHandle_t xTaskToResume);

返回值:

作用:此函数用于在任务中恢复被挂起的任务,不论一个任务被函数vTaskSuspend()挂起多少次,只需要使用函数 vTakResume()恢复一次,就可以继续运行。

在中断中恢复函数 xTaskResumeFromISR()

**函数原型:** BaseType_t xTaskResumeFromISR(TaskHandle_t xTaskToResume)**返回值:** pdTRUE或者pdFALSE

pdTRUE:任务恢复后需要进行任务切换

pdFALSE:任务恢复后不需要进行任务切换

作用: 此函数用于在中断中恢复被挂起的任务,不论一个任务被函数 vTaskSuspend()挂起多少
次,只需要使用函数 vTakResumeFromISR()恢复一次,就可以继续运行

注意:中断服务程序中要调用freeRTOS的API函数,则中断优先级不能高于FreeRTOS所管理的最高优先级**

*FreeRTOS所管理的最高优先级为1——5
  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值