μCOSII实时操作系统.docVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
μC/OS是一个特殊风格的嵌入式操作系统,它有多个版本,可以适应从x86到8051的各种不同类型不同规模的嵌入式系统,原先代码开放,但某些改进版本,代码不开放。 ????1、μC/OS-II 的特点 ????可移植性:绝大部分μC/OS的源码是用移植性很强的ANSI C写的,和微处理器硬件相关的那部分是用汇编语言写的,汇编语言写的部分已经压到最低限度。 ????可固化:μC/OS是为嵌入式应用而设计的,用户可以通过固化手段将μC/OS嵌入到产品中成为产品的一部分。 ????可裁减:μC/OS系统由多个相对独立的、短小精炼的目标模块组成,用户可根据需要选择适当模块来裁剪和配置系统,这样,通过目标模块之间的按需组合,可以减少产品中的μC/OS所需的存储空间,这种裁减性是靠条件编译实现的。 ????占先式:μC/OS完全是占先式的实时内核,即μC/OS总是运行就绪条件下优先级最高的任务。 ????多任务:μC/OS可以管理64个任务,每个任务的优先级必须是不同的,其中系统占用8个,应用程序最多可以有56个任务。 ????可确定性:全部μC/OS的函数调用与服务的执行时间是可知的,即μC/OS系统服务的执行时间不依赖于应用程序任务的多少。 ????任务栈:μC/OS允许每个任务有不同的堆栈空间,以便压低应用程序对RAM的需求。 ????系统服务:μC/OS有多个相对独立的、短小精炼的目标模块组成,这些模块有:任务管理、时间管理、任务间的通信与同步、内存管理。其中:任务管理提供建立任务、删除任务、请求删除任务、任务的堆栈检查、改变任务的优先级、挂起任务、恢复任务和任务信息查询的系统调用;时间管理提供任务延时、取消任务延时和查询系统时间的系统调用;任务间通信与同步提供基于信号量、邮箱和消息队列机制的系统调用;内存管理提供内存分区的建立、分配、释放和查询的系统调用。 ????中断管理:中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。 ????稳定性和可靠性:μC/OS自1992年以来已经有好几百个商业应用。 ????2、μC/OS-II 内核 ????实时操作系统对系统资源进行管理。主要包括任务调度、时间管理、内存管理、资源管理(信号灯、邮箱、消息队列)四大部分。μC/OS所有系统服务均由内核提供。内核将应用系统和底层硬件结合成一个完整的实时系统。 ????⑴ 任务调度 ??? 任务可以是一个无限的循环,也可以是在一次执行完毕后被删除掉。这里要注意的是,任务代码并不是被真正的删除了,而只是μC/OS-Ⅱ不再理会该任务代码,所以该任务代码不会再运行。 ??? 任务看起来与任何C函数一样,具有一个返回类型和一个参数,只是它从不返回。任务的返回类型必须被定义成void型。 ??? 任务的调度包括如何在用户的应用程序中建立任务、删除任务、改变任务的优先级、挂起和恢复任务,以及获得有关任务的信息。它主要由下列函数组成: ??? ◇?建立任务OSTaskCreate() ??? ◇?建立任务OSTaskCreateExt() ??? ◇?堆栈检验OSTaskStkChk() ??? ◇?删除任务OSTaskDel() ??? ◇?请求删除任务OSTaskDelReq() ??? ◇?改变任务的优先级OSTaskChangePrio() ??? ◇?挂起任务OSTaskSuspend() ??? ◇?恢复任务OSTaskResume() ??? ◇?获得有关任务的信息OSTaskQuery() ??? 以上函数可以在OS_TASK文件中找到。 ????① 建立任务函数OSTaskCreate()或OSTaskCreateExt() ??? 想让μC/OS-Ⅱ管理用户的任务,用户必须要先建立任务。用户可以通过传递任务地址和其它参数到以下两个函数之一来建立任务:OSTaskCreate() 或OSTaskCreateExt()。OSTaskCreate()与μC/OS是向下兼容的,OSTaskCreateExt()是OSTaskCreate()的扩展版本,提供了一些附加的功能。用两个函数中的任何一个都可以建立任务。 ??? 任务可以在多任务调度开始前建立,也可以在其它任务的执行过程中被建立。在开始多任务调度(即调用OSStart())前,用户必须建立至少一个任务。任务不能由中断服务程序(ISR)来建立。 ????OSTaskCreate()?格式为: ????INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio) ????OSTaskCreate()需要四个参

文档评论(0)

ipad0c + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档