高级会员
- 积分
- 762
- 金钱
- 762
- 注册时间
- 2021-5-18
- 在线时间
- 28 小时
|
(一)任务管理所用到的接口
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 )
原文链接:https://www.yunduoketang.com/article/zhiboruanjian.html
|
|