选择ARM CPU的操作系统

2019-07-12 23:50发布

  来源:麦克泰软件 作者:何小庆    本文就目前国内在ARM CPU上广泛采用的三种嵌入式操作系统μC/OS-IIμCLinux和嵌入式Linux作分析,提供选择一个合适的嵌入式操作系统的依据。

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

     
嵌入式操作系统都具有一定的实时性,易于裁剪和伸缩,可以适合于从ARM7Xscale各种ARM CPU和各种档次的应用,嵌入式操作系统可以使用广泛流行的ARM开发工具,如ARM公司的SDT/ADSRealView,也可以使用开发软件,如GCC/GDBKDEEclipe开发环境,市场上还有专用的开发工具,如TornadoμC/ViewμC/KACODE/LabMetroworks等。 

     
本文就目前国内在ARM CPU上广泛采用的三种嵌入式操作系统(μC/OS-IIμCLinux和嵌入式Linux)作分析。 μC/OS-II嵌入式实时内核 

     
全世界数百种设备已经在使用μC/OS-II,包括手机、路由器、不间断电源、飞行器、医疗设备和工业控制设备。μC/OS-II已经有ARM7TDMIARM9Strong ARM等各种ARM CPU的移植,支持包含AtmelHynixIntelMotorolaPhilipsSamsungSharp等公司的ARM核的CPUμC/OS-II的移植也相当容易,与CPU相关的代码包装在三个文件中,它们是os_cpu.hos_cpu_a.asmos_cpu_c.c 

      μC/OS-II
60多个系统调用,覆盖任务、定时器、信号量、事件标志、邮箱、队列和内存管理,已经包含了传统嵌入式操作系统内核(PSOS,VRTX)的功能,还支持互斥型信号量,这是90年代的嵌入式操作系统内核,如VxWorksVRTXsa才有的技术。 

      μC/OS-II
因为是可抢占的实时内核,所以μC/OS-II与商业嵌入式实时内核在性能上没有什么差异,μC/OS-II没有用户态和内核态,任务(线程)或中断和任务切换的响应可以很快,主要是和ARM CPU相关的。最新的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(内存管理单元)的微处理器芯片而裁剪成的操作系统,如果ARM CPU系列中的ARM7 TDMIARM940T等产品希望使用Linux操作系统,只能用μCLinux,当然,μCLinux也支持Motorola DragonballColdfire等其它中低端嵌入式处理器。
 
      μCLinux
保持了传统Linux操作系统的主要特性,包括稳定、强大的网络和文件系统的支持,μCLinux裁剪了大量的Linux内核以缩小尺寸,适合象512k/b RAM1M/b Flash这样小容量、低成本的嵌入式系统。μCLinux系统小型化的另一简化是采用了μCLib库替代LinuxGlib库,使用μCLib可以大大减少应用程序的代码尺寸,对于中小型嵌入式应用,μCLib功能可以满足需要,所以目前即使是某些采用Linux 2.4