RTOS实时操作系统

2024-06-17 09:52
文章标签 实时操作系统 rtos

本文主要是介绍RTOS实时操作系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

常见的RTOS有:

  • VxWorks:广泛应用于工业、医疗、通信和航空航天领域。
  • FreeRTOS:一个开源的RTOS,广泛用于嵌入式设备。
  • uc/OS:一个适用于教育和小型商业项目的RTOS。
  • QNX:主要应用于汽车和工业自动化领域。
  • Windows CE(现在称为Windows Embedded Compact):微软提供的嵌入式操作系统。\

主要特点包括:

  1. 确定性(Determinism):系统能够保证在给定的时间限制内完成特定的任务。
  2. 任务调度(Task Scheduling):RTOS通常采用优先级为基础的抢占式调度策略,以确保高优先级任务能够及时执行。
  3. 中断处理(Interrupt Handling):快速和高效的中断处理是RTOS的关键特性,它能够快速响应外部事件。
  4. 内存管理(Memory Management):为了提高效率,RTOS通常采用静态内存分配而不是动态内存分配。
  5. 同步和通信机制(Synchronization and Communication Mechanisms):如互斥锁(mutex)、信号量(semaphore)、事件标志(event flag)和消息队列(message queue)等,以确保任务间的正确通信和数据一致性。

嵌入式系统类型:

  1. 按复杂度分
    • 复杂嵌入式系统:这类系统一般使用Linux、Android等全功能操作系统。使用应用处理器,具备复杂的人机、网络、文件系统等。
    • 深度嵌入式系统:这类系统比较简单,通常不使用操作系统,或者仅仅使用RTOS(实时操作系统)。处理器一般是微控制器(MCU)或DSP等,仅具备简单的人机交互,甚至没有人机交互,物联网设备多属于此类。
  2. 按所使用的操作系统分
    • Rich OS类(全能操作系统):这类嵌入式系统运行功能非常齐全的操作系统,例如Linux、Android、iOS等。这类系统通常使用应用处理器,如Cortex-A、x86等架构的处理器。智能手机、平板电脑、智能电视、车载娱乐系统等属于这类系统。
    • RTOS类(实时操作系统):这类嵌入式系统运行功能紧凑但具有很强实时性的RTOS,例如FreeRTOS、RT-Threads、uC/OS-II等。这类系统通常使用微控制器,例如Cortex-M、MSP430、AVR、PIC等架构的微控制器。有些高性能的应用场合也可能会选用应用处理器。
    • Bare-metal类:这类嵌入式系统不包含任何操作系统,可能会包含事件调度器。这类系统也使用微控制器,主要是功能比较单一的应用。
  3. 按硬件组成分
    • 嵌入式微处理器:通常以某一种微处理内核为核心,每一种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置和封装。
    • 微控制器(MCU):又称单片机,与微处理器相比,微控制器的最大优点在于单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。
    • DSP处理器(DSP):对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率高,指令执行速度也高。

内部区别

裸机系统

裸机系统是一种没有配置任何操作系统和定制服务的物理硬件设备,用户需要自行安装和配置操作系统及其他软件。它直接运行在物理硬件上

轮询系统
轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序
在一个死循环里面不断循环,顺序地做各种事情,通常只适用于那些只需
要顺序执行代码且不需要外部事件来驱动的就能完成的事情
前后台系统
相比轮询系统,前后台系统是在轮询系统的基础上加入了中断。外部事件
的响应在中断里面完成,事件的处理还是回到轮询系统中完成,中断在这
里我们称为前台, main() 函数里面的无限循环我们称为后台。
多任务系统
相比前后台系统,多任务系统的事件响应也是在中断中完成的,但是事件
的处理是在任务中完成的。在多任务系统中,任务跟中断一样,也具有优
先级,优先级高的任务会被优先执行。当一个紧急的事件在中断被标记之
后,如果事件对应的任务的优先级足够高,就会立马得到响应。

这篇关于RTOS实时操作系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1069126

相关文章

EtherCAT主站IgH解析(二)-- 如何将Igh移植到Linux/Windows/RTOS等多操作系统

版权声明:本文为本文为博主原创文章,转载请注明出处 https://www.cnblogs.com/wsg1100 如有错误,欢迎指正。 本文简单介绍如何将 igh 移植到 zephyr、freertos、rtems、rtthread等RTOS ,甚至 windows 上。 ##前言 目前,EtherCAT商用主站有:Acontis、TwinCAT3、KPA、Codesys等,开源EtherCA

