uCOS-II内核任务及任务控制块

来源:本站
导读:目前正在解读《uCOS-II内核任务及任务控制块》的相关信息,《uCOS-II内核任务及任务控制块》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《uCOS-II内核任务及任务控制块》的详细说明。
简介:uCOS-II内核任务及任务控制块

实时操作系统中任务的概念和操作系统中进程的概念差不多,就是一个对正在运行的程序的抽象。任务和程序之间的区别是很微妙的,任务是某种类型的一个活动,它可以有程序、输入、输出及状态。在uC/OS-II中,一个任务看起来像其它C的函数一样,有函数返回类型,有形式参数变量,但是任务是绝不会返回的。故返回参数必须定义成void,如程序清单1就是一个任务函数:

程序清单1

TASK()

---------------------------void Task (void *pdata)

{

for(;;){

/* 用户代码 */

/* 调用μC/OS-Ⅱ的各种服务 */

/* 用户代码 */

}

}

-----------------------------------------------------------

当任务完成以后,任务可以自我删除,任务函数可以调用OSTaskDel()来实现这个目的。

任务删除不是指任务代码被删除了,而是指内核将不再处理这个任务了,当然任务函数也不会被执行。任务想要再次进入内核可以调用OSTaskCreat()或者OSTaskCreatExt()。任务函数的形式参数变量是由用户代码在第一次执行时带入的,将变量定义成void指针是为了允许用户应用程序传递任何类型的数据给任务。用户也可以建立许多相同的任务,且所有都使用同一个任务函数,但可以向这个任务传入不同的数据,就可以达到不同的任务使用同一个任务函数的目的,大大节省了代码的存储空间.

μC/OS-Ⅱ可以管理多达64个任务,但目前版本的μC/OS-Ⅱ有两个任务已经被系统占用了。作者保留了优先级为0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRI0-2,OS_LOWEST_PRI0-1以及OS_LOWEST_PRI-0这8个任务以被将来使用。须给每个任务赋以不同的优先级,优先级号越低,任务的优先级越高。μC/OS-Ⅱ总是运行进入就绪态的优先级最高的任务。

任务控制块(OS_TCB)是一个数据结构,是用来描述任务的一些属性。当一个任务建立时,任务控制块将被初始化。当任务的CPU使用权被剥夺时,μC/OS-Ⅱ用任务控制块来保存改任务的状态,当任务重新得到CPU使用权时,任务控制块能确保任务从中断的那一点继续执行下去。OS_TCB全部驻留在RAM中。每个任务都有自己的栈,μC/OS-Ⅱ中栈的容量是可以任意大小的。有些商业内核要求所有任务栈的容量都是一样的,这种限制就浪费了RAM。

提醒:《uCOS-II内核任务及任务控制块》最后刷新时间 2024-03-14 01:06:50,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《uCOS-II内核任务及任务控制块》该内容的真实性请自行鉴别。