您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 嵌入式系统设计与实例开发
1嵌入式系统设计与实例开发——ARM与C/OS-Ⅱ第三讲实时嵌入式操作系统简介2一、嵌入式实时操作系统C/OS二、嵌入式Linux三、WinCE第三讲、嵌入式实时操作系统简介3一、嵌入式实时操作系统C/OS1、C/OS——microCOS,微控制器操作系统2、C/OS简介美国人JeanLabrosse1992年完成应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等1998年C/OS-II,目前的版本C/OS-IIV2.61网站公开源代码可移植性(Portable)绝大部分C/OS-II的源码是用移植性很强的ANSIC写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得C/OS-II便于移植到其他微处理器上。C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。可固化(ROMable)C/OS-II是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化),C/OS-II可以嵌入到读者的产品中成为产品的一部分。可裁剪(Scalable)可以只使用C/OS-II中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个C/OS-II调用,而另一个产品则使用了几乎所有C/OS-II的功能,这样可以减少产品中的C/OS-II所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。C/OS的性能特点5占先式(Preemptive)多任务C/OS-II可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有56个任务可确定性全部C/OS-II的函数调用与服务的执行时间具有可确定性。任务栈每个任务有自己单独的栈,C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。系统服务C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。中断管理中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。稳定性与可靠性C/OS的性能特点6内核结构任务管理时间管理任务之间通信与同步C/OS的移植C/OS的内核7总结不存在一个内核任务/实体,内核的管理是通过调用系统函数来实现的。每个任务有自己的堆栈空间。内核对任务的占先式调度不会干扰每个任务的总的运行结果。8uC/OS的改进固定的基于优先级的调度,不支持时间片,使用起来不方便。一个任务的基础上增加一个基于时间片的微型调度核在对临界资源的访问上使用关闭中断实现,没有使用CPU提供的硬件指令,例如测试并置位。系统时钟中断,没有提供用户使用定时器,可以借鉴linux的定时器加以修改可以加上文件系统和TCP/IP协议栈9二、嵌入式Linux10二、嵌入式LinuxLinux系统是层次结构且内核完全开放强大的网络支持功能Linux具备一整套开发工具链Linux具有广泛的硬件支持特性同步跟踪快遵循通用国际标准,便于程序的移植11Linux的结构类UNIXlinux内核BSPOSloader其它内核模块设备驱动程序X-Window系统文件系统网络系统板级支持包(BSP)是在嵌入式系统中频繁使用的一个概念。BSP是介于操作系统和系统硬件之间的一个抽象层,确切的说是操作系统的一部分。通常所指的BSP包括启动代码和系统相关的驱动和程序。BSP的作用使硬件对于操作系统变得透明,从而使嵌入式系统和它的应用程序能够运行在不同的硬件平台上。12嵌入式Linux嵌入式Linux(EmbeddedLinux)是指对Linux经过小型化裁剪后,能够固化在容量只有几百K字节或几兆字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式Linux的开发和研究是目前操作系统领域的一个热点。RTLinuxCLinux……13Linux作为嵌入式应用的缺点首先linux最初设计为通用操作系统,其目标是追求整体最佳性能,所以不能很好处理实时任务;其次,如何精简linux适用于嵌入式环境也是一个难题。14嵌入式linux的研究内容嵌入式linux内核技术嵌入式库技术开发环境技术嵌入式应用BIOS和bootloader启动加载程序设备驱动技术图形界面技术15几种嵌入式LinuxHardhatlinuxHardhatLinux是由MontaVista公司开发产品,是目前最具影响力嵌入式Linux。MontaVista通过直接修改内核来扩充linux内核的实时性。RTlinuxRTlinux是FSMLabs[16]开发的硬实时嵌入式linux。RTlinux使用双内核结构;在底层使用一个硬实时内核,linux作为该内核的空闲任务;当有实时任务时,通过硬实时内核调度该任务;没有其他任务时,则运行普通linux。uClinuxuClinux是针对无mmu(存储器管理单元)微控制领域而设计的Linux系统。u是希腊字母表示”小”,C是controller表示控制器。uClinux和标准linux最大的区别是内存管理上,标准linux利用CPU硬件的支持实现虚拟内存机制,而uClinux采用实存储器管理策略。16ClinuxClinux的内核结构图如下:17对开发人员提出的更高要求从易用性来说,uClinux的内存管理实际上是一种倒退,退回了到了UNIX早期或是Dos系统时代。开发人员不得不参与系统的内存管理。从编译内核开始,开发人员必须告诉系统这块开发板到底拥有多少的内存。由于应用程序加载时必须分配连续的地址空间,而针对可连续地址分配内存大小是受限的,开发人员在开发应用程序时必须考虑内存的分配情况并关注应用程序需要运行空间的大小。另外由于采用实存储器管理策略,用户程序同内核以及其它用户程序在一个地址空间,程序开发时要保证不侵犯其它程序的地址空间,以使得程序不至于破坏系统的正常工作,或导致其它程序的运行异常。从内存的访问角度来看,开发人员的权利增大了(开发人员在编程时可以访问任意的地址空间),但与此同时系统的安全性也大为下降。从嵌入式设备实现的功能来看,嵌入式设备通常在某一特定的环境下运行,只要实现特定的功能,其功能相对简单,内存管理的要求完全可以由开发人员考虑。18内核加载方式uCLinux的内核有两种可选的运行方式:可以在flash上直接运行,也可以加载到内存中运行。后者可以减少内存需要。Flash运行方式(XIP):把内核的可执行映像烧写到flash上,系统启动时从flash的某个地址开始逐句执行。这种方法实际上是很多嵌入式系统采用的方法。内核加载方式:把内核的压缩文件存放在flash上,系统启动时读取压缩文件在内存里解压,然后开始执行,这种方式相对复杂一些,但是运行速度可能更快(RAM的存取速率要比Flash高)。19经过如上各方面的小型化改造,就形成了一个高度优化的、代码紧凑的嵌入式Linux,虽然它的体积很小,uCLinux仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的API。它的主要特征如下:●通用LinuxAPI●内核体积<512KB●内核+文件系统<900KB●完整的TCP/IP协议栈●支持大量其它的网络协议●支持各种文件系统,包括NFS、ext2、ROMfsandJFFS、MS-DOS和FAT16/32Clinux的特点20三、WindowsCEWindowsCE是微软开发的一个开放的、可升级的32位嵌入式操作系统。它是精简的Windows95。WindowsCE的图形用户界面相当出色。与Windows95/98、WindowsNT不同:WinCE是所有源代码由微软自行开发的嵌入式操作系统,操作界面是基于Win32API重新开发的、新型的信息设备平台。WindowsCE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。WindowsCE不仅继承了传统的Windows图形界面,并且在WindowsCE平台上可以使用Windows95/98上的编程工具(如VisualBasic、VisualC++等)、使用同样的函数、使用同样的界面网格,使绝大多数的应用软件只需简单的修改和移植就可以在WindowsCE平台上继续使用。21WindowsCE的特点:①具有灵活的电源管理功能,包括瞬眠/唤醒模式。②使用了对象存储(objectstore)技术,包括文件系统、注册表及数据库。它还具有很多高性能、高效率的操作系统特性,包括按需换页、共享存储、交叉处理同步、支持大容量堆(heap)等。③拥有良好的通信能力。广泛支持各种通信硬件,亦支持直接的局域连接以及拨号连接,并提供与PC、内部网以及Internet的连接,还提供与Windows9x/NT的最佳集成和通信。22WindowsCE的特点:④支持嵌套中断。允许更高优先级别的中断首先得到响应,而不是等待低级别的ISR完成。这使得该操作系统具有嵌入式操作系统所要求的实时性。⑤更好的线程响应能力。对高级别IST(中断服务线程)的响应时间上限的要求更加严格,在线程响应能力方面的改进,帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助他们创建新的嵌入式应用程序。⑥256个优先级别。可以使开发人员在控制嵌入式系统的时序安排方面有更大的灵活性。⑦WindowsCE的API是Win32API的一个子集,支持近1500个Win32API。有了这些API,足可以编写任何复杂的应用程序。当然,在WindowsCE系统中,所提供的API也可以随具体应用的需求而定。
本文标题:嵌入式系统设计与实例开发
链接地址:https://www.777doc.com/doc-3799907 .html