使用RTOS需要注意些什么?

嵌入式大杂烩 2023-05-21 21:30

关注「嵌入式大杂烩」,选择「星标公众号」一起进步!

来源 | CSDN

对许多嵌入式项目来说,系统设计师都倾向于选择实时操作系统(RTOS)。但RTOS总是必要的吗?答案是取决于具体的应用,因此了解我们要达到什么目标是决定RTOS是必要的还是花瓶的关键。

一般来说,在采用非实时操作系统(non-RTOS)的任何场合,也都可采用RTOS。但是,要找到一款具有完全相同应用编程接口(API)的匹配RTOS就相当困难了。因此,许多传统的操作系统(OS)在其内嵌入了一个RTOS。例如,Lynux-Works LynxOS和Bluecat Linux共享一个Linux API。LynxOS是一款硬RTOS,而Bluecat是Linux的一个衍生产品。

Linux继续在努力改善其实时性能,但其最长中断时延仍无法满足对RTOS来说至关重要的硬(hard)实时要求。这些问题最后都会归结为服务质量(QoS)。像RTLinux Free这样的平台补充了Linux,因为它们可提供硬实时级别的QoS。

要指出的很重要一点是:这类补充常常是在原始OS上集成一个RTOS编程环境。与传统台式或服务器OS相比,RTOS通常要小很多。RTOS常常针对更小和资源有限的MCU。例如,CMX的CMX-RTX和CMX-Tiny+可运行在8位MCU到64位处理器上。

RTOS核心:调度和分割

大多数程序员不熟悉RTOS的限制和要求。大多数人通常因其性能选择RTOS。大多数RTOS产品代码少和速度快,现在RTOS还提升了一致性。RTOS除能很快完成任务外,还能保证很好地完成任务。

在许多应用中,一个迟到的结果可以是灾难性的。因此,人们宁愿在一个要求的时限内获得较差的结果。这些应用通常被称为硬实时系统。硬实时不是指系统响应有多快或多快一个系统能响应,而是指系统能多可靠地满足特定的要求。

一个硬实时系统可能有一个一分钟的固定周期时间,它要求的响应时间为一秒。理论上,这样的要求几乎所有的操作系统都能实现。但事实并非总是如此,正如任何一个人都能证明等待台式计算机应用在一分钟之内做出响应需要等多久。

硬实时系统通常具有更短的周期时间和更紧苛的响应要求。更快的处理器速度总是有帮助的,多内核平台也能改善响应速度。对开发人员来说,窍门在于把系统需求与硬件和软件匹配起来,然后才是RTOS在嵌入式应用中的重要性。

一个RTOS可以实现一系列调度策略,但应用经常会制约一个程序员的选择(见表)。非优先式调度(non-preemptive scheduling)的实现虽不重要,但在一些应用中很有用。另一方面,任务内的非优先式调度可在优先式系统的顶部实现。

不应该轻忽非优先式调度,特别在新型多内核处理器出现以后。这里,硬件可被调整到处理一个基于事件的操作,其中线程将等待外部事件的发生。对处理多线程的单核处理器来说,该方法一般不适用。但对有许多内核的多核系统说,典型情况是为一个外设指定一个核。所以,在等待事件发生期间,使该核空闲起来是有意义的。

其结果是,优先式、中断驱动的RTOS架构占据了业已部署的大部分平台。虽然借助硬件手段(多个寄存器组合、硬件调度、任务切换、以及分层中断优先级系统等)可显著缩短中断时延,但该时延永远是一个问题。

优先式处理会带来若干问题。它们大多是与时序关联的,如竞争条件、死循环、空耗等待和优先级转换,它们发生在低优先级任务A拥有更高优先级任务B的同步资源,而优先级比A高的任务C正在运行。

如果没有像优先级置顶(priority ceilings)这样的特性,任务C就可以阻止任务A和任务C运行。优先级置顶特性可以把任务A的优先级改变成与任务C的优先级一样,从而允许任务A运行并最终释放任务C所需的资源。至此,任务A的优先级复原,任务C就可以继续运行。

程序员必须解决的其它与时序相关的问题通常是难以定位和纠正的缺陷源。在定位这些缺陷时跟踪工具就变成了很有价值的手段,因为诸如受阻的任务等症候是这些问题的唯一表现形式。

就操作系统所需的特性来看,重入库(reentrant library)特性在RTOS环境下是可有可无的。但在一个典型的操作系统中,由于任务和程序常常是随机的和变化的,而且常公用库,因此重入库是一个必须的特性。

