STM32F4_UCOSiii开发手则_第五章_任务管理02

5.3任务控制块OS_TCB

OS_TCB保存任务信息,使用OSTaskCreat();创建任务时,会给任务分配一个任务控制块 

创建一个结构体 struct os_tcb{};

5.4任务堆栈:用来在任务切换和调用函数时保存现场,每个任务都有一个堆栈。下面讲创建一个堆栈

1.CPU_STK数据类型定义任务堆栈,CPU_STK实际是一个CPU_INT32Ul类型(cpu.h),一个CPU_STK类型为4个字节

CPU_STK  TASK_STK[64] //定义一个任务堆栈(256字节)

按例程方法定义堆栈:

#define  TASK_STK_SIZE  64 //任务堆栈大小

CPU_STK    TASK_STK[TASK_STK_SIZE  ]

5.5 任务就绪表
UCOSIII 中将已经就绪的任务放到任务就绪表里,任务就绪表有两部分:优先级位映射表

OSPrioTbl[]就绪任务列表 OSRdyList[]

5.5.1 优先级 位 映射表
当某一个任务就绪以后就会将优先级位映射表中相应的位置 1:


有关于优先级的操作有3个函数:OS_PrioGetHighest()、OS_PrioInsert()和OS_PrioRemove()。
分别为获取就绪表中最高优先级任务、将某个任务在就绪表中相对应的位置 1 和将某个任务在
绪表中相对应的位清零





猜你喜欢

转载自blog.csdn.net/qq_40025335/article/details/79527720