嵌入式操作体系是ARM CPU的软件根底,从8位/16位单片机发 展到以ARM CPU核为代表的32位嵌入式处理器,嵌入式操作体系将代替传统的由手艺编制的监控程序或调度程序,成为重要的根底组件。更重要的是嵌入式操作体系对运用 程序能够起到屏蔽的效果,使运用程序员面向操作体系级开发运用软件,并易于在不同的ARM核的嵌入式处理器上移植。
嵌入式操作体系都具 有必定的实时性,易于裁剪和弹性,能够适宜于从ARM7到Xscale各种ARM CPU和各种层次的运用,嵌入式操作体系能够运用广泛盛行的ARM开发东西,如ARM公司的SDT/ADS和RealView等,也能够运用开发软件,如 GCC/GDB、KDE或Eclipe开发环境,商场上还有专用的开发东西,如Tornado、μC/View、μC/KA、CODE/Lab、 Metroworks等。
本文就现在国内在ARM CPU上广泛选用的三种嵌入式操作体系(μC/OS-II、μCLinux和嵌入式Linux)作剖析。
μC/OS-II嵌入式实时内核全世界数百种设备现已在运用μC/OS-II,包括手机、路由器、不间断电源、飞行器、医疗设备和工业操控设备。μC /OS-II现已有ARM7TDMI、ARM9和Strong ARM等各种ARM CPU的移植,支撑包括Atmel、Hynix、Intel、Motorola、Philips、Samsung、Sharp等公司的ARM核的 CPU.μC/OS-II的移植也适当简略,与CPU相关的代码包装在三个文件中,它们是os_cpu.h、os_cpu_a.asm和 os_cpu_c.c.μC/OS-II有60多个体系调用,掩盖使命、守时器、信号量、事情标志、邮箱、行列和内存办理,现已包括了传统嵌入式操作体系 内核(如PSOS,VRTX)的功用,还支撑互斥型信号量,这是90年代的嵌入式操作体系内核,如VxWorks和VRTXsa才有的技能。
μC/OS-II由于是可抢占的实时内核,所以μC/OS-II与商业嵌入式实时内核在性能上没有什么差异,μC/OS-II没有用户态和内核态,使命 (线程)或中止和使命切换的呼应能够很快,首要是和ARM CPU相关的。最新的2.7x版别还增加了算法以防止在移植中修正仓库指针,这样能够确保μC/OS-II在不同的CPU上运转更安稳,移植更便利。μC /OS-II现在除了内核外还有商业化文件体系μC/FS,图形体系μC/GUI以及使命调试东西μC/KA和μC/View,可是μC/OS-II自己 现在还没有TCP/IP协议体系。
总的来说,μC/OS-II是一个十分简略学习,结构简略,功用齐备和实时性很强的嵌入式操作体系内 核,适宜于各种嵌入式运用以及大专院校教育和科研。最终需求阐明,μC/OS-II不是免费软件,任何人学习运用μC/OS-II需求购买《嵌入式实时操 作体系μC/OS-II》一书,运用μC/OS-II的产品需求购买产品出产授权,购买了此授权的还能够得到开发期间的技能支撑和晋级服务。
μCLinux操作体系μCLinux是Linux小型化后,适宜于没有MMU(内存办理单元)的微处理器芯片而裁剪成的操作体系,假如ARM CPU系列中的ARM7 TDMI、ARM940T等产品期望运用Linux操作体系,只能用μCLinux,当然,μCLinux也支撑Motorola Dragonball、Coldfire等其它中低端嵌入式处理器。
μCLinux坚持了传统Linux操作体系的首要特性,包括稳 定、强壮的网络和文件体系的支撑,μCLinux裁剪了很多的Linux内核以缩小尺度,适宜象512k/b RAM、1M/b Flash这样小容量、低成本的嵌入式体系。μCLinux体系小型化的另一简化是选用了μCLib库代替Linux的Glib库,运用μCLib能够大 大削减运用程序的代码尺度,关于中小型嵌入式运用,μCLib功用能够满意需求,所以现在即使是某些选用Linux 2.4.嵌入式Linux操作体系这儿要评论的是能够嵌入在ARM CPU上的,具有MMU功用的Linux操作体系,也能够称是嵌入式Linux操作体系。与微软公司的软件不相同,Linux不是由一家公司所具有、保护 开发的,Linux在商场有多种发行版别,一切发行版别都包括相同的Linux内核、根本东西和运用,不同的发行版别首要是在附加的东西链、运用、装备以 及各种内核补丁上有所不同。嵌入式Linux首要是在实时性增强、内核精简和削减、支撑多种CPU结构(如ARM CPU)等方面做了改善和进步。
运用嵌入式Linux体系有两种途径:第一是用户自己安装(称为DIY内核),你能够找到悉数Linux代码,或直接到ARM CPU的源代码树下linux.org.uk“>www.ARMlinux.org.uk找到所需求的Linux版别的移植,或许某些半导体公司, 如三星、Motorola在自己的网站或在自己的ARM评价板含有一个最小Linux内核体系。假如这个最小内核没有包括GCC/GDB东西链,或许还要 到GNU的网站下载悉数的源代码,然后再编译生成所需求版别的ARM东西链和运用程序库,这个进程是适当耗时和困难的。还需求指出,这种DIY内核的配 置,增加运用和驱动程序也是不规范的和杂乱的,这是嵌入式体系的特殊性地点。
第二是挑选一个商业化的嵌入式Linux操作体系渠道。商 业化的嵌入式Linux版别是针对嵌入式处理器,如ARM所优化规划的,支撑各种半导体厂家的评价板和首要的设备驱动,商业化的嵌入式Linux包括了文 件体系、运用、实时性扩展和技能支撑训练服务,如今国外闻名的商业化嵌入式Linux产品有:MontaVista Linux、Bluecat Linux、Timesys Linux、Metrowork Linux、Vlinux和Redhat Linux等,
国内也有红 旗、中软、新华嵌入式Linux. MontaVista Linux是MontaVista软件公司于1999年推出的,它是现在全球优异的嵌入式Linux操作体系和东西供货商,MontaVista在嵌入式 Linux的实时性、穿插开发东西、高可用性、动态电源办理等Linux技能关键方面具有领先地位。MontaVista Linux最版别是3.1,选用Linux 2.4.20,针对8种CPU系列(包括ARM和Xscale)优化定制的商业化版别。
选 择象MontaVista Linux这样商业化嵌入式Linux,能够让用户把时刻和资金放在运用软件和特定的硬件接口和设备驱动程序,运用商业化嵌入式Linux能够得到必守时 间(一般是1年)的技能支撑,晋级和训练(这很重要,由于Linux是每天都在改变的)。
商业化嵌入式Linux现在除国内的产品外, 价格仍是很贵重的,依据装备和服务时刻,大约从几千到几万美元,大都国内用户从资金和心理上还很难接受,商业化嵌入式Linux开发东西相关于 Microsoft和象Tornado/VxWork的开发东西,在易于运用和丰厚性方面还待于进步和改善。
相同作为Linux操作体系,笔者引荐运用带有MMU的嵌入式Linux,而不是mCLinux,由于绝大大都新的ARM CPU都是AMR9核,它们都带有MMU了,不管是开放源码的Linux社区仍是商业化的嵌入式Linux公司的支撑和保护都比mCLinux要好要快和 丰厚得多。
结语
前面咱们对三种在ARM CPU上较为盛行的嵌入式操作体系作了具体的剖析,在进入一个总结之前,笔者还想说到几个在国际上很有名望的嵌入式操作体系,它们是WindRiver公 司的VxWorks、ATI的Nucleus、iTron和WinCE,但它们在ARM CPU的运用不多见,介绍从略。
最终概括一下 挑选一个适宜的ARM CPU的嵌入式操作体系的几个重要因素:第一是运用。假如你想开发的嵌入式设备是一个和网络运用密切相关或许便是一个网络设备,那么你应该挑选用嵌入式 Linux或许mCLinux,而不是mC/OS-II.第二是实时性。没有一个肯定的数字能够告知你什么是硬实时,什么是软实时,它们之间的边界也是十 分含糊的,这与你挑选什么样的ARM CPU,它的主频、内存等参数有必定的联系。假如你运用参加实时补丁等技能的嵌入式Linux,如MontaVista Linux(2.4.17版别),最坏的状况只要436微秒,而99.9%的状况是195微秒。考虑到最新的Linux在实时性方面的改善。它能够适宜于 90~95%的各种嵌入式体系运用。当然,你假如期望更快的实时呼应,如高速的A/D转化需求几个微秒以内的中止延时,或许选用mC/OS-II是适宜 的。当然,你选用象Vxworks这样传统的嵌入式操作体系也能够满意这样的强实时性要求。
第三是开发东西。明显,现在mC/OS- II、mCLinux和嵌入式Linux的开发东西与商业嵌入式操作体系东西还有一些距离,现在在ARM CPU上广泛盛行和运用的是ARM公司SDT/ADS东西链,产品不管在功用、安稳性和很多的第三方厂商支撑方面都很好,仅有缺乏的是短少对嵌入式 Linux操作体系的支撑,SDT/ADS的晋级产品RealView方案支撑GCC和嵌入式Linux,但现在还没有看到,mC/OS-II能够运用 ARM SDT/ADS,但没有操作体系调试功用。
第四是所挑选的ARM CPU和参阅板,象ARM7TDMI和ARM940T(如S3C2500/2510)核是不能运用嵌入式Linux的,假如想用Linux,只能用mCLinux,假如想用VxWorks,
需求了解一下供给评价板的公司是否有BSP(板支撑包),VxWorks自己只要少量ARM公司评价板的支撑。
最终是价格和技能服务。在考虑购买商业嵌入式操作体系时,会遇到是买仍是自己做的问题,这是很正常的,尤其是在选用开放源代码技能时,这个问题就愈加突 出。有一点需求留意的是,有些产品如VxWorks是既按用户数收取开发费,也按用户产品售出的实践数量收取每个VxWorks软件运转的版税。 mC/OS-II仅仅收取每种产品一次性版税(不限数量)。Linux不管是mCLinux仍是嵌入式Linux(即使是商业版别象MontaVista Linux)是不收版税的,商用嵌入式Linux是以服务费或订阅方法收取开发时的费用。很明显,国外产品价格是贵一些,但不能不供认他们在嵌入式操作系 统的技能现已远远走在前方。
linux操作体系文章专题:linux操作体系详解(linux不再难明)