选择ARM CPU的利用体系
发布日期:2011-04-17
嵌入式利用体系
ARM CPU的软件底子
从8位/16位单片机生长到以ARM CPU核为代表的32位嵌入式处理惩罚处罚器,嵌入式利用体系将调换传统的由手工方法的监控步调或调理步调,成为告急的底子组件。更告急的是嵌入式利用体系映射用步调可以起到屏蔽的作用,使应用步调员面向利用体系级开辟应用软件,并易于在差别的ARM核的嵌入式处理惩罚处罚器上移植。 嵌入式利用体系都具有肯定的及时性,易于裁剪和伸缩,可以得当于从ARM7到Xscale种种ARM CPU和种种档次的应用,嵌入式利用体系可以利用广泛盛行的ARM开辟东西,如ARM公司的SDT/ADS和RealView等,也可以利用开辟软件,如GCC/GDB、KDE或Eclipe开辟环境,市场上另有专用的开辟东西,如Tornado、mC/View、mC/KA、CODE/Lab、Metroworks等。
本文就如今海内涵ARM CPU上广泛采取的三种嵌入式利用体系(mC/OS-II、mCLinux和嵌入式Linux)作阐发。
mC/OS-II嵌入式及时内核
全天下数百种配置已经在利用mC/OS-II,包括手机、路由器、不绝止电源、飞行器、医疗配置和财产控制配置。mC/OS-II已经有ARM7TDMI、ARM9和Strong ARM等种种ARM CPU的移植,支持包括Atmel、Hynix、Intel、Motorola、Philips、Samsung、Sharp等公司的ARM核的CPU。mC/OS-II的移植也相称容易,与CPU干系的代码包装在三个文件中,它们是os_cpu.h、os_cpu_a.asm和os_cpu_c.c。
mC/OS-II有60多个别系调用,包围任务、定时器、信号量、变乱标记、邮箱、行列步队和内存办理,已经包括了传统嵌入式利用体系内核(如PSOS,VRTX)的结果,还支持互斥型信号量,这是90年代的嵌入式利用体系内核,如VxWorks和VRTXsa才有的技能。
mC/OS-II由于是可抢占的及时内核,以是μC/OS-II与贸易嵌入式及时内核在性能上没有什么差别,mC/OS-II没有效户态和内核态,任务(线程)或克制和任务切换的相应可以很快,紧张是和ARM CPU干系的。最新的2.7x版本还增长了算法以克制在移植中修改堆栈指针,如许可以包管mC/OS-II在差别的CPU上运行更稳固,移植更方便。mC/OS-II如今除了内核外另有贸易化文件体系mC/FS,图形体系mC/GUI以及任务调试东西mC/KA和mC/View,但是mC/OS-II本身如今还没有TCP/IP协议体系。
总的来说,mC/OS-II是一个非常容易学习,布局大抵,结果完备和及时性很强的嵌入式利用体系内核,得当于种种嵌入式应用以及大专院校讲授和科研。着末须要阐发,mC/OS-II不是免费软件,恣意人学习利用mC/OS-II须要购买《嵌入式及时利用体系mC/OS-II》一书,利用mC/OS-II的产品须要购买产品生产授权,购买了此授权的还可以得到开辟时期的技能支持和升级办事。
mCLinux利用体系
mCLinux是Linux小型化后,得当于没有MMU(内存办理单位)的微处理惩罚处罚器芯片而裁剪成的利用体系,要是ARM CPU系列中的ARM7 TDMI、ARM940T等产品渴望利用Linux利用体系,只能用mCLinux,固然,mCLinux也支持Motorola Dragonball、Coldfire等别的中低端嵌入式处理惩罚处罚器。
mCLinux保持了传统Linux利用体系的紧张特性,包括稳固、强大的网络和文件体系的支持,mCLinux裁剪了大量的Linux内核以缩小尺寸,得当象512k/b RAM、1M/b Flash如许小容量、低资源的嵌入式体系。mCLinux体系小型化的另一简化是采取了mCLib库调换Linux的Glib库,利用mCLib可以大大淘汰应用步调的代码尺寸,敷衍中小型嵌入式应用,mCLib结果可以餍足须要,以是如今纵然是某些采取Linux 2.4内核的嵌入式Linux体系也采取mCLib库的做法。mCLinux中,由于没有内存掩护机制,应用代码一样通常采取静态连接的要领,并且在mCLinux中采取Flat文件实行格局(Linux是Coff或Elf格局), mCLinux和应用代码都可以支持固化,存储在Flash存储介质中,不需象Linux须要颠末一次Flash到RAM的拷贝。全部这些,使得mCLinux更象传统意义上的嵌入式利用体系。
mCLinux是由Linux 2.0.38内核开始移植的,如今已经有2.4 Linux支持的一些移植的版本,如S3C2500、44B0等ARM芯片,可以在mCLinux的官方网站www.uclinux.org上找到这些版本,mCLinux近期紧张是在生长种种2.4.x版本的移植,以期跟上Linux社会主流的生长趋势(由于以后Linux 2.6将开始成为主流的内核)。
mCLinux紧张是针对没有MMU的嵌入式处理惩罚处罚器开辟筹划,那么它也失去了有MMU所带来的Linux利用体系的特色,比如,上面已经提到的静态加载(Linux支持动态应用的加载),mCLinux对内存利用是直接的物理内存,如许,恣意步调的非常都大概导致内核瓦解,mCLinux支持多线程,但须要父子线程调和同步,mCLinux的文件体系相相比较陈腐,支持的CPU和参考筹划还比较少,社区的生长和维护也相对痴钝。如今mCLinux官方网站还很少望见象IBM、Intel如许的大型公司身影,只有2~3家小型的硬件或方案提供商,这敷衍贸易化的产品开辟中采取是有肯定的危害。
嵌入式Linux利用体系
这里要讨论的是可以嵌入在ARM CPU上的,具有MMU结果的Linux利用体系,也可以称是嵌入式Linux利用体系。与微软公司的软件不一样,Linux不是由一家公司所拥有、维护开辟的,Linux在市场有多种发行版本,全部发行版本都包括一样的Linux内核、底子东西和应用,差别的发行版本紧张是在附加的东西链、应用、配置以及种种内核补丁上有所差别。嵌入式Linux紧张是在及时性加强、内核精简和淘汰、支持多种CPU布局(如ARM CPU)等方面做了改革和进步。
利用嵌入式Linux体系有两种途径:
第一是用户本身装置(称为DIY内核),你可以在www.kernel.org找到全部Linux代码,或直接到ARM CPU的源代码树下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因此办事费或订阅要领收取开辟时的用度。很明显,外洋产品价格是贵一些,但不克不及不承认他们在嵌入式利用体系的技能已经远远走在火线。
参考文献:
1.李善平,‘Linux与嵌入式体系’,清华大学出版社.
2.王学龙,'嵌入式Linux体系筹划与应用',清华大学出版社.
3.马忠梅,'ARM嵌入式处理惩罚处罚器布局与应用底子',北京航空航天大学出版社.