您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 1-嵌入式实时操作系统分析
1嵌入式系统设计与实例开发——ARM与C/OS-Ⅱ实时操作系统分析控制工程系火控教研室2嵌入式系统什么是嵌入式系统以应用为中心,以计算机技术为基础,软、硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统本身是个外延极广的名词,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫嵌入式系统。3从硬件方面来讲,嵌入式系统的核心部件是嵌入式处理器。嵌入式微控制器(MCU)嵌入式DSP处理器(DSP)嵌入式微处理器(MPU)嵌入式片上系统(SOC)嵌入式系统的分类1、嵌入式系统的硬件嵌入式微处理器(MPU):是由计算机中的CPU演变而来的。它的特征是具有32位以上的处理器,具有较高的性能。但与计算机处理器不同的是,在实际嵌入式应用中,它只保留与嵌入式应用紧密相关的功能硬件,去处其他的冗余功能部分,这样就以最低的功耗和资源实现了嵌入式应用的特殊要求,具有体积小、重量轻、成本低、可靠性高的优点。嵌入式处理器目前主要有ARM系列、MIPS、PowerPC、x86等。4嵌入式系统的分类2、嵌入式系统软件:由嵌入式操作系统和相应的各种应用程序构成。操作系统:是连接计算机硬件和应用程序的系统程序,具有两个功能:使计算机硬件便于使用,高效组织和正确地使用计算机的资源。5无操作系统-----有操作系统区别6无操作系统CPUTaskInterface7有操作系统Task0Task1……InterfaceTask0Task1CPU8无操作系统:1严格按所规定的顺序执行2程序执行的封闭性3独占资源,执行过程和结果不受其它程序的影响4程序结果的可再现性(结果的确定性)5只要初始状态相同,程序多次重复运行,其结果与程序执行速度无关(连续或间断),结果都应相同。有操作系统:多任务系统可以充分的利用系统资源。9嵌入式操作系统嵌入式操作系统微型化可裁减性好适时性可靠性易移植性实时操作系统分时操作系统10嵌入式操作系统EmbeddedOperatingSystemLinux,WinCE,VxWorks,OSE,Nucleus,uC/OS-II,eCos,uTTRON……11常见的嵌入式操作系统实时嵌入式操作系统的种类繁多,大体上可分为两种:商用型和免费型。商用型的实操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵,如VxWorks、QNX、WinCE、PalmOS等。免费型的实时操作系统在价格方面具有优势,目前主要有Linux和μC/OS,稳定性与服务性存在挑战。12μC/OS-Ⅱ是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。适合小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。抢占式内核。UClinux则是继承标准Linux的优良特性,针对嵌入式处理器的特点设计的一种操作系统,具有内嵌网络协议、支持多种文件系统,开发者可利用标准Linux先验知识等优势。其编译后目标文件可控制在几百KB量级。无MMU,采用时间片轮番调度算法。免费且公开源码的:μC/OS-Ⅱ和UClinux13C/OS简介1.C/OS——MicroControllerOS,微控制器操作系统2.C/OS简介美国人JeanLabrosse于1992年完成;应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等;1998年C/OS-II,目前的版本C/OS-IIV2.61,2.72;2000年,得到美国航空管理局(FAA)的认证,可用于飞行器中;网站()。14•公开源代码•可移植性(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的性能特点(一)15•占先式(Preemptive)•多任务•C/OS-II可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有56个任务。•可确定性全部C/OS-II的函数调用与服务的执行时间具有可确定性。•任务栈每个任务有自己单独的栈,C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。•系统服务C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。•中断管理中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。•稳定性与可靠性C/OS的性能特点(二)16µC/GUIandµC/FSµC/GUI嵌入式的用户界面;用ANSIC书写;支持任何8,16,32-bitsCPU;彩色,灰度,等级或黑白显示;代码尺寸小。µC/FS嵌入式的文件系统WritteninANSIC;用ANSIC书写;支持任何8,16,32-bitsCPU;支持SMC,MMC,SD,CF,IDE,Flash,RAM其他介质。17µC/OS-II图书描述了µC/OS-II内部的工作原理;随书的CD中包含了源代码;工业界最清晰的源代码除英文版外,有中文和韩文版。ChineseKoreanEnglishISBN1-57820-103-9美国CMPBOOKISBN7-81077-290-2北京航空航天大学出版社ISBN89-951540-5-518µC/OS-II的各种商业应用全世界有数百种产品在应用:AvionicsMedicalCellphonesRoutersandswitchesHigh-endaudioequipmentWashingmachinesanddryersUPS(UninterruptiblePowerSupplies)IndustrialcontrollersGPSNavigationSystemsMicrowaveRadiosInstrumentationPoint-of-saleterminals更多19内容提要1324实时操作系统基本概念C/OS-Ⅱ内核结构C/OS-Ⅱ移植移植实例分析20特点:可靠性实时性可裁减性要求:多任务抢占式调度任务的通讯与同步任务与中断之间的通讯RTOS21RTOS在嵌入式系统中的位置嵌入式硬件平台BSPKERNELFSTCP/IP设备驱动设备I/O调试工具其他组件应用RTOSC/C++22实时系统基本概念前后台系统(Foreground/BackgroundSystem)应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。时间相关性很强的关键操作(Criticaloperation)一定是靠中断服务来保证的。因为中断服务提供的信息一直要等到后台程序走到该处理这个信息这一步时才能得到处理,这种系统在处理信息的及时性上,比实际可以做到的要差。23实时系统基本概念多任务多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行很像前后台系统,但后台任务有多个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。24实时系统基本概念任务25实时系统基本概念任务切换(ContextSwitchorTaskSwitch)ContextSwitch在有的书中翻译成上下文切换,实际含义是任务切换,或CPU寄存器内容切换。当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(Context),即CPU寄存器中的全部内容。这些内容保存在任务的当前状况保存区(Task’sContextStoragearea),也就是任务自己的栈区之中。入栈工作完成以后,就是把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程叫做任务切换。26实时系统基本概念静态优先级应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的。动态优先级应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。任务优先级每个任务都有其优先级。任务越重要,赋予的优先级应越高。27实时系统基本概念内核(Kernel)多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核本身也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。28实时系统基本概念不可剥夺型内核(Non-PreemptiveKernel)不可剥夺型内核要求每个任务自我放弃CPU的所有权。各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。29实时系统基本概念可剥夺型内核(非占先式内核)高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。30中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)现场(Context)即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:1在前后台系统中,程序回到后台程序2对不可剥夺型内核而言,程序回到被中断了的任务3对可剥夺型内核而言,让进入就绪态的优先级最高的任务开始运行中断使得CPU可以在事件发生时才予以处理,而不必让微处理器连续不断地查询(Polling)是否有事件发生。通过两条特殊指令:关中断(Disableinterrupt)和开中断(Enableinterrupt)可以让微处理器不响应或响应中断。实时系统基本概念31代码的临界段代码的临界段也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断。实时系统基本概念32在实时环境中,关中断的时间应尽量的短。关中断影响中断延迟时间(见2.26中断延迟)。关中断时间太长可能
本文标题:1-嵌入式实时操作系统分析
链接地址:https://www.777doc.com/doc-5211375 .html