第3章 内核结构

第3章 内核结构

ID:40875855

大小:608.50 KB

页数:20页

时间:2019-08-09

第3章 内核结构_第1页
第3章 内核结构_第2页
第3章 内核结构_第3页
第3章 内核结构_第4页
第3章 内核结构_第5页
资源描述:

《第3章 内核结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第3章内核结构13.0临界段(CriticalSections)13.1任务13.2任务状态33.3任务控制块(TaskControlBlocks,OS_TCBs)43.4就绪表(ReadyList)73.5任务调度(TaskScheduling)103.6给调度器上锁和开锁(LockingandUnLockingtheScheduler)113.7空闲任务(IdleTask)123.8统计任务133.9μC/OS中的中断处理163.10时钟节拍203.11μC/OS-Ⅱ初始化233.12μC/OS-Ⅱ的启动243.13获取当前μC/OS-Ⅱ的版本号

2、27I第3章内核结构本章给出μC/OS-Ⅱ的主要结构概貌。读者将学习以下一些内容;lμC/OS-Ⅱ是怎样处理临界段代码的;l什么是任务,怎样把用户的任务交给μC/OS-Ⅱ;l任务是怎样调度的;lμC/OS-Ⅱ是怎样知道应用程序CPU的利用率的;l怎样写中断服务子程序;l什么是时钟节拍,μC/OS-Ⅱ是怎样处理时钟节拍的;lμC/OS-Ⅱ是怎样初始化的;l怎样启动多任务;本章还描述以下函数,这些服务于应用程序:lOS_ENTER_CRITICAL()和OS_EXIT_CRITICAL(),lOSInit(),lOSStart(),lOSIntEnter

3、()和OSIntExit(),lOSSchedLock()和OSSchedUnlock(),以及lOSVersion().3.0临界段(CriticalSections)μC/OS-Ⅱ定义两个宏(macros)来关中断和开中断。分别是:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。在文件OS_CPU.H中。每种微处理器都有自己的OS_CPU.H文件。3.1任务一个任务通常是一个无限的循环[L3.1(2)],如程序清单3.1所示。程序清单L3.1任务是一个无限循环voidYourTask(void*pdata)(1){f

4、or(;;){(2)/*用户代码*/调用uC/OS-II的某种系统服务:OSMboxPend();OSQPend();OSSemPend();OSTaskDel(OS_PRIO_SELF);OSTaskSuspend(OS_PRIO_SELF);OSTimeDly();3-19OSTimeDlyHMSM();/*用户代码*/}}当任务完成以后,任务可以自我删除,如清单L3.2所示。注意任务代码并非真的删除了,μC/OS-Ⅱ只是简单地不再理会这个任务了,这个任务的代码也不会再运行。程序清单L3.2.任务完成后自我删除voidYourTask(void*

5、pdata){/*用户代码*/OSTaskDel(OS_PRIO_SELF);}3.0任务状态睡眠态(DORMANT):指任务驻留在程序空间之中,还没有交给μC/OS-Ⅱ管理。就绪态:当任务一旦建立,这个任务就进入就绪态准备运行。运行态:调用OSStart()可以启动多任务。等待状态中断状态图3.1任务的状态3-193.0任务控制块(TaskControlBlocks,OS_TCBs)一旦任务建立了,任务控制块OS_TCBs将被赋值(程序清单3.3)。任务建立的时候,OS_TCBs就被初始化。程序清单L3.3µC/OS-II任务控制块.t

6、ypedefstructos_tcb{OS_STK*OSTCBStkPtr;#ifOS_TASK_CREATE_EXT_ENvoid*OSTCBExtPtr;OS_STK*OSTCBStkBottom;INT32UOSTCBStkSize;INT16UOSTCBOpt;INT16UOSTCBId;#endifstructos_tcb*OSTCBNext;structos_tcb*OSTCBPrev;#if(OS_Q_EN&&(OS_MAX_QS>=2))

7、

8、OS_MBOX_EN

9、

10、OS_SEM_ENOS_EVENT*OSTCBEventPtr;#en

11、dif#if(OS_Q_EN&&(OS_MAX_QS>=2))

12、

13、OS_MBOX_ENvoid*OSTCBMsg;#endifINT16UOSTCBDly;INT8UOSTCBStat;INT8UOSTCBPrio;INT8UOSTCBX;INT8UOSTCBY;INT8UOSTCBBitX;INT8UOSTCBBitY;#ifOS_TASK_DEL_ENBOOLEANOSTCBDelReq;#endif}OS_TCB;.OSTCBX,.OSTCBY,.OSTCBBitX和.OSTCBBitY3-19用于加速任务进入就绪态的过程或进入等待事件发生状态

14、的过程(避免在运行中去计算这些值)。这些值是在任务建立时算好的,或者是在改变任务优先级时算出的。这些值的算法

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

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

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