在ARM CPU上广泛采用的三种嵌入式操作系统浅析

发布者:Huayu8888最新更新时间:2020-08-05 来源: elecfans关键字:ARM  CPU  嵌入式操作系统 手机看文章 扫描二维码
随时随地手机看文章

嵌入式操作系统是ARMCPU的软件基础,从8位/16位单片机发展到以ARMCPU核为代表的32位嵌入式处理器,嵌入式操作系统将替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。更重要的是嵌入式操作系统对应用程序可以起到屏蔽的作用,使应用程序员面向操作系统级开发应用软件,并易于在不同的ARM核的嵌入式处理器上移植。

目前国内在ARM CPU上广泛采用的三种嵌入式操作系统浅析

嵌入式操作系统都具有一定的实时性,易于裁剪和伸缩,可以适合于从ARM7到Xscale各种ARMCPU和各种档次的应用,嵌入式操作系统可以使用广泛流行的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和StrongARM等各种ARMCPU的移植,支持包含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没有用户态和内核态,任务(线程)或中断和任务切换的响应可以很快,主要是和ARMCPU相关的。最新的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(内存管理单元)的微处理器芯片而裁剪成的操作系统,如果ARMCPU系列中的ARM7TDMI、ARM940T等产品希望使用Linux操作系统,只能用μCLinux,当然,μCLinux也支持MotorolaDragonball、Coldfire等其它中低端嵌入式处理器。


μCLinux保持了传统Linux操作系统的主要特性,包括稳定、强大的网络和文件系统的支持,μCLinux裁剪了大量的Linux内核以缩小尺寸,适合象512k/bRAM、1M/bFlash这样小容量、低成本的嵌入式系统。μCLinux系统小型化的另一简化是采用了μCLib库替代Linux的Glib库,使用μCLib可以大大减少应用程序的代码尺寸,对于中小型嵌入式应用,μCLib功能可以满足需要,所以目前即使是某些采用Linux2.4.嵌入式Linux操作系统这里要讨论的是可以嵌入在ARMCPU上的,具有MMU功能的Linux操作系统,也可以称是嵌入式Linux操作系统。与微软公司的软件不一样,Linux不是由一家公司所拥有、维护开发的,Linux在市场有多种发行版本,所有发行版本都包含一样的Linux内核、基本工具和应用,不同的发行版本主要是在附加的工具链、应用、配置以及各种内核补丁上有所不同。嵌入式Linux主要是在实时性增强、内核精简和裁减、支持多种CPU结构(如ARMCPU)等方面做了改进和提高。


使用嵌入式Linux系统有两种途径:第一是用户自己装配(称为DIY内核),你可以找到全部Linux代码,或直接到ARMCPU的源代码树下linux.org.uk“》www.ARMlinux.org.uk找到所需要的Linux版本的移植,或者某些半导体公司,如三星、Motorola在自己的网站或在自己的ARM评估板含有一个最小Linux内核系统。如果这个最小内核没有包含GCC/GDB工具链,可能还要到GNU的网站下载全部的源代码,然后再编译生成所需要版本的ARM工具链和应用程序库,这个过程是相当耗时和困难的。还需要指出,这种DIY内核的配置,添加应用和驱动程序也是不标准的和复杂的,这是嵌入式系统的特殊性所在。


第二是选择一个商业化的嵌入式Linux操作系统平台。商业化的嵌入式Linux版本是针对嵌入式处理器,如ARM所优化设计的,支持各种半导体厂家的评估板和主要的设备驱动,商业化的嵌入式Linux包含了文件系统、应用、实时性扩展和技术支持培训服务,现今国外著名的商业化嵌入式Linux产品有:Monta Vista Linux、Bluecat Linux、Timesys Linux、Metrowork Linux、Vlinux和Redhat Linux等,


国内也有红旗、中软、新华嵌入式Linux Monta Vista Linux是Monta Vista软件公司于1999年推出的,它是目前全球优秀的嵌入式Linux操作系统和工具供应商,Monta Vista在嵌入式Linux的实时性、交叉开发工具、高可用性、动态电源管理等Linux技术要点方面具有领先地位。MontaVistaLinux最版本是3.1,采用Linux2.4.20,针对8种CPU系列(包含ARM和Xscale)优化定制的商业化版本。


选择象Monta Vista Linux这样商业化嵌入式Linux,可以让用户把时间和资金放在应用软件和特定的硬件接口和设备驱动程序,使用商业化嵌入式Linux可以得到一定时间(一般是1年)的技术支持,升级和培训(这很重要,因为Linux是每天都在变化的)。


商业化嵌入式Linux目前除国内的产品外,价格还是很昂贵的,根据配置和服务时间,大约从几千到几万美元,多数国内用户从资金和心理上还很难承受,商业化嵌入式Linux开发工具相对于Microsoft和象Tornado/VxWork的开发工具,在易于使用和丰富性方面还待于提高和改进。


同样作为Linux操作系统,笔者推荐使用带有MMU的嵌入式Linux,而不是mCLinux,因为绝大多数新的ARMCPU都是AMR9核,它们都带有MMU了,无论是开放源码的Linux社区还是商业化的嵌入式Linux公司的支持和维护都比mCLinux要好要快和丰富得多。