在嵌入式环境中,对在系统中运行的程序和任务一般会有更多的控制要求。通常,除操作系统接口(可以是重入也可能是非重入的)外,各任务从不共享任何代码。程序员(特别是那些负责设备驱动程序的)需要注意这一重入性问题。

现在业内已有很多的任务同步机制,从互斥(mutex)到消息系统。从RTOS的角度,这些机制在诸如竞争条件此类的同步问题上,没有什么差异。

在MCU和操作系统中,定时器很常见。至少,一个定时器可被用作时钟。但由于定时器是如此的有用,以至于它常以一种特殊方式实现出来。POSIX规范甚至把定时器定义为组件。定时器还可当作看门狗来用。

在许多MCU中,一个定时器可以设置用来唤醒处在休眠模式的系统。一些实现允许操作系统把其用作一个通用定时器,尽管这一唤醒特性独立于操作系统。

一些系统具有带不同特性的多种定时器来满足不同的要求。一些定时器可被同步用以为电机控制应用提供同时的脉宽调制(PWM)流。对RTOS来说,一个定时器通常可用以实现时钟和提供时间切片支持。

定时器也支持时间切片。时间切片常见于时间共享系统,它给每种应用一个合理的时间片断来执行。可在任一中断层级上实现这种轮询调度。

通常,由时钟提供的时间切片是固定时长的,每个任务在获得优先权前将被给予同样长度的时间切片来执行。当然,该策略是随机的且可有多种实现。例如,可变的时间切片宽度将允许时间以每个任务为单位进行分配,其中一些任务获得的时间会比另一些长;而若采用任务优先级方法,则有可能使低优先级任务得不到响应。

许多RTOS采用固定调度器。其它RTOS则允许替换或定制,但RTOS中的另一部分支持各种策略。这一灵活方法使得像Linux这样的操作系统能够提供实时支持,与此同时,它们还能在时间切片环境下运行多种应用。实时任务具有高优先级,且在一般用户任务前得到执行。

Linux实际上具有一个更复杂的调度系统,它对任务是通过轮询方法把控制权转交给具有相同优先级的其它任务还是一直运行到结束做出了具体约定。像Open Kernel Labs的OKL4虚拟化RTOS平台解决了该问题。

基本通信

一些文献把任务同步和通信分开来说,但总的来说,它们是一回事。实际上就是讲信息是如何交换的。基于消息传递的RTOS最清楚地体现出这点。这里,消息系统处理所有通信且不区分通信和同步。

至少,RTOS必须提供一个相互排斥的本原,如互斥。其它东西可构建在该本原上。在许多场合,如消息传递系统,对相互排斥的支持隐藏在操作系统内。只有更高级别的消息功能显露于外。

消息系统有各种名称,从管道到队列。其实现可横跨从单处理器、单存储器模式到多内核群集系统。Enea的OSE RTOS和QNX的Neutrino是基于消息传递的两个主线RTOS。

不管选择了什么方法或API,通信系统必须在某一程度上被整合进操作系统。因此,若主动队列中的任务必须等待一个事件,则该任务可被移走。类似,引发一个事件从而导致另一个任务活动的任务将产生一个调度行为。

通信、事件和调度可与硬件关联起来,这是RTOS必须处理的其它一些事。TI的DSP/BIOS是一款RTOS,它设计用于运行在像TI的DaVinci双核系统的DSP上。DSP/BIOS的一个主要功能是处理 ARM 核和DSP 核间的通信。

向更多大内核的发展将很可能会保留RTOS或OS。不过,小内核阻止或限制了采用RTOS的可能性。Intellasys的SEAforth 40C18芯片带有40个运行Forth的小型18位内核。指令很精简,每个字包含四条指令。

每个内核有64个字的 ROM和RAM,该芯片只能容纳10,000指令。当然,这只够装下一个程序,安装RTOS是不可能的。不过,整个芯片上有足够空间安装一个操作环境的特定部分。同样,适于该平台的应用常常是特定的。于是,由于硬件可处理内核之间通信和任务调度,因此RTOS类的支持并不需要。

资源管理

使RTOS脱颖而出的是其管理资源(包括时间和存储器)的能力。时序问题与中断响应时间有关,但资源管理时序问题也会出现。虽然中断解决了一系列时序问题,但各应用仍必须利用资源。

考虑存储器分配情况。许多实时应用不采用动态存储器分配,以确保存储器分配和回收时所产生的不同不会变成一个问题。需要动态存储器分配的应用常把存储器划分为实时和非实时。后者处理动态存储器分配。典型情况下,在使用前,实时部分必须被分配有足够的存储器。

