FreeRTOS实时操作系统的接口函数说明之任务管理

(一)任务管理所用到的接口
1. 创建任务的函数接口(即相当于Linux下创建线程的函数)
portBASE_TYPE  xTaskCreate( pdTASK_CODE  pvTaskCode,//任务执行函数 
			    const signed portCHAR * const pcName,//给任务取的一个名字
			    unsigned portSHORT usStackDepth,//要求给本任务分配的堆栈大小
			    void *pvParameters,//传递给任务执行函数的参数
			    unsigned portBASE_TYPE uxPriority,//本次任务的执行优先级
			    xTaskHandle *pxCreatedTask);//相当于创建的任务文件描述符或者在windows下称为句柄
数据类型介绍:
portBASE_TYPE : 在头文件portable.h中定义,根据不同的平台定义为不同的数据类型
pdTASK_CODE  :函数指针,即任务执行函数的类型,void (*pdTASK_CODE)( void * );定义在projdefs.h头文件中
portCHAR            :在头文件portable.h中定义为char类型
portSHORT       :在头文件portable.h中定义为short类型
xTaskHandle      :在头文件task.h中定义为 void *类型

任务执行函数的原型是:
void  TaskFunction(void *){}在该函数中的实现是一个死循环(相当于Linux下的线程执行函数)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2. 启动调度器的函数接口,标志着任务开始执行
void vTaskStartScheduler( void )

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3. 将任务挂起的函数接口
void vTaskSuspend( xTaskHandle  pxTaskToSuspend ){}
pxTaskToSuspend:由xTaskCreate()创建时产生的对于任务的描述符
*******************************************************************************************************************************************
4. 将挂起的任务唤醒的函数接口(有两个)
a. void vTaskResume( xTaskHandle pxTaskToResume ) {}
b. portBASE_TYPE xTaskResumeFromISR( xTaskHandle pxTaskToResume )

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

5. 延迟函数接口(有两个)
a. void vTaskDelay( portTickType xTicksToDelay )
b. void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement )

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6. 设置任务优先级的函数接口
void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority )
**************************************************************************************************************************************************************

7. 获取任务优先级的函数接口
unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask )
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

8. 删除任务的函数接口
void vTaskDelete( xTaskHandle pxTaskToDelete )













  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值