原创 uC/OS 粗略小结

2008-8-21 19:45 4951 7 11 分类: 软件与OS

uC/OS-II的重要的几大块(按数据结构来分)


1、TCB 任务控制块


2、ECB 事件控制块


3、事件标志组


4、内存管理


 


一、任务控制块 OS_TCB;


点击看大图


最重要的数据结构,几乎所有的操作都离不开它。初始把所有任务控制块连接成一个链表,当一个任务被建立时,任务控制块随之被赋值。当任务被剥夺时,用来存储当前的状态。


二、事件控制块 OS_EVENT


点击看大图


点击看大图


用链表把所有事件控制块连接起来,最大长度不超过SO_MAX_EVENTS


事件控制块是uC/OS-II用的最广的数据结构,包括:


1、信号量


#define  OS_EVENT_TYPE_SEM         3


7188535d-99a9-4584-a48f-bfecfd29775d.JPG


2、互斥信号量


#define  OS_EVENT_TYPE_MUTEX       4


点击看大图


3、消息邮箱


#define  OS_EVENT_TYPE_MBOX        1
点击看大图


4、消息队列(OS_EVENT+OS_Q)


#define  OS_EVENT_TYPE_Q           2


点击看大图


OS_EVENT为头结点,并且指向一个队列OS_Q。


三、事件标志组


点击看大图


945b5121-08d3-4228-9fb7-3d8c551da41d.JPG


事件标志组我并没有认识去看,我个人看它不爽,看不出有什么实用价值。所以只是走马观花的看了一遍。就是一个数据结构为OS_FLAG_GRP的头结点后面跟着一个类型为OS_FLAG_NODE的双向链表,并且其中的OSFlagNodeTCB指向等待标志组的TCB。


四、内存管理


点击看大图


点击看大图


在uC/OS中,把内存按区来分,每个区中包含N个大小相同的内存块。并且用链表把各个区连接起来。链表最大长度为OS_MAX_MEM_PART。


 


本人是个新手,刚刚开始学嵌入式,可能认知还比较肤浅。刚刚花了三个多星期把uC/OS-II看了一遍,今天先做一个简明的总结。里面代码可能还要花些时日慢慢消化。还望路过的高手们多多指点。

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户403611 2009-5-2 00:08

分析UCOS的源码,除了移植部分的代码外,其它的就是数据结构的操作问题了. 主要的数据结构就是链表,当然实际要稍复杂些

用户1636813 2008-9-21 16:43

你好 写得很好的资料,我想转载, 可以吗? 能否获得授权? 感谢!

用户132165 2008-8-23 16:26

在看!!!!

用户461316 2008-8-22 19:44

路过!!!!!!!!
相关推荐阅读
用户546181 2011-12-16 15:23
MIPS 是什么意思? MIPS/MHZ 又是什么意思?
MIPS ( Million Instruction Per Second )表示每秒多少百万条指令,如 10MIPS ,表示每秒一千万条指令。MIPS/MHz 表示 CPU 在每 MHz 的运行...
用户546181 2011-11-23 16:41
APN是什么
对普通用户来说,使用GPRS上网,几乎都要遇到APN 这个概念, 其实,APN就是一个接入点,GPRS上网的接入服务器 ; 一、 APN的概念 APN(Access Poin...
用户546181 2009-06-20 18:01
MMU工作原理
1.MMU的工作原理我这里就不阐述了。网上有篇关于S3C2410 MMU的讲解,很详细。我就看了韦东山大哥的书的实验代码就写一些体会,并把源代码发出来。具体的代码如下:////////////////...
用户546181 2009-06-17 13:49
基于ARM9芯片S3C2410异常中断程序设计
验证的代码详细分析了基于ARM嵌入式系统的异常处理流程。然后阐明关键字“-irq”的作用,设计出中断处理函数。最后,通过设置中断控制寄存器,设计外部中断EINT3的初始化程序,并给出主程序流程图。实践...
用户546181 2009-06-13 15:15
linux下ntp协议的实现
最近公司比较空,花了一些时间学习了一下linux的应用编程,并且在今天下午完成了最后一章socket的实验。内容就是实现ntp协议,使本机的时间与ntp服务器同步。虽然说原理上并不难,但是过程中却也遇...
用户546181 2009-06-02 16:39
ubuntu下安装vmware tools
如果你是在VM下安装 Ubuntu,那么必须安装VMware-tools,才能获得更好的体验,包括屏幕分辨率、声音、和windows共享剪贴板等等。点击VMware菜单的-VM-Install VMw...
我要评论
4
7
关闭 站长推荐上一条 /4 下一条