OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4133|回复: 0

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

[复制链接]

221

主题

221

帖子

0

精华

高级会员

Rank: 4

积分
762
金钱
762
注册时间
2021-5-18
在线时间
28 小时
发表于 2021-6-3 16:06:31 | 显示全部楼层 |阅读模式
(一)任务管理所用到的接口
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

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表