(一)任务管理所用到的接口
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 )