[AutoSar]BSW_OS 01 Autosar OS入门

目录

  • 关键词
  • 平台说明
  • 一、Autosar OS 的位置
  • 二、Autosar OS 与OSEK
  • 三、TASK
    • 3.1两种task
    • 3.2 两种task 的区别
    • 3.3task 的抢占机制
  • 四、scalability class
  • 五、Task Priorities

  

关键词

嵌入式、C语言、autosar、OS、BSW

平台说明

项目Value
OSautosar OS
autosar厂商vector
芯片厂商TI
编程语言C,C++
编译器HighTec (GCC)

在这里插入图片描述

>>>>>回到总目录<<<<<<

一、Autosar OS 的位置

  如在[AutoSar]基础部分 autosar分层架构及BSW介绍中所描述的,OS位于BSW的服务层。服务层中除了OS外还有一些为系统服务的不属于OS,如加密服务,存储服务,通信栈服务。
在这里插入图片描述

二、Autosar OS 与OSEK

  Autosar OS 由 AUTOSAR(Automotive Open System Architecture)组织制定。OSEK由 OSEK/VDX(Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug / Vehicle Distributed eXecutive)组织提出。OSEK 是一种相对传统的实时操作系统标准。
相同点:
1.AUTOSAR OS 和 OSEK 都是为汽车电子控制单元(ECU)提供实时操作系统的标准。
2. 两者都是开放标准,旨在促进汽车电子系统的标准化和互操作性。
3. AUTOSAR OS 和 OSEK 都支持多任务(Multitasking)的概念,允许在同一时间内执行多个任务。
区别:
1.架构和灵活性:
  AUTOSAR OS 更加灵活,允许在不同汽车平台上进行配置和调整,以适应不同的系统需求。它引入了基于组件的开发和配置概念。
  OSEK 遵循较为传统的实时操作系统设计,较为固定,适用于相对简单的嵌入式系统。
2.生态系统:
  AUTOSAR OS 是 AUTOSAR 标准的一部分,与其他 AUTOSAR 标准(如通信堆栈、驱动程序等)相集成,构成一个完整的汽车软件体系结构。
  OSEK 生态系统相对较小,主要用于特定应用领域,如嵌入式系统。
3.通信和服务:
  AUTOSAR OS 提供了丰富的通信机制和服务,支持更复杂的通信和控制策略。
  OSEK 提供较为基本的通信机制,适用于相对简单的应用场景。
4.配置和可扩展性:
  AUTOSAR OS 强调可配置性和可扩展性,允许根据特定的汽车项目需求进行定制和配置。
  OSEK 的配置相对较为有限,更适合对标准特性有较小变化需求的项目。
总之, AUTOSAR OS 更适合大型、复杂的汽车电子系统,而 OSEK 可能更适合相对简单的嵌入式系统。

三、TASK

3.1两种task

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如上图所示分为基本任务和扩展任务。扩展任务比基本任务多了一个waiting状态,当event不满足的时候会进入waiting中等待,释放cpu资源,其他低优先级task运行。当event满足后重新进入ready状态,根据优先级继续执行该extended task。

3.2 两种task 的区别

1.运行状态: basic task 在激活后运行完毕是要自动terminate的,而extende task 在激活后不会自动terminate,除非调用API去终止,它会一直判定envent。
2.执行时间: Basic Task 是周期性任务,按照预定的时间间隔执行。它的周期性执行使得它适用于处理实时性要求不是很高的任务。 Extended Task 可以是周期性任务,也可以是非周期性任务。它的执行时间可以相对较长,适用于需要较多计算和处理时间的任务。
3.资源需求: Basic Task 通常对系统资源的需求较小,适用于相对简单、短暂的任务。为了节约资源,多个basic task如果满足条件还可以共享同一个statc。 Extended Task 对系统资源的需求可能较大,因为它可以执行更为复杂的操作。因此,在配置 Extended Task 时需要考虑系统的资源限制。
4.实时性: 由于其周期性执行,Basic Task 可以满足一些对实时性要求不太严格的场景。 Extended Task 通常用于处理对实时性要求较高的任务,例如需要满足硬实时性的场景。

在Davinci configurator或者EB中我们可以根据需求选择合适的task类型。
在这里插入图片描述

3.3task 的抢占机制

分为抢占式和不可抢占式,可以在Davinci configurator或者EB中配置。
在这里插入图片描述

**非抢占式:**如果该TASK为非抢占式,当该task没有完成的时候及时高优先级的任务来了也无法preempt。
**抢占式:**如果该TASK为抢占式,当该task没有完成的时候如果高优先级的任务来了将会preempt该task。

抢占和非抢占的选择:
1.在实时性上, 抢占性任务通常用于实时系统,其中对任务响应时间的要求很高。通过抢占性任务,可以更及时地响应具有更高优先级的任务。 非抢占性任务相对较灵活,通常用于一些不太关注即时性的场景。当然,非抢占性任务还用于不可被打断的系统任务,例如init,state switch等。
2.在资源占用上:为了压榨硬件资源,大多是TASK都是抢占式的,越重要的任务优先级越高。

四、scalability class

如本文第二节所讲,OSEK 与autosar OS可以共存,在 AUTOSAR 操作系统配置中,系统设计者可以根据硬件平台和性能需求选择适当的 OsScalabilityClass。这有助于确保操作系统在不同的架构和需求中能够以最佳方式运行,并充分发挥scalability 架构的优势。选择合适的可扩展性级别可以平衡性能和复杂性,以满足特定项目的要求。
在这里插入图片描述

OS scalability classSC1SC2SC3SC4
OSEK OS
Counter interface
schedule table
stack monitoring
protection hook
timing protection
global time/synchronization support
memory protection
OS application
service protection
call trusted function

五、Task Priorities

  AUTOSAR OS允许任务共享优先级。当任务共享优先级时,它们将按照先进先出(FIFO)的顺序从就绪状态释放。虽然AUTOSAR OS支持共享优先级,但非常不建议这样做,因为它会阻止您在系统上执行可调度性分析。因为这样无法计算task 的响应时间。

>>>>>回到总目录<<<<<<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/326661.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端h5页面和后端php服务的几种部署方式

一、背景 和java后端服务的部署不同&#xff0c;前端h5的部署有好几种。 CDNOSSnginx反向把输出物全部拷贝到后端 所以&#xff0c;这就带来了部署上的歧义&#xff0c;到底该用哪种部署方式呢&#xff1f; 本文以前端h5搭配后端php程序为示例&#xff0c;试着讨论一下他们…

【STM32】单片机生产实习报告

第1章 概述 1.1 项目背景 在当前科技飞速发展的背景下&#xff0c;嵌入式系统的广泛应用成为推动各行业创新的主要驱动力。我们秉持着培养学生实际操作能力的宗旨&#xff0c;特别设计了这个生产实习项目。通过嵌入式系统开发任务&#xff0c;我们旨在全面锻炼学生的工程实践…

强化学习11——DQN算法

DQN算法的全称为&#xff0c;Deep Q-Network&#xff0c;即在Q-learning算法的基础上引用深度神经网络来近似动作函数 Q ( s , a ) Q(s,a) Q(s,a) 。对于传统的Q-learning&#xff0c;当状态或动作数量特别大的时候&#xff0c;如处理一张图片&#xff0c;假设为 210 160 3 …

一键完成爬虫之Cookie获取:利用浏览器模拟一个cookie出来、面对反爬虫、加密的cookie的应对方法

一键完成爬虫之Cookie获取&#xff1a;利用浏览器模拟一个cookie出来、面对反爬虫、加密的cookie的应对方法 本文提供一个快速取得cookie的办法&#xff0c;用来应对一些网站的的反爬虫和cookie失效等情况本接口是收费的&#xff08;1分钱1次调用&#xff0c;不愿付费自行折腾…

Java 内存模型(JMM)

1. 从 Java 代码到 CPU 指令 如上图&#xff1a; 最开始&#xff0c;我们编写的 Java 代码是 *.java 文件&#xff1b;在编译&#xff08;javac 命令&#xff09;后&#xff0c;从刚才的 *.java 文件生成一个新的 Java 字节码文件&#xff08;*.class&#xff09;&#xff1b;…

云计算任务调度仿真04

这次分享一篇更加高级的云计算任务调度的文章和代码&#xff0c; 基于A3C学习和残差回归神经网络的随机边缘云计算环境动态调度 网络结构 结果 代码示例 这是基于pytorch实现的&#xff0c;所以复现起来没有什么难度&#xff0c;但是可以看到这有六层网络&#xff0c;而且…

运筹说 第97期|非线性规划-一维搜索

第二节 一维搜索 通过上期学习&#xff0c;大家已经了解了非线性规划的基本内容&#xff0c;那么如何求解一个非线性规划问题呢&#xff1f;本期小编就带大家来学习用于求解单变量无约束极值问题的方法——一维搜索&#xff0c;该方法也是后面求解更复杂问题的基础。 一、引入…

C++六大组件之一:仿函数

场景一&#xff1a; 与其过多叙述定义&#xff0c;不如在下面一个场景中来理解仿函数&#xff1a; #include<iostream> using namespace std; template<class T> void bubbles_sort(T* arr,int size) //冒泡排序 {for (int i 0; i < size - 1; i){for (int j…

测试 ASP.NET Core 中间件

正常情况下&#xff0c;中间件会在主程序入口统一进行实例化&#xff0c;这样如果想单独测试某一个中间件就很不方便&#xff0c;为了能测试单个中间件&#xff0c;可以使用 TestServer 单独测试。 这样便可以&#xff1a; 实例化只包含需要测试的组件的应用管道。发送自定义请…

从源码中分析SDS相较于C字符串的优势

文章目录 前言Type && EncodingsdsencodingcreateStringObjectcreateEmbeddedStringObject总结 createRawStringObject总结 createStringObjectFromLongDouble总结 createStringObjectFromLongLongWithOptions总结 相关操作sdscatlen总结 阈值44sds VS C字符串 前言 从…

数据完整性

数据完整性 一、实验目的 掌握使用SQL语句CREATE TABLE定义约束的方法。掌握使用SQL语句ALTER TABLE增加或删除约束的方法。了解约束的各种类型。掌握使用SQL语句CREATE TRIGGER创建触发器的方法。掌握引发触发器的方法。掌握使用SQL语句DROP TRIGGER删除触发器的方法。 二、…

扫雷游戏【可展开一片,超详细,保姆级别,此一篇足够】

一、C语言代码实现的扫雷游戏的运行 C语言实现扫雷 二、扫雷游戏的分析与设计 1.扫雷游戏的界面设计 在玩家玩扫雷的时候&#xff0c;它会给你一个二维的棋盘&#xff08;下面的讲解都以9x9规格为例子&#xff09;&#xff0c;然后点击你想排查的坐标&#xff0c;若不是雷的&…

KubeSphere 核心实战之一【在kubesphere平台上部署mysql】(实操篇 1/3)

文章目录 1、登录kubesphere平台2、kubesphere部署应用分析2.1、工作负载2.2、服务2.3、应用路由2.4、任务2.5、存储与配置2.6、部署应用三要素 3、部署mysql3.1、mysql容器启动实例3.2、mysql部署分析3.3、创建mysql的配置3.4、创建mysql的数据卷pvc3.5、创建mysql工作负载3.6…

MySQL之导入导出远程备份(详细讲解)

文章目录 一、Navicat导入导出二、mysqldump命令导入导出2.1导出2.2导入&#xff08;使用mysqldump导入 包含t_log表的整个数据库&#xff09; 三、LOAD DATA INFILE命令导入导出3.1设置;3.2导出3.3导入(使用单表数据导入load data infile的方式) 四、远程备份4.1导出4.2导入 一…

市场下行,中国半导体进口数量、金额双双两位数锐减 | 百能云芯

根据中国海关总署最新统计&#xff0c;2023年中国累计进口集成电路&#xff08;半导体晶圆&#xff09;数量为4795亿颗&#xff0c;较2022年下降10.8%&#xff1b;而进口金额为3494亿美元&#xff0c;下降15.4%。这一数据显示&#xff0c;中国半导体进口在数量和金额两方面均出…

第十三课:eNSP BGP协议教程

系列文章目录 第一课&#xff1a;eNSP第一个网络拓扑配置教程 第二课&#xff1a;eNSP vlan网络拓扑图配置教程 第三课&#xff1a;eNSP WIFI网络拓扑配置教程 第四课&#xff1a;eNSP 路由器路由配置拓扑教程 第五课&#xff1a;eNSP DHCP拓扑配置教程 第六课&#xff1…

林江院长:让斜视的孩子改“斜”归正,“正视”未来

读写时跳行、不敢和别人对视、拍照时不敢看镜头......这些不便是不少斜视患儿每天都在经历的日常。 斜视是目前儿童常见的眼科疾病之一&#xff0c;该眼病不仅给孩子的外在形象带来影响&#xff0c;更重要的是会影响双眼视功能及身心健康&#xff0c;其危害不容小觑。 7岁男孩晓…

Microsoft Remote Desktop for Mac 中文正式版下载 微软远程连接软件

Microsoft Remote Desktop 是一款专为 Mac 用户设计的远程桌面工具&#xff0c;它可以帮助用户通过网络连接到其他计算机&#xff0c;实现远程控制和操作。 软件下载&#xff1a;Microsoft Remote Desktop for Mac 中文正式版下载 该工具支持多种远程连接协议&#xff0c;包括 …

Python高级编程之IO模型与协程

更多Python学习内容&#xff1a;ipengtao.com 在Python高级编程中&#xff0c;IO模型和协程是两个重要的概念&#xff0c;它们在处理输入输出以及异步编程方面发挥着关键作用。本文将介绍Python中的不同IO模型以及协程的概念、原理和用法&#xff0c;并提供丰富的示例代码来帮助…

SyntaxError: invalid syntax. Perhaps you forgot a comma?解决办法

Bug分析 1.错误解释2. 示例 1.错误解释 这个错误提示“SyntaxError: invalid syntax. Perhaps you forgot a comma?”表明你的代码中存在语法错误&#xff0c;可能是缺少了一个逗号。 在Python中&#xff0c;逗号用于分隔列表、元组和字典中的元素。如果在创建这些数据结构时…
最新文章