查看: 15804|回复: 59

关于嵌入式OS的选择的讨论和调查 [复制链接]

一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-14 11:28:50 |显示全部楼层
关键词: 调查 , 嵌入式 , 讨论 , 选择
本帖最后由 一朝成名 于 2009-6-18 11:26 编辑

发帖目的:调查一下关于嵌入式os的选择,另外着重的介绍几个优秀的开源os(大家很关注的问题,免费
              借此讨论一下一些优秀的os选择和使用问题。

希望大牛们都参与进来,能献上一些宝贵的经验和参考。
最近在做一个项目采用的ARM7+eCos,移植部分基本已经做完了……至于以后的性能方面,还需要单独的测试和关注。
后续会把相关的测试结果传上来。
多选投票: ( 最多可选 8 项 ) , 投票后结果可见, 共有 304 人参与投票
  (此为公开投票,其他人可看到您的投票项目)
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-14 11:31:03 |显示全部楼层

关于eCos

本帖最后由 一朝成名 于 2009-6-14 12:28 编辑

这个大家应该比较熟悉呵呵,估计大家都熟了。我就啰嗦下再贴一次,希望没有误导人:)

      eCos 中字面上C(configurable) 表示的“高可配置性”。eCos可以让开发者像在玩积木般地自由选择其执行期的元件,应用程序开发者可以针对自己的应用程序来设迟一个对其最小的RTOS环境,这跟以往应用程序就是跑在一个完整的RTOS上本质上不同,在嵌入式系统资源与内存寸土寸金的环境上,这样的开发方式是很重要的。在以往的嵌入式开发方式都是自己手工的将RTOS作缩减,对经验不足或对该RTOS不够熟悉的人将会花去许多时间,或是根本很难将RTOS拆开,但在eCos上,由于设计之初就是朝向可设迟的原则,各种元件都遵守著模块化的开发方式,而应用程序开发者只要使用eCos 中的配置,即可轻松简单的对eCos元件作量身打造,也不需对其内部实作有所了解即时RTOS的核心并提供标准系统API。
      eCos 的核心支持一般OS常见的项目如驱动程序(Device Driver)、内存管理(Memory managemant)、异常处理(exceptionhandling)、中断处理(exception handling)、线程的支持(threadsupport)、计时器(Timer)、计数器(Counter),对于即时RTOS的支持如完全优先(fullpreemptability)、最小中断延迟(minimal interrupt latencies)、线程同步(synchronization primitive)、可自定的调度原则(schedulepolicies)。此外也支持POSIX 等操作系统的标准API 及ANSI C 与常用的数学函数。支持常用的周边及通讯协议(networking stacks)支持以太网络卡,串口,USBslave等常用周边。并支持一般常用的通讯协议如IP、IPV6、ICMP、UDP、TCP、SNMP、HTTP、TFTP、FTP等。网络设迟部分,可支持静态IP 与DHCP 。GDB支持可支持主控端使用GDB 远端透过串口或是以太网络对应用程序除错。
         此外,eCos另一个优点是他支持非常多的平台和CPU,尤其是比较新的CPU比如ARM的各个系列,DSP(BlackFin)等。并且也支持很多硬件平台。目前支持的CPU包括: ARM, CalmRISC, FR-V, H8, IA32, M68K, Matsushita AM3x, MIPS,NEC V8xx, PowerPC, SPARC, SuperH 支持的硬件平台设备包括: Flash, Ethernet, 串口, USB,时钟等。其已直接支持了时下绝大部分的硬件,可在eCos 官方网站上找到支持列表。官方网站http://ecos.sourceware.org/
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-14 11:31:11 |显示全部楼层

关于RT-Thread

本帖最后由 一朝成名 于 2009-6-14 11:49 编辑


RT-Thread
是一国内开源的实时嵌入式操作系统,所有代码遵循GNUGPLv2许可证发布。首先RT-Thread是一个实时操作系统核心,完全符合实时系统的特征,做到了硬实时的要求。这个核心同时也是一个极小的微型内核,代码体积<10k,完全可以放于cache中运行以获得优秀的时间性能。其次RT-Thread也是一套面向嵌入式系统的开源组件,包含通常系统中用到的shell命令行接口,TCP/IP网络协议栈,文件系统以及图形用户界面。而向上,RT-Thread组件则提供了通用的标准C接口及BSD风格的socket接口,使得编写程序、调试程序可以在PC上进行。再次,RT-Thread(www.rt-thread.org)也是一个开源社区,一个国内实时系统、嵌入式系统的开源社区。

RT-Thread 0.3.x版本是RT-Thread下一个发行的主要版本,在这个版本中突出了它的稳定性及多种面向嵌入式系统的组件。

