查看: 4222|回复: 0

转载一篇,关于RTEMS,希望大家多讨论这个好系统

[复制链接]
发表于 2011-6-27 13:45:07 | 显示全部楼层 |阅读模式
嵌入式领域中,这几个系统目前用的特别多,其他使用的系统还有VXWORKS, NECLEUS等。LINUX是众所周知的,它既用于桌面系统,也用于嵌入式产品。对于功能强大的CPU,如ARM9及其后续版本,主频大于150M,选择使用LINUX则较好;对于功能较弱的产品,主频在50M以上,150M以下的CPU,如ARM7,CORTEX等,选择RTEMS则较好或UCLINUX;对于8位单片机,则选择UCOS
总的来说,在选择UCOS,RTEMS和LINUX时应注意以下几个原则:

1。选择LINUX
   硬件要求:150M以上主频的CPU,内存应大于8M,存储设备应大于4M
   技术要求:公司应具有开发LINUX的能力,必须有至少一个完全精通LINUX的,否则做出的东西不可能达到产品级。LINUX中存在着较多的错误,举几个例子:
            a.INGO MOLNAR在LINUX中加入实时功能的时候,错误地把时间的处理放在SOFTIRQ中处理,导致系统时间偏移很大,对于对时间精度要求很高的应用的程序来说,这是个非常大的缺陷,如果公司没有实力,则不可能解决
            b.LINUX中的驱动基本上都存在这样那样的问题,对于产品来说,这些错误是不可忍受的,如CAN的解决方案SOCKETCAN,里面缺少同步机制,导致其死锁,建立在其上的应用在异常情况发生后则使通信变成不可能。还有RTC的驱动,如DS1307,DS12887等,时间的读写会发生错误,需要进行处理
            c.不同MCU的相关代码,也存在着对DATASHEET理解的错误,而出现错误,如AT91SAM9263的PIT设置中就多加了1,LINUX-2。6。21。5中就有这个问题,但在LINUX-2。6。29后好象就解决了。

   很多公司通常找一两个搞了一两年的人员来做这个,其后果是可想而知的。这些人员可能就只会用编译好的TOOLCHAIN来把内核编译编译就交付使用,显然这样的产品后续问题会很多。

2。选择RTEMS或UCLINUX
   硬件要求:50M-150M主频CPU,内存应大于4M,存储设备应大于1M(对UCLINUX);对RTEMS,硬件需求基本没特别的要求,RTEMS编译后的IMAGE可以小于100K,甚至只有50-60K
   技术要求:公司应有一个懂操作系统的,因为RTEMS虽然较为简单,但BSP很不全,特别是占83%市场的ARM相关的BSP不全,如CORTEX支持没有,因此公司需要自己编写CORTEX的进程切换代码,相关的BSP支持,如CLOCK,启动代码等等

3。选择UCOS
   硬件需求:基本上无特别的硬件需求
   技术要求:公司应有一个懂操作系统的,不过不要也可以,因其代码基本没有多少,里面什么东西也没有,两三天就可以看完看懂,不过做出的产品的稳定性怎么样就比较难保证。对操作系统的支持很少很少,就是几个进程块之间切换加上个优先级选择而已。对于没有什么技术实力的公司,选用这个可能是个选择,不过由于它什么也不支持,很多东西也需要开发,如针对不同CPU的进程切换等等都需要自己搞,如果公司没一个人懂操作系统,找个外面的人帮忙开发或从网上下载别人随便写的东西可能是一个途径。

从公司的角度考虑,如果公司的产品比较多,开发不同档次的产品,我的建议是:
1。高端的产品使用LINUX,低端的产品选择RTEMS。由于RTEMS和LINUX都支持POSIX标准,则应用开发人员无须熟悉不同的系统接口而直接可以在两个平台上开发产品功能功能
2。两个系统都使用了好多年,虽然有些功能可能存在这样那样的问题,但操作系统部分是经过大量验证的,产品稳定性得到了保证。

如果公司不具有一定实力,开发的产品也比较单一,可选择UCOS。或者公司开发的产品太多,又要考虑节约成本,可选择使用LINUX和RTEMS,但把该部分的开发外包。

从我多年从业的经验和了解的情况看,计算机相关公司及开发的产品多选用LINUX和RTEMS,专业公司因实力不够多选用UCOS,特别是国内的公司
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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