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
2、互斥信号量
#define OS_EVENT_TYPE_MUTEX 4
3、消息邮箱
4、消息队列(OS_EVENT+OS_Q)
#define OS_EVENT_TYPE_Q 2
OS_EVENT为头结点,并且指向一个队列OS_Q。
三、事件标志组
事件标志组我并没有认识去看,我个人看它不爽,看不出有什么实用价值。所以只是走马观花的看了一遍。就是一个数据结构为OS_FLAG_GRP的头结点后面跟着一个类型为OS_FLAG_NODE的双向链表,并且其中的OSFlagNodeTCB指向等待标志组的TCB。
四、内存管理
在uC/OS中,把内存按区来分,每个区中包含N个大小相同的内存块。并且用链表把各个区连接起来。链表最大长度为OS_MAX_MEM_PART。
本人是个新手,刚刚开始学嵌入式,可能认知还比较肤浅。刚刚花了三个多星期把uC/OS-II看了一遍,今天先做一个简明的总结。里面代码可能还要花些时日慢慢消化。还望路过的高手们多多指点。
用户403611 2009-5-2 00:08
用户1636813 2008-9-21 16:43
用户132165 2008-8-23 16:26
用户461316 2008-8-22 19:44