新闻中心

EEPW首页>嵌入式系统>设计应用> 如何选择一个ARM CPU嵌入式操作系统

如何选择一个ARM CPU嵌入式操作系统

作者: 时间:2016-12-02 来源:网络 收藏
使用Linux在嵌入式系统中有两种途径。
第一是用户自己装配(称为DIY内核),你可以在www.kernel.org找到全部Linux代码,或直接到ARM CPU的源代码树下www.ARMLinux.org.uk找到你需要的Linux版本在ARM下的移植,或者某些半导体公司,如三星、Motorola 也在自己的网站或销售自己的ARM评估板的时候送给一张CD,里面含有一个可以支持他们评估板的最小Linux内核系统。如果这个最小内核没有包含 GCC/GDB工具链,你可能还要到GNU的网站下载全部的源代码,然后再编译生成你需要版本的ARM工具链和应用程序库,这个过程是相当耗时和困难的。还需要指出,这种DIY内核的配置,添加应用和驱动程序也是不标准的和复杂的,这是嵌入式系统的特殊性所在,比如说,有的基于ARM的应用是网络上的小型互连设备,他需要多个以太网、USB主机、小型的NOR Flash文件系统,而一个ARM手持终端,它关心的是LCD的触屏、红外或蓝牙的接口、USB用户端、快速的启动,动态的电源管理和NADA FLASH,这样,你就需要在数十家Linux相关网站下载各种补丁,应用和工具,把它们和你拿到的这个内核进行反复的编译和调试,确信它们之间以及它们在你所用的ARM CPU硬件评估板上是稳定可靠工作的,这个过程是在没有任何技术支持下完成的。当然,如果可以从某家半导体公司或开源的网站能够得到“最小内核”,它所包含的组件(如驱动、应用和文件系统)和你的应用近似,而且代码是可靠的,或者你及时正确得到Linux网友的指导,那么你是幸运的。据说,有一个著名的电信设备制造商花了2年的时间和150万美圆在一个项目中开发自己的Linux,而且最后还不得不停止了。
第二是选择一个商业的嵌入式Linux操作系统平台。商业化的嵌入式 Linux版本是针对嵌入式处理器,如ARM所优化设计的,已经支持了各种半导体厂家的评估板和主要的设备驱动,商业化的嵌入式Linux包含了文件系统、应用、实时性扩展和技术支持培训服务,现今国外著名的商业化嵌入式Linux产品有:MontaVista Linux, Bluecat Linux, Timesys Linux, Metrowork Linux(原Lineo), Vlinux(韩国)和Redhat Linux等,国内也有红旗、中软、新华嵌入式Linux。
MontaVista Linux是MontaVista软件公司于99年推出的,它是目前全球最优秀的嵌入式Linux操作系统和工具供应商,MontaVista在嵌入式 Linux的实时性、交叉开发工具、高可用性、动态电源管理等Linux技术要点方面具有世界领先地位。
MontaVista Linux最新版本是5。0,采用Linux 2.6.18,针对8种CPU系列(包含ARM和Xscale)优化定制的商业化版本,包含了最新O(1)实时调度器,可抢占的内核,微秒级的高分辨定时器,基于Eclipse的DevRocket 5开发环境,支持应用、内核和文件系统(固化)的配置和调试,以及测试和分析工具,纯Windows, Linux和Solaris开发主机,200余种评估板和应用系统的设备驱动支持。
选择象MontaVista Linux这样商业化嵌入式Linux,可以让用户把时间和资金放在应用软件和特定的硬件接口和设备驱动程序,使用商业嵌入式Linux,可以得到一定时间(一般是1年)的技术支持,升级和培训(这很重要,因为Linux是每天都在变化的)。
商业嵌入式Linux目前除国内的产品外,价格还是很昂贵的,根据配置和服务时间,大约从几千到几万美圆,多数国内用户从资金和心理上还很难承受,商业嵌入式Linux开发工具相对于Microsoft和象 Tornado/VXWORK的开发工具,在易于使用和丰富性方面还待于提高和改进。
同作为Linux操作系统,我是推荐使用带有MMU 的 Linux ,而不是μCLinux,因为绝大多数新的ARM CPU 都是AMR9核,他们都带有MMU 了,无论是开放源码的LINUX 社区还是商业的嵌入式LINUX 公司的支持和维护都比μCLinux,要好,快和丰富的多。
结束语
前面我们对三种在ARM CPU上较为流行的嵌入式操作系统作了详细的分析,在进入一个总结之前,我还想提到几个在国际上很有名气的嵌入式操作系统,它们是Windriver公司的Vxworks、ATI的Nucleus、日本人的iTron和WinCE。
Windriver 的Vxworks在两三年前曾经是最具影响力的嵌入式操作系统,几乎主要的通信设备制造商都是采用PowerPC+Vxworks这种组合,但是在ARM CPU上,Vxworks的应用并不多见;ATI的Nucleus(现在已经是Mentor的嵌入式部门)曾经作为最有名气的源代码、没有版税的嵌入式操作系统而在北美和亚洲台湾流行,最成功的设计范例是各种GSM移动电话,Nucleus只是一个实时内核,用户需要再购买它的TCP/IP,GUI,文件系统和设备驱动才能形成一个功能完整的嵌入式系统,这使它在近些年失去了优势;日本人的iTron是在日本几乎家喻户晓的嵌入式内核,标准的编程接口、低廉的价格(1~3千美圆)、没有版税、支持几乎所有的CPU(尤其是支持很多日本的CPU),但在除日本之外,iTron好象毫无建树;微软的 WinCE,几乎所有高端PDA都是采用它,它们使用的是 Xscale或ARM9这样的CPU,但微软只是关心有产量象PC一样巨大的嵌入式设备制造商,所以他并没有把自己的WinCE象Linux一样易于移植到不同的CPU和增加设备驱动程序,微软更愿意象Windows一样自己把所有事情做好,你只是拿去用好了,如果你没有相当的级别,很难获得它的个性化定制服务。
最后我们归纳一下选择一个合适的ARM CPU的嵌入式操作系统的几个重要因素。
第一是应用。如果你想开发的嵌入式设备是一个和网络应用密切相关或者就是一个网络设备,那么你应该选择用嵌入式Linux或者μCLinux,而不是μC/OS-II,因为Linux不仅为你集成了TCP/IP协议,还有很丰富的其它网络协议,如DHCP Server,PPPoe,webserver等等。
第 二是实时性。没有一个绝对的数字可以告诉你什么是硬实时,什么是软实时,它们之间的界限也是十分模糊的,这与你选择什么样的ARM CPU,它的主频,内存等参数有一定的关系,象Intel Xscale这样的处理器,即使配合普通Linux的内核,内核的抢占延时最坏情况也只有1.743毫秒,而99.9%的情况是1.42毫秒,而如果你使用加入实时补丁等技术的嵌入式Linux如MontaVista Linux(2.4.17版本内核),最坏的情况只有436微秒,而99.9%的情况是195微秒,上面的数字以及考虑到最新的Linux在实时性方面的改进(如低延时O(1)调试器,微秒级的高分辨率POSIX定时器),嵌入式Linux可以适合于90~95%的各种嵌入式系统应用。当然,你如果希望更高数量级的实时响应,如高速的A/D转换需要几个微秒以内的中断延时,要求一个毫秒级没有DMA方式的异步串行实时处理器等类似的应用,可能是采用 μC/OS-II是合适的。当然,你采用象Vxworks这样传统的嵌入式操作系统也可以满足这样的强实时性要求。
第三是开发工具。坦言说,目前μC/OS-II、μCLinux和嵌入式Linux的开发工具与商业嵌入式操作系统工具还有一些差距,目前在ARM CPU上广泛流行和使用的是ARM公司SDT/ADS工具链,产品无论在功能、稳定性和众多的第三方厂商支持方面,都很好,唯一不足的是缺少对嵌入式操作系统的支持,SDT/ADS的升级产品RealView计划支持GCC和嵌入式Linux,但目前还没有看到,μC/OS-II可以使用ARM SDT/ADS,但没有OS调试功能。如果希望支持OS调试,可以使用IAR或Nohan调试器,μCLinux的调试除GDB外还有第三方调试器,并配合Cygwin形成Windows环境下μCLinux开发环境,象Aiji的 Spider和Micetek 的Hitool。
第四是你所选择 的ARM CPU和参考板,象ARM7TDMI和ARM940T(如S3C2500/2510)核是不能使用嵌入式Linux(MMU),如果你想用Linux,只能用μCLinux,如果你想用Vxworks,你需要了解一下提供评估板的公司是否有BSP(板支持包),Vxworks自己只有少数ARM公司评估板的支持。
最后是价格和技术服务。中国工程师的薪水大约是欧美日等国的十分之一, 所以在考虑购买商业嵌入式操作系统时,会遇到是买还是自己做的问题,这是很正常的,尤其是在采用开放源代码技术时,这个问题就就更加突出。有一点需要注意的是,有些产品如Vxworks 是既按用户数(有License保护锁)收取开发费,也按你产品售出的实际数量收取每个Vxworks软件运行的版税。 μC/OS-II只是收取每种产品一次性版税(不限数量)。Nucleus和Threadx是一次性收取开发加上生产的费用。Linux无论是 μCLinux还是嵌入式Linux(即使是商业版本象MontaVista Linux)是不收版税的,商用嵌入式Linux是以服务费或订阅方式收取开发时的费用。很明显,国外产品价格是贵一些(主要是他们人力成本高),但不能不承认他们在嵌入式操作系统的技术已经远远走在了前方。值得提醒大家的是在ARM开发工具和评估板的众多国内供应商中,有不少已经做了开放源码操作系统的移植和示范性的Demo,但应该注意他们多数不具有维护和支持操作系统平台的能力和经验,过多地依赖他们是有风险的。
品种众多,价格适宜的ARM CPU加上开放源码嵌入式操作系统为中国嵌入式系统和设备制造商的发展创造了一个有利的时机,正确迅速地使用这些技术,可以加快我们具有竞争力的新一代电子产品上市的时间和提高产品的档次。
参考资料:
李善平,《Linux与嵌入式系统》
王学龙,《嵌入式Linux系统设计与应用》
马忠梅,《ARM嵌入式处理器结构与应用基础》
邵贝贝,《嵌入式实时操作系统μC/OS-II》第二版
何小庆,《嵌入式Linux:通信设备中的主流操作系统》,电子设计应用,2003年第4期。
清华大学,《嵌入式系统设计与实例开发》
上一页 1 2 下一页

评论


技术专区

关闭