实时操作系统(RTOS)已经进入超过50%的嵌入式项目。RTOS可以帮助你管理系统时间、资源、内存等等。它们为嵌入式开发人员提供了高效调度的工具,如时间片和线程抢占,同时简化了任务间的通信。
随着越来越多的团队转向32位微控制器并继续采用物联网技术,对RTOS的需求只会越来越大。如果你正在过渡到RTOS或者最近已经这样做了,选择RTOS是一个重大的挑战。那么,你如何选择RTOS呢?
避免常见的选择错误。
选择RTOS时,有几个常见的错误应该避免。
首先,嵌入式开发团队立即排除商业RTOS的情况并不少见。既然有如此多的开源实时操作系统可用,为什么还会有人追求商业RTOS呢?原因通常归结为认证、质量、安全和支持等考虑因素。出于这些原因,你不应该立即排除商业RTOS。
第二,不要因为你的芯片供应商直接支持你的RTOS就选择它。你会发现它们通常落后于最新版本的RTOS。发生这种情况时,你可能无法像直接从源头获取安全更新那样快速获得关键的安全更新。
RTOS评选的正确方法
选择RTOS应该是一项工程追求。这意味着你要以科学的、以工程为中心的方式去做。首先,你需要确定RTOS中需要的关键功能。这可能是性能、代码大小、安全特性等。从列表开始是个好主意。
接下来,检查你的清单,给它们的重要性一个数值。例如,如果许可成本是必不可少的,你可以将它定为5。如果许可成本不重要,就给它一个值,甚至为零。这些排名让我们了解了什么是选拔过程的关键。它告诉你什么样的特点和特性是你想要的RTOS。毕竟,没有两个RTOS是相同的,或者以相同的方式提供相同的功能。
只有当你确定了功能列表并对其进行排序后,你才可以评估哪种RTOS适合你的应用。每个嵌入式开发人员自己的偏见会扭曲选择过程。我经常建议团队使用KT矩阵进行评估。每个开发人员都可以评估每个RTOS与所需特性列表的匹配程度。它们可以提供一个介于0-5之间的评级,然后可以与功能排名一起使用,以生成一个加权值。然后,加权特征和可用于比较每个RTOS符合应用需求的程度。
结果是一个不偏不倚的决定,选择一个符合你的团队需要的RTOS。你可能会发现基于你的应用程序有不止一个RTOS。当这种情况发生时,你可以用你的个人偏好来选择你想用的。
结论
选择一个能与你的应用程序一起工作并在可预见的未来继续工作的RTOS并不容易。选择了RTOS,几个月后或几个季度后发现它并不完全符合你的期望,这是很常见的。正如我们所见,提前多花一点时间,明确你对RTOS的期望是至关重要的。一旦了解了你的需求,你就可以仔细评估哪些RTOS最能满足你的应用需求。
只有这样,你才能真正适应你的RTOS选择。如果你选择最流行、最时尚或最受欢迎的RTOS,你可能会发现你未来的发展有点困难。