一种看待它的方法是:嵌入式Linux从桌面Linux开始&放弃了嵌入式系统不需要的部分(这是真的吗?),而eCos是从底层为嵌入式系统设计的。
现在,假设一个ARM处理器,可能是ARM 7-性能有什么不同吗?实际上,我们说的是一个非常低负荷的系统,每天最多有500次交易。
一个比另一个(或FreeRTOS等)有什么优势吗?稳定性,成熟度,性能,开发工具,还有其他什么吗?
我所能想到的就是,如果我是,我永远不会移植到另一个o/s,那么如果我使用嵌入式Linux,我就不需要o/s抽象层来允许我在主机(桌面Linux盒)上进行单元测试。
有什么想法或评论吗?谢谢。
发布于 2010-04-20 17:34:25
我给Linux安装的每一个设备都是从头开始的,并不是某个发行版的精简版本。
eCos和Linux有不同的目标。Linux是一个功能齐全的类Unix系统,因此不太关心系统的最低要求。eCos是为经常受到资源限制的系统设计的实时操作系统。这两个OSes之间有很多重叠,而且在许多情况下,两者都会同样正常工作。
根据我的经验,如果您的系统拥有资源,并且您的需求不是微不足道的,那么Linux的开发就会更快。与RTOS开发人员相比,更容易找到合格的Linux开发人员,工具更便宜,进程之间相互保护,您在运行的系统中有更好的可视性,等等。
一个(更好的,IMHO)替代eCos是RTEMS (http://www.rtems.com)。我上次检查的时间更长了,支持的架构比eCos还多。它也有一个PC BSP,并运行在qemu下进行仿真。
发布于 2010-04-23 18:50:23
将Linux安装到ARM7上并没有真正的好处;ARM7没有MMU,而内存保护是使用像Linux这样的操作系统的主要原因。uClinux将在没有MMU的情况下在目标上运行,但是您已经失去了使用Linux的最引人注目的原因之一,并且仍然需要大量的内存资源( 4M闪存,16 MMU将是一个合理的最小内存)。
许多ARM7设备没有外部内存总线来附加那么多内存,芯片上的闪存和内存通常从32K到1M不等,这取决于设备。
Linux本质上不是“实时”的。对于实时功能,它通常与实时内核耦合在一起,Linux本质上是作为空闲任务运行的,或者是作为一个单独的虚拟机在目标上运行的。因此,如果对外部事件的确定性和快速响应是必需的,那么您将需要像eCOS这样的实时操作系统。
eCOS的伟大之处在于它拥有一个庞大的附加功能和设备支持生态系统,可以与大多数商业产品相媲美。然而,像FreeRTOS这样的东西可能更容易“启动”,但只提供线程调度程序和进程间通信机制。像文件系统或TCP/IP这样的东西需要来自第三方(尽管有同样小而免费的解决方案也适用于嵌入式系统)。
如果您使用一个简单的内核,如FreeRTOS或uC/OS-III,您将不会浪费太多时间,因此投资并不是下一次使用其他东西的抑制剂。另一方面,Linux很可能会阻止您下次使用更小、目标更窄的东西,而参观后续项目的成本可能远远超过支持您选择的操作系统所需的费用。
发布于 2010-04-20 05:55:01
嵌入式Linux == Linux在99%的情况下。您只需对内核进行不同的配置。
性能上的最大差异是,使用eCos,您可以根据您的实现/配置,有一个预期的响应时间,而对于Linux,您则任由中断控制器支配。
Linux拥有比eCos大得多的粉丝群,因此对开发有更多的帮助,它支持大量的CPU。另外,根据您想要的驱动程序,您可以在运行Linux的PC上编译和运行程序。
Linux可以检测锁/死锁,并发送自动响应/重新引导以保持系统的高可用性。
https://stackoverflow.com/questions/2672502
复制相似问题