- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
μC/OS-II的代码结构(续)2008年12月15日南京大学计算机系*μC/OS-II的任务代码有两种框架结构,如下列出:voidUsertask(void*pdata){for(;;){用户代码;OSMboxPend();OSQPend();OSSemPend();OSTaskDel(OS_PRIO_SELF);OSTaskSuspend(OS_PRIO_SELF);OSTimeDly();OSTimeDlyHMSM();用户代码;}}voidUsertask(void*pdata){用户代码;OSTaskDel(OS_PRIO_SELF);}μC/OS-II的代码结构(续)2008年12月15日南京大学计算机系*对于执行无限循环的任务,通常采用第一种形式;对于只执行一次就自我删除的任务,采用第二种形式。以下是推荐的μC/OS-II应用程序任务的基本结构voidUsertask(void*pdata){INT8UReturnNum;//返回值InitTimer();//可选for(;;)………..//应用程序代码OSTimeDly(n);//常用的语句}μC/OS-II的代码结构(续)2008年12月15日南京大学计算机系*μC/OS-II的启动过程Bootloader执行完毕后,调用应用程序主文件(通常是main.c)里的main()函数。main()函数在执行过程中,除硬件初始化函数和用户函数外,按以下次序执行三个主要的μC/OS-II函数:①操作系统初始化OSInit();②任务创建OSTaskCreate();③任务调度开始OSStart()一旦OSStart()函数开始执行,就标志着μC/OS-II进入了多任务调度的正常运行状态μC/OS-II的内核2008年12月15日南京大学计算机系*μC/OS-II内核只提供任务调度、任务间通信(ITC)与同步、任务管理、时间管理和内存管理等基本功能01可裁剪编译到8K左右,全部只有100K左右,消耗资源非常小02在小规模的代码内实现了抢占式任务调度、多任务通信功能03μC/OS-II的内核(续1)2008年12月15日南京大学计算机系*μC/OS-II的临界区μC/OS-II调用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()两个宏来执行关中断和开中断,对于不同的体系结构,这两个宏定义不一样。OS_CPU.H文件中含有OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()的定义μC/OS-II的内核(续2)2008年12月15日南京大学计算机系*μC/OS-II的任务状态01最大任务数64个,最高优先级为0,最低优先级取值为实际定义的最大任务数减1.02任务建立之后,拥有优先级,执行函数,自用栈空间和任务控制块(TCB),在运行时刻能够完全控制CPU的操作以及全部用户可访问寄存器的操作。03μC/OS-II的任务状态转换图2008年12月15日南京大学计算机系*μC/OS-II的每个任务都是一个无限的循环。每个任务都处在休眠态、就绪态、运行态、挂起态和被中断态的某种状态下(任务状态变迁如右图所示)μC/OS-II的内核(续3)2008年12月15日南京大学计算机系*休眠态(dormant)这种状态相当于该任务驻留在内存中,但还没有交给内核管理。把任务交给内核是通过调用任务创建函数实现的μC/OS-II两个任务创建函数OSTaskCreate()和OSTaskCreateExt()μC/OS-II的内核(续3)2008年12月15日南京大学计算机系*STEP5STEP4STEP3STEP2STEP1就绪态(ready)在这种状态下意味着该任务已经准备好,且可运行,但由于该任务的优先级比正在运行的任务的优先级低,所以还暂时不能运行μC/OS-II就绪表为每一个优先级的任务提供了一个位元,登记该任务是否就绪,就绪时取值为1,没有就绪时取值为0运行态得到了CPU的控制权正在运行之中的任务状态μC/OS-II的内核(续4)2008年12月15日南京大学计算机系*挂
您可能关注的文档
- 建筑工程定额体系.ppt
- 慢病毒颗粒制备和应用.ppt
- 宫颈妊娠业务学习.ppt
- 开源云计算系统简介.ppt
- 年终总结-人力资源助理.ppt
- 市场营销策划的一般原理.ppt
- 对联的撰写技巧.ppt
- 实用社会统计分析技术.ppt
- 定语后置句、宾语前置句.ppt
- 导游英语专业职业生涯规划.ppt
- 2024年度党员干部专题组织生活会个人新四各方面对照检查材料3篇合集.docx
- 2023年民主生活会领导干部个人发言3篇范文.docx
- 第二批主题教育专题组织生活会普通党员个人对照检查材料合集2篇.docx
- 学习以案促改党纪教育专题组织生活会个人对照检查材料两篇.docx
- 党员领导干部2023年民主生活会“六个方面”个人对照检查材料3篇范文.docx
- 党员干部“严守纪律规矩 加强作风建设”组织生活会个人对照检查材料集合篇.docx
- 2024班子防治统计造假专题民主生活会对照检查材料两篇范文.docx
- 2024公司机关党支部教育专题组织生活会个人对照检查材料两篇.docx
- 2023年度专题民主生活会个人对照新6个对照方面检查材料3篇文稿.docx
- 2024第二批主题教育专题组织生活会对照检查材料2篇文本.docx
文档评论(0)