微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > C语言编程程序优化方案,如何选择一个ARM品牌核心处理器操作系统

C语言编程程序优化方案,如何选择一个ARM品牌核心处理器操作系统

时间:05-19 来源:网络整理 点击:

μCLinux主要是针对没有MMU的嵌入式处理器开发设计,那么它也失去了有MMU所带来的Linux操作系统的特色,比如,上面已经提到的静态加载(Linux支持动态应用的加载),μCLinux对内存操作是直接的物理内存,这样,任何程序的异常都可能导致内核崩溃,μCLinux采用Vfovk(),支持多进程,但需要父子进程协调同步,μCLinux的文件系统相对比较陈旧,支持的CPU和参考设计还比较少,社区的发展和维护也相对缓慢。更重要的是,在国内外没有一家软件公司有商业化的μCLinux软件产品和服务支持,目前μCLinux官方网站还很少看见象IBM、Intel这样的巨型公司身影,只有2~3家小型的硬件或方案提供商,这对于商业化的产品开发中采用是有一定的风险。

  嵌入式Linux操作系统

  我们这里要讨论的是可以嵌入在ARM CPU上的,有MMU功能的Linux操作系统,也可以称是嵌入式Linux操作系统。芬兰学生Linux Torvalds在91年写完第一个Linux版本时,怎样也无法想象到今天Linux在全世界范围被广泛注目和应用。嵌入式系统作为Linux应用的一个重要领域,由于它的广泛性和多样化正在迅速发展。

  和微软的软件不一样,Linux不是由一家公司所拥有、维护开发的,Linux在市场有多种发行版本,所有发行版本都包含一样的Linux内核、基本工具和应用,不同的发行版本主要是在附加的工具链、应用、配置以及各种内核补丁上有所不同。嵌入式Linux主要是在实时性增强、内核精简和裁减、支持多种CPU结构(如ARM CPU)等方面做了改进和提高。

  使用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最版本是3.1,采用Linux 2.4.20,针对8种CPU系列(包含ARM和Xscale)优化定制的商业化版本,包含了最新O(1)实时调度器,可抢占的内核,微秒级的高分辨定时器,基于Eclipse的DevRocket开发环境,支持应用、内核和文件系统(固化)的配置和调试,以及测试和分析工具,纯Windows, Linux和Solaris开发主机,80余种评估板和应用系统的设备驱动支持。

选择象MontaVista Linux这样商业化嵌入式Linux,可以让用户把时间和资金放在应用软件和特定的硬件接

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top