文件名称:前面谈到一个任务的任务控制块-ucOS-II入门教程(任哲)
文件大小:5.35MB
文件格式:PPT
更新时间:2024-05-12 12:13:48
UCOS-II
前面谈到,一个任务的任务控制块 的主要作用就是保存该任务的虚拟 处理器的堆栈指针寄存器SP。 其实,随着任务管理工作的复杂性 的提高,它还应该保存一些其他信 息。 任务控制块——任务在系统中的身份证 由于系统存在着多个任务,于是 系统如何来识别并管理一个任务就是 一个需要解决的问题。识别一个任务 的最直接的办法是为每一个任务起一 个名称。 由于μC/OS-II中的任务都有一个 惟一的优先级别,因此μC/OS-II是用 任务的优先级来作为任务的标识的。 所以,任务控制块还要来保存该 任务的优先级别。 另外,前面也谈到,一个任务在 不同的时刻还处于不同的状态, 显然,记录了任务状态的数据也 应该保存到任务控制块中。 基于上述原因,系统必须为每个任务创建 一个保存与该任务有关的相关信息的数据 结构,这个数据结构就叫做该任务的任务 控制块(TCB)。 任务控制块结构的主要成员 typedef struct os_tcb { OS_STK *OSTCBStkPtr; //指向任务堆栈栈顶的指针 …… INT8U OSTCBStat; //任务的当前状态标志 INT8U OSTCBPrio; //任务的优先级别 …… } OS_TCB; 任务控制块是不是像 我们人在一个国家中 的身份证?(其实, 系统中的所有资源 都应该有身份证。)