- 0
- 0
- 约9.29千字
- 约 34页
- 2016-12-25 发布于湖北
- 举报
福州大学物理与信息工程学院 孙旭飞 任务控制块(TCB) μC/OS-II 是通过任务控制块来管理任务的,实际上创建任务就是给任务代码分派一个任务控制块。一旦使用OSTaskCreate()函数创建了一个任务,一个任务控制块OS_TCB就被复制了,OS_TCB全部驻留在RAM中,μC/OS-II最小内核的任务控制块的定义如右。 任务控制块(TCB) 任务控制块是一个基于链表的数据结构,任务控制块主要用于记录任务的堆栈栈顶指针、指向下一个任务控制块的指针、任务等待的延迟时间、任务的当前状态标志与任务的优先级别等一些与任务管理有关的属性。 所有的任务控制块分为两条链表,空闲链表和使用链表。 任务控制块(TCB) OSTCBStkPtr 指向当前任务堆栈的栈顶指针。μC/OS-II允许每个任务有自己的堆栈,而且每个任务堆栈的容量可以是任意大小的。OSTCBStkPtr是OS_TCB数据结构中的唯一能用汇编语言来处置的变量,OSTCBStkPtr放在数据结构的最前面,即数组的首元素,从而用汇编语言来处理这个变量非常容易(在偏移量为0的位置)。 任务控制块(TCB) OSTCBNext 用于任务控制块OS_TCB的链接。该链表在OSTimeTick( ) 时钟节拍函数中使用,用于刷新各个任务的任务延迟量OSTCBDly,每个任务的OS_TCB
原创力文档

文档评论(0)