《实时控制软件》第三周作业

author author     2022-08-19     198

关键词:

一、Xenomai的简介

1.简介

      Xenomai 是一种采用双内核机制的Linux 内核的强实时扩展。优先级高于Linux 内核,它负责处理系统的实时任务。Xenomai 无缝集成到Linux操作系统,从而无障碍所有的Linux软件栈源代码和更多的东西Xenomai 实时内核为开发强实时应用提供了丰富的功能, 主要包括实时线程调度与管理用户空间实时任务支持中断服务线程同步服务实时对象注册服务和动态内存申请等。

     和典型的Linux实时方案( RTLinux和RTAI) 相比,Xenomai拥有自己的两个特色: 一是支持完全的性能优异的用户态下的实时性; 二是它兼容常见的vxworks pSOS+ VRTX等成熟的实时操作系统的API,这为各类传统实时操作系统的实时程序快速移植到新的平台上提供了便利,同时还提供了原生API和实时驱动模型( RTDM) 。

    

2. 结构 

      Xenomai项目起始于2001年。从2003年夏天起,Xenomai和RTAI有了两年时间的合作,期间开发了广为人知的RTAI/fusion项目分支。到2005年,Xenomai项目又重新独立出来。而从2.0.0版本开始,Xenomai在硬件平台的移植就一直是基于Adeos构架来实现的。


      在基于ADEOS技术的Xenomai系统中,通常有A、B、C和D四种类型的交互。如图所示: 

 

技术分享
1. A类交互是各个域和硬件设备直接联系,包括访问内存等; 
2. B类交互指当ADEOS接收到硬件中断后,会根据中断来对相应的域进行中断服务; 
3. C类交互指当前域内的操作系统主动向ADEOS请求某些服务; 
4. D类交互是指ADEOS接收硬件产生的中断和异常,同时也可以直接控制硬件

      Xenomai在ADEOS系统中的域优先级要高于标准Linux域,每当中断到来之后,ADEOS先调度Xenomai对该中断进行处理执行中断相应的实时任务,只有当Xenomai没有实时任务和中断需要处理的时候,ADEOS才会调度Linux运行,这就保证了Xenomai的中断响应速度和实时任务不受Linux的影响,从而提供了实时系统的可确定性。

      Xenomai 还提供了用户态下的任务的混合执行模式,即任务运行于主域时,任务是由Xenomai直接调度的,可以随时抢占标准Linux的非实时任务; 当任务运行于从域时,任务由标准Linux内核调度,任务切换的时间较长且不支持随时抢占,但可以应用Linux所有的系统调用 然而,由于某些具体任务具有优先级继承的 特 性,在 标 准Linux 进 行 内 核 调 用 时,标 准Linux中断可能抢占实时任务的调度权,对实时任务造成不必要的延时 对此,Xenomai 引进了中断屏蔽机制,即在实时任务执行过程中,任何来自标准Linux内核的中断都将被延迟处理 它支持的优先级继承的策略,可以防止它检测到一个同步对象时发生优先级的翻转。     

      实时操作系统的实时性的一个评价指标是任务响应延迟,这其中一个就是中断延迟时间 为了能从根本上解决中断延迟时间过大的问题,ADEOS巧妙地通过一种虚拟中断技术来有效地减少中断服务时间和中断分派时间,以此获得更佳的任务响应时间 当产生一个硬中断时,系统既不去查看中断向量表,也不去执行相应的中断服务程序,而是将事件直接记录到一个事件表中,然后立即将CPU的控制权返回给操作系统 此过程仅需保存中断模拟程序的寄存器,从而省去了在硬件服务中要保存上下文环境的时间。

 

二、对于小组任务的看法

      对于一个软件的开发包括很多的步骤,从最开始的需求分析入手,到系统架构,每一部分的编写实现等,都需要每个人好好协作,发挥自己的特点与优势,完成这个软件。 
      对于二轴机械手的仿真,我对轨迹插补任务比较有兴趣,这部分要求算法的计算比较好,设计一个比较好的模型方便编程。我软件编写能力比较弱,但有比较好的逻辑思维能力和数学计算能力,因此在功能分析、算法设计方面比较有兴趣。

 

三、编程作业

      编程作业已上交于GITHUB

 







第三周作业

...s性能特点)1.Sylixos简介SylixOS是一款为嵌入式系统设计的硬实时操作系统(RTOS)。此系统于2006年开始开发工作。设计之初只是为了验证相关操作系统算法,后来经过多年的持续开发与改进,SylixOS已经不只是一个实时操作系统,它... 查看详情

第三周作业

1.阅读笔记:VxWorks实时操作系统的特点     VxWorks是美国温瑞尔系统(WindRiver)公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核... 查看详情

实时控制软件设计第一周作业

... 以汽车ABS系统的软件系统进行案例分析: 一、强实时功能需求有:1.汽车车轮转速的实时监测,实时计算出轮速、参考车速、车轮加速度、滑移率等参数;              &... 查看详情

