Vxworks 学习(一)介绍

2023-05-16

Vxworks 学习(一)介绍

该系列文章是我根据多个博主以及相关书上内容整理的学习笔记,许多内容非原创。

实时操作系统

定义

实时操作系统(Real Time Operating System,简称RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。

分类以及功能

实时操作系统是保证在一定时间限制内完成特定功能的操作系统。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。
大体上,实时操作系统(RTOS)要求:

  • 多任务
  • 处理能被区分优先次序的进程线
  • 一个中断水平的充分数量

上述这段话,简而言之,硬实时要求响应必须在规定时间内完成,超过时间的响应即使正确,也无效;软实时是响应越快价值越高,超过时效的响应是正确的,但是价值很低。

因此一个RTOS内核必须满足许多特定的实时环境所提出的基本要求,这些包括:

  • 多任务:由于真实世界的事件的异步性,能够运行许多并发进程或任务是很重要的。多任务提供了一个较好的对真实世界的匹配,因为它允许对应于许多外部事件的多线程执行。系统内核分配CPU给这些任务来获得并发性。
  • 抢占调度:真实世界的事件具有继承的优先级,在分配CPU的时候要注意到这些优先级。基于优先级的抢占调度,任务都被指定了优先级, 在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务被分配CPU资源。换句话说,当一个高优先级的任务变为可执行态(Wind内核中称为就绪态Ready State),它会立即抢占当前正在运行的较低优先级的任务。
  • 快速灵活的任务间的通信与同步:在一个实时系统中,可能有许多任务作 为一个应用的一部分执行。系统必须提供这些任务间的快速且功能强大的通信机制。内核也要提供为了有效地共享不可抢占的资源或临界区所需的同步机制。
  • 方便的任务与中断之间的通信:尽管真实世界的事件通常作为中断方式到来,但为了提供有效的排队、优先化和减少中断延时,我们通常希望在任务级处理相应的工作(uC/OS-III内核采用了这种策略)。所以需要任务级和中断级之间存在通信。
  • 性能边界:一个实时内核必须提供最坏情况的性能优化,而非针对吞吐量的性能优化。我们更期望一个系统能够始终以50微妙(us)执行一个函数,而不期望系统平均以10微妙(us)执行该函数,但偶尔会以75微妙(us)执行它。
  • 特殊考虑:由于对实时内核的要求的增加,必须考虑对内核支持不断增加的复杂功能的要求。这包括多进程处理(比如VxWorks RTP),对更新的、功能更强的处理器结构(比如Multicore CPU)的支持。

相关设计

实时操作系统性能评价的几个主要指标:

  • 中断延迟时间:对一个实时操作系统来说,最重要的指标就是中断关了多长时间,所有实时系统在进入临界区代码段之前都要关中断,执行完临界代码之后再开中断。关中断的时间越长,中断延迟就越长。因此中断延迟时间可以表述为关中断的最长时间与开始执行中断服务子程序第一条指令的时间之和,有时也表述为从系统接收中断信号到操作系统做出响应,进入中断服务程序的时间。
  • 中断响应时间:中断响应时间定义为从中断发生到开始执行用户中断服务子程序代码来处理这个中断的时间。中断响应时间包括开始处理这个中断前的全部开销。中断响应时间包含了中断延迟时间,因此在考虑一个实时系统对外部中断的处理时间时,通常指考虑中断响应时间。典型地将执行用户代码之前保护现场,将CPU 的各寄存器推入堆栈的时间记为中断响应时间。
  • 任务切换时间:多任务之间进行切换所花费的时间,即从前一个任务开始保存上下文的第一条指令开始,到后一个任务恢复上下文开始运行第一条指令为止的时间段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vxworks 学习(一)介绍 的相关文章

  • ZYNQ移植vxworks系统

    版本 xff1a ZYNQ7010 xff0c VxWorks 6 9 ZYNQ PL端有灵活性好 xff0c 资源丰富 xff0c 可反复编程速度快的优势 xff0c 通过 PS的外设并行 AXI总线外挂 PL接口 xff0c 使用 FP
  • Vxworks 学习(一)介绍

    Vxworks 学习 xff08 一 xff09 介绍 该系列文章是我根据多个博主以及相关书上内容整理的学习笔记 xff0c 许多内容非原创 实时操作系统 定义 实时操作系统 xff08 Real Time Operating System
  • 【JokerのZYNQ7020】Vxworks 6.9。

    软件环境 xff1a vivado 2017 4 硬件平台 xff1a XC7Z020 基本全程参考的官方xapp1158 zynq 7000 vxworks bsp pdf xff0c 但我感觉主要难度不在移植上 xff0c 因为pdf里
  • VxWorks和Tornado教程书籍分享

    搞VxWorks的是个小圈子 xff0c 找点学习资料还是有点麻烦的 博主花费了好大的精力才收集到这二十多本书籍 xff0c 下面统统免费分享给大家 xff08 百度网盘链接在文章结尾处 xff09 书籍清单如下 xff1a ARM嵌入式V
  • VxWorks消息队列详解

    文章目录 一 前言二 VxWorks消息队列模块详解三 代码实例 一 前言 最近看了点事件驱动编程 了解到在时间驱动编程中 xff0c 重要的是一个事件收集器 一个事件发送器和一个事件处理器 这让我联想到VxWorks中的消息队列 xff0
  • VxWorks的信号量机制分析

    VxWorks 的信号量机制分析 VxWorks 信号量是提供任务间通信 同步和互斥的最优选择 xff0c 提供任务间最快速的通信 也是提供任务间同步和互斥的主要手段 VxWorks 提供 3 种信号量来解决不同的问题 二进制信号量 xff
  • 第一课:VxWorks系统概述

    目录 1 1 VxWorks系统简介 1 2 VxWorks的特点 1 3VxWorks系统和Linux系统的区别 1 4 VxWorks开发环境获取 1 1 VxWorks系统简介 VxWorks 操作系统是美国WindRiver公司于1
  • 第九课: 工作空间-Work Space介绍

    2 7 工作空间 Work Space介绍 工作空间是WorkBench3 3集成开发环境对项目工程进行集中管理的空间 用户创建的BootRom工程 VxWorks工程 Downloadable工程和静态库工程等都存在于Work Space
  • VxWorks开发俱乐部

    VxWorks开发俱乐部
  • VxWorks的环境配置

    转载请标记出处 http blog csdn net zgh1988 article details 7994538 1 准备工作 1 VMWare 2 一台安装Windows XP或Window 7系统的PC机 3 Tornado 2 2
  • 【VxWorks】Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点

    目录 1 VxWorks操作系统 2 QNX操作系统 3 Xenomai操作系统 4 INtime操作系统 5 SylixOS操作系统 5 1 SylixOS官网
  • VxWorks任务挂死实战分析

    目录 背景描述 根本原因 分析过程 背景描述 操作系统 VxWorks 5 5 CPU MIPS32 74Kc内核CPU 现象描述 联调代码时发现应用层代码调用以下接口函数必现任务挂死 检查代码发现入参均合法 代码逻辑没问题 未发现异常 F
  • Wind River Workbench 3.x VxWorks项目类型

    今天学习了解了Wind River Workbench 3 x VxWorks项目类型及这些类型之间的关系 7种VxWorks项目类型如下图所示 如上图 Wind River Workbench 3 3 相关VxWorks项目类型有7种 分
  • 打开FTP server或者wftpd32提示 unknow error 10013

    打开FTP server或者wftpd32提示 unknow error 10013 问题描述 解决方法 重启ftp 参考 问题描述 近期在进行vxworks的相关环境搭建时打开FTP server总提示unknow error 由于没有详
  • 第七课:BootRom的烧录

    目录 2 5 烧录BootRom 2 5 1 P2020 e500核 上电启动及boot流程 2 5 2 烧录BootRom到NorFlash 2 5 2 1 CodeWarrior的介绍
  • 第四课:创建VxWorks系统镜像

    目录 2 2 2 创建VxWorks系统镜像 2 2 2 1 VxWorks概述 2 2 2 2 创建VxWorks6 9工程 zynq7000 2 2 2 3 创建VxWorks6 9工程 P2020
  • 将 DKM 项目链接到内核映像 (VIP) 项目作为 VxWorks Workbench4 中的子项目/额外模块

    如何将 DKM 项目与内核映像 VIP 项目链接 加载 以便我可以从内核映像项目的 usrAppInit c 调用 DKM 项目 应用程序 的入口点函数 以在启动时自动启动应用程序 有人可以描述步骤或向我指出任何文档吗 将 DKM 项目添加
  • VxWorks 6.8 图像项目未编译

    我正在使用 Wind River Workbench 3 3 和 VxWorks 6 8 当从命令行使用构建时 一切正常 但是当我尝试在工作台中构建时 我收到错误 在尝试追踪它时 我确定使用我们的主板支持包和 gnu 工具链创建新的 VxW
  • 如何将 ifconfig 命令的输出保存到缓冲区中?

    我必须使用 C 和 VxWorks 将命令 ifconfig 的输出保存到字符缓冲区中 我该怎么做 ifconfig 是一个 shell 命令 因此您应该能够使用 gt 将其输出重定向到文件 然后读取该文件 您还可以查看手册中的 重定向 S
  • 如何从 VxWorks 中的 RTP 访问内存映射 I/O 设备 (FPGA)?

    使用 VxWorks 时 我们尝试从实时进程访问内存映射 I O 设备 由于 RTP 具有内存保护 我如何从其中访问我的 I O 设备 您可以使用两种方法从 RTP 访问 I O 映射设备 输入 输出子系统 首选 您本质上是创建一个小型设备

随机推荐