这个版本的功能包括:
- Kernel
- finsh shell系统
- 网络协议栈
  * ftp server
  * tftp client
  * web server
- 文件系统
  * 虚拟文件系统,能够支持混合的多文件系统
  * 目录路径格式类似于Unix,以'/'为主
  * 多分区文件系统挂载
  * FAT 12/16/32文件系统
- 完整的libc库
  * 标准的文件访问接口
- RTGUI
  * 中文显示
  * 中文输入
  * 基本的控件
  * 完善的窗口功能
  * 完善的workbench功能
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-14 11:31:50 |显示全部楼层

关于RTems

本帖最后由 一朝成名 于 2009-6-14 12:29 编辑

这个RTems着重的介绍一下,号称比Vxworks还要优秀的os~!!
RTEMS, 即: 实时多处理器系统(Real            Time Executive for Multiprocessor Systems),是一个开源的无版税实时嵌入操作系统RTOS。            它最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real          Time Executive for Military Systems),现在由OAR公司负责版本的升级与维护。目前无论是航空航天、军工,还是民用领域RTEMS都有着极为广泛的应用
      从体系结构上来看,RTEMS是微内核抢占式的实时系统,他具有下面的优点:
      
  • 优秀的实时性能
    • 支持硬实时和软实时(可抢占内核)
    • 支持优先级继承,防止优先级反转
    • 支持单调周期调度
    • 支持优先级高度协议
  • 非常的稳定
  • 运行速度快
  • 支持多种CPU,无论是ARM, MIPS,PowerPC,i386还是DSP,AVR,Zilog,都可以找到对应的BSP。
  • 高度可剪裁内核(目标系统小只有30KB;大可上百兆)1,2,3
  • 占用系统资源小,在32位系统中最小的内核只有30Kb左右1,2
  • 支持多处理器(不同于SMP,RTEMS中多个处理器是协作关系)
  • 提供POSIX API,Linux/UNIX下的程序可以方便移植
  • 提供完整的BSD的TCP/IP协议栈以及FTP、WebServer、NFS等服务
  • 使用面向对象思想设计,可以大大缩短开发周期
  • 核心代码使用C/C++写作,可移植性好
  • 支持ISO/ANSI C库
  • 支持ISO/ANSI C++库以及STL库
  • 支持精简的可重入glibc库
  • 支持图形用户界面(Microwindows/Nano-X)
  • 支持文件系统(FAT,IMFS等)
  • 支持多种调试模式(包括GDB,DDD,串口调试,以太网调试)
  • 支持32位处理器,Tiny RTEMS项目将对8位和16位处理器进行支持2
  • 支持JAVA虚拟机


官方网站http://www.rtems.com/
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-14 12:04:14 |显示全部楼层
附上,RTems RT-linux  Vxworks性能PK测试,老外测试的……

三种OS性能PK.pdf

37.14 KB, 下载次数: 170, 下载积分: 积分 -1

原野之狼 (离线)
积分
19889
帖子
362
发表于 2009-6-14 12:32:50 |显示全部楼层
成名 开始 开坛布道 啦~
俺来支持一把~
相信朋友
相信伙伴
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-14 12:55:53 |显示全部楼层
我是抛俩砖头,等真人们现身……
网名招摇了点,人不招摇,大家都知道:)
粉丝 (离线)
积分
3577
帖子
146
发表于 2009-6-14 12:56:46 |显示全部楼层
名人也出招了!好啊!招数大PK!
sinanjj (离线)
积分
37164
帖子
2134
发表于 2009-6-14 21:49:15 |显示全部楼层
好无悬念的linux,非RT。

兼容性和日后atom类CPU的崛起。

要么不OS,直接复杂状态机,要么液晶屏键盘都带上弄个小电脑。

为了日后的兼容性,你说用啥。

而且有些嵌入式设备就跑一个PC软件,比如数据库。
宇宙飞船 (离线)
积分
35643
帖子
692
发表于 2009-6-14 22:00:33 |显示全部楼层
本帖最后由 宇宙飞船 于 2009-6-14 22:02 编辑

ECOS 俺没研究过,猜应该是ECOS的作者把LINUX的所有的外围设备驱动去掉,余下的内核再重新自行加上简化的必要的一些外围设备驱动?
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-15 09:06:49 |显示全部楼层
好无悬念的linux,非RT。

兼容性和日后atom类CPU的崛起。

要么不OS,直接复杂状态机,要么液晶屏键盘都带上弄个小电脑。

为了日后的兼容性,你说用啥。

而且有些嵌入式设备就跑一个PC软件,比如数据库。
sinanjj 发表于 2009-6-14 21:49