软件工程_东师站_第三周作业

...不动。 代码行数博客字数知识点第一周400430见我博客软件工程——师大站1第二周05200见我博客软件工程_东师站_课堂笔记第三周063站立会议、单元测试 查看详情

软件工程第三周作业-效能分析

运行三次ptime.exe,时间如下:平均速度0.511s,我觉得挺快的。profile等待更新。 查看详情

《实时控制软件》第四周作业

对于一个冰球仿真的软件进行分析,首先分析需要哪些子系统:1、人机交互系统    这个系统主要的作用是图形化输出,让用户能看见冰球的位置情况等内容。并且可以接收人的一些输入信息。2、游戏策略系统&nbs... 查看详情

实时控制软件第四周作业

冰球游戏系统模块设计:Gui窗口模块:负责整个游戏界面的绘制,作为整个游戏软件的运行载体,目前计划采用Qt窗体程序进行游戏主窗口的创建;OpenGL模块:在Gui窗口中进行游戏元素的绘制;物理引擎模块:负责进行物理逻辑... 查看详情

实时软件控制第二周作业

停车场门禁控制系统的状态机设计门禁控制系统的输入信号包括:起落杆位置传感器:有两个位置值信号(升起/落下)汽车入闸传感器:有两个值(True/False)汽车出闸传感器:有两个值(True/False)门禁控制系统的输出信号包括... 查看详情

实时控制软件第二次作业

0.Fork例程到自己的GitHub账号:开发环境搭建1.QEMU安装建议使用qemu-system-gnuarmeclipse,该qemu分支对stm32f4有更好的支持,主要面向Eclipse开发环境。到网页 https://github.com/gnu-mcu-eclipse/qemu/releases/tag/gae-2.8.0-20161227 下载二进制文件... 查看详情

实时控制软件设计第二周作业

一.汽车出入门禁系统状态机设计状态机所有状态:入闸传感器(两种状态):Ture False (分别用ET和EF表示)出闸传感器(两种状态):Ture False (分别用OT和OF表示)起落杆(两种状态):    UPDOWN  ... 查看详情

软件工程第三周作业(代码片段)

软件工程第三周作业第一部分:调研,评测1.下载并使用,描述最简单直观的个人第一次上手体验。首先登录成功后,就发现可以签到,下面还有朋友圈,新闻,消息,我的个人设置。朋友圈的话就很丰富了,卖书的,发鸡汤的... 查看详情

实时控制软件第二次作业--停车场门禁控制系统状态机

作者:李君威U201310747  状态机图示: 将起落杆的位置状态和通行灯信号作为两个类对象,汽车出入闸传感器信号作为输入,编写代码:1//qichemenjin.cpp2//CopyrightbyJustin.34#include"stdafx.h"5#include<iostream>6usingnamespacestd;7cla... 查看详情

实时控制软件设计第二周作业-停车场门禁控制系统状态机

画出动作转换图为: 使用模块化设计,将起落杆、出入传感器和通行灯设计成四个模块,分别继承设计好的系统模块接口:1//FSM_Interface.h2#pragmaonce34namespaceFSM5{67classISystemUnit//系统单元接口8{9public:1011virtualvoidInitialize()=0;//初始... 查看详情

实时控制软件设计第一周作业-汽车abs软件系统案例分析

...频增压,保压,减压,防止车轮抱死。Q1.该系统有哪些强实时功能 查看详情

软件工程第三周作业-功能测试

被测试同学一:高渊博(纯属随机抽取[捂脸])标题:统计文本时,将所有的统计结果都显示了出来,并不是只显示前十个,同时也没有进行排序。内容:  测试环境:Windows10操作系统、VS2017。  准备工作:在coding上将代码p... 查看详情

1903021130-杨建-java第三周作业-eclipse软件下编写代码并运行(代码片段)

项目内容课程班级博客链接19级信计班(本)作业要求链接java第三周作业这次作业目标安装并利用Eclipse编写代码并成功运行显示运算结果是否完成这次任务是扩展阅读学习心得:通过阅读第一篇扩展知识学会了在eclipse下创建Java... 查看详情

实时控制软件设计第二周作业-停车场门禁控制系统状态机设计

门禁控制系统的输入信号包括:起落杆位置传感器:有两个位置值信号(升起/落下)汽车入闸传感器:有两个值(True/False)汽车出闸传感器:有两个值(True/False)门禁控制系统的输出信号包括:起落杆电机控制信号:(上升/... 查看详情

软件工程第三周作业-功能测试

有一个算法竞赛的网站叫topcoder,后来杭电山寨了一个叫bestcoder的。跟传统的算法竞赛略有区别的是,交完代码会先跑小数据,小数据过了先被接收,不过不一定对。到了一个时间,可以造数据challenge别人代码。cha中了加分。这... 查看详情