嵌入式操作系统的解析

发布者:LovingLife2023最新更新时间:2021-06-21 来源: eefocus关键字:嵌入式  操作系统  ARM 手机看文章 扫描二维码
随时随地手机看文章

嵌入式操作系统都具有一定的实时性,易于裁剪和伸缩,可以适合于从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 引用地址:嵌入式操作系统的解析

上一篇:解析设计ARM语音识别系统的步骤
下一篇:移植qtopia到ARM开发板

推荐阅读最新更新时间:2024-11-16 23:18

阅读ARM Memory(L1/L2/MMU)笔记
《ARM Architecture Reference Manual ARMv8-A》里面有Memory层级框架图,从中可以看出L1、L2、DRAM、Disk、MMU之间的关系,以及他们在整个存储系统中扮演的角色。 涉及到的相关文档有: 《ARM Architecture Reference Manual ARMv8-A》:E2 The AArch32 Application Level Memory Model和G3 The AArch32 System Level Memory Model两个章节,从总体架构上介绍了ARMv8-A Memory系统。 《Cortex-A53 TRM》:6 Level 1 Memory Sy
[单片机]
阅读<font color='red'>ARM</font> Memory(L1/L2/MMU)笔记
嵌入式驱动移植之RTC驱动移植
移植环境 主机开发环境:ubuntu12.04 BootLoader:u-boot-1.1.6 kernel:linux-2.6.30.4 CPU:s3c2440 开发板:TQ2440 移植步骤 1、 添加平台对 RTC 的支持 在内核 2.6.30.4上的实时时钟驱动是非常完善的,只需要添加 RTC 设备到设备初始化列表中就行了。 修改内核源码“arch/arm/mach-s3c2440/mach-smdk2440.c”文件,在行添加如下内容: static struct platform_device *smdk2440_devices __initdata = { &s3c_device_usb, &s3c_
[单片机]
<font color='red'>嵌入式</font>驱动移植之RTC驱动移植
stm32嵌入式操作系统具有怎样的优缺点
  STM32简单介绍   一、背景   如果你正为项目的处理器而进行艰难的选择:一方面抱怨16位单片机有限的指令和性能,另一方面又抱怨32位处理器的高成本和高功耗,那么,基于 ARM Cortex-M3内核的STM32系列处理器也许能帮你解决这个问题。使你不必在性能、成本、功耗等因素之间做出取舍和折衷。   即使你还没有看完STM32的产品手册,但对于这样一款融合ARM和ST技术的“新生儿”相信你和我一样不会担心这款针对16位MCU应用领域 的32位处理器的性能,但是从工程的角度来讲,除了芯片本身的性能和成本之外,你或许还会考虑到开发工具的成本和广泛度;存储器的种类、规模、性能和容 量;以及各种软件获得的难易,我相信你看完本
[单片机]
stm32<font color='red'>嵌入式</font><font color='red'>操作系统</font>具有怎样的优缺点
影响CPSR状态寄存器的ARM汇编指令总结
最近学习了ARM寄存器寻址方式和ARM指令,现在总结如下: 1、影响CPSR状态寄存器的ARM汇编指令 (1)、带S的指令有 MOVS-- 数据传送指令(只能用在寄存器和寄存器之间) MVNS-- 数据传送指令(和mov区别是,不仅进行数据传输,还进行数据取反) ADDS-- 加法指令 SUBS-- 减法指令 MULS-- 乘法指令 ANDS-- 逻辑与指令(相同是1,不同是0,区别 按位与TST 指令) ORRS-- 逻辑或指令(不同是0,相同是1,区别 按位与TST 指令) BICS-- 设置某一位为1 (2)、另外两个指令 CMP-- 比较指令 TST-- 安位与指令
[单片机]
影响CPSR状态寄存器的<font color='red'>ARM</font>汇编指令总结
对标 Arm Neoverse N2,SiFive 推出数据中心级 RISC-V 内核设计 P870-D
8 月 15 日消息,RISC-V IP 企业 SiFive 当地时间昨日宣布推出面向数据中心应用的 P870-D CPU 设计。 P870-D 建立在 SiFive 于 2023 年发布的 P870 高性能核心之上,并新增了诸多面向数据中心应用的功能: P870-D 支持开放的 AMBA CHI 协议,单集群至高 64 核,整体至高 256 核,而原版 P870 支持至多 32 核集群; SiFive 还为 P870-D 增加了 RAS 功能,可在问题出现前检测到错误并保护数据完整性,有助于防止停机并确保系统的整体可靠性; 此外 P870-D 还包含一个分布式和可扩展的 IOMMU(IT之家注:输入输出内存管理单元,Inp
[嵌入式]
对标 <font color='red'>Arm</font> Neoverse N2,SiFive 推出数据中心级 RISC-V 内核设计 P870-D
ARM发表芯片互连技术 投入高效能运算开发
ARM(ARM)发表新的芯片互连技术,将增加高效能运算(HPC)、数据中心与云端应用的资料吞吐量。 Scientific Computing World报导,在一个月前,ARM与富士通(Fujitsu)联手开发超级电脑Post-K Computer,要取代理研(Riken)的超级电脑K Computer。 ARM在ARMv8-A架构上推出Scalable Vector Extension(SVE),要加速HPC效能。 ARM推出新的互连科技ARM CoreLink CMN-600一致性网状网路互连和CoreLink DMC-620动态记忆控制器,让最新的ARM架构单芯片可以有更高的资料吞吐量。公司表示,
[单片机]
快速学Arm(20)--中断向量控制器VIC[2]
上面是一个用来介绍VIC及各种寄存器关系的图,因为博客里不能放太大的图,我只能将其缩小得几乎无法看见内容的大小了. 曾经有领导劝我心态要平和,不能以加班来证明工作的好坏,我真的虚心接受.其实我也不喜欢加班,只是太忙不得已而已.某事在人,成事在天,自己尽了力,就不用去管成与不成了,总觉得这不是我的作为.但也没有办法,古人说的话总是有几分道理的. 上面的图是针对lpc213x或者lpc214x而言的,看了一下lpc2400的英文文档,有些寄存器好像有些不一样.也就是说我下面写的寄存器的数量可能与我前一篇讲的不完全一致,我想细节不影响道理.我尽可能使用lpc2400的文档来学习,因为我手里的开发板就是这样型号的. 我们前面
[单片机]
快速学<font color='red'>Arm</font>(20)--中断向量控制器VIC[2]
基于OMAP架构的嵌入式指纹识别系统设计与应用
  引言   生物认证技术是信息时代的重要产物之一。人体生物特征具有唯一性与稳定性,因此,人们开发了指纹、脸型、语音、虹膜、遗传基因(DNA)结构等多种生物特征识别技术。在各种生物特征中,指纹的特征性能优异,指纹识别技术也正日趋成熟。因此,针对汽车安防领域的市场需求,本文设计了一种基于OMAP架构的嵌入式指纹识别系统。该系统识别率高、处理速度快、可扩展性强,必然有着广阔的应用前景和研究价值。   开放式多媒体应用平台OMAP   TI公司的OMAP(Open Multimedia Applications Platform)平台是基于DSP的开放式多媒体应用平台。它采用双核结构,把高性能低功耗的DSP核与控制性能强的ARM微
[安防电子]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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