在实时嵌入式应用中采用C和C++是因为存储器和其它资源的用法是显式的。实时任务需要避免采用C和C++。特别是,当存储器分配和回收更容易隐藏时采用C++是很困难的。

像Java和C#这样的语言带来的挑战更大,它们与生俱来地采用动态存储器分配。程序员可控制存储器分配和回收。在某些情况下,编程环境可以强化存储器分配和回收。

Java实时规范(RTSJ)定义了创建不需要垃圾回收的Java应用的方法。RTSJ是在Java框架内这样做的,从而使程序员在不被存储器分配限制的条件下享有Java的好处。

Sun和DDC-I都实现了RTSJ。DDC-I的实现支持x86和PowerPC平台。Aonix有一个称为PERC的类似平台。这些平台以实时、同时的垃圾回收为特征,从而使在不受存储器分配限制的情况下,在Java内编写实时应用成为可能。

但因系统必须允许线程为垃圾回收器进行转换,所以实时要求并非那么紧迫。另一方面,垃圾回收器将耗费时序资源,所以,只有实时任务方可保证满足一定的期限要求。快是好事,但及时才是RTOS的天条。

考察实时平台时,考虑之一是存储器分配对系统的整体影响。许多系统可工作在从不改变的静态分配环境,但更多的动态系统可从实时垃圾回收中获益。研究表明,垃圾回收的效益与确定的存储器分配是可比的。

围绕诸如Java和C#等虚拟机类型平台的另一个问题是对just-in-time(JIT)编译器的使用限制。基于这些系统的实时系统必须采用类似C和C++等所用的提前(ahead-of time,AOT)编译器。

设计师会因其更高的生产力、更低的出错率以及安全性等特点选用Java 或C#。所以,对制定一个称为 JSR-302的用于对安全有至高要求应用的Java规范就不足为奇了。

保护RTOS

RTOS受到其运行的硬件平台的限制。可对缺少存储器保护的硬件加以保护,但安全级别会受到限制。但存储器和虚拟机可以更高水平的安全性支持引导。诸如SE Linux、Green Hills Integrity和 LynuxWorks LynxSecure Embedded Hypervisor以及 LynxOS-SE RTOS内的安全策略可比典型RTOS提供可靠得多的保护。但成本也高,所以开发者需对此进行权衡。

实时系统开发者不得不应对策略实现和边界问题。取决于信息的来所去处,安全支持会花很长时间。正是为此引入了分区系统,所以,可在边界采取安全措施且把应用的非实时部分放在这部分空间内。 

可感知OS的调度器

当考虑选用操作系统时,对调试器的支持是个关键。这种支持体现在两个方面:内核和设备驱动器调试以及操作系统感知。

内核调试对设备驱动器的创建和支持以及内核强化很重要。在许多情况,为处理RTOS的内核,需要专用调试器。它也要求能理解内核环境以及应用环境。

OS感知可更深入地了解操作系统。支持方式可以是从提供有关OS服务状态的信息到调整任务调度等方方面面。同样,能感知OS的调试器可在停止其它应用或线程的同时允许其它应用或线程的运行。

来源:https://blog.csdn.net/refine19/article/details/5975592

本文来源网络版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

猜你喜欢:

往期推荐



手把手教你制作Jlink-OB调试器

当前主流的小型嵌入式GUI有哪些?

程序如何检查自身完整性?

干货 | 浅析程序开机自启动

​​

在公众号聊天界面回复1024,可获取嵌入式资源;回复 ,可查看文章汇总

