uCOS-II内核详解

uCOS-II内核详解

ID:38583128

大小:243.50 KB

页数:17页

时间:2019-06-15

uCOS-II内核详解_第1页
uCOS-II内核详解_第2页
uCOS-II内核详解_第3页
uCOS-II内核详解_第4页
uCOS-II内核详解_第5页
资源描述:

《uCOS-II内核详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、UC/OS-II内核详解一. 内核概述:多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核本身也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。但更主要的是,每个任务要有自己的栈空间,这一块吃起内存来是相当厉害的。内核本身对CPU的占用时间一般在2到5个百分点之间。UC/OS-II有一个精巧的内

2、核调度算法,实时内核精小,执行效率高,算法巧妙,代码空间很少。UC/OS-II的内核还可以被裁剪,Hmax中RTOS的就是一个被高度裁剪过的UC/OS-II。二. 任务控制块 OS_TCB:uC/OS-II的TCB数据结构简单,内容容易理解,保存最基本的任务信息,同时还支持裁减来减小内存消耗,TCB是事先根据用户配置,静态分配内存的结构数组,通过优先级序号进行添加,查找,删除等功能。减少动态内存分配和释放。因为依靠优先级进行TCB分配,每个任务必须有自己的优先级,不能和其他任务具有相同的优先级。typedef str

3、uct os_tcb {     OS_STK        *OSTCBStkPtr; #if OS_TASK_CREATE_EXT_EN     void          *OSTCBExtPtr;     OS_STK        *OSTCBStkBottom;     INT32U         OSTCBStkSize;     INT16U         OSTCBOpt;     INT16U         OSTCBId; #endif    struct os_tcb *OSTCBNex

4、t;     struct os_tcb *OSTCBPrev; #if (OS_Q_EN && (OS_MAX_QS >= 2)) 

5、

6、 OS_MBOX_EN 

7、

8、 OS_SEM_EN    OS_EVENT      *OSTCBEventPtr; #endif  #if (OS_Q_EN && (OS_MAX_QS >= 2)) 

9、

10、 OS_MBOX_EN     void          *OSTCBMsg; #endif      INT16U         OSTCBDly;     INT8U   

11、       OSTCBStat;     INT8U          OSTCBPrio;     INT8U          OSTCBX;     INT8U          OSTCBY;     INT8U          OSTCBBitX;     INT8U          OSTCBBitY; #if OS_TASK_DEL_EN     BOOLEAN        OSTCBDelReq; #endif } OS_TCB;.OSTCBStkPtr是指向当前任务栈顶的指针。.*OSTCB

12、ExtPtr;:任务扩展模块使用;.*OSTCBStkBottom; 任务栈底指针.OSTCBStkSize; 栈尺寸.OSTCBOpt; .OSTCBId;任务ID.OSTCBNext和.OSTCBPrev用于任务控制块OS_TCBs的双重链接,.OSTCBEventPtr是指向事件控制块的指针.OSTCBMsg是指向传给任务的消息的指针。.OSTCBDly当需要把任务延时若干时钟节拍时要用到这个变量,或者需要把任务挂起一段时间以等待某事件的发生,.OSTCBStat是任务的状态字。.OSTCBPrio是任务优先级

13、。.OSTCBX, .OSTCBY, .OSTCBBitX和 .OSTCBBitY用于加速任务进入就绪态的过程或进入等待事件发生状态的过程,任务就绪表依靠这些量来进行维护OSTCBY = priority >> 3;OSTCBBitY = OSMapTbl[priority >> 3];OSTCBX = priority & 0x07;OSTCBBitX = OSMapTbl[priority & 0x07];.OSTCBDelReq是一个布尔量,用于表示该任务是否需要删除 HMAX中的任务TCB删减为:typede

14、fstruct{OS_STK*OSTCBStkPtr;/*Pointertocurrenttopofstack*/OS_STK*OSTCBStkBot;/*Pointertobottomofstack*/INTOSOSTCBStkSize;/*stacksize*/Uint16TimerPeriod;/*timerperiod*/Uint16T

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。