-第5章嵌入式操作系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《-第5章嵌入式操作系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 操作系统 课件
- 资源描述:
-
1、第5章嵌入式操作系统 第5章嵌入式操作系统 5.1 引言引言5.2 嵌入式操作系统概述嵌入式操作系统概述5.3 操作系统的基本概念操作系统的基本概念5.4 C/OS-简介简介5.5 C/OS-内核结构内核结构5.6 C/OS-在在ARM上的移植上的移植5.7 基于基于C/OS-构建的构建的TCP/IP/PPP协议栈协议栈思考与练习题思考与练习题 第5章嵌入式操作系统 5.1 引引 言言 嵌入式系统采用的操作系统一般是实时操作系统(Real Time Operating System,RTOS),它是嵌入式应用软件的基础和开发平台。RTOS一般是一段嵌入在目标代码中的软件,用户的其他应用程序都建
2、立在它的基础上。RTOS的引入,解决了嵌入式软件开发标准化的难题。随着嵌入式系统中软件比重不断上升、应用程序越来越大,对开发人员、应用程序接口、程序档案的组织管理成为一个大的课题。引入RTOS相当于引入了一种新的管理模式,对于开发单位和开发人员都是一个提高。基于RTOS开发出的程序,具有较高的可移植性,可以实现90%以上的设备独立,一些成熟的通用程序还可以作为专用库函数产品推向社会。第5章嵌入式操作系统 嵌入式软件的函数化、产品化能够促进嵌入式软件模块的复用性,从而降低系统的研发成本。C/OS-是一个可裁减的、源代码公开的嵌入式实时操作系统。它提供任务调度、任务间的通信与同步、任务管理、时间管
3、理和内存管理等基本功能,现在已经应用于多个领域,非常适合实时操作系统的教学。第5章嵌入式操作系统 5.2 嵌入式操作系统概述嵌入式操作系统概述 5.2.1 5.2.1 嵌入式实时操作系统嵌入式实时操作系统一般的,嵌入式操作系统是指支持嵌入式系统工作的操作系统,它在知识体系和技术结构上与通用操作系统没有太大区别。通用操作系统只注重平均性能,如对于整个系统来说,所有任务的平均响应时间是关键,并不关心单个任务的响应时间;而实时系统强调的是实时性,即系统的正确性不仅依赖于计算结果,也依赖于结果产生的时间。因此,实时系统是指一个能够在指定的或者确定的时间内,实现系统功能和对外部或内部、同步或异步事件作出
4、响应的系统。图5-1形象地体现了两者之间的关系。第5章嵌入式操作系统 图5-1 实时操作系统与嵌入式操作系统的关系 第5章嵌入式操作系统 嵌入式实时操作系统是嵌入在系统目标代码中的软件,并在系统启动之后运行。用户的其他应用程序是运行在这个软件平台基础之上的多个任务。实时操作系统根据各个任务的要求,进行资源管理、任务调度、中断响应等。并且,在嵌入式实时操作系统中,每个任务根据重要性不同具有不同的优先级,系统根据各个任务的优先级来动态地切换各个任务,从而保证对实时性的要求。因此,嵌入式实时操作系统可以理解为一个标准内核,它将CPU时间、中断、定时器等资源都封装起来,留给用户标准的API接口。在这个
5、基础上,用户通过使用这些内核提供的API函数进行程序开发,最终完成各个任务的协调工作。第5章嵌入式操作系统 5.2.2 典型的嵌入式操作系统典型的嵌入式操作系统 1 1VxWorksVxWorksVxWorks操作系统是美国WindRiver公司于1993年设计开发的一种嵌入式实时操作系统。VxWorks拥有良好的持续发展能力、高性能的内核以及友好的用户开发环境,是目前嵌入式系统领域中使用最广泛、市场占有率最高的实时操作系统。VxWorks支持多种处理器,如x86、i960、Sun Sparc、Power PC、Motorola MC68xxx、MIPS RX000、Strong ARM等。V
6、xWorks操作系统基于微内核结构,由400多个相对独立、短小精悍的目标模块组成,用户可以根据需要增加或删减适当模块来裁剪和配置系统,其链接器可按应用的需要来动态链接目标模块。大多数的VxWorks API是专有的,采用GNU的编译和调试器。第5章嵌入式操作系统 VxWorks以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如通信卫星、军事演习、导弹制导和飞机导航等。尤其在美国的F-16、FA-18战斗机,B-12隐形轰炸机和爱国者导弹上,甚至美国JPL实验室研制的著名“索杰纳”火星探测器上也使用了VxWorks。第5章嵌入式操作系统 2
7、 2Windows CEWindows CE Microsoft Windows CE是从整体上为有限资源的平台而设计的多线程、完整优先权、多任务的嵌入式操作系统。Windows CE主要针对小容量、移动式、智能化、32位、连接设备的模块化实时应用。高度模块化使得Windows CE能够对掌上设备、无线设备、专用工业控制器的用户电子设备等进行定制,并使得Windows CE能在多种处理器体系结构上运行,尤其适用于那些对内存占用空间具有一定限制的设备。Windows CE操作系统的基本内核至少需要200 KB的ROM。它能够支持Win32 API子集、多种用户界面硬件、多种串行和网络通信技术、C
8、OM/OLE和其他进程间通信的先进方法。而且,Microsoft公司为Windows CE提供了Platform Builder和Embedded Visual Studio开发工具。第5章嵌入式操作系统 Windows CE有5个主要的模块:(1)内核模块:支持进程和线程处理及内存管理等基本服务。(2)内核系统调用接口模块:允许应用软件访问操作系统提供的服务。(3)文件系统模块:支持DOS等格式的文件系统。(4)图形窗口和事件子系统模块:控制图形显示并提供Windows GUI界面。(5)通信模块:允许与其他设备进行信息交换。第5章嵌入式操作系统 需要指出的是,Windows CE嵌入式操作
9、系统不是一个硬实时操作系统,但它最大的优点是能够提供与PC机类似的图形用户界面和主要的应用程序。它的界面内容大多是在Windows里出现的标准部件,包括桌面、任务栏、窗口、图标和控件等。因此,只要是对PC机上的Windows比较熟悉的用户,都能很快学会使用基于Windows CE嵌入式操作系统的嵌入式设备。第5章嵌入式操作系统 3 3pSOSpSOSpSOS是ISI(Intergrated Systems Inc.)公司研发的产品。ISI最早成立于1980年,pSOS在其成立后不久即被推出,是世界上最早的实时操作系统之一,也是最早进入中国市场的实时操作系统。ISI公司于2000年被WindRi
10、ver公司兼并。第5章嵌入式操作系统 pSOS是一个模块化、高性能、完全可扩展的实时操作系统,专为嵌入式微处理器设计,提供了一个完全的多任务环境,在定制的或是商业化的硬件上提供高性能和高可靠性,可以让开发者根据操作系统的功能和内存需求定制每一个应用所需的子系统。pSOS包含单处理器支持模块(pSOS)、多处理器支持模块(pSOSm)、文件管理器支持模块(PHILE)、TCP/IP通信包(PNA)、流式通信模块(OPEN)、图形界面、Java、HTTP等。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。第5章嵌入式操作系统 4 4QNXQNXQNX是加拿大QNX公司的产
11、品。大多数RTOS都是从68 K的CPU上开发成熟,然后再移植到x86体系上的。而QNX是直接在x86体系上开发出来的,只是近几年才在68 K等CPU上使用。QNX是一个实时、可扩充的操作系统。它部分遵循POSIX相关标准,如POSIX.1b实时扩展。QNX提供了一个很小的微内核以及一些可选的配合进程;其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理;其进程在独立的地址空间运行;所有其他的操作系统服务都实现为协作的用户进程。因此,QNX内核非常小巧(QNX4.x约为12 KB),而且运行速度极快。QNX灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或是包
12、括几百个处理器的超级虚拟机操作系统。第5章嵌入式操作系统 5 5Palm OS Palm OS 3COM公司的Palm OS在掌上电脑和PDA市场上占有很大的市场份额。Palm OS有开放的操作系统应用程序接口(API),开发商可以根据需要自行开发所需的应用程序。目前共有3500多个应用程序可以运行在Palm Pilot(Palm OS平台)上,其中大部分应用程序为其他厂商和个人开发,从而使Palm Pilot的功能得以不断增多。这些应用软件包括计算器、各种游戏、电子宠物、地理信息等。在开发环境方面,可以在Windows 95/98以上及Macintosh上安装Palm Pilot Deskt
13、op。此外,Palm Pilot可以与流行的PC平台上的应用程序(如Word、Excel等)进行数据交换。第5章嵌入式操作系统 6 6嵌入式嵌入式LinuxLinuxLinux是一种免费的、源代码完全开放的、符合POSIX标准规范的操作系统。随着Linux的迅速发展,嵌入式Linux现在已经有许多版本,包括硬实时的嵌入式Linux(如新墨西哥工学院的RT-Linux堪萨斯大学的KURT-Linux)和一般的嵌入式Linux版本(如(CLinux、PocketLinux等)。其中,RT-Linux通过把Linux任务优先级设为最低,而所有实时任务的优先级都高于它,最终达到既兼容通常的Linux任
14、务又保证强实时性能的目的。第5章嵌入式操作系统 另外一种常用的嵌入式Linux(CLinux是针对没有MMU的处理器而开发的,已被广泛使用在ColdFire、ARM、MIPS、SPARC、SuperH等没有MMU的微处理器上。虽然(CLinux的内核比Linux2.0内核小得多,但它保留了Linux操作系统稳定性好、网络能力优异以及对文件系统的支持等主要优点。(CLinux与标准Linux最大的区别在于内存管理。标准Linux是针对有MMU的处理器而设计的,它将虚拟地址送到MMU,然后把虚拟地址映射为物理地址;通过赋予每个任务不同的虚拟物理地址转换映射,支持不同任务之间的保护。第5章嵌入式操作
15、系统 而(CLinux是针对没有MMU的处理器,不能使用处理器的虚拟内存管理技术,它对内存的访问是直接的,即它对地址的访问不需要经过MMU,而是直接送到地址线上输出;所有程序中访问的地址都是实际的物理地址;对内存空间不提供保护,各个进程实际上共享一个运行空间。在实现上,(CLinux专为嵌入式系统做了许多小型化的工作。第5章嵌入式操作系统 7.(C/OS-7.(C/OS-(C/OS-是一个完整的,源码公开的,可移植、固化、裁剪的占先式实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能优良和可扩展性强等特点。(C/OS-结构小巧,最小内核可编译至2 KB(
16、虽然这样的内核没有太大的实用性),即使包含全部功能,编译后也仅有610 KB,因而非常适用于小型控制系统。(C/OS-具有良好的兼容性,如系统本身不支持文件系统,但是如果需要,也可以自行加入文件系统的内容。此外,(C/OS-是用ANSI的C语言编写的,包含一小部分汇编语言代码,使之可供不同架构的微处理器使用。至今,从8位到16位,(C/OS-已在超过49种不同架构的微处理器上成功移植。第5章嵌入式操作系统(C/OS-是基于实时内核(C/OS的,和(C/OS版本V1.11(C/OS的最终版)是向上兼容的。目前,世界上已有很多人在各个领域中使用(C/OS及(C/OS-,这些领域包括:照相机行业(如
17、数码相机)、航空业、高端音响、医疗器械、电子乐器、发动机控制、网络设备、高速公路电话系统、自动提款及工业机器人等。更因为(C/OS-完全公开源代码,所以国内外很多高等院校都将其用于实时系统教学。第5章嵌入式操作系统 8国内著名的嵌入式实时操作系统国内著名的嵌入式实时操作系统(1)Delta OS:Delta OS是全中文的嵌入式实时操作系统,提供强实时和嵌入式多任务的内核。Delta OS的特点是任务响应时间快速、确定,不随任务负载大小改变;绝大部分的代码由C语言编写,具有很好的移植性。它适用于内在要求较大、可靠性要求较高的嵌入式系统。Delta OS主要包括:嵌入式实时内核DeltaCORE
18、、嵌入式TCP/IP组件DeltaNET、嵌入式文件系统DeltaFILE以及嵌入式图形用户接口DeltaGUI等。同时,它还提供了一整套的嵌入式开发套件LamdaTOOL。Delta OS是国内嵌入式领域不可多得的一整套嵌入式开发应用解决方案,已成功应用于通信、网络、信息家电等多个领域。第5章嵌入式操作系统(2)Hopen OS:Hopen OS由一个体积很小的内核以及一些可以根据需要自行定制的系统模块组成。其核心Hopen Kernel的规模一般为10 KB左右,占用空间小,并具有实时、多任务、多线程的系统特征。(3)HBOS:HBOS系统是浙江大学自主研制开发的全中文实时操作系统。它具有
19、实时、多任务等特征,能提供浏览器、网络通信核图形窗口等服务,还可供进行一定的定制或二次开发,并能为应用软件开发提供API接口支持。HBOS系统可用于信息家电、智能设备和仪器仪表等领域开发应用。在HBOS系统平台下,已经成功地开发出机顶盒和数据采集等系统。第5章嵌入式操作系统 5.3 操作系统的基本概念操作系统的基本概念 5.3.1 5.3.1 多进程和多线程多进程和多线程许多嵌入式系统并不是单纯地完成一种功能。例如,在一个电话应答机系统中,需要把记录通话信息和操作用户控制面板定义为不同的任务,因为它们不仅在逻辑上进行的是不同的操作,而且完成的速度也不同。这些不同的任务构成了应答机系统功能的各个
20、部分,为了完成多个任务而组织程序结构的需要,引入了进程的概念。第5章嵌入式操作系统 一个进程可以简单地认为是一个程序的唯一执行。进程是顺序执行的,而且CPU一次只能执行一个进程。但是,当确定了一个进程的完整状态后,就可以强制CPU停止执行当前进程而执行另一个进程。通过改变CPU中的程序计数器,使其指向新进程的代码,同时将新进程的数据移入寄存器和主存中,就可以实现进程的切换。这样,就能够使多个进程同时存在于CPU中。在嵌入式系统中,一个进程的常用形式是线程。线程在CPU的寄存器中有各自不同的值集合,但是共存于一个主存储空间中。线程普遍应用于嵌入式系统中(即任务),这样可以避免存储管理单元的复杂,
21、节约存储管理单元的消耗。第5章嵌入式操作系统 5.3.2 5.3.2 任务任务在嵌入式系统中,一个任务也称作一个线程,是一个程序,该程序在运行时可以认为CPU完全只属于该程序自己。在实时应用程序的设计过程中,要考虑如何将应用功能合理地划分为多个任务,让每个任务完成一定的功能,成为整个应用的一部分。每个任务都被赋予一定的优先级,有自己的一套CPU寄存器和栈空间(如图5-2所示)。第5章嵌入式操作系统 图5-2 多任务堆栈与CPU寄存器 第5章嵌入式操作系统 一般的,每一个任务都是一个无限的循环,可以处在以下五种状态之一:(1)休眠态(Dormant):是指任务驻留在内存的程序空间中,并未被多任务
22、内核所调度。(2)就绪态(Ready):是指任务已经准备好,可以运行,但是由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。(3)运行态(Running):是指任务获得了CPU的控制权,正在运行中。基于优先级调度的实时内核总是让处于就绪态的优先级最高的任务运行。第5章嵌入式操作系统(4)挂起态(Pending):也叫作等待事件态(waiting),是指任务在等待某一事件的发生(如等待某外设的I/O操作、等待定时脉冲的到来、等待超时信号的到来以结束目前的等待,等等)。正在运行的任务由于调用了延时函数或等待某事件发生而将自身挂起,就处于挂起态。(5)被中断态(Interrupt):是指
23、发生中断时,CPU提供相应的中断服务,原来正在运行的任务暂不能运行,而进入了被中断状态。第5章嵌入式操作系统 5.3.3 5.3.3 任务切换任务切换任务切换(Context Switch)是指CPU寄存器内容切换。当多任务内核决定运行另外的任务时,它保存正在运行的任务的当前状态,即当前CPU寄存器中的全部内容;内核将这些内容保存在该任务的当前状态保存区,也就是该任务自己的栈区之中(这个过程称为“入栈”)。入栈工作完成后,把将要运行的任务的当前状态从该任务的栈中装入CPU寄存器(这个过程称为“出栈”),并开始这个任务的运行。这样,就完成了一次任务切换。任务切换过程增加了应用程序的额外负荷,CP
24、U的内部寄存器越多,额外负荷就越重。任务切换所需要的时间取决于CPU有多少寄存器要入栈。第5章嵌入式操作系统 5.3.4 5.3.4 内核内核多任务系统中,内核负责管理各个任务,为每个任务分配CPU的使用时间,并且负责任务间的通信。内核提供的基本服务是任务切换,通过提供必不可少的系统服务,诸如信号量管理、邮箱、消息队列及时间延时等,使得CPU的利用更为有效。此外,实时内核允许将应用程序划分成若干个任务并对它们进行管理(如任务切换、调度、任务间的同步和通信,等等),因而使用实时内核可以大大简化应用系统的设计。第5章嵌入式操作系统 但是,内核本身也增加了应用程序的额外负荷,因为内核提供的服务需要一
25、定的执行时间。额外负荷的多少取决于用户调用这类服务的频率。在设计得较好的应用系统中,内核占用2%5%的CPU负荷。再有,内核是加在用户应用程序中的软件,因而会增加ROM(程序代码空间)的用量,而内核本身的数据结构还会增加RAM(数据空间)的用量。更主要的是,每个任务都要有自己的栈空间,这会占用相当多的内存(由任务的数量决定)。单片机一般不能运行实时内核,就是因为单片机的RAM非常有限。第5章嵌入式操作系统 5.3.5 任务调度任务调度 1 1非占先式内核非占先式内核非占先式内核(non-preemptive kernel)中各个任务彼此合作,共享CPU。在一个任务的运行过程中,除了中断,不能在
展开阅读全文