请注意:这个问题专门提到了两个RTOS,但更为通用,以前曾为嵌入式RTOS编写过C代码并且直接在MCU上运行其软件的任何人都可以回答。
我有兴趣了解有关嵌入式RTOS的更多信息并为其编写应用程序。我目前正在查看Embox和RIOT,因为它们是开源的,现代的,活跃的并且似乎有出色的文档。我的目标分为两个阶段:第一阶段是弄清楚如何将这些OS编译并刷新到MCU(可能是AVR或ARM)。然后,第2阶段将编写一个简单的C程序(基本上是一个无头的守护程序),该程序会随着时间的流逝而发展为“业余应用程序”。然后,我将该程序刷新/部署到同一MCU,从而成功部署了一个由Embox / RIOT和位于其之上的应用程序组成的应用程序堆栈。
在走上任何最终导致死胡同的道路之前,我偶然发现了这篇文章,很好地解释了为什么用C /汇编器编写并闪存到MCU的实时应用程序真正不需要它们下面的RTOS。 。
所以现在我真的很困惑,并且质疑我对计算理论的一些基本理解。我想我想首先决定是否使用Embox / RIOT,或者:
- 保持进度,并在两个OS +应用程序的MCU上使用“应用程序堆栈”;要么
- 请留意本文的警告,并选择运行我的应用程序“裸机”的MCU
显然,前者需要做更多的工作,因此最好还是有一个很好的理由/选择那条路线。因此,我想问:这些(和类似的)嵌入式RTOS为MCU / C应用程序开发人员提供的真正好处是什么?使用RTOS,我的C应用程序可以从哪些特定功能中受益(也许不重新发明轮子?)?抛弃RTOS并裸机失去了什么?
我在这里要求具体的例子,而不是当您进入RTOS的Wikipedia条目时获得的媒体宣传;-)