FreeRTOS 任务状态查询

发布于:2023-01-17 ⋅ 阅读:(721) ⋅ 点赞:(0)

目录

任务相关API函数

 函数TaskPriorityGet()获取优先级

 函数uxTaskGetSystemState()获取任务状态

 函数xTaskGetHandle()

函数uxTaskGetStackHighWaterMark()

 函数eTaskGetState()

 函数vTaskList()


任务相关API函数

 函数TaskPriorityGet()获取优先级

 函数uxTaskGetSystemState()获取任务状态

 TaskStatusArray是结构体指针,如果不给它赋予空间的话就是野指针,所以这里需要malloc
 FreeRTOS用pvPortMalloc    他是一个数组,每个数组有多少个大小,就是一个结构体大小
 判断是否malloc成功
 定义和ArraySize同类型的i
 用for循环,有多少个任务就打印多少次

\t是补全当前字符串长度到8的整数倍,最少1个最多8个空格,补多少要看你\t前字符串长度。

比如当前字符串长度10,那么\t后长度是16,也就是补6个空格。

如果当前字符串长度12,此时\t后长度是16,补4个空格

数组里面循环了5次,因为我们有5个任务         一个开始任务,开始任务里又创建两个任务
任务序号就是我们创建任务的过程,第一个任务创建开始任务,第二个是空闲任务,创建开始任务的同时也会创建空闲任务,开始任务创建完后会进入任务调度,在任务调度里会创建空闲任务IDLE
第三个就是定时器任务, 第四个是led0, 第五个是查询任务
任务的优先级和我们设定的一样1,2,3    空闲任务优先级是0,定时器优先级是31 所说0和31优先级我们不能用
跟中断优先级不一样,中断里面是数字越小优先级越高。但在我们多任务过程中,是数字越大优先级越大

 函数xTaskGetHandle()

通过任务名字来获取句柄

 两者是一致的

函数uxTaskGetStackHighWaterMark()

 来个延时,不然放在while里面飞的很快

 

剩余148,我们定义200,说明我们用了(200-148)*4 = 208个字节

 函数eTaskGetState()

 

1---就是就绪态意思

 函数vTaskList()

char InfoBuffer[1000];

 

 

开始任务是删除态,因为创建后就删除了 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到