ARM CPU的操作系统选择要点

发布者:chang_ri最新更新时间:2018-02-21 来源: eefocus关键字: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家小型的硬件或方案提供商,这对于商业化的产品开发中采用是有一定的风险。

这里要讨论的是可以嵌入在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是以服务费或订阅方式收取开发时的费用。很明显,国外产品价格是贵一些,但不能不承认他们在嵌入式操作系统的技术已经远远走在前方。


关键字:ARM  CPU  操作系统 引用地址:ARM CPU的操作系统选择要点

上一篇:ARM+Linux嵌入式系统的BootLoader设计
下一篇:移动嵌入ARM7串口9位方式编程技术

推荐阅读最新更新时间:2024-03-16 15:55

Intel最新技术曲高和寡 与ARM竞争陷入僵持
《巴伦周刊》周六刊文称,Intel在本周的IDF开发者大会上展示了该公司的最新创新,不过这些创新能否为Intel指明未来仍有待观察。在过去1年多的时间内,苹果iPad的销量达到上千万台,因此有业内人士认为,Intel已错失良机。即使Intel仍然为苹果Mac电脑和笔记本提供处理器,但iPad已经将Intel处理器排除在外。此外,Intel处理器也没有获得其他平板电脑厂商,例如三星电子的青睐。 在此次IDF大会上,Intel展示了一款48核心处理器的原型产品。目前已商用的处理器最多仅包含8个核心,因此该处理器距离商用还有很远。 Intel首席技术官贾斯汀·莱特纳(Justin Rattner)还谈论了处理器的“近阈值电压”技术,该
[手机便携]
基于ARM9的指纹识别系统电路模块设计
  生物识别的工作原理是利用生物识别设备对生物特征进行取样,提取其唯一的特征并将其转化成数字代码,并进一步将这些代码组成特征模板,人们同识别设备交互进行身份认证时,识别设备获取其特征并与数据库中的特征模板进行比对,以确定是否匹配,从而决定接受或拒绝该人。而在众多的用于身份验证的生物识别技术中,指纹识别技术是目前最方便、可靠、非侵害和价格便宜的解决方案。   指纹识别技术主要涉及4个功能模块:读取指纹图像、提取特征、保存数据和比对。通过指纹读取设备读取到人体指纹的图像,然后对原始图像进行初步处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。软件从指纹上找到被称为“节点”的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点