看来司南还是没仔细看阿,eCos,RTems直接支持POSIX,也就是说linux下的软件可以不用修改的移植过来
linux下的驱动也可以直接拿来用
说什么一统天下的话我不相信
在实时要求严格的场合,并不是linux所擅长的,还有资源的问题,上面的几个内核不管从RAM还是flash来说,要求很底
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-15 09:17:01 |显示全部楼层
ECOS 俺没研究过,猜应该是ECOS的作者把LINUX的所有的外围设备驱动去掉,余下的内核再重新自行加上简化的必要的一些外围设备驱动?
宇宙飞船 发表于 2009-6-14 22:00

     eCos
最早是Cygnus公司开发,并不是出自linux内核…后来被REDHAT收购了,现在开源了,为了能更好的推广吧。
wangkj (离线)
积分
57312
帖子
3129
发表于 2009-6-15 09:59:26 |显示全部楼层
永远扯不清的话题,赚钱是王道。
sinanjj (离线)
积分
37164
帖子
2134
发表于 2009-6-15 11:39:23 |显示全部楼层
又见换名的linux。。。。

android,moblin,ecos。。。。

内核稍微改改的就该归到linux大类里。
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-15 16:54:50 |显示全部楼层
又见换名的linux。。。。

android,moblin,ecos。。。。

内核稍微改改的就该归到linux大类里。
sinanjj 发表于 2009-6-15 11:39


盲流盲流盲流……看好标题好不
都叫linux算了,RTems出来的时候还没linux呢
sinanjj (离线)
积分
37164
帖子
2134
发表于 2009-6-15 21:58:55 |显示全部楼层
嵌入式和PC的界限越来越模糊了。

CPU和GPU要做在一起了。

说不清了。

MCU的程序怎么大也没见几个用OS的,清华某同志忽悠的UCUO2火过一阵子,同学也被忽悠去过,实地也用过,我们这也有自己写MCU的小型OS的,经我测试,都是中看不中用的东西。

就说实时这一点,关键是很多任务都是不能被打断的,你咋时间片?

而且到一定层次你会喜欢直接画流程图,状态机,复杂大循环来在MCU上跑,MCU上操作系统将死(实时操作系统将死是同样的)。就应用价值来看,MCU上用操作系统还不如学习ADA等高级语言呢。

而高端嵌入式同PC界限越来越模糊。小型PC==嵌入式。那么,你认为从PC过渡来的巨量coder会选择哪个系统呢?

RTems出来的时候没linux有unix吧。linux和unix的关系知道吧。
选这些东西不给选择FC5和debian一样,选android和moblin一样。选java还是C#一样
lelee007 (离线)
积分
29396
帖子
2683
发表于 2009-6-17 06:24:59 |显示全部楼层
哈哈,linux

俺只搞过linux,其他的OS有所耳闻,从未亲身体验,不知道投这一飘算不算

求实时性的话,上OS并非什么好事情

多任务还要求实时性的系统,应该都不会是太复杂的系统,有一大堆资源需要管理

裸奔的系统用在强实时性的场合,开发成本和升级维护基本可以不计,这些系统根本不会像消费类产品那样低利润,所以成本考虑不是大头

消费类的嵌入式,或者说实时性不太强的嵌入式吧,我想linux应该是趋势,甚至可能成为一种标准,其他的一些OS可能会在有特殊要求的场合使用
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-6-17 10:32:00 |显示全部楼层
本帖最后由 一朝成名 于 2009-6-17 10:33 编辑

  • 开此帖的目的就是介绍一些非主流的os以引起大家的重视。集大众之经验,让每个人找到一种稳定、方便开发、可行、易于扩展、移植、维护的os方案。
  • 说下这次我们的项目的一些参数,实时性、多任务(几十个多任务执行),ARM7,TCP/ip协议,文件系统,有可能还要支持一个小型的webserver和gui。FLASH 2MB,内存2MB,在这种情况下,如果说裸奔,难度可想而知。
  • 裸奔、os各有千秋,我们裸奔不排斥os,使用os也没有排斥裸奔,每个不同的方案有每个不同最佳的解决方法。linux是主流这个大家是有目共睹,不可否认,我们要学习和努力的方法,但是我们也要关注一些其他的非主流os,
  • 作为一种工具,让他们更好的服务于我们的项目中。没有最好,只有更好……
qupeng2008 (离线)
积分
38071
帖子
1910
发表于 2009-6-17 10:53:31 |显示全部楼层
不懂,支持讨论~
积分
61261
帖子
1240
发表于 2009-6-17 15:17:43 |显示全部楼层
不管哪个,熟练掌握一种就不会饿死了,嘿嘿。
您需要登录后才可以发表评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备11013910号 | 京公网安备11010502021702
回顶部