【问题标题】:Comparison of embedded operating systems?嵌入式操作系统的比较?
【发布时间】:2010-09-11 21:03:09
【问题描述】:

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

对系统的主要限制是:

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

团队之前使用的操作系统有 VxWorks、ThreadX、uCos、pSOS 和 Windows CE。

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

还有其他我们应该考虑的操作系统吗? (我们推荐了 eCos 和 RT-Linux)。

编辑 - 感谢您迄今为止的所有回复。可惜我不能全部标记为“已接受”。

【问题讨论】:

    标签: operating-system embedded threadx


    【解决方案1】:

    这完全取决于为您的团队分配了多少时间来学习“新”实时操作系统。
    您是否有任何理由不想使用人们已经使用过的东西?

    我在 vxWorks 方面有丰富的经验,我喜欢它,但在为 WindRiver 工作时,请忽略我的意见。

    uC/OS II 的优点是在 Labrosse 的书中得到了完整的文档记录(正如在源代码中实际解释的那样)。不过不知道网络支持。

    我知道 pSos 不再可用。

    你也可以看看this list of RTOSes

    【讨论】:

    • 就操作系统选择而言,团队的经验是一个高优先级的鉴别器。我主要是想看看团队已经体验过的东西是否有新的变化。我们只是一个小团队,可能无法覆盖所有基地。
    • Labrosse 本人已经为我的公司回答了有关 uC/OS 及其配套产品的电子邮件问题,并且他的员工一直很友好地合作。多年来,我将 uC/OS 用于多个咨询项目,如果它不坚如磐石,我不会继续这样做。
    • 链接到已删除的 SO 问题更新到维基百科一。
    【解决方案2】:

    多年前我曾与QNX 合作过,对此我无话可说。即使在那个时候,QNX 4(与 Neutrino 微内核相比确实很笨重)非常适合低内存情况(尽管 32MB 与我们不得不使用的 1-2MB 相比oodles),虽然我没有明确地使用任何基于 Web 的东西,但我知道 Apache 是可用的。

    【讨论】:

    【解决方案3】:

    我认为仔细评估“RTOS”的含义是明智的。我在一家构建高性能嵌入式系统的大公司工作了多年,他们称它们为“实时”,尽管它们实际上并非如此。它们具有低延迟和确定性调度程序,十分之九,这就是人们说 RTOS 时真正追求的。

    真正的实时需要硬件支持,这可能不是您真正的意思。如果你想要的只是低延迟和确定性调度(同样,我认为这就是人们在 90% 的情况下所说的“实时”的意思),那么任何 Linux 发行版都适合你。您甚至可以使用 Windows(不过我不确定您如何控制 Windows 调度程序......)。

    同样,请注意“实时”的含义。

    【讨论】:

    • 好点!我的系统是“软”实时,而不是“硬”实时。
    【解决方案4】:

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

    【讨论】:

    • NetBurner 运行 uC/OS 的定制版本,介于 uC/OS-I 和 uC/OS-II 之间。 NetBurner 是一个很棒的平台,像 5272 这样的许多主板都有足够的 RAM 让您使用 所有 C++ 库、流、STL、模板等。
    【解决方案5】:

    选择您的团队熟悉的操作系统可能是一个明智的决定。不过,我想推广两个好的开源选项:

    两者都具有适用于各种架构的大量功能和驱动程序。你还没有提到你将使用什么架构。它们提供了 POSIX 层,如果您想尽可能地保持便携性,这是很好的选择。

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

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

    【讨论】:

    • 谢谢! POSIX 和许可问题对我们的决定都很重要(尽管我在最初的问题中没有提到它们)。
    【解决方案6】:

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

    【讨论】:

    • Keil RTX 现在归 ARM Semiconductor 所有,RTX 工具包加上他们的 uVision IDE 和 JTAG 工具对于经典的 ARM 内核和较新的 ARM cortex M3 内核来说是非常好的技术。
    【解决方案7】:

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

    【讨论】:

    • 我想这取决于您将其与什么进行比较。 :-) 我需要多玩一点 CE 的配置才能打电话。
    • @Peter K:我个人觉得“额外的重量”是值得的。但是你会发现许多 Linux 拥护者会尖叫着说 Linux 可以进一步缩小,这可能是真的。不过,我认为这种意见对我所做的事情并不重要。
    • Back@U: 再次感谢 cmets。我们当然还在考虑 CE。
    【解决方案8】:

    发帖以同意 Ben Collins 的观点 - 您确实需要确定您是否有软实时要求(主要用于人机交互)或硬实时要求(用于与时间敏感设备的接口)。

    【讨论】:

      【解决方案9】:

      柔软也意味着你可以忍受偶尔的一些小问题。

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

      【讨论】:

        【解决方案10】:

        VxWorks 不错:

        1. 良好的文档;
        2. 友好的开发工具;
        3. 低延迟;
        4. 确定性调度。

        然而,我怀疑 WindRiver 是否会将他们的主要注意力转移到 Linux 上,而 WindRiver Linux 是否会打入 WindRiver VxWorks 的市场。 市场少,对工程师的要求少。

        【讨论】:

          【解决方案11】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-03-09
            • 2012-07-12
            • 1970-01-01
            • 1970-01-01
            • 2011-10-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多