在嵌入式开发中,实时操作系统(RTOSes)在20世纪90年代普及,为各种嵌入式和实时产品提供了技术优势。一些最重要的好处包括快速和小的代码占用、确定性功能、广泛的半导体支持、结构化设计方法以及通过封装的软件重用。
RTOS通常具有微内核设计,其中调度器起着核心作用。建立在一个简单而有效的实时调度器上,可以实现系统设计的精确性。生产系统的决策因素超出了技术基础。在选择RTOS时,产品团队必须考虑业务、软件工程和长期可行性。
1.选择RTOS时的业务考虑
在选择RTOS时,许可模型、源代码修改限制和行业认证是首要的业务考虑因素,这三个商业考虑因素相互影响。当产品要求具有可修改性时,许可和认证的选择可能会受到直接影响。
许可模式包括开源、商业和混合版本。一些常用的开源许可证是MIT-0、Apache License 2.0和Eclipse Public License。由于许可模型和源代码可用性,可修改的源代码限制可能会影响创新过程。例如,创新可能受到限制,新的硬件功能或软件创新需要内核级别的更改。
开源许可允许修改内核,开源项目强烈鼓励修改贡献,这样技术社区就可以从进步中受益。商业许可模式往往限制了修改的可能性。例如,如果必须对内核源代码进行调整,那么商业实体将接受并优先考虑,甚至可能拒绝修改的支持请求。如果商业RTOS公司破产,关闭业务,并且源代码没有托管,那么修改可能是不可能的。
然而,如果预计不会进行内核修改,则嵌入式开发人员可以在设计中使用诸如高完整性系统的SAFERTOS之类的选项。另一方面,一些开源RTOS现在提供长期支持(LTS),具有锁定版本配置、维护承诺和使用全球平台SESIP等程序的预认证。
2.选择RTOS的软件工程考虑
开发人员生产力是许多软件工程团队的主要关键性能指标,嵌入式系统软件工程也不例外。交付结果、优化软件性能和快速解决问题是一些最重要的指标。使用RTOS可以帮助构建良好的封装、重用和维护实践。广泛的生态系统支持建立在这些基础之上。开源或商业库、编译器和代码优化工具以及调试和问题解决工具的可用性可以从根本上提高工程团队的性能。
RTOS项目和供应商通常与提供软件库的开源和商业实体有关系。一个庞大的软件库目录提供了对技术和技术的更快访问。软件库的可用性和库与内核良好配合的保证降低了软件工程风险。
内核和库通常作为RTOS LTS分发版提供。同样,Espressif、Renesas、STMicroelectronics和Xilinx(现为AMD的一部分)等半导体制造商通过各自的软件开发套件提供RTOS。软件分发并不排除使用非分发软件库。相反,软件发行版通过正式的集成测试提供了经过验证的组合。
编译器和源代码优化支持可能是嵌入式系统性能和内存管理优化的关键因素。Arm Cortex-M等普及的嵌入式系统架构享有类似的普及编译器和源代码优化生态系统,并提供开源和商业工具选择。开源工具链GNU编译器集合(GCC)经受住了时间的考验,在许多供应商的软件开发工具包中经常被认为是事实上的标准。然而,IAR等商业工具供应商提供了额外的保证,并且通常经过安全认证,这降低了设备软件安全认证的风险。一般来说,嵌入式开发人员将RTOS的选择限制在支持最广泛使用和检查的编译器及相关工具链的RTOS是一个关键的决策因素。
调试和问题解决工具的生态系统强度是RTOS具有生产级支持的主要指标。通常,半导体制造商提供调试器系统作为硬件开发板的组件。然而,在大多数情况下,这些软件级调试器的速度、跟踪和处理开销可能会导致误报和误报。
IAR和SEGGER等商用调试器通过相关的工作站RTOS感知软件工具提供出色的调试器支持,可加快RTOS问题的解决。商业工作站软件,如与商业调试器配对的Percepio Tracealyzer,可以为最严峻的开发挑战提供更深入的见解。
3.选择RTOS的长期可行性考虑
最后但同样重要的考虑因素是通过支撑结构的长期可行性、普遍使用和耐久性。这三个特性为物联网建设者提供了他们选择的RTOS在未来可用的保证,这在构建具有中长期使用寿命的产品时是关键。具有这些寿命的产品无疑需要维护,包括功能增强和不断变化的安全挑战。知道RTOS具有经过验证的历史可以降低产品交付和维护风险。
当工程问题解决具有挑战性时,RTOS社区和商业支持提供了解决问题的途径。社区支持和商业支持(包括提供长期支持)是相辅相成的。从一般目的和小众角度来看,在嵌入式开发中,社区支持效果良好。
鉴于没有与社区支持达成服务级别协议(SLA)以确保最终问题解决,响应时间可能会有很大差异,但通常会产生大量轶事反馈。商业支持通常有一个相关的SLA,但知识范围可能受到更大的限制。当社区支持与商业支持相结合时,问题解决通常效果最佳。
RTOS的普遍使用是用户基础保持率的有力指标,这标志着RTOS的健康性和良好的设计。经过时间的考验,合理的设计使不可避免但优雅的技术进步成为可能。尽管RTOS项目可能会提供用户基数,但演示在生产系统中的普遍使用通常很有挑战性,但通过发布和验证的用例进行了演示。在整个RTOS历史中对用例速度的全面检查提供了RTOS在商业上被采用的情况。
将各种因素结合在一起
许可模型和源代码修改约束会影响产品适应不断变化的趋势和技术的能力。开发人员工具生态系统支持直接影响代码优化、调试和易用性,这些都会增加产品开发成本。长寿命和经验证的使用通常强调社区和商业支持、工程知识的概率,以及RTOS如何适应不断变化的技术环境。嵌入式开发人员下次在选择RTOS时,应用这些关键考虑因素来提高选择RTOS的信任度。