向右滑动:上一篇 向左滑动:下一篇 我知道了
广告

面向嵌入式开发人员的实时操作系统RTOS

时间:2020-02-11 作者:Kristoffer Rist Skøien,Nordic 阅读:
嵌入式开发人员通常习惯于裸机编程,或者对使用实时操作系统(RTOS)有所保留。这里谈谈RTOS的作用,以及为什么应该考虑使用它们。
ASPENCORE

嵌入式开发人员通常习惯于裸机编程,或者对使用实时操作系统(RTOS)有所保留。这里谈谈RTOS的作用,以及为什么应该考虑使用它们。Da8EETC-电子工程专辑

现今的产品开发周期变得越来越复杂。开发时间越来越短,但所需功能集日益扩展,使得繁忙的开发人员需要千方百计在更短的时间内完成更多工作。通常,使用RTOS可以提高任务管理和资源共享的效率。Da8EETC-电子工程专辑

什么是实时操作系统(RTOS) ?

简而言之,RTOS是一款旨在有效管理中央处理器(CPU)时间的软件。当时间是应用的重点时,这对于嵌入式系统尤为重要。Da8EETC-电子工程专辑

Windows等操作系统与嵌入式系统中常用的RTOS的主要区别,在于对外部事件的响应时间。Windows等普通OS提供对事件的不确定性响应,即使试图保持响应速度也无法保证何时处理事件。使得用户认为操作系统响应灵敏,比处理基础任务更为重要。另一方面,RTOS则提供了实时响应和高度确定性的反应。Da8EETC-电子工程专辑

习惯使用Windows或Linux等操作系统的开发人员将会非常熟悉嵌入式RTOS的特性。它们经设计在内存有限的系统中运行,并且可以无限期运行而无需重置。Da8EETC-电子工程专辑

由于RTOS旨在快速响应事件并在重负载下执行,RTOS在执行大型任务时可能会较其他OS慢。Da8EETC-电子工程专辑

RTOS调度

RTOS的价值在于很高的响应速度,而高级调度算法是其中的关键组件。Da8EETC-电子工程专辑

嵌入式系统的时间要求各有不同,从软实时洗衣机控制系统到硬实时飞机安全系统等等。在后者的情况下,只有能够准确预测OS调度程序的行为,才能满足实时要求的基础需求。Da8EETC-电子工程专辑

许多操作系统给人以一次执行多个程序的印象,但是这种多任务处理其实只是一种错觉。单个处理器内核在任一时间只能运行单个执行线程。操作系统的调度程序决定何时运行哪个程序或线程。通过在线程之间快速切换,它带来了同时执行多项任务的错觉。Da8EETC-电子工程专辑

灵活的RTOS调度程序允许采用广泛的方法来处理优先级,尽管RTOS通常主要用于非常狭窄的应用程序集。RTOS调度程序应提供最小的中断延迟和最小的线程切换开销。这是使得RTOS与重视时间的嵌入式系统如此密切相关的原因。Da8EETC-电子工程专辑

嵌入式设计中使用RTOS

许多嵌入式设计编程人员避免使用RTOS,因为他们怀疑RTOS给其应用程序增加了太多的复杂性,或者RTOS其实是一个未知的领域。RTOS通常需要最多占用5%的CPU资源来执行其任务。尽管总会有一些资源上的损失,但RTOS可以在简化的确定性,通过硬件抽象的易用性,减少的开发时间以及更便利的调试等等方面弥补这一不足。Da8EETC-电子工程专辑

使用RTOS意味着你可以同时运行多项任务,并在需要时引入基本的连接性、隐私、安全性等。RTOS允许针对项目的特定需求创建优化的解决方案。Da8EETC-电子工程专辑

推出Zephyr RTOS

这有许多RTOS解决方案,Nordic世界的许多开发人员都专注于开发低功耗嵌入式系统。如果是这样,我们建议查看Zephyr,它非常适合要求超低功耗的连接解决方案。Da8EETC-电子工程专辑

模块化的Zephyr RTOS支持多种架构,因此开发人员可以轻松定制解决方案以满足其需求。Da8EETC-电子工程专辑

Zephyr是真正的开源解决方案。某些声称是开源的RTOS其实是由私人企业推动的,而Zephyr则由Linux基金会管理,因此是开源协作方案。Nordic代表担任委员会和工作组成员,他们与来自其他大型和小型企业的代表一起工作。Da8EETC-电子工程专辑

额外的好处

到目前为止,RTOS的确定性调度功能已经成为焦点。此外,诸如Zephyr之类的RTOS还具有其他有用的功能。Da8EETC-电子工程专辑

Zephyr带有功能强大的日志记录系统,能够输出到多个后端,例如UART或RTT。日志具有不同的优先级,带有时间戳,并且可以按照模块或关键性级别轻松过滤。Da8EETC-电子工程专辑

Zephyr还有许多简化调试的工具,例如CPU使用率监控器、堆栈标记、错误处理程序以及对PC工具的支持,这些工具可让户查看线程的执行和调度。Da8EETC-电子工程专辑

当然,Zephyr还支持成熟的OS功能,例如互斥锁、内存分配服务以及保护、线程同步和数据传递。当然,拥有一系列用于组件选择的现成驱动程序也是很棒的功能。它使得开发人员可以专注于手头的应用程序,而不必制作和测试低级驱动程序。Da8EETC-电子工程专辑

经过一些适应之后,我相信大多数嵌入式开发人员将更喜欢使用RTOS而不是裸机编程。Da8EETC-电子工程专辑

责编:Yvonne GengDa8EETC-电子工程专辑

本文由Nordic Semiconductor特别供稿,仅代表作者观点,电子工程专辑不承担任何责任Da8EETC-电子工程专辑

ASPENCORE
本文为EET电子工程专辑 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
您可能感兴趣的文章
相关推荐
    广告
    近期热点
    广告
    广告
    广告
    可能感兴趣的话题
    广告