嵌入式大杂烩 专注于嵌入式技术,包括但不限于C/C++、嵌入式、物联网、Linux等编程学习笔记,同时,内包含大量的学习资源。欢迎关注,一同交流学习,共同进步!
评论
  • 发明阶段(20世纪80年代至90年代)起源:当时ASIC设计成本高,周期长,流片失败率高,业界需要一种通用的半导体器件进行流片前测试和验证,可编程逻辑器件就此产生。诞生:1980年,Xilinx公司成立。1985年,Ross Freeman制造了第一片PFGA芯片XC2064,采用4输入,1输出的LUT和FF结合的基本逻辑单元。发展阶段(1992年至1999年)容量提升:FPGA容量不断上涨,芯片面积逐渐增大,为架构穿心提供空间,复杂功能可以实现。布线问题凸显:缩着芯片复杂度增加,片上资源的互连
    Jeffreyzhang123 2024-12-27 10:26 111浏览
  • 在科技飞速发展的今天,汽车不再仅仅是一种交通工具,更是一个融合了先进技术的移动智能空间。汽车电子作为汽车产业与电子技术深度融合的产物,正以前所未有的速度推动着汽车行业的变革,为我们带来更加智能、安全、舒适的出行体验。汽车电子的发展历程汽车电子的发展可以追溯到上世纪中叶。早期,汽车电子主要应用于发动机点火系统和简单的电子仪表,功能相对单一。随着半导体技术的不断进步,集成电路被广泛应用于汽车领域,使得汽车电子系统的性能得到了显著提升。从电子燃油喷射系统到防抱死制动系统(ABS),从安全气囊到车载导航
    Jeffreyzhang123 2024-12-27 11:53 149浏览
  • 在当今竞争激烈的商业世界中,供应链管理已成为企业生存与发展的核心竞争力之一。它就像一条无形的纽带,将供应商、制造商、分销商、零售商直至最终消费者紧密相连,确保产品和服务能够高效、顺畅地流转。今天,就让我们一同深入探索供应链管理的奥秘。供应链管理是什么简单来说,供应链管理是对从原材料采购、生产制造、产品配送直至销售给最终用户这一整个过程中,涉及的物流、信息流和资金流进行计划、协调、控制和优化的管理活动。它不仅仅是对各个环节的简单串联,更是一种通过整合资源、优化流程,实现整体效益最大化的管理理念和方
    Jeffreyzhang123 2024-12-27 17:27 144浏览
  • 从教师的角度来看,麻省理工学院开除因学术造假的学生,这一决定是合理且必要的。首先,学术诚信是学术研究的基石。在学术界,真实性和原创性是至关重要的。学术造假不仅破坏了学术研究的公正性和准确性,还损害了学术领域的整体声誉。因此,对于任何形式的学术不端行为,包括伪造数据、抄袭等,学校都应采取严厉措施,以维护学术诚信。其次,学校对学生具有管理权,包括对学生的处分权。按照相关规定,学校有权对违纪学生进行警告、严重警告、记过、留校察看、勒令退学、开除学籍等处分。开除学籍是一种严厉的处分,通常适用于严重违反学
    curton 2024-12-28 21:49 103浏览
  • 在当今这个数字化的时代,电子设备无处不在,从我们手中的智能手机、随身携带的笔记本电脑,到复杂的工业控制系统、先进的医疗设备,它们的正常运行都离不开一个关键的 “幕后英雄”—— 印刷电路板(Printed Circuit Board,简称 PCB)。PCB 作为电子设备中不可或缺的重要部件,默默地承载着电子元件之间的连接与信号传输,是整个电子世界的基石。揭开 PCB 的神秘面纱PCB,简单来说,就是一块由绝缘材料制成的板子,上面通过印刷、蚀刻等工艺形成了导电线路和焊盘,用于固定和连接各种电子元件。
    Jeffreyzhang123 2024-12-27 17:21 145浏览
  • 采购与分销是企业运营中至关重要的环节,直接影响到企业的成本控制、客户满意度和市场竞争力。以下从多个方面介绍如何优化采购与分销:采购环节优化供应商管理供应商评估与选择:建立一套全面、科学的供应商评估体系,除了考虑价格因素,还要综合评估供应商的产品质量、交货期、信誉、研发能力、售后服务等。通过多维度评估,选择那些能够提供优质产品和服务,且与企业战略目标相契合的供应商。建立长期合作关系:与优质供应商建立长期稳定的合作关系,这种合作模式可以带来诸多好处。双方可以在信任的基础上进行深度沟通与协作,共同开展
    Jeffreyzhang123 2024-12-27 17:43 161浏览
  • 引言工程师作为推动科技进步和社会发展的核心力量,在各个领域发挥着关键作用。为深入了解工程师的职场现状,本次调研涵盖了不同行业、不同经验水平的工程师群体,通过问卷调查、访谈等方式,收集了大量一手数据,旨在全面呈现工程师的职场生态。1. 工程师群体基本信息行业分布:调研结果显示,工程师群体广泛分布于多个行业,其中制造业占比最高,达到 90%,其次是信息技术、电子通信、能源等行业。不同行业的工程师在工作内容、技术要求和职业发展路径上存在一定差异。年龄与经验:工程师群体以中青年为主,30 - 45 岁年
    Jeffreyzhang123 2024-12-27 17:39 184浏览
  • 一、前言 回首2024,对于我而言,是充满挑战与收获的一年。在这一年里,我积极参与了论坛的众多活动,不仅拓宽了我的认知边界(有些东西不是你做不到,而是你想不到),还让我在实践中收获了宝贵的经验和。同时,多种多样的论坛活动让我们全方面的接受新东西,连接新知识,多种类型的的活动交织了你我的2024。在这里说一说对过去一年的活动经历,进行一次年终总结,并谈谈我的收获和感受,以及对2025年的展望。二、活动足迹(一)快速体验:机智云Gokit2.0开发板初体验 机智云Gokit2.0开发板的体验活动让大
    无言的朝圣 2024-12-27 14:50 105浏览
  • 在科技飞速发展的今天,医疗电子作为一个融合了医学与电子技术的交叉领域,正以前所未有的速度改变着我们的医疗模式和健康生活。它宛如一颗璀璨的明珠,在医疗领域绽放出耀眼的光芒,为人类的健康福祉带来了诸多惊喜与变革。医疗电子的神奇应用医疗电子的应用范围极为广泛,深入到医疗的各个环节。在诊断方面,各种先进的医学成像设备堪称医生的 “火眼金睛”。X 光、CT、MRI 等成像技术,能够清晰地呈现人体内部的结构和病变情况,帮助医生准确地发现疾病。以 CT 为例,它通过对人体进行断层扫描,能够提供比传统 X 光更
    Jeffreyzhang123 2024-12-27 15:46 151浏览
  • 在当今这个科技飞速发展的时代,物联网(IoT)已经不再是一个陌生的概念,它正以一种前所未有的速度改变着我们的生活和工作方式,像一股无形的力量,将世界紧密地连接在一起,引领我们步入一个全新的智能时代。物联网是什么简单来说,物联网就是通过感知设备、网络传输、数据处理等技术手段,实现物与物、人与物之间的互联互通和智能化管理。想象一下,你的家里所有的电器都能 “听懂” 你的指令,根据你的习惯自动调节;工厂里的设备能够实时监测自身状态,提前预警故障;城市的交通系统可以根据实时路况自动优化信号灯,减少拥堵…
    Jeffreyzhang123 2024-12-27 17:18 131浏览
  • 一、引言无人机,作为近年来迅速崛起的新兴技术产物,正以前所未有的速度改变着众多行业的运作模式,从民用领域的航拍、物流,到工业领域的测绘、巡检,再到军事领域的侦察、打击等,无人机的身影无处不在。为了深入了解无人机的现状,本次调研综合了市场数据、行业报告、用户反馈等多方面信息,全面剖析无人机的发展态势。二、市场规模与增长趋势随着技术的不断进步和成本的逐渐降低,无人机市场呈现出爆发式增长。近年来,全球无人机市场规模持续扩大,预计在未来几年内仍将保持较高的增长率。从应用领域来看,消费级无人机市场依然占据
    Jeffreyzhang123 2024-12-27 17:29 235浏览
  • 在当今科技飞速发展的时代,工业电子作为现代制造业的中流砥柱,正以前所未有的速度推动着各个行业的变革与进步。从汽车制造到航空航天,从智能家居到工业自动化,工业电子的身影无处不在,为我们的生活和生产带来了巨大的改变。工业电子的崛起与发展工业电子的发展历程可谓是一部波澜壮阔的科技进化史。追溯到上世纪中叶,电子技术开始逐渐应用于工业领域,最初主要是简单的电子控制装置,用于提高生产过程的自动化程度。随着半导体技术、计算机技术和通信技术的不断突破,工业电子迎来了爆发式的增长。集成电路的发明使得电子设备的体积
    Jeffreyzhang123 2024-12-27 15:40 150浏览
  • 起源与基础20 世纪 60 年代:可编程逻辑设备(PLD)的概念出现,一种被称为 “重构能力” 的芯片的可编程性吸引了许多工程师和学者。20 世纪 70 年代:最早的可编程逻辑器件 PLD 诞生,其输出结构是可编程的逻辑宏单元,它的硬件结构设计可由软件完成,设计比纯硬件的数字电路更灵活,但结构简单,只能实现小规模电路。诞生与发展20 世纪 80 年代中期:为弥补 PLD 只能设计小规模电路的缺陷,复杂可编程逻辑器件 CPLD 被推出,它具有更复杂的结构,能够实现较大规模的电路设计。1988 年:
    Jeffreyzhang123 2024-12-27 10:41 94浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