首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式操作系统uClinux和eCos的比较 02

嵌入式操作系统uClinux和eCos的比较 02

2.3 驱动程序性能测试
  为了测试系统的驱动程序性能,选择CF卡驱动程序作为测试对象。我们的测试方法简单,就是在应用程序中打开一个大文件(10MB),然后调用fread读文件,每次读512字节到缓冲中,直至将文件读完。
  测试结果:uClinux的性能优于eCos。这主要是由于uClinux的块驱动有一个叫集簇的功能,它可以将对块设备的多个请求归并在一起执行,这样对于像磁盘这样反应较慢的设备可以提高整体的读/写速度。
  3 综合应用性能比较
  我们知道,一个图像压缩和解压缩的程序往往需要大块的存储器访问操作、密集的数学运算和大量的磁盘访问。由于现在手持的嵌入式设备大多需要有这方面的应用需求,因此一个图像压缩和解压缩的应用程序既符合理论研究的要求,又符合实际应用的需求。为此我们选择gif图片的编解码的程序作为综合性能测试的测试程序。
  我们看到,eCos和uClinux解码速度都很低,主要是因为完全使用了软件解压缩;而且由于AT76C120的图像显示格式是YCrCb的,而giflib的解压缩结果是RGB的,因此必须使用浮点运算将RGB的数据转换到YCrCb。AT76C120的arm7TDMI不支持浮点指令,因此不得不使用软件仿真来完成浮点运算,这其中大部分时间被用在了从RGB到YCrCb的转换上。测试结果基本与前面基本操作系统测试的结果是一致的——eCos在整体上是优于uClinux的。
  4 可移植性
  eCos的系统一J移植性应该明显比uClinux的好。在eCos系统中,每一个硬件平台都用一个单独的目录存放针对这一硬件平台的硬件抽象层的代码和配置信息,较容易让用户理解。而uClinux的硬件抽象层的代码分布在好几个目录中,而且各个平台的代码混合在一个源文件中,通过#ifdef+#end的方式来选择不同的硬件平台的代码。另外,eCos在移植时所要更改的源代码文件数少于uClinux。
  可移植性不应仅仅是操作系统的移植,还应该包含应用程序的移植性。程序的可移植性,是由两方面决定的。首先,应用程序必须被编写得可以移植。关于这方面,A.Dolenc,A.Lemmke和D.Keppel在其Notes On WritingPortable Programs In C一文中给出了很好的解释。其次是嵌入式操作系统提供较丰富的系统函数和标准函数库。一个系统提供的函数库越丰富,则越多的应用程序不用进行较大的更改就能直接在其上运行。在标准矫妫琫Cos只提供了较为简单的C标准函数库和IEEE浮点运算数学库,uClinux则提供了,与Linux下的glibc相兼容的函数库,而glibc是大部分开放源代码项目的构建基础。由此可以看出,在应用程序的可移植性上,uClinux的兼容性更好。
  5 开发模式和开发难易度
  eCos的开发模式是一套更接近传统单片机的开发模式(如应用程序静态链接),uClinux的开发模式则更接近Linux的开发模式。因此可以预见,eCos更受一批从8位单片机系统开发转到32位嵌入式系统开发设计人员的欢迎.而uClinux更受熟悉Linux的设计人员的青睐。
  6 总 结
  通过以上比较可知,由于eCos从一开始设汁时就是以嵌入式系统为目标的,因此在性能上,有较大优势;反之,uClinux则是由Linux进化而来的,因此在以速度和优化为主题的嵌入式系统环境中,并不占优势。但是由于有Linux的强大后盾,其功能的强大和兼容性是非常突出的。如果应用程序是从其他系统中移植过来的,或者开发人员有Linux的背景,或者开发成本占总成本的比例较高,则uClinux比较适合;反之,eCos比较适合。
返回列表