结语

前面我们对三种在ARMCPU上较为流行的嵌入式操作系统作了详细的分析,在进入一个总结之前,笔者还想提到几个在国际上很有名气的嵌入式操作系统,它们是WindRiver公司的VxWorks、ATI的Nucleus、iTron和WinCE,但它们在ARMCPU的应用不多见,介绍从略。


最后归纳一下选择一个合适的ARMCPU的嵌入式操作系统的几个重要因素:第一是应用。如果你想开发的嵌入式设备是一个和网络应用密切相关或者就是一个网络设备,那么你应该选择用嵌入式Linux或者mCLinux,而不是mC/OS-II.第二是实时性。没有一个绝对的数字可以告诉你什么是硬实时,什么是软实时,它们之间的界限也是十分模糊的,这与你选择什么样的ARMCPU,它的主频、内存等参数有一定的关系。如果你使用加入实时补丁等技术的嵌入式Linux,如MontaVistaLinux(2.4.17版本),最坏的情况只有436微秒,而99.9%的情况是195微秒。考虑到最新的Linux在实时性方面的改进。它可以适合于90~95%的各种嵌入式系统应用。当然,你如果希望更快的实时响应,如高速的A/D转换需要几个微秒以内的中断延时,可能采用mC/OS-II是合适的。当然,你采用象Vxworks这样传统的嵌入式操作系统也可以满足这样的强实时性要求。


第三是开发工具。显然,目前mC/OS-II、mCLinux和嵌入式Linux的开发工具与商业嵌入式操作系统工具还有一些差距,目前在ARMCPU上广泛流行和使用的是ARM公司SDT/ADS工具链,产品无论在功能、稳定性和众多的第三方厂商支持方面都很好,唯一不足的是缺少对嵌入式Linux操作系统的支持,SDT/ADS的升级产品RealView计划支持GCC和嵌入式Linux,但目前还没有看到,mC/OS-II可以使用ARMSDT/ADS,但没有操作系统调试功能。


第四是所选择的ARMCPU和参考板,象ARM7TDMI和ARM940T(如S3C2500/2510)核是不能使用嵌入式Linux的,如果想用Linux,只能用mCLinux,如果想用VxWorks,

需要了解一下提供评估板的公司是否有BSP(板支持包),VxWorks自己只有少数ARM公司评估板的支持。


最后是价格和技术服务。在考虑购买商业嵌入式操作系统时,会遇到是买还是自己做的问题,这是很正常的,尤其是在采用开放源代码技术时,这个问题就更加突出。有一点需要注意的是,有些产品如VxWorks是既按用户数收取开发费,也按用户产品售出的实际数量收取每个VxWorks软件运行的版税。mC/OS-II只是收取每种产品一次性版税(不限数量)。Linux无论是mCLinux还是嵌入式Linux(即使是商业版本象MontaVistaLinux)是不收版税的,商用嵌入式Linux是以服务费或订阅方式收取开发时的费用。很明显,国外产品价格是贵一些,但不能不承认他们在嵌入式操作系统的技术已经远远走在前方。

关键字:ARM  CPU  嵌入式操作系统 引用地址:在ARM CPU上广泛采用的三种嵌入式操作系统浅析

上一篇:采用ARM和单片机的CPLD/FPGA高速数据处理系统
下一篇:ARM、MCU、DSP、FPGA、SOC你知道是什么吗?

推荐阅读最新更新时间:2024-11-13 10:20

