控制用单片机操作系统的选择_第1页
控制用单片机操作系统的选择_第2页
控制用单片机操作系统的选择_第3页
控制用单片机操作系统的选择_第4页
控制用单片机操作系统的选择_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、控制用单片机操作系统的选择一 当前主流嵌入式操作系统 实时操作系统是嵌入式系统目前最主要的组成部分。实时操作系统具有实时性,能从硬件方面支持实时控制系统工作。重要特点是要满足对时间的限制和要求1) 商用型实时操作系统(1)VxWorks (1983年)美国WindRiver公司,具有高性能的系统内核和友好的用户开发环境,可靠性、实时性和可裁剪性好。是目前嵌入式系统领域中使用最广泛、市场占有率最高的操作系统。它支持多种处理器,如x86、i960、Sun Sparc、 MotorolaMC68xxx、MIPSRX000、PowerPC等。(2) WinCE操作系统WinCE是Microsoft公司

2、推出的嵌入式实时操作系统。它是Windows Embedded产品家族当中应用的比较广泛的嵌入式操作系统。WinCE主要针对小容量、移动式、智能化、连接设备的模块化实时嵌入式操作系统。它为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,能够在多种体系结构上运行,并且通常适用于对内存空间有一定限制的设备。(3) pSOS 原属ISI公司,现属WindRiver。该系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全的多任务环境,在定制的或是商业化的硬件上具有高性能和高可靠性,可以让开发者根据操作系统的功能和内存需求定制每一个应用所需的系统。

3、开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。(4 )Palm OS 是著名的网络设备制造商3COM旗下的Palm Computing掌上电脑公司的产品,在PDA(Personal Digital Assistant)市场上占有很大的份额。它具有开放的操作系统应用程序接口(API),开发商可以根据需要自行开发所需要的应用程序。 PalmOS的优势在于可以让用户灵活方便地定制操作系统以适合自己的习惯,而且其市场运作经验丰富,资本雄厚,目前也正在通过第三方软件商进行软件的中文化工作。 (5)OS-9 是为微处理器的关键实时任务而设计的操作系统,广泛应用于高科技产品中,包

4、括消费电子产品、工业自动化、无线通信产品、医疗仪器、数字电视/多媒体设备。具有很好的安全性和容错性,灵活性和可升级性。 (6)LynxOS (Lynx Real-time Systems的产品) 是分布式、嵌入式、可规模扩展的实时操作系统,它遵循PoslX.1a、PoslX.1b和PoslX.1c标准。LynxOS支持线程概念,提供256个全局用户线程优先级:提供一些传统的、非实时系统的服务特征,包括基于调用需求的虚拟内存、一个基于Motif的用户图形界面、与工业标准兼容的网络系统以及应用开发工具。 (7)QNX(加拿大QNX公司的产品) 是直接在x86体系上开发出来的,近年才在68K等CPU

5、上使用。与其它RTOS不一样,大多数RTOS都是从68K的CPU上开发成熟,然后再移植到x86体系上来的。是实时的、可扩充的操作系统,它部分遵循PoslX相关标准,内核非常小巧(QNX4.x大约为12KB),运行速度极快;具有强大的图形界面功能,因此很适合作为机顶盒、手持设备(手掌电脑、手机)、GPS设备的实时操作系统使用。 2) 免费型实时操作系统(1)嵌入式Linux 可以移植到多个有不同结构的CPU和硬件平台上,具有很好的稳定性、各种性能的升级能力,而且开发更容易。 优势:开放源码,不存在黑箱技术;内核小、功能强大、运行稳定、系统健壮、效率高;易于定制裁剪,在价格上极具竞争力;不仅支持x

6、86CPU,还支持其他数十种CPU芯片;有大量的且不断增加的开发工具;沿用了Unix的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持;全面支持十兆、百兆、千兆以太网、无线网络、令牌网、光纤网、卫星等多种联网方式;在图像处理、文件管理及多任务支持等诸多方面,Linux的表现也都非常出色。(2)uCLinuxuclinux即“微控制器领域中的Linux系统”。uClinux从Linux 2.0/2.4内核派生而来,沿袭了Linux的绝大部分特性。它是专门针对没有MMU(内存管理单元)的CPU,并且为嵌入式系统做了许多小型化的工作。它通常用于具有很少内存或Flash的嵌入式操作系统

