嵌入式操作系统的比较?

时间:2008-09-22 00:31:54

标签: operating-system embedded threadx

我参与了一种或另一种类型的嵌入式操作系统,并且通常不得不使用遗留系统所具有的任何功能。现在我有机会从头开始一个新的嵌入式项目。

系统的主要限制是:

  • 它需要一个基于网络的界面。
  • 需要实时处理输入(因此需要真正的RTOS)。
  • 可用内存为32MB RAM和FLASH。

团队以前使用的操作系统是VxWorks,ThreadX,uCos,pSOS和Windows CE。

有没有人对操作系统选择进行比较或交易研究?

我们应该考虑其他任何操作系统吗? (我们已经建议使用eCos和RT-Linux。)

编辑 - 感谢迄今为止的所有回复。遗憾的是,我无法将所有标记为“已接受”。

11 个答案:

答案 0 :(得分:5)

多年前我曾与QNX合作过,除此之外别无他法。即使在那个时候,QNX 4(与Neutrino微内核相比也非常厚实)非常适合低内存情况(尽管32MB是 oodles ,而我们必须使用的是1-2MB),虽然我没有明确地使用任何基于网络的东西,但我知道Apache是​​可用的。

答案 1 :(得分:5)

这一切都取决于您的团队为学习“新”RTOS分配了多少时间 你有什么理由不想使用人们已经有过的经验吗?

我对vxWorks有很多经验,我喜欢它,但在为WindRiver工作时无视我的意见。

uC / OS II的优点是可以在Labrosse的书中完整记录(如源代码中的实际解释)。但不知道Web支持。

我知道pSos已不再可用。

您还可以查看this list of RTOSes

答案 2 :(得分:5)

我认为仔细评估“RTOS”的含义是明智的。我在一家大型公司工作多年,构建高性能嵌入式系统,并将它们称为“实时”,尽管这不是它们的真实含义。它们具有低延迟并具有确定性调度程序,并且在10次中有9次,这就是人们在说RTOS时真正想要的。

真正的实时需要硬件支持,可能不是你真正的意思。如果你想要的只是低延迟和确定性调度(再次,我认为这是人们90%的时间说“实时”),那么任何Linux发行版都可以正常工作。你可能甚至可以使用Windows(我不确定你如何控制Windows调度程序......)。

再一次,请注意“实时”的意思。

答案 3 :(得分:4)

我从netburner购买了一些开发硬件 它非常容易使用并且有很好的文档记录。它是运行uCLinux的RTOS。该公司很高兴与您合作。

答案 4 :(得分:4)

选择您的团队经验丰富的操作系统可能是明智的决定。但是,我想推广两个很好的开源选项:

两者都具有适用于各种架构的许多功能和驱动程序。您还没有提到您将使用的架构。它们提供POSIX层,如果你想尽可能保持便携,那就很好了。

此外,eCos和RTEMS的许可证都是GPL,但有一个例外,因此GPL不涵盖通过内核链接生成的可执行文件。

社区非常活跃,有些公司提供商业支持和发展。

答案 5 :(得分:2)

我们对Keil RTX系统非常满意....轻巧快速,满足我们所有严格的实时限制。它还内置了一些很好的调试功能来监控堆栈溢出等。

答案 6 :(得分:1)

我对Windows CE非常满意,尽管它“更重”。

答案 7 :(得分:1)

发布同意Ben Collins - 您确实需要确定您是否具有软实时要求(主要用于人工交互)或硬实时要求(用于与时间敏感设备连接)。

答案 8 :(得分:1)

柔软也意味着你可以偶尔忍受一些打嗝。

可靠性要求是什么?我在嵌入式Linux中使用更多通用操作系统的经验是,由于他们的智能平均情况优化试图避免饥饿和类似的个别任务,他们往往会遇到随机的打嗝。

答案 9 :(得分:1)

VxWorks很好:

  1. 良好的文档;
  2. 友好的开发工具;
  3. 低延迟;
  4. 确定性调度。
  5. 然而,我怀疑WindRiver会将他们的主要注意力转移到Linux和WindRiver Linux上会打入WindRiver VxWorks的市场。 市场减少,工程师需求减少。

答案 10 :(得分:1)

这是最新研究。最后一个是在8年多前完成的,所以这是最相关的。这些表可用于添加其他RTOS选项。您会注意到,此比较主要针对较轻的机器,但同样适用于较重的机器,前提是不需要虚拟内存。

http://www.embedded.com/design/operating-systems/4425751/Comparing-microcontroller-real-time-operating-systems