学习系统就得看源代码,不然讲再多都是没有用的,内核的主要工作就是实现任务间的调度,但是内核如何调度每个任务呢?
在UC/OS-II中每个每个任务都会有一个任务控制块,用来记录任务的状态。
应用程序可以有的最多的任务数,是由os_cfg.h中定义的OS_MAX_TASKS来定义的,最多可以设置为64个任务(最新的可以设置265个),不过为了减小开支,可以根据自己的需要减少一些数量,但因为系统本身会占用几个优先级,所以基本是这样的(最高的四个与最低的四个不用,之间的留给用户自己使用)
所有的任务控制块都放在任务控制块列表数字OSTCBTbl[]中,然后通过一个OSTCBNext指针连接成链表
在任务建立时会使用函数OS_TCBInit()初始化任务控制块TCB,OSTaskCreate() 与 OSTaskCreateExt()都会调用此函数。
INT8U OS_TCBInit (INT8U prio, -->任务优先级 赋值给OSTCBX,Y,..
OS_STK *ptos, -->指向栈顶的指针 赋值给OSTCBStkPtr
OS_STK *pbos, -->指向栈底指针 赋值给OSTCBStkBottom
INT16U id, -->任务ID 赋值给OSTCBId
INT32U stk_size, -->堆栈空间 赋值给OSTCBStkSize
void *pext, -->指向TCB扩展指针 赋值给OSTCBExtPtr
INT16U opt) -->OS_TCB选择像 赋值给OSTCBOpt
任务就绪表没个就绪的任务都会根据其任务优先级放在就绪表中的相应位置,就绪表中的两个变量
OSRdyGrp: 按任务优先级分组,8个任务为一组
OSRdyTbl[]表示OSRdy中的第几位
OSRdyGrp |= ptcb->OSTCBBitY; /* Make task ready to run */
OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;
有一个优先级为30的任务就绪,则初始化时候
ptcb->OSTCBY= 3
ptcb->OSTCBX = 6
然后
ptcb->OSTCBBitY = 8;
ptcb->OSTCBBitX = 64;
在就绪表中
OSRdyGrp也就置位第三位
OSRdyTb1[3]置位第六位
在任务调度的时候会在就绪表中选择优先级最高的任务
相关推荐
《嵌入式实时操作系统uC/OS-II》word版(第一版) uC/OS-II是一款开源的嵌入式实时多任务操作系统,拥有微小的内核,是初学嵌入式系统朋友的首选。 源码官方地址 : micrium公司 http://www.micrium.com/ 关于...
这是邵贝贝版的uC/OS-II中文图书,书中有不少疏漏之处,但是只要阅读认真,不会误导你的。书中很大篇幅介绍了嵌入式操作系统的概念,提出了基础的内核功能,然后再说这些功能uC/OS-II大多已经具备,接下来就讲解了该...
相当于UC/OS-II相当于系统的详尽说明书,英文原版由UC/OS-II系统编著。读者只需要一些C语言的基础,如果有操作系统的基础就更好。 本书将UC/OS-II分为各个模块来讲解,几乎对所有的语句都作了注释和分析,读者可以...
嵌入式实时操作系统uc/os-ii原来及应用 北京航空航天大学出版社 任 哲 编著
《uC/OS-II原理与ARM应用程序设计》中的实例源码
STM32F103 UC/OS-II关于各种任务间通信的系列C程序(彩屏显示),程序包含编译全部内容,可直接使
uC/OS-II学习笔记—空闲链表和就绪链表
这个源码,是在vc上运行的,能更好的理解uc/os-ii,本人用这个源码做了很多的移植工作哈,包括tlsf算法等,而且非常强大的一个源码。值得拥有!
UC/OS-II移植样板,UC/OS-II移植样板
uC/OS-II内核分析、移植与驱动程序开发 uCOS学习笔记
我们再次感谢Jean J. Labrosse提供uC/OS-II。
《嵌入式实时操作系统 uC/OS-II》书中光盘的资料,里面是uC/OS-II的官方源码,希望对学习OS的朋友有帮助~~
对于学习uc/os-II有帮助 希望对大家有帮助 谢谢大家的支持了
uc/os-ii源码,提供给他家学习交流,多多交换心得
uC/OS-II v2.86 移植在STM32F103VBT6上使用,编译环境IAR6.2.
将uC/OS-II成功移植到Visual Studio 开发环境下,便于开发调试.
Uc/os-II软件开发环境,keil,realview
这是UC/OS-II最新的内核源码2.84,本人QQ154612312,呵呵,有兴趣者,可以加我哦
学习在uC/OS-II系统中应用程序设计,了解任务和事件的创建,及任务的调度;同时了解uC/OS-II系统中设备文件与设备驱动程序的关系,以及系统读写调用与驱动程序读写函数的关系。
uc/os-ii 是比较著名的嵌入式操作系统,由于其源码公开性,是我们学习嵌入式操作系统的好助手,我上传的是uc/os-ii的基本配置方法,大家需要的话可以作为参考