7、。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式Linux。它具有体积小、稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持,以及丰富的API函数等优点。uClinux与Linux在兼容性方面表现出色,uClinux除了不能实现fork()外,其余uClinux的API函数与标准Linux完全相同。uClinux专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作。uClinux是一个完全符合GNU/GPL公约的项目,完全开放代码。对于嵌入式应用,高端平台可直接采用Linux系统,其兼容性和可移植度都较高,但对硬件处理速度和存储空间要求较高。低端平台的最佳

8、选择是uClinux,其性能稳定、移植性好、功能强大。 低端平台如果对实时性要求较高、应用相对简单,则可采用uc/os或其他操作系统。(3)mC/OS( mC/OS-II是升级版本)主要特点:uc/os是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。µC/OS-II全部以源代码的方式提供,大约有5500行。µC/OS-II可以很容易地移植到不同架构的嵌入式微处理器上。 由于uCOS-II仅是一个实时内核,有很多工作往往需要用户自己去完成。把mC/OS-移植到目标硬件平台上也只是

9、系统设计工作的开始,后面还需要针对实际的应用需求对mC/OS-II进行功能扩展,包括底层的硬件驱动、文件系统、用户图形接口(GUI)等,从而建立一个实用的RTOS。 mC/OS特点:源代码、可移植、可固化、可裁减、可抢占性、支持多任务、稳定性与可靠性 最后还要注意一点:mC/OS不是自由软件,用于商业目的时必须取得许可证。二 .选择一个ARM CPU嵌入式操作系统1.选择一个合适的ARM CPU的嵌入式操作系统的几个重要因素。 第一是应用。如果开发的嵌入式设备是一个和网络应用密切相关或者就是一个网络设备,那么你应该选择用嵌入式Linux或者CLinux,而不是C/OS-II,因为Linux不仅

10、集成了TCP/IP协议,还有很丰富的其它网络协议,如DHCP Server,PPPoe,webserver等等。第二是实时性。软实时与硬实时之间并没有一个明确的分界,这与选择什么样的ARM CPU,它的主频,内存等参数有一定的关系,象Intel Xscale这样的处理器,即使配合普通Linux的内核,内核的抢占延时最坏情况也只有1.743毫秒,而99.9%的情况是1.42毫秒,而如果使用加入实时补丁等技术的嵌入式Linux,如MontaVista Linux(版本内核),最坏的情况只有436微秒,而99.9%的情况是195微秒,上面的数字以及考虑到最新的Linux在实时性方面的改进,嵌入式Li

11、nux可以适合于9095%的各种嵌入式系统应用。当然,你如果希望更高数量级的实时响应,如高速的A/D转换需要几个微秒以内的中断延时,要求一个毫秒级的异步串行实时处理器等类似的应用,可能是采用C/OS-II是合适的。当然,你采用象Vxworks这样传统的嵌入式操作系统也可以满足这样的强实时性要求。第三是你所选择的ARM CPU和参考板,象ARM7TDMI和ARM940T(如S3C2500/2510)核是不能使用嵌入式Linux(MMU),如果你想用Linux,只能用CLinux,如果你想用Vxworks,你需要了解一下提供评估板的公司是否有BSP(板支持包),Vxworks自己只有少数ARM公司

12、评估板的支持。最后是价格和技术服务。有些产品如Vxworks是既按用户数(有License保护锁)收取开发费,也按你产品售出的实际数量收取每个Vxworks软件运行的版税。C/OS-II只是收取每种产品一次性版税(不限数量)。Linux无论是CLinux还是嵌入式Linux(即使是商业版本象MontaVista Linux)是不收版税的,商用嵌入式Linux是以服务费或订阅方式收取开发时的费用。操作系统的选择是由嵌入式系统的需求决定的。根据以上分析,在商用型操作系统和免费型操作系统当中,选择免费型操作系统。而在免费型操作系统嵌入式linux、uc/os和uclinux当中,应当在uc/os和u

13、clinux之间进行具体的选择,下面对这两种操作系统进行具体的分析。 2.uc/os和uclinux进行分析比较 进程调度、文件系统支持和系统移植是在嵌入式操作系统实际应用中最常见的问题,下文就从这几个角度入手对uc/os和uclinux进行分析比较。 (1)进程调度可分为"剥夺型调度"和"非剥夺型调度"两种基本方式。所谓"非剥夺型调度"是指:一旦某个进程被调度执行,则该进程一直执行下去直至该进程结束,或由于某种原因自行放弃cpu进入等待状态,才将cpu重新分配给其他进程。所谓"剥夺型调度"是指:一旦就绪状态中出现

