新闻  |   论坛  |   博客  |   在线研讨会
嵌入式uClinux和eCos对比
armlyn | 2009-10-28 15:10:23    阅读:643   发布文章

一、应用程序运算能力
    在
Linux和uClinux操作系统启动时候,都会有这样一句话——Calibrating delay 1oop..0k—xxx BogoMips,这一过程叫作BogoMips(读作bogumips)。Linus Torvalds引入BogoMips主要有两个目:①给用户一个大概系统运算能力概念;②由于系统中有许多代码需要精确软件延时,通过BogoMips来获得软件延时每个周期消耗时间。BogoMips过程就是一个简单计数循环,看ls可以循环多少次,然后除以500000就得到了BogoMips数值。
二、存储器访问能力
    采用一种同时能够测试缓冲控制器和标准存储器访问函数测试方法来测试存储器访问能力。在这里,选用田纳西大学Philip J.Mucci等人提出CacheBench方法。其工作原理是,重复顺序读/写一定长度存储器块数据,记录重复n次所用时问,用总读/写数据除以耗时,得到读/写每一字节所用时间;同时,通过调整数据块长度和不同读写方法(使用标准函数或者使用直接代码读写),获得不同条件对存储器读/写影响。
三、驱动程序性能测试
    为了测试系统驱动程序性能,选择CF卡驱动程序作为测试对象。我们测试方法简单,就是在应用程序中打开一个大文件(10MB),然后调用fread读文件,每次读512字节到缓冲中,直至将文件读完。由于uClinux块驱动有一个叫集簇功能,它可以将对块设备多个请求归并在一起执行,这样对于像磁盘这样反应较慢设备可以提高整体读/写速度。 
四、开发模式和开发难易度
    eCos开发模式是一套更接近传统单片机开发模式(如应用程序静态链接),uClinux开发模式则更接近Linux开发模式。因此可以预见,eCos更受一批从8位单片机系统开发转到32位嵌入式系统开发设计人员欢迎.而uClinux更受熟悉Linux设计人员青睐。
四、可移植性
    eCos系统一J移植性应该明显比uClinux好。在eCos系统中,每一个硬件平台都用一个单独目录存放针对这一硬件平台硬件抽象层代码和配置信息,较容易让用户理解。而uClinux硬件抽象层代码分布在好几个目录中,而且各个平台代码混合在一个源文件中,通过#ifdef #end方式来选择不同硬件平台代码。另外,eCos在移植时所要更改源代码文件数少于uClinux。
    可移植性不应仅仅是操作系统移植,还应该包含应用程序移植性。程序可移植性,是由两方面决定。首先,应用程序必须被编写得可以移植。关于这方面,A.Dolenc,A.Lemmke和D.Keppel在其Notes On WritingPortable Programs In C一文中给出了很好解释。其次是嵌入式操作系统提供较丰富系统函数和标准函数库。一个系统提供函数库越丰富,则越多应用程序不用进行较大更改就能直接在其上运行。在标准函数方面,eCos只提供了较为简单C标准函数库和IEEE浮点运算数学库,uClinux则提供了,与Linux下glibc相兼容函数库,而glibc是大部分开放源代码项目构建基础。由此可以看出,在应用程序可移植性上,uClinux兼容性更好。深圳龙人计算机拥有专业的研发队伍。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
龙人嵌入式产品事业部专业提供ARM开发板(ARM9和ARM7),ARM教学系统,ARM工控模块,DSP开发工具,仿真器等产品,另外龙人还提供ODM研发和嵌入式开发。想做嵌入式,找龙人!
推荐文章
最近访客