深入探究RTOS的IPC机制----邮箱

阅读引言: 因为将来工作需要, 最近在深入学习OS的内部机制,我把我觉得重要的、核心的东西分享出来, 希望对有需要的人有所帮助, 阅读此文需要读友有RTOS基础, 以及一些操作系统的基础知识, 学习过Linux的最佳, 特别是想RT-Thread适合Linux非常像的, 代码风格、IPC机制等等。 目录 一、RT-Thread中邮箱的特性 二、 邮箱的源码实现 1,邮箱

实现rtos操作系统 【一】基本任务切换实现

一、实现 PendSV 中断 PendSV是什么 我们先引用《Cortex-M3权威指南》对PendSV的介绍: PendSV(可悬起的系统调用),它是一种CPU系统级别的异常,它可以像普通外设中断一样被悬起,而不会像SVC服务那样,因为没有及时响应处理,而触发Fault。 也就是说 PendSV 是一个中断异常,那 PendSV 和其他的中断异常有什么区别呢?  摘自 Co

ucos抢占式实时多任务操作系统 (RTOS)。

介绍 uCOS (也称为 μC/OS 或 Micro-Controller Operating System) 是一个开源的、可移植的、可裁剪的、抢占式实时多任务操作系统 (RTOS)。它最初由 Jean J. Labrosse 编写,并广泛用于嵌入式系统设计中。uCOS 是一个小型的 RTOS,非常适合那些需要实时性和多任务处理能力的嵌入式系统。 以下是 uCOS 的一些主要特点: 开源

KEA128 移植/嵌入Free_RTOS

话不多说,直接上步骤: 1.准备一个KEA128的空工程,如LED闪烁工程 2.去除工程中的PendSV_Handler和SVC_Handler,以免报错重定义 3.将Free_RTOS相关文件复制入系统,这里我是从原子的工程里面复制来的 4.将RTOS系统文件加入工程,KEA128是CM0+内核的,所以port.c应该选择 portable\RVDS\ARM_CM0中的 5.修改Fre

有哪些情况下是RTOS满足不了需求,必须得上嵌入式linux系统的?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!用我领导昨天开会时候说的一句话,技术归技术,商业归商业。 很多时候,一个产品的选型,不完全是技术原因。 嵌入式领域,也分“轻量级”的系统和比较“复杂”的系统,我也见过把某些数学库、计算库、复杂的协议栈移植到RTO

rtos定时器不起作用原因之逻辑问题

在使用RTOS过程中突然发现定时器不起作用。 先分析原因,因为定时器也是一个任务,所以也有自己的任务优先级。如果当有高级任务由于自己代码逻辑BUG卡在某个循环里,那么按任务调度规则来看,那么定时器就永远得不到CPU所以导致定时器看起来,不起作用。 /* Software timer definitions. */#define configUSE_TIMERS 1#define co

RTOS笔记--信号量+互斥量+事件组

信号量的本质         信号量是一个特殊的队列,但并不涉及数据传输,因此不需要读写位置和发送者列表,但是多了一个最大计数值。         个人理解:信号量类似一个加入了保护机制的全局变量,不会因为中断切换的原因而导致数据出错。         信号量的操作分为:take和give,当信号量为0时,take操作可以延迟,但是give操作不可以延迟,当信号量有数字后将会唤醒take操作

RTOS笔记——队列

队列         队列的本质就是环形缓冲区,在环形缓冲区的基础上增加了一些保护措施和阻塞唤醒机制,而因为增加了保护机制因此环形缓冲区中有读写位置和数据个数         从读的一方理解队列运行逻辑:有任务AB,任务B需要等待任务A计算获取数据后再运行,任务B读队列为空时进入休眠,设置等待时间,在等待时间内任务A计算完成将数据放置于缓冲区就会将B唤醒,如果等待时间超时则由tick中断自动唤

主流 RTOS 实时操作系统介绍

主流 RTOS 实时操作系统介绍 1 介绍1.1 概述1.2 RTOS 应用领域1.3 知名实时系统VRTXpSOSOS-9embOSAzure RTOS 【ThreadX 】OpenWrt 【路由】Mbed OS 【ARM 公司开发】VxWorks 【KUKA、ABB、etc】LynxOSQNXNucleusTHREADXuC/OS –II/III 【Silicon Labs 收购,更新频