Ampere下一代处理器将放弃Arm转而采用定制化内核
上周,微软宣布在全球 10 个 Azure 地区全面推出采用 Ampere Altra 处理器的 Azure 虚拟机。这标志着 Ampere 的又一次重大胜利,它在云领域正在赢得众多供应商的青睐,包括谷歌、Cloudflare、腾讯和甲骨文等等。 这些新的虚拟机经过设计和配置,可有效运行新兴的横向扩展、云原生工作负载,例如应用服务器、海量数据库、云游戏和媒体服务器等。 “Ampere 的云原生处理器经过独特设计,可同时满足云的高性能和能效需求。通过我们与 微软的紧密合作,Ampere Altra 处理器现在可作为 Azure 虚拟机普遍使用,从而帮助以云为中心的新处理器用户,以便他们可以大规模部署下一代创新云应用,并以可持
[网络通信]
ARM处理器架构------可嵌套中断的实现
传统ARM中IRQ是作为一种系统异常出现的。对于ARM核来说,有且仅有一个称为IRQ的系统异常。而ARM对于IRQ的处理一般通过异常向量找到IRQ的中断处理程序。当进入IRQ中断处理程序之后,ARM自动屏蔽IRQ,也就是说在中断响应过程中是忽略之后到来的中断请求的。即使使用了VIC,VIC也仅仅是悬起后来的中断请求。也就是说,传统ARM的中断是不可嵌套、不可抢占的。 不过,ARM给了我们一种权利,那就是在中断处理程序中可以手动打开IRQ,这样在前一个IRQ响应的过程中,就可以被后来的中断所打断。就给我们提供了一种用软件解决中断嵌套的途径。 中断的过程我们都十分清楚:保护现场à响应中断à恢复现场。ARM对于每一种异常都有相应
[单片机]
ARM汇编中lr(r14)寄存器的作用
lr(r14)的作用问题,这个lr一般来说有两个作用: 1.当使用bl或者blx跳转到子过程的时候,r14保存了返回地址,可以在调用过程结尾恢复。 2.异常中断发生时,这个异常模式特定的物理R14被设置成该异常模式将要返回的地址。 另外注意pc,在调试的时候显示的是当前指令地址,而用mov lr,pc的时候lr保存的是此指令向后数两条指令的地址,大家可以试一下用mov pc,pc,结果得到的是跳转两条指令,这个原因是由于arm的流水线造成的,预取两条指令的结果.
[单片机]
ARM 位置无关代码PIC的分析理解
PIC的特点是: 它被加载到任意地址空间都可以正确的执行。其原理是PIC对常量和函数入口地址的操作都是基于PC+偏移量的寻址方式。即使程序被移动,但是PC也变化了,而偏移量是不变的,所以程序仍然可以找到正确的入口地址或者常量。 加载域:是代码存放的地址 运行域:是代码运行时的地址 链接地址:运行时,程序应该位于的地址 在一些场合,一些代码并不在储存这部分代码的地址上执行,比如说,放在norflash中的代码可能最终是放在RAM中运行,那么在norflash中的地址就是加载域,而在RAM中的地址就是运行域。 在汇编代码中我们常常会看到一些跳转指令,比如说b、bl(是位置无关的指令)等这些指令后面是一个相对
[单片机]
ARM CPU大小端
ARM CPU大小端: 大端模式:低位字节存在高地址上,高位字节存在低地址上 小端模式:高位字节存在高地址上,低位字节存在低地址上 STM32属于小端模式,简单的说,比如u32 temp=0X12345678; 假设temp地址在0X2000 0010. 那么在内存里面,存放就变成了: 地址 | HEX | 0X2000 0010 | 78 56 43 12 | CPU到底是大端还是小端,可以通过如下代码测试: //CPU大小端 //0,小端模式;1,大端模式. static u8 cpu_endian; //获取CPU大小端模式,结果保存在cpu_endian里面 void fi
[单片机]
<font color='red'>ARM</font> <font color='red'>CPU</font>大小端
MYIR推出采用NXP i.MX 8M Mini的CPU单板电脑
MYIR日前推出集成NXP i.MX 8M Mini的ARM SoM MYC-C8MMX CPU单板电脑,i.MX 8M Mini是采用14LPC FinFET工艺制造的嵌入式多核异构处理器,内置4核1.8GHz Arm Cortex-A53和400MHz的Cortex-M4处理器。该模块可运行Linux,Android OS,并且可以在-40°C至85°C的工业温度范围内工作。 MYC-C8MMX CPU模块尺寸为60mm x 49mm,包括CPU,2GB DDR4,8GB eMMC,32MB QSPI闪存,GigE PHY和PMIC集成的最小系统。所有控制器信号均通过两个0.8mm间距100针扩展连接器输出。 MYIR提供用于
[嵌入式]
安全、速度与激情,ARM Powered®成就卓越出行体验
“车行天下”已经成为一种潮流,而智能科技更是为出行带来了无限的畅快体验。ARM 生态系统正不断推动ARM架构的扩展,致力于解决汽车领域的大量技术问题,包括诸如ADAS,IVI,自动驾驶,先进驾驶舱等领域。随之而生的ARM powered智能设备在为“车行天下”保驾护航的同时,更带来出色的车内娱乐体验。 【雷诺Twizy纯电动车:引领绿色出行】 城市交通川流不息,雷诺Twizy拥有简洁的车身结构和前瞻的设计元素,在繁华都市中显得如此卓尔不群。ARM与雷诺已经在今年CES展示了基于Twizy的“全球第一辆来自原厂的开源车辆”,标志汽车领域正掀起一波开放性硬件与软件开发浪潮。雷诺认为,让客户能开发他们自己想要的电动车或是自己独特的
[汽车电子]
安全、速度与激情,<font color='red'>ARM</font> Powered®成就卓越出行体验
安兔兔跑分英特尔真的已经击败ARM了吗?
    美国东部时间2013年7月10日上午07:45   最近媒体大肆报道安兔兔(AnTuTu)的最新基准测试结果和ABI Research公司的一份声称“英特尔应用处理器(Atom Z2580)性能完胜英伟达(Nvidia)、高通和三星处理器”的最新报告。(参见“Intel processor outperforms Nvidia, Qualcomm, Samsung ICs”)   这种笼统的说法基本是在宣称:英特尔已经在非常重要的高端智能手机移动处理器领域超越了整个ARM生态系统。通常,我对于其他市场调研公司的信息或评论不做置评,但这一次我感到很蹊跷。   对当前的移动处理器进行评价是个颇具挑战性的工作。这些处理器称为片上系
[手机便携]
热门资源推荐
热门放大器推荐
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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