11

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

对系统的主要约束是:

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

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

有没有人有关于操作系统选择的比较或贸易研究?

还有其他我们应该考虑的操作系统吗?(我们建议使用 eCos 和 RT-Linux)。

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

4

11 回答 11

5

多年前我曾与QNX合作,对此我无话可说。即使在那个时候,QNX 4(与 Neutrino 微内核相比确实是厚实的)非常适合低内存情况(尽管 32MB与我们必须使用的1-2MB相比是个大问题),虽然我没有明确表示玩任何基于网络的东西,我知道 Apache 是可用的。

于 2008-09-22T00:52:12.410 回答
5

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

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

uC/OS II 的优点是在 Labrosse 的书中有完整的文档记录(实际上是在源代码中解释的)。虽然不知道网络支持。

我知道 pSos 不再可用。

您还可以查看此 RTOS 列表

于 2008-09-22T11:02:49.243 回答
5

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

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

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

于 2008-10-31T19:06:18.103 回答
4

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

于 2008-09-23T03:37:25.750 回答
4

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

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

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

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

于 2008-09-30T11:31:04.717 回答
2

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

于 2008-10-03T16:21:02.543 回答
1

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

于 2008-09-22T00:34:00.270 回答
1

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

于 2008-10-31T19:10:57.203 回答
1

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

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

于 2009-04-12T19:48:34.703 回答
1

VxWorks 不错:

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

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

于 2012-04-22T14:03:02.710 回答
1

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

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

于 2014-01-22T08:42:45.380 回答