作者:Jacob Beningo
在嵌入式系统行业的开发人员和经理中流传着一个谣言,即所有RTOS都是平等的。开发团队仅仅选择RTOS的情况并不少见,因为他们的微控制器供应商支持RTOS,而不是仔细检查RTOS提供的功能和特性。检查RTOS的特性、API、功能和陷阱经常被忽视,甚至有时会损害应用程序的需求。您可能从未意识到的挠痒痒问题:“所有实时操作系统都是等效的吗?
对等效的需求
基本上有三种方法可以了解如何构建嵌入式软件。首先,开发人员在没有RTOS或操作系统的情况下构建系统裸机。这些通常适用于没有很多功能或不关心重用、可移植性或可扩展性的小型嵌入式系统。接下来,一些团队有一个需要可伸缩性和可重用性的系统,但可能没有可移植性。这些团队将选择一个实时操作系统来使用,并围绕实时操作系统构建整个应用程序,使实时操作系统成为系统的基础。
构建系统的最后一种方法,也是驱动对等效的需求或愿望的方法,是复杂的现代系统,并提供广泛的功能。在许多情况下,应用程序需要扩展、可重用和可移植。在这些情况下,团队不能只选择一个RTOS并围绕它构建他们的应用程序。相反,他们需要一个RTOS抽象层,将其应用程序代码与RTOS分离,以选择提供应用程序所需服务和功能的任何RTOS或操作系统。图 1 显示了具有 RTOS 抽象层的分层软件架构示例。
图 1 – 现代系统将嵌入式应用程序与 RTOS 分离,以提高重用、可移植性、可扩展性和测试。(图片来源:嵌入式软件设计[1])
RTOS抽象层消除了对任何RTOS或操作系统的依赖,从而实现了更好的单元测试和超目标运行应用程序仿真的能力!当然,出现的问题是,当团队创建RTOS抽象层时,他们拼命地试图建议所有RTOS都提供等效的功能,当通用化时,就变成了“所有RTOS都是等效的”。
实时操作系统等效现实
不幸的是,或者幸运的是,对于嵌入式软件架构师和团队来说,并非所有RTOS都是平等的。每个RTOS都可以提供一组标准功能,但即使这些功能也已实现并提供广泛的差异。例如,从当前可用的一百多个 RTOS 中选择三个并检查其 API 集。您会发现相似但差异很大的 API。
如果您花一些时间运行性能测量,您会发现每个RTOS都提供不同级别的实时性能和确定性。编译每个,您会发现不同的内存要求。如果您深入研究实时操作系统,您甚至可能会发现可能破坏实时操作系统的错误或条件!有些在管理安全性方面写得很好,而另一些则完全忽略了安全性是一个考虑因素。
当我第一次接触实时操作系统时,我讨厌它们。我的雇主当时提供给我的RTOS有缺陷,不一致,我花在与RTOS斗争上的时间比编写生产代码的时间还要多。事实证明,“RTOS”并不是我们所认为的实时操作系统!相反,它是一个编写不佳的协作调度程序,包括一些RTOS功能,如信号量和队列。
结论
归根结底,团队可能希望所有实时操作系统都是等效的,但事实仍然是每个实时操作系统都是独一无二的。每个都提供具有不同内存占用、响应时间、API、安全性和安全功能的操作系统。RTOS 抽象层可以帮助嵌入式应用与标准功能分离。不过,要充分利用 RTOS,可能需要直接调用 RTOS 或创建抽象扩展来管理应用程序依赖关系。因此,下次当您想只使用微控制器供应商提供的RTOS运行时,请花一些时间来评估和验证RTOS是否满足您的需求,因为每个RTOS都是不同的,尽管它们看起来可能是等效的。
编辑:黄飞
-
嵌入式系统
+关注
关注
41文章
3590浏览量
129463 -
操作系统
+关注
关注
37文章
6818浏览量
123324 -
API
+关注
关注
2文章
1499浏览量
61991 -
RTOS
+关注
关注
22文章
812浏览量
119620
发布评论请先 登录
相关推荐
评论