网站大量收购独家精品文档,联系QQ:2885784924

东软操作系统三级项目.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东软操作系统三级项目

项目报告书 项目名称 μC/OS-II操作系统的进程调度模块源码分析 项目组组长 项目组成员及分工 制定日期 一、目的 辅助理解课堂上讲授的进程的定义、进程控制块、进程的创建以及处理及调度算法等知识点。 二、任务? 分析μC/OS-II操作系统中的进程调度模块的源码实现。进而理解进程控制块的结构,理解进程运行的并发性,掌握进程调度的方法在μC/OS-II操作系统中的具体实现。 三、小组内任务完成情况 撰写说明:小组各成员按照任务分工对任务完成情况进行说明,形式可以是文字描述、代码描述、流程图描述或屏幕截图等。 1、uC/OS的任务控制块--0.8 完成人: 任务完成情况说明: 任务控制块: 任务控制块是一个结构体数据结构,用于记录各个任务的信息。当任务的CPU的使用权被剥夺时,uCOS-II用它来保存任务的当前状态。当任务重新获得CPU的使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差的继续执行。任务控制块全部存放在RAM中。 typedef struct os_tcb { OS_STK *OSTCBStkPtr; /* 指向当前任务使用的堆栈的栈顶。uCOS-II允许每个任务堆栈的大小可以不同,这样用户可以根据实际需要定义任务堆栈的大小,可以节省RAM的空间。另外,由于OSTCBStkPtr是该结构体中的第一个变量,所以可以使用汇编语言方便的访问,因为其偏移量是0。当切换任务时,用户可以容易的知道就绪任务中优先级最高任务的栈顶。*/ ? #if OS_TASK_CREATE_EXT_EN 0u void *OSTCBExtPtr; /* 指向用户定义的扩展任务控制块*/ OS_STK *OSTCBStkBottom; /*指向任务堆栈的栈底。需要考虑一下你使用的MCU的栈指针是按照从高到低还是从低到高变化的。这个变量在测试任务需要的栈空间的时候需要使用。 */ INT32U OSTCBStkSize; /* 同样,该变量也是测试任务需要的栈空间需要。需要注意的是,该变量存储的是指针元的数目,而不是字节数目。*/ INT16U OSTCBOpt; /* 传给函数OSTaskCreateExt()的选择项。目前有OS_TASK_OPT_STK_CHK, OS_TASK_OPT_STK_CLR, OS_TASK_OPT_SAVE_EP */ INT16U OSTCBId; /* Task ID (0..65535),目前没有使用。*/ #endif ? struct os_tcb *OSTCBNext; struct os_tcb *OSTCBPrev; /* 指向TCB的双向链表的前后链接,在OSTimeTick()中使用,用来刷新各任务的任务延迟变量.OSTCBDly。*/ ? #if (OS_EVENT_EN) || (OS_FLAG_EN 0u) OS_EVENT *OSTCBEventPtr; /* 指向事件控制块的指针。*/ #endif ? #if (OS_EVENT_EN) (OS_EVENT_MULTI_EN 0u) OS_EVENT **OSTCBEventMultiPtr; /* 指向多重事件控制块的指针*/ #endif ? #if ((OS_Q_EN 0u) (OS_MAX_QS 0u)) || (OS_MBOX_EN 0u) void *OSTCBMsg; /* 指向传递给任务的消息的指针。*/ #endif ? #if (OS_FLAG_EN 0u) (OS_MAX_FLAGS 0u) #if OS_TASK_DEL_EN 0u OS_FLAG_NODE *OSTCBFlagNode; /*指向事件标志的节点的指针。 */ #endif OS_FLAGS OSTCBFlagsRdy; /* 当任务等待事件标志组时,该变量是使任务进入就绪态的事件标志。*/ #endif ? INT32U OSTCBDly; /* 记录事件延时或者挂起的时间。*/ INT8U

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档