[电源管理]
基于<font color='red'>ARM</font>9的指纹识别系统电路模块设计
英特尔确定明年1月5日推出Sandy Bridge芯片
据国外媒体报道,英特尔今天证实,该公司将于明年1月5日在国际消费电子展(CES)上发布下一代Sandy Bridge芯片。   英特尔副总裁兼PC客户集团总经理默里·艾登(Mooly Eden)表示,本次发布会将在拉斯维加斯Venetion酒店举行,并将邀请神秘嘉宾到场。英特尔在声明中说:“(本次发布会)将展示全球最快的处理器。”该产品将整合英特尔许多新技术,并将提升图形处理能力。   Sandy Bridge将把英特尔图形技术直接整合到CPU中的,这在主流笔记本中尚属首次。   在英特尔现有的酷睿i处理器中,图形功能需要借助独立芯片来完成。例如,酷睿i7拥有一个32纳米处理器以及一个独立的45纳米图形处理器。在Sandy
[半导体设计/制造]
联发科宣布扩大与ARM合作关系
IC设计联发科(2454-TW)今(8)日宣布,与ARM扩大合作关系,联发科已取得ARM多样技术授权,包括Cortex-A50系列处理器核心和新一代的ARM Mali绘图处理器(GPU)解决方案,联发科指出,在获得 2 者技术授权後,将能使联发科及其顾客在中央处理器(CPU)和GPU技术取得研发先机。 ARM执行副总裁暨处理器部门总经理Tom Cronk表示,联发科行动系统单晶片(SoC)MT8135是第一颗在异质多重运算组态下使用ARM big.LITTLE(大小核)架构的应用处理器,ARM与联发科在此合作基础上,将持续为消费者发展创新行动终端装置。结合Cortex-A50系列处理器和Mali绘图处理器,有助联发科保持
[半导体设计/制造]
基于IPv6和ARM9的地震烈度计开发
以低功耗微型电容式三轴向加速度传感器作为传感部件,采用基于ARM9的嵌入式系统并定制Linux作为总控系统,选择符合802.11b标准的无线通讯技术作为仪器的网络接入方式,研制完成基于无线IPv6的SI一2型地震烈度计,实现了地震烈度的网络化、数字化观测,解决了我国缺乏直接测定地震烈度仪器的问题。   引 言   当前国内外已建设的城市地震灾害速报系统一般以地震烈度计观测系统为主体。日本东京煤气公司在1994年就完成了由331台谱烈度计、20台液化传感器和5台强震仪构成的地震监测与震害快速评估系统(SIGNAL)。阪神地震取得显著的减灾效益后,东京煤气公司于1997年~2007年的十年间布设了3 800个新型地震谱烈度计。
[单片机]
基于IPv6和<font color='red'>ARM</font>9的地震烈度计开发
基于鸿蒙操作系统的智能安全驾驶监测系统
近几年来我国的交通事业发展迅速,与此同时也带来了安全隐患,每年发生交通事故几十万起,并且有着明显的上升趋势,这对人民的生命财产构成了巨大威胁。在这些交通事故中,由于酒后驾车引发的交通事故数量占50%,酒驾成为交通事故的第一大“杀手”。此外,驾驶员的疲劳驾驶也是威胁到交通安全的一个重要因素,对于驾驶员来说迫切需要一个 智能安全驾驶 系统来检测并提醒驾驶员、发出预警警告,有效减少此类原因引起的交通事故。 同时我们迎来了一个万物互联的时代,物联网也越来越受到大家的青睐。万物互联将人、流程、数据和事物结合在一起,使得网络连接变得更加相关、更有价值,把信息转化为行动,给企业、个人和国家创造新的发展机遇,并带来更加丰富的体验。本项目希望借
[汽车电子]
基于鸿蒙<font color='red'>操作系统</font>的智能安全驾驶监测系统
Keil(MDK-ARM-STM32)系列教程(八)在线调试(Ⅰ)
Ⅰ、写在前面 Keil在线调试的内容有很多,本文带来在线调试常用的内容:Debug Toolbar调试工具栏( 复位、全速运行、停止运行、单步调试、逐行调试、跳出调试、运行到光标行、跳转到暂停行、调试窗口)快捷按钮的详细内容。 Keil工具栏总共有三种:文件工具栏(File Toolbar)、编译工具栏(Build Toolbar)、调试工具栏(Debug Toolbar)。编译工具栏只在编辑模式有效,调试工具栏只在调试模式下有效。文件工具栏在两种模式下都有效。 文件工具栏可以参看文章: Keil(MDK-ARM-STM32)系列教程(二)工具栏详细说明 . Ⅱ、本文要点 调试工具栏是我们在线调试时常用的工具栏(
[单片机]
Keil(MDK-<font color='red'>ARM</font>-STM32)系列教程(八)在线调试(Ⅰ)
ARM在数字化远程视频监控系统的应用
引言   随着信息技术的发展,数字化越来越多的代替了传统的模拟系统,数字化使得远程视频监控系统不需要专门架设线路,应用现有通讯线路就可以实现低成本的信息传递,与传统的模拟监控系统相比,它的组网成本大大降低、系统体积重量大大减小、运行维护更容易。   所使用的通信线路有很多种,如:以太网、ISDN、xDSL、公共电话网、无线电话网等,根据线路的带宽不同,远程视频监控系统的图像质量也有很大不同。   本文针对低设备成本、低运行成本和超远距离的视频监控系统应用提出了解决方案,使用ARM嵌入式处理器和Linux操作系统构建嵌入式系统,开发出可实际应用的远程视频监控系统,适用于低分辨率、低成本、长距离的监控应用。   它的特点有:
[单片机]
<font color='red'>ARM</font>在数字化远程视频监控系统的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved