嵌入式系统在我们周围的所有电子设备中都有广泛的应用,一个明显的例子就是我们一直随身携带的微型笔记本电脑,是的,我指的是我们的手机。
每当嵌入式系统出现时,它始终是硬件(如微控制器或微处理器)和软件(如固件或操作系统)的组合。一个操作系统形成所有的电子器件的基极和管理的硬件和任何电子设备中的软件。操作系统一词不仅限于计算机的Unix和Windows,还可以扩展到微控制器。一种可以在微控制器上运行的操作系统称为实时操作系统。在这里,我们将了解RTOS和实时操作系统的应用。
什么是RTOS?
实时操作系统(通常称为RTOS)使控制器能够根据优先级在特定时间段内响应输入并完成任务。乍一看,RTOS听起来可能与任何其他嵌入式程序或固件一样,但它是基于操作系统的体系结构构建的。因此,像任何操作系统一样,RTOS可以允许多个程序同时执行以支持多路复用。众所周知,处理器或控制器的核心一次只能执行一条指令,但是RTOS拥有称为调度程序的功能它决定先执行哪条指令,然后依次执行多个程序的指令。从技术上讲,RTOS只能一次执行一个并行指令,从而产生多合一的错觉。
这使得RTOS适用于现实世界中的各种应用。在RTOS中,只要评估了给出相应输出的逻辑,就可以输入任何输入。不仅根据逻辑创造力,而且还根据执行特定任务的持续时间来度量此逻辑。如果系统在该特定时间内无法执行任务,则称为系统故障。
为什么要使用RTOS?
- 驱动程序的可用性:RTOS中有许多可用的驱动程序,这使我们可以直接将它们用于各种应用程序。
- 计划文件: RTOS负责计划,因此,我们不必专注于计划任何系统,而只需专注于开发应用程序。例如,任务调度文件用于在满足一组条件时定义某些操作。RTOS使用某些高级算法来调度通常的运行状态,就绪状态和阻塞状态,而在运行RTOS时,它们将更多的精力放在开发应用程序而不是调度上。
- 添加功能的灵活性:即使您愿意添加新功能,在RTOS中也可以轻松添加它而不会干扰现有功能
实时操作系统与操作系统之间的区别
实时操作系统与Windows,Linux等操作系统之间存在各种差异。让我们借助表格格式逐一查看它们:
序号 | 操作系统 | 实时系统 |
1个 | 时间共享是操作系统中进程执行的基础 | 进程根据其优先级顺序执行 |
2 | 操作系统充当系统的硬件和软件之间的接口 | 实时系统旨在针对现实世界中的问题执行 |
3 | 在执行操作系统时,管理内存不是关键问题 | 内存管理很困难,因为基于实时问题分配了内存,这本身至关重要 |
4 | 应用范围:办公室,数据中心,家庭系统等 | 应用范围:控制飞机或核反应堆,科研设备 |
5 | 例如:Microsoft Windows,Linux,OS | 示例:Vx Works,QNX,Windows CE |
实时操作系统的类型
我们可以将实时操作系统主要分为三部分:
- 硬实时操作系统
- 软实时操作系统
- 公司实时操作系统
1.硬实时操作系统
让我们从一个示例开始理解这种类型的操作系统,它的实时示例是飞行控制系统。在飞行控制系统内,飞行员以输入形式给出的任何任务均应按时执行。在硬实时操作系统中,可以容忍系统故障。硬RTOS的功能包括:
- 准时执行任务
- 未能按时完成是致命的
- 保证更坏情况下的响应时间
- 可能导致系统故障
2.软实时操作系统
使用软RTOS的最简单示例是在线数据库,因为在软RTOS中,我们更担心的参数是速度。因此,软RTOS的功能是:
- 任务应尽快执行
- 延迟完成任务是不希望的,但不是致命的
- 可能会降低性能
- 不会导致系统故障
3.公司实时操作系统
用来拾取物体的机械手可以视为坚固的RTOS的示例之一。在这里,即使流程延迟,在该公司的RTOS中也可以容忍。
使用免费RTOS的好处
以下是在应用程序中使用RTOS的优点。
- 没有防火墙问题
- 低带宽可增强性能
- 增强安全性和隐私性
- 低成本,因为减少了用于开发的硬件和软件组件
与RTOS相关的一些主要问题
现在,尽管RTOS在现实应用中具有许多优点,但它也具有各种缺点。与它有关的一些问题在这里讨论。
- 中断通常在程序中使用,以暂停执行程序,以将流转移到代码的其他重要部分。在此,由于需要快速响应,因此在RTOS内;建议在尽可能短的时间内禁用中断。
- 由于内核还应该响应各种事件,因此要求内核的大小要小一些, 以便它可以正确地放入ROM中
- 应该删除RTOS的复杂功能,因为其中没有这样的虚拟内存的概念。
如何使用RTOS
现在您知道什么是RTOS以及可以在哪里使用它,要开始使用RTOS,通常必须使用Tornado或FreeRTOS开发环境。让我们简要介绍这两个开发环境。
龙卷风– VxWorks
Tornado是一个集成环境,用于在目标系统上开发与实时相关的嵌入式RTOS应用程序。龙卷风包含以下三个基本元素。
1)VxWorks
2)应用程序构建工具(编译器和相关程序)
3)集成开发环境,可以管理,调试和监视VxWorks应用程序
VxWorks是一个联网的实时操作系统。从VxWorks开始,我们应该拥有一个开发套件(目标)以及一个工作站。在这里,开发套件不过是与工作站上的目标服务器通信的目标主机或组件。这里的目标连接龙卷风工具,例如外壳和调试器。因此,使用VxWorks我们将配置和构建系统,而Tornado为我们提供图形用户界面和命令行工具以进行配置和构建。
这里重要的一点是,在系统中安装龙卷风时,安装目录应使用以下路径名:
installDir / target。例如,如果您希望将龙卷风存储在Windows主机上的C:\ tornado中,则在这种情况下,应将完整路径名标识为installDir / target / h / vxworks.h。
在这里,我们将不详细讨论Vx Works的功能(我们将在下一个教程中讨论),但是我们将讨论如何使用WindRiver GNU在Vxworks中使用C ++进行开发。WindRiver GNU帮助我们提供有关执行过程中涉及的中断的图形分析以及内存使用情况报告。
例如,上面提到的WindRiver视图说明了相关的处理器编号以及任务的优先级(tLowPri和tHighPri)。空闲状态,即绿色线表示处理器未处于其工作状态的时间段,该时间段为每隔几秒钟。t1,t7,t8和t9只是所使用的各种处理器。在这里,我们仅选择t7处理器。
因此,该Windriver能够调用VxWorks和应用程序模块子例程。您可以通过龙卷风启动工具栏(-> i按钮)启动Windriver应用程序,然后单击菜单,然后单击外壳。最后,在命令提示符下键入“> windsh target server”。
现在要使用C ++进行编程,重要的是要包括INCLUDE_CPLUS_DEMANGLER组件,该分解器组件允许目标外壳符号返回人类可读的C ++符号名称形式。在将C ++模块下载到Vxworks目标之前,请遵循称为munching的过程。这里,咀嚼是指额外的宿主处理步骤。
编译C ++应用程序源程序并获取例如hello.cpp文件。稍后运行它以在.o上进行修改并编译生成的ctdt.c文件。此外,将应用程序与ctdt.o链接以在VxWorks中生成可下载的模块hello.out。执行此VxWorks之后的输出将是一个make文件,该文件将在某些目标上使用。
免费的RTOS
通常,无论何时开始使用RTOS,我们通常都更喜欢Vx Works RTOS。但是,让我们在这里简要讨论一下Free RTOS,它也可以供初学者使用以了解实时操作系统的概念。Free RTOS由Richard Barry和FreeRTOS团队开发,也由Realtime Engineers Ltd拥有,但是它是免费使用的,可以通过单击下面的链接进行简单下载
下载免费的ROTS
在本文撰写时,正在使用的免费RTOS的最新版本是版本10,称为FreeRTOS V10。
免费RTOS的最大优点是,它在其他RTOS方面优于其他操作系统,这是它在硬件方面与平台无关的行为,即,我们将用来执行操作系统的c代码可以在具有不同体系结构的各种平台上运行。因此,无论您使用的是8051微控制器还是最新的ARM微控制器,您编写的代码和执行过程都将是相似的。
通过Vx Works和其他RTOS操作工具使用免费的RTOS还有许多其他好处。其中一些可以表述为:
- 提供更轻松的测试
- 提倡代码可重用性的概念
- 空闲时间更少
- 易于维护
- 提取定时信息
另外,基本内核(其中内核指的是免费RTOS中存在的操作系统的中心组件)使它可用于各种应用程序。由于很容易在操作系统上附加扩展模块以获取更多应用程序,因此免费的RTOS变得更加强大。
可以通过结合使用Free RTOS和Nabto的概念来解释使用免费RTOS的示例之一。Nabto是一种免费的Web设备,用于将信息从设备传输到浏览器。
因此,将Free RTOS与Nabto结合使用可使它变成一小段C代码,如图a所示。如今,物联网(IOT)处于发展趋势,我们将要访问的每个IOT设备在互联网上都有一个唯一的URL,该技术可以实现安全且带宽极低的点对点连接。在没有Internet连接的情况下,这种组合可能会有所帮助。因此,在实现物联网时,免费的RTOS是一种流行的选择。