14、优先权更高的进程,或者运行的进程已用满了规定的时间片时,便立即剥夺当前进程的运行(将其放回就绪状态),把cpu分配给其他进程。作为实时操作系统,uc/os是采用的可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。uc/os中最多可以支持64 个任务,分别对应优先级063,其中0为最高优先级。调度工作的内容可以分为两部分:最高优先级任务的寻找和任务切换。uclinux的进程调度沿用了linux的传统,系统每隔一定时间挂起进程,同时系统产生快速和周期性的时钟计时中断,并通过调度函数(定时器处理函数)决定进程什么时候拥有它的时间片。然后进行相关进程切换,这

15、是通过进程调用fork 函数生成子进程来实现的。由上述分析可以得知,uc/os内核是针对实时系统的要求设计实现的,相对简单,可以满足较高的实时性要求。而uclinux则在结构上继承了标准linux的多任务实现方式,仅针对嵌入式处理器特点进行改良。其要实现实时性效果则需要使系统在实时内核的控制下运行,rt-linux就是可以实现这一个功能的一种实时内核。(2)文件系统所谓文件系统是指负责存取和管理文件信息的机构,也可以说是负责文件的建立、撤销、组织、读写、修改、复制及对文件管理所需要的资源(如目录表、存储介质等)实施管理的软件部分。uc/os是面向中小型嵌入式系统的,如果包含全部功能(

16、信号量、消息邮箱、消息队列及相关函数),编译后的uc/os内核仅有610kb,所以系统本身并没有对文件系统的支持。但是uc/os具有良好的扩展性能,如果需要的话也可自行加入文件系统的内容。uclinux则是继承了linux完善的文件系统性能。其采用的是romfs文件系统,这种文件系统相对于一般的ext2文件系统要求更少的空间。空间的节约来自于两个方面,首先内核支持romfs文件系统比支持ext2文件系统需要更少的代码,其次romfs文件系统相对简单,在建立文件系统超级块(superblock)需要更少的存储空间。romfs文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟ram盘的

17、方法进行处理(ram盘将采用ext2文件系统)。 uclinux还继承了linux网络操作系统的优势,可以很方便的支持网络文件系统且内嵌tcp/ip协议,这为uclinux开发网络接入设备提供了便利。 由两种操作系统对文件系统的支持可知,在复杂的需要较多文件处理的嵌入式系统中uclinux是一个不错的选择。而uc/os则主要适合一些控制系统。(3)操作系统的移植嵌入式操作系统移植的目的是指使操作系统能在某个微处理器或微控制器上运行。uc/os和uclinux都是源码公开的操作系统,且其结构化设计便于把与处理器相关的部分分离出来,所以被移植到新的处理器上是可能的。以下对两种系统的移植分别予以说明

18、。 uc/os的移植 要移植uc/os,目标处理器必须满足以下要求; ·处理器的c编译器能产生可重入代码,且用c语言就可以打开和关闭中断; ·处理器支持中断,并能产生定时中断; ·处理器支持足够的ram(几k字节),作为多任务环境下的任务堆栈; ·处理器有将堆栈指针和其他cpu寄存器读出和存储到堆栈或内存中的指令。 在理解了处理器和c编译器的技术细节后,uc/os的移植只需要修改与处理器相关的代码就可以了。具体有如下内容:·os_cpu.h中需要设置一个常量来标识堆栈增长方向; ·os_cpu.h中需要声明几个用于开关中断和任务切换的

19、宏; ·os_cpu.h中需要针对具体处理器的字长重新定义一系列数据类型; ·os_cpu_a.asm需要改写4个汇编语言的函数; ·os_cpu_c.c需要用c语言编写6个简单函数; ·修改主头文件include.h,将上面的三个文件和其他自己的头文件加入。 由于uclinux其实是linux针对嵌入式系统的一种改良,其结构比较复杂,相对 uc/os,uclinux的移植也复杂得多。一般而言要移植uclinux,目标处理器除了应满足上述uc/os应满足的条件外,还需要具有足够容量(几百k字节以上)外部rom和ram。uclinux的移植大致可以分为3个层次: ·结构层次的移植,如果待移植处理器的结构不同于任何已经支持的处理器结构,则需要修改linux/arch目录下相关处理器结构的文件。虽然uclinux内核代码的大部分是独立于处理器和其体系结构的,但是其最低级的代码也是特定于各个系统的。这主要表现在它们的中断处理上下文、内存映射的维护、任务上下文和初始化过程都是独特的。这些例行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论