新闻中心

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

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

作者: 时间:2016-12-02 来源:网络 收藏
ARM公司是世界最大的半导体知识产权供应商,拥有全球近200家半导体公司的客户。目前,80%的GSM手机,99%的CDMA手机,以及未来3G手机也都是采用基于ARM核的嵌入式处理器。提供研究分析信息的机构 Gartner Inc,2003年6月份统计,2002年ARM在全球半导体IP供应商中排名第一,占市场份额的19.8%,销售收入达1.8亿美圆,比2001年增长 10%。
目前,除了像TI OMAP, Intel的Xscale和Motorola的IMX系列这样的移动终端处理器采用ARM核外,也还有象Samsung, Atmel, Sharp, OKI和Philip等半导体公司设计一些通用ARM核的处理器,可以广泛应用在各种嵌入式系统,现在在市场上看到比较多的有S3C44B0, 4510,2410,AT91系列和Intel PXA255等。
ARM处理器是32位设计,同时也配置了16位指令集,软件可以以16位编码与等价32位代码相比,占用的存储器空间可以节省约35%。ARM处理器目前有ARM7, ARM9, ARM9E, ARM10, ARM11系列产品和来自合作伙伴Intel Xscale和Strong ARM系列ARM7,适合于中低端的网络设备、终端、各种通用型的嵌入式应用和工业控制等领域。ARM9适合于智能手机、PDA和先进的控制管理和仪器仪表应用。Intel Xscale系列产品提供了高性能价格比、低功耗、适用于智能无线终端、PDA、家庭网络和网络存储器设备等应用。
嵌入式操作系统是ARM CPU重要的软件基础
从8位/16位单片机发展到以ARM CPU核为代表的32位嵌入式处理器,嵌入式操作系统将替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。嵌入式操作系统可以提供ARM CPU核和外设的设备管理,如核的初始化、MMU(内存管理单元)、定时器、中断、串口、SPI、GPIO、以太网、图形接口等,嵌入式操作系统提供任务调度、内存管理、中断处理、同步互斥机制、文件系统和网络功能,更重要的一点是嵌入式操作系统对应用程序可以起到屏蔽的作用,让应用程序员面向操作系统级开发应用软件,并易于在不同的基于ARM核的嵌入式处理器上移植。
嵌入式操作系统都一般具有一定的实时性,易于裁剪和伸缩,可以适合于从ARM7 到Xscale各种ARM CPU和各种档次的应用,嵌入式操作系统可以使用广泛流行的ARM开发工具,如ARM公司的SDT/ADS和Real View、IAR EW等也可以使用开源的软件,如GCC/GDB、KDE或Eclipe开发环境,市场上还有商业厂商的专用的开发工具,如Tornado、μC /View、μC/KA、CODE/Lab、Metroworks等.
本文就目前国内在ARM CPU上广泛采用的三种嵌入式操作系统做个分析,μC/OS-II、μCLinux和嵌入式Linux。后两种同属于Linux,前者是针对没有MMU的微处理器,如ARM7 TDMI核,后者可适用于绝大多数有MMU的微处理器中,如ARM920T,当然,文章也会涉及到其它支持ARM CPU的嵌入式操作系统。
μC/OS-II嵌入式实时内核
由Jean Labrosse先生著,邵贝贝老师翻译的《嵌入式实时操作系统μC/OS-II》先后由电力出版社(第一版)和航空航天大学出版社出版(第二版)发行了近万册,相信有数以千计的学生、老师和工程师正在使用μC/OS-II,在过去的一年中(2003),在《电子产品世界》、《电子设计应用》和《单片机和嵌入式系统应用》等杂志和各种学术会议上的有μC/OS-II相关论文就有几十余篇。全世界数百种设备已经在使用μC/OS-II,包括如手机、路由器、不间断电源、飞行器、医疗设备和工业控制设备,在中国也已经有包括香港权智,首科希电,安控科技在内的10余家公司购买了产品授权。
μC/OS-II已经有ARM7TDMI、ARM9和Strong ARM等各种ARM CPU的移植,支持包含Atmel、Hynix、Intel、Motorola、Philips、Samsung、Sharp等公司的ARM核的CPU。 μC/OS-II的移植也相当容易,与CPU相关的代码包装在三个文件中,os_cpu.h,os_cpu_a.asm,os_cpu_c.c,而且 Jean Labrosse先生的应用笔记AN-1011和AN-1012对ARM7、AN-1337对ARM9的移植过程都做了详细的说明。
μC/OS-II有60余个系统调用,覆盖任务、定时器、信号量、事件标志、邮箱、队列和内存管理,已经包含了传统嵌入式操作系统内核(如PSOS,VRTX)的功能,还支持互斥型信号量(Mutual Exclusion Semaphone),这是90年代的嵌入式操作系统内核,如Vxworks和VRTXsa才有的技术。
μC/OS-II因为是可抢占的实时内核,所以μC/OS-II与商业嵌入式实时内核在性能上没有什么差异,μC/OS-II没有用户态和内核态,任务(线程)或中断和任务切换的响应可以很快,主要是和不同的ARM CPU相关的。最新的2.7x版本还增加了算法以避免在移植中修改OSINTCEXSW()中的堆栈指针。这样可以保证μC/OS-II在不同的CPU上运行更稳定,移植更方便。
总之,μC/OS-II是一个非常容易学习(有一本很好的讲解很清楚的书),结构简单,功能完备和实时性很强的嵌入式操作系统内核,适合于各种嵌入式应用以及大专院校教学和科研。
μC/OS -II目前除了内核外还有商业化文件系统μC/FS,图形系统μC/GUI以及任务调试工具μC KA和μC View,μC/OS-II自己目前也有TCP/IP。如果需要,可以购买商用的TCP/IP,如InterNiche (www.iniche.com),也可以采用免费的TCP/IP项目如LWIP (http://www.sics.se/~adam/lwip/),但无论在功能还是稳定性与商业代码无法比拟。
最后需要说明,μC/OS-II不是免费软件,任何人学习使用μC/OS-II需要购买《嵌入式实时操作系统μC/OS-II》一书,使用了μC/OS-II的产品需要购买产品生产授权,购买了此授权的还可以得到开发期间的技术支持和升级服务。
IAR PowerPAC操作系统
IAR PowerPac for ARM是老牌欧洲瑞典工具公司IAR开发的一个经过整合的32bit RTOS和中间件家族,包括一个占用存储器极少的实时操作系统和一个通用的文件系统。还有USB协议栈和TCP/IP v4网络协议栈。IAR PowerPAC适合于不同产业中各种各样的嵌入式应用,例如测试与测量、工控、电信、医疗以及消费类电子产品等。
IAR PowerPac for ARM能够与IAR Embedded Workbench无缝集成,即使面对最复杂的应用也能提供完整的开发环境。IAR PowerPac 是一个有丰富功能的实时操作系统( RTOS ),包含一个高性能的文件系统。以及附加的USB和TCP/IP,Web Server软件包。IAR PowerPac 与 IAR 嵌入式工作台无缝集成,为不同制造商的 ARM 设备提供了丰富的范例项目和板级支持包。
IAR PowerPac 及协议栈
IAR提供PowerPac实时操作系统和文件管理系统、USB协议栈以及TCP/IP协议栈,其授权方式是工程师坐席收取License费用,没有进一步的版税,降低了最终用户的风险。
μCLinux操作系统
μCLinux是Linux小型化后,适合于没有MMU的微处理器芯片而裁剪成的小型化Linux操作系统,在ARM CPU系列中,ARM7 TDMI,ARM940T等ARM核的CPU产品,如果希望使用Linux操作系统,只能用μCLinux,当然,μCLinux也支持Motorola Dragonball, Coldfire等其它中低端嵌入式处理器。
μCLinux保持了传统Linux操作系统的主要特性,包括稳定、强大的网络和文件系统的支持,μCLinux裁剪了大量的Linux内核以缩小尺寸,适合象512k RAM,1M Flash这样小容量,低成本的嵌入式系统。
μCLinux 的项目是由Linux 2.0.38内核开始的,第一个项目是Motorola 68EZ328,目前已经有2.4 Linux支持的一些移植的版本,如S3C2500, 44B0等ARM芯片,这些,你可以在μCLinux的官方网站www.uclinux.org上找到,μCLinux近期主要是在发展各种2.4.x版本的移植,以期跟上Linux社会主流的发展趋势(因为今年Linux 2.6将开始成为主流的内核)。
μCLinux系统小型化的另一个重要原因是采用了μCLib库替代 Linux的Glib库,使用μCLib可以大大减少应用程序的代码尺寸,对于中小型嵌入式应用,μCLib功能可以满足需要,所以目前即使是某些采用 Linux 2.4内核的嵌入式LINUX系统也采用μCLib库的做法。μCLinux中,由于没有内存保护机制,应用代码一般采用静态连接的方式,而且在 μCLinux中采用Flat文件执行格式(Linux是Coff或Elf格式), μCLinux和应用代码都可以支持固化,存储在Flash存储介质中,不需象Linux需要经过一次Flash到RAM的拷贝。所有这些,使得 μCLinux更象传统意义上的嵌入式操作系统。
μ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)等方面做了改进和提高。
上一页 1 2 下一页

评论


技术专区

关闭