8第五章uCOS的应用3.ppt
文本预览下载声明
第五章 ?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-Ⅱ其实只有一个内核,提供了任务调度、任务间的通信与同步、任务管理、时间管
显示全部