- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 ?C/OS-II在ARM系统中的应用与开发 5.1 ?C/OS-II系统的特点及结构 μC/OS-Ⅱ是一个免费的、源代码公开的实时嵌入式内核,其内核提供了实时系统所需要的一些基本功能。其中包含全部功能的核心部分代码占用8.3 KB,全部的源代码约5500行,非常适合初学者进行学习分析。而且由于μC/OS-Ⅱ是可裁剪的,所以用户系统中实际的代码最少可达2.7 KB。由于μC/OS-Ⅱ的开放源代码特性,还使用户可针对自己的硬件优化代码,获得更好的性能。 μC/OS-Ⅱ是在PC机上开发的,C编辑器使用的是Borland C/C++3.1版。从早期使用的μCOS到现在的μC/OS-Ⅱ V2.52版,应用的实例也进一步说明了该内核的实用性和可靠性。 5.1.1 μC/OS-Ⅱ系统的特点 1.有源代码,μC/OS-Ⅱ源代码是开放的,用户可登录μC/OS-Ⅱ的网站(www.uCOS-II.com)下载针对不同微处理器的移植代码。这极大地方便了实时嵌入式系统μC/OS-Ⅱ的开发,降低了开发成本。 2.可移植(Portable),μC/OS-Ⅱ的源代码中,除了与微处理器硬件相关的部分是使用汇编语言编写的,其绝大部分是使用移植性很强的ANSI C来编写的。并且把用汇编语言编写的部分已经压缩到最低的限度,以使μC/OS-Ⅱ更方便于移植到其他微处理器上使用。如Intel、Zilog、Motorola等公司的微控制器和TI公司的DSP。 3.可固化(ROMable),μC/OS-Ⅱ是为嵌入式应用而设计的操作系统,只要具备有合适的软、硬件工具,就可将μC/OS-Ⅱ嵌入到产品中去。 4.可裁剪(Scalable),μC/OS-Ⅱ可根据实际用户的应用需要使用条件编译来完成对操作系统的裁剪,这样就可以减少μC/OS-Ⅱ对代码空间和数据空间的占用。 5.可剥夺型(Preemptive),μC/OS-Ⅱ是完全可剥夺型的实时内核,运行就绪条件下优先级最高的任务。 6.多任务,μC/OS-Ⅱ可管理64个任务。一般情况下,建议用户保留8个任务给μC/OS-Ⅱ。这样,留给用户应用程序的任务最多可有56个。系统赋给每个任务的优先级必须不同,这意味着μC/OS-Ⅱ不支持时间片轮转调度法(Round-robin Scheduling)。 7.可确定性,绝大多数μC/OS-Ⅱ的函数调用和服务的执行时间具有确定性。在任何时候用户都能知道μC/OS-Ⅱ的函数调用与服务的执行时间。 8.任务栈,μC/OS-Ⅱ的每个任务都有自己单独的栈和栈空间。使用μC/OS-Ⅱ的栈空间校验函数可确定每个任务到底需要多少栈空间。 9.系统服务,提供了信号量、互斥信号量、消息邮箱、事件标志、数据队列、块大小固定的内存的申请与释放及时间管理函数等。 10.中断管理,中断可使正在执行的任务暂时挂起,如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行。中断嵌套层数可达255层。 11.稳定性与可靠性,2000年7月,μC/OS-Ⅱ在一个航空项目中得到了美国联邦航空管理局对商用飞机的符合RTCA DO--178B标准的认证。可以说,μC/OS-Ⅱ的每一种功能、每一个函数及每一行代码都经过了考验与测试。 需要说明的是,uCOS-II作为一个实时操作系统只提供了多任务调度等基本功能,这在实际应用中显然是不够的。除了移植好的操作系统内核部分,还必须有文件系统、全部硬件的驱动程序、图形API、控件函数、消息函数以及几个系统必须的基本任务,象键盘,触摸屏,LCD刷新等。有了这些,uCOS-II才能实现复杂的功能。特殊需求的地方还需要像USB通信协议,TCP/IP协议等更复杂的软件模块。 现有的uCOS-II库文件中包含了上述大部分功能,使基于库的开发变的非常简单,在基本的程序框架下应用提供的丰富API函数即可。实际开发中,用户只需要包括库文件即可。当然,用户也可以了解库中部分代码的源文件,可以根据自己的需求就行重新编译,也可以对自己的一系列源文件生成一个专门的库,方便自己后续工作。 在应用uC/OS-II的开发中,应用程序和操作系统是绑在一起编译的,所生成的system.bin文件是唯一的可执行文件,其中包括了所需要的uC/OS-II代码和被用到的驱动程序等函数代码,以及应用程序的代码。system.bin文件是存放在平台的16M Flash ROM中的,在系统启动时由Bootload依靠文件系统从FLASH闪存中读入到SDRAM中,完成所谓的引导。 5.1.2 μC/OS-Ⅱ系统的内核结构 与其他操作系统不同,μC/OS-Ⅱ其实只有一个内核,提供了任务调度、任务间的通信与同步、任务管理、时间管
文档评论(0)