关于Autosar操作系统(OS)

Autosar模块介绍:AutosarOS_2(操作系统基本概念) Autosar OS基本概念介绍: 1)、任务的基本概念、调度方式、优先级等 2)、两类中断基本概念 3)、任务优先级及中断优先级 阅读详情
AI摘要

本文介绍了Autosar操作系统,首先阐述了嵌入式系统复杂时需要操作系统来管理调度的原因。接着说明了Autosar OS的基本内容,包括各对象关系,如OS、Core、Application和对象的层级包含关系,还介绍了Core、Application、Counter等对象在系统中的作用和特点。

本篇文章将主要以介绍性为主,只是方便大家了解,来介绍Autosar操作系统。希望阅读本篇文章达到的目的是大家可以了解Autosar操作系统中包含的一些基本内容。

我会主要从以下几个方面,让大家快速了解 Autosar OS:

1. 为什么需要嵌入式操作系统

2. Autosar Os的基本内容

  2.1 Autosar Os中所有对象的关系

  2.2 Core

  2.3 Application

  2.4 Counter

  2.5 调度表

  2.6 Alarm

  2.7 Task

  2.8 Interrupt

  2.9 Event

  2.10 Resource

  2.11 Spinlock

  2.12 IOC

 

1. 为什么需要嵌入式操作系统

早前,在比较简单的嵌入式软件中,一般是不需要操作系统的,相信很多嵌入式开发的小伙伴都了解,在Main函数中,写一个超循环(While),然后加一个定时器,分时间片的方式,定时去执行代码,就完成了简单的调度功能。然而当嵌入式软件变得越来越复杂时,这种简单粗暴的调度方式就无法满足要求了,举个例子,假如有个这样的需求,软件中 需要调度的有1ms,2.5ms,3ms,7ms,9ms,11ms,73ms...等等不同周期要求的任务时,这个时候,用超循环去执行,你会发现分时间片的方式几乎无法实现(太难了),再举个例子,如果有多个core,多个core之间还有通信的要求,这个时候就需要一个专门的软件来管理了,因此就需要这么一个叫操作系统的软件,来管理这些调度。

上面核心是想引出,所谓操作系统,就是管理系统调度的一个软件组件,以满足复杂一点的调度。下面我会尽可能的通俗简单的,针对OS中每个对象元素进行说明。

2. Autosar Os的基本内容

2.1 Autosar Os中所有对象的关系

(不画图了,上传有点麻烦,建议大家在草纸上自己画一个,方便理解)

说明1:Task、Interrupt、Alarm、调度表/schedule Table、Resource、Event 我们称他们叫对象(Object)

说明2:【OS 包含1~N个Core】  -- 【1个Core 包含1~N个Application】--【1个Application 包含0~N个Object】

举个小栗子,方便大家记住:

OS是一【片】水塘,Core是其中一【个】水塘,Application是水塘里面一个【水箱】,Object就是水箱里面各种鱼。

其实,就这么简单,他们之间主要的包含关系就这样啦,但是水塘-水箱-以及鱼之间的关系咱在下面掰扯掰扯啦。

2.2 Core

Core就是我们所说的水塘了,我们都听过我们的手机是什么8core-16core(贼牛逼了),Core其实并不神秘,他就是指向我们的代码,然后一行一行的执行,(这里说说芯片内核)它里面的东西一般有个指令获取单元、指令执行单元以及地址寄存器和数据寄存器,代码在Core上执行过程就是 把代码抓过来 -- 翻译一下--计算一下(逻辑运算)-- 存一下,然后下一条。我们简单总结一下,所谓的Core,其实就是一个可以独立执行代码的单元。

2.3 Application

Application就是我们所说的水箱,其实从字面意思理解,它是一个应用,准确点说,它是一个进程。它部署到某一个Core上,它主要的作用就是管理放到其中的对象(也就是管理水箱里面的鱼),为啥要有这玩意呢?鱼直接放到水塘不就可以吗?举个不恰当的例子,假如一条鱼(一个对象)生病了,完啦完啦,还是传染病,那么整个水塘的鱼都遭殃了,如果有个水箱圈起来,那么顶多也就那个水箱的鱼遭殃。再举个例子,假如你手机里面淘宝不能用了,整个手机都变砖头,你会作何感想?所以,Application其实就是一个独立管理一部分OS 对象的单元,它可以独立启动,关闭,或重启。那么Autosar Os中,对它还有一个重要的作用,就是功能安全上的应用,这个如果想进一步了解可以留言咨询。

2.4 Counter

好吧,水塘水箱的例子,在后面不太适用了,这里我把Counter比作 心脏吧,或者对于芯片来说,它就是晶振了,因此它在操作系统的作用就是计时或者计数,一般Counter与芯片的Timer结合起来,Counter的精度决定了操作系统能计时的准确度。

2.5 调度表 或 Schedule Table

字面意思理解,你可以认为它就是包含了很多调度点的一个表,Autosar Os中一般这么用调度表,比如有 1ms 2ms 3ms 三个周期需要调度的任务,那么它会根据公约数,生成一个表,这个表在1ms 处调度1ms任务,2ms处调度1ms和2ms任务,3ms处调度1ms和3ms任务,4ms处调度1ms和2ms任务,5ms处调度1ms任务,6ms处调度1ms,2ms,3ms任务,然后按照这样的关系循环,这就是所谓的调度表,目前有部分主流的Autosar开发商使用这种方式进行任务的调度。

插句话:此外,这种Schedule Table有自己的状态机,这里不做详细介绍,个人认为,相对Alarm的调度方式,Schedule Table调度方式最大的好处在于调度上可以同步。

2.6 Alarm

字面意思理解,警报器,其实它就像我们上课的铃声,到点它就响应。其实操作系统用它来也是做一些定时的事情,比如定时激活一个Task。前面我们讲到Schedule Table也可以激活Task,那么Alarm和它还是有些区别的,Alarm一般只做一个定时任务,如果有1ms,2ms,3ms的调度任务的话,一般会对应三个Alarm,一个Alarm做1ms定时,定时到了就去激活1ms的任务,然后进行1ms任务的调度,2ms,3ms的任务以此类推进行调度。

2.7 Task

其实Task应该是大家都比较熟悉的,Autosar Os中它有些自己的性质,下面说说它都有哪些性质。

Task 类型:

  Basic Task:包含状态Ready Running Suspend

  Extend Task:包含状态Ready Running Suspend + Waiting

所谓的扩展task,就是多了一个Waiting状态,因此它一般就是等待一个Event的到来。

符合类:

  BCC1:基本Task,不可被重复激活(激活1次,在Ready和Running下不可再激活)

  BCC2:基本Task,可被重复激活

  ECC1:扩展Task,不可被重复激活

  ECC2:扩展Task,可被重复激活

此外Task的调度分为可抢占以及不可抢占,对于可抢占的Task,OS会根据Task的优先级进行排序调度,优先级高的可以抢占优先级低的。

Task就是OS中的一个调度单元,OS的很多内容都是围绕它进行管理的。比如上文提到的Alarm Schedule Table 都是用作定时去激活 Task,此外下文还是提到Event,其也和Task关联起来用。

2.8 Interrupt

中断的概念,对于嵌入式开发的小伙伴来说,应该都比较熟悉,下面我仅仅说明一下在OS中中断的特殊概念。

Autosar OS中将中断分为Cat1 和Cat2,即所谓的1类中断和2类中断,所谓的2类中断其实就是完全被OS接管的中断,这类中断的上下文切换,堆栈管理全部由OS管理;而1类中断则不被OS接管,因此它的上下文由自己管理。另外Autosar Os中要求Cat1的中断的最低优先级高于Cat2的最高优先级,也就是说Cat1的中断优先级更高。所以Cat1的中断一般用于时间要求更紧急的场合。

 2.9 Event

事件仅仅和上文提到的扩展Task绑定在一起来实现一个调度功能,那么它的应用场景是什么样的呢?其实是随处可见的,比如你按下鼠标左键 点击 【确定】按钮  这就是一个Event,那么你点击了,会发生什么事呢,这就是这个事件发生后,绑定到这个Task后需要调度的事情,比如关闭弹出。虽然嵌入式没有界面,但是意思一样,下面以一段伪代码说明一下:

Task

{

    A_Function();

    B_Function();

    WaitingEvent('"click Confrim");/*点击确定*/

    C_Function();/*关闭窗口*/

}

还有三章小节,但对Autosar Os已经有个基本了解了,就说到这里吧,想进一步深入了解的,可以看看Osek Os VDX 这类文档,或者也可以进行交流 

AUTOSAR OS(AUTOSAR 操作系统) 原创文章,禁止转载。 本专栏还有一篇介绍OSEK OS的文章,两篇文章一起学习,效果更佳。 阅读详情

相关推荐

AUTOSAR OS(操作系统)配置实战与避坑指南

本文详细解析了AUTOSAR OS(操作系统)在汽车电子系统中的配置实战与避坑指南。通过核心概念解析、开发环境搭建、任务与中断配置的黄金法则,以及调试技巧与性能优化,帮助开发者高效实现实时调度与资源管理,确保系统的确定性和可靠性。

weixin_28481133的博客 399

Autosar - 【1 OS模块】

Autosar (Automotive Open System Architecture)是一种汽车电子系统的标准化框架,旨在提高汽车电子系统的可重用性、可扩展性和可靠性。OS模块是Autosar中的一个重要模块,用于管理汽车电子系统中的任务和资源。

hammershr2012的博客 6000

Autosar-OS软件概述和配置

OS的功能 ①改变各任务的执行频率; ②改变各任务的执行时间; ③设定各任务的优先级,保证高优先级任务能够及时执行; ④任务调度、切换时的现场保护与恢复; ⑤共享资源的安全访问机制等;

诊断协议那些事儿's blog 1万+

AUTOSAR之AUTOSAR OS(上)

AUTOSAR(Automotive Open System Architecture,汽车开放系统架构)是一种开放的、标准化的汽车电子软件架构。AUTOSAR OS(Operating System,操作系统)规范是AUTOSAR架构中的一部分,它定义了操作系统的相关特性和功能。基于OSEK OS:AUTOSAR OS 的核心功能基于 OSEK OS(一种广泛应用于汽车行业的单核实时操作系统),并在此基础上进行了扩展和增强。静态配置与实时性能:支持静态配置,以保证实时性能。

fuyun32的博客 5277

AUTOSAR OS详细介绍以及配置说明

AUTOSAR OS扩展了OSEK/VDX标准中的操作系统,所以本文结合OSEK/VDX的标准来介绍AUTOSAR OS,并借助Vector Configurator讲解AUTOSAR OS的配置。OSEK源于德语,英文意思是:“车载电子设备的开发系统和接口”,它是一个标准,用来产生嵌入式操作系统的规范,通讯协议栈,和汽车网络管理协议,也产生其他相关的规范。OSEK被设计来提供整车的各种电子控制单元的软件标准架构。

酒无忧的博客 5910

【AUTOSAR OS】了解AUTOSAR操作系统基本概念(1)--任务

AUTOSAR OS 是 OSEK OS 规范的扩展。AUTOSAR OS 包括 OSEK OS 的所有功能,并添加了一些新功能,分为四个“可扩展性类”:可扩展性类 1 包括 OSEK OS 及以下功能:调度表提供了一种比 OSEK OS 的报警更容易和替代的编程重复活动的方法。每个调度表可以作为一个单元进行管理,并且可以在运行时在不同的表之间切换,从而可以轻松构建“模态”系统。软件计数器接口标准化了操作系统与计数器之间的交互(在 OSEK 中这是特定于供应商的)。

weixin_46481662的博客 1411

AUTOSAR_CP_OS-AUTOSAR核心操作系统

AUTOSAR Core OS是经典平台的核心操作系统模块,基于OSEK/VDX标准设计,专为高实时性汽车ECU优化。它在保持OSEK兼容性的同时进行了功能改进:限制低效特性(如Alarm Callback)、完善未定义行为、新增中断控制等4项扩展功能,并禁用冗余模块(OSEK COM)。Core OS通过"兼容+限制+扩展"策略,既确保数百万OSEK应用的平滑迁移,又满足AUTOSAR复杂场景需求,成为汽车嵌入式系统的重要技术基础。其设计平衡了实时性、兼容性与功能扩展性。

木木不迷茫(˵¯͒¯͒˵)的博客 1000

AUTOSAR OS和OSEK OS:嵌入式操作系统的比较与源代码示例

本文将比较AUTOSAR OS和OSEK OS,并提供相应的源代码示例。综上所述,AUTOSAR OS和OSEK OS都是嵌入式操作系统的重要标准,它们在汽车电子控制单元等嵌入式系统中起着关键作用。AUTOSAR OS提供了一种可扩展的、面向多核处理器的操作系统解决方案,适用于汽车电子控制单元(ECU)等嵌入式系统。以上提供的源代码示例展示了在AUTOSAR OS和OSEK OS下创建任务的方法。下面将分别介绍AUTOSAR OS和OSEK OS的特点,并提供相应的源代码示例。启动AUTOSAR OS。

EcmFsharp的博客 744

[AUTOSAR OS] 1 AUTOSAR操作系统的基础工程(上)

[AUTOSAR OS] 1 AUTOSAR操作系统的基础工程配置(上) 现在我们从零开始搭建一个AUTOSAR OS,本节主要讲了Davicni Cfg和Dev中的配置。 1 系统配置 1.1 新建工程 打开DaVinci Configurator,新建工程,输入工程名称MultiCoreOS_Demo,选择工程需要保存的文件夹路径,其余保持默认。接下来选择Target,这里我的开发板是Infineon AURIX TC2xx系列,编译器我使用的为Tasking。在下面选择使用的Developer版本,如

RomanticRealist的博客 7920

【AutoSAR】【OS】操作系统

现有的AUTOSAR OS是由在汽车行业广泛使用的OSEK/VDX操作系统基础上发展而来,AUTOSAR多核 OS也是在现有AUTOSAR OS基础上衍生出来; AUTOSAR中的多核操作系统不是一个虚拟ECU的概念,相反,它应该被理解为一个操作系统,共享相同的配置和大部分代码,但是操作在不同的内核数据结构上。 为了减少内存占用,所有核心都应该使用相同的代码基础。 有时花更多的ROM/Flash是有益的,例如使用本地的 和“双”部分的代码,以获得更快的ROM/Flash访问。 二、调度 上图优..

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 1824

【AUTOSAR OS】OS COUNTER 操作系统计时器

AUTOSAR OS计数器作为实时系统性能的关键组件,在现代汽车电子系统中扮演着不可或缺的角色。通过本文的深入探讨,我们可以得出以下结论:核心功能:计数器为AUTOSAR OS提供了精确的时间管理和任务调度能力,是实现实时性能的基础。灵活性:AUTOSAR OS支持多种类型的计数器,包括硬件和软件计数器,能够适应不同的应用场景和性能需求。系统性能影响:合理配置和优化计数器可以显著提升系统的实时性能、资源利用效率和可靠性。

weixin_46481662的博客 575

【ETAS CP AUTOSAR工具链】RTA-OS操作系统详解

文章首先介绍了RTA-OS诞生的整个过程,并粗略的介绍了不同阶段的系统特性,然后根据一个RTA-OA整体配置开发过程实例,详细的介绍了RTA-OS基本的特性内容。

十六宿舍的博客 9598

人机交互期末复习笔记

人机交互期末复习笔记 进行复习的童鞋们可以跟着清华大学《人机交互基础教程第3版(孟祥旭、李学庆、杨承磊、王璐编著)的书籍参照借阅。上面的一字一句皆是敲键盘敲出来的,并且掌握课本的基本内容。 博客中的知识点有些地方会进行粗略的跳过(主要的大框架没有省略),建议有同样需求的读者结合书本与博客一同借阅。本博客有错误的地方多多指正,谢谢大家~ 文章目录人机交互期末复习笔记第一章 绪论 P11.1 人机交互的概念1.2 人机交互的研究内容1.3 人机交互的发展历史(只介绍人机交互阶段)第二章 感知和认知基础 P122

server643的博客 5022

Autosar OS规范资源文件——汽车操作系统标准化利器

Autosar OS规范资源文件——汽车操作系统标准化利器 【下载地址】AutosarOS规范资源文件介绍 探索汽车操作系统的核心标准——Autosar OS 规范资源文件。本文档深入解析了AUTOSAR操作系统的基础要求和标准规范,专为满足汽车行业顶层需求而设计。无论您是汽车工程师还是技术研究人员,这份详尽的PDF文件...

gitblog_06758的博客 580

A股量化实战:用Python回测动量因子策略(附聚宽完整代码)

本文详细介绍了如何在A股市场使用Python和聚宽平台,实战回测一个动量因子量化交易策略。从环境搭建、数据获取到完整的策略代码实现与回测分析,手把手教你验证“强者恒强”的投资逻辑,并提供参数优化与实战避坑指南,助力量化新手迈出第一步。

weixin_29264201的博客 967

RingBuffer 环形缓冲区----镜像指示位

称作环形缓冲区,也称作环形队列(circular queue),是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。这个宏定义用于计算向下对齐的地址。size和align。size是要对齐的内存大小,align是所需的对齐大小。这个宏返回一个值,该值是size向下对齐到align边界后的地址。例如,假设我们有一个 32 位的系统,并且我们需要将数据对齐到 64 位的边界。我们可以使用在这个例子中,data数组的大小为 10 个元素,我们需要将其对齐到 8 字节边界。宏返回data。

呵呵哒!的博客 2405

AUTOSAR OS(操作系统)设计与配置笔记

摘要: AUTOSAR OS是汽车电子系统的核心操作系统,解决了传统调度方式在实时性、安全性和维护性上的不足。它基于OSEK OS发展而来,支持多任务优先级调度、中断管理和资源保护,并通过静态配置满足不同安全等级需求(SC1-SC4)。其核心组件包括任务、调度表、计数器等,适用于从简单ECU到复杂域控制器的各类场景。最小系统配置需包含基础调度元素(如任务、计数器、调度表),确保实时性和可靠性,同时可根据需求扩展高级功能(如时序/内存保护)。

weixin_44399845的博客 1650

正点原子ATK-LORA-01无线串口代码移植+STM32F103C8T6(标准库)

目录 一、ATK-LORA-01无线串口资料 二、代码移植 1.分析 (1)usart3(也可以是其他的串口)用于接收数据的串口 usart.h (2)time3(也可以是其他的定时器)用于时序的设置 (3)lora.c 三、演示 1.主机(发送方) (1)主机接线 (2)主机代码(发送方) (3)主机实物 插上无线串口通电即可发送​ 2.从机(接收方) (1)从机接线(LORA与主机相同) (2)从机代码(接收方) (3)从机实物 接上TTL和LORA并通电即...

m0_56942354的博客 8963

【汽车操作系统】Autosar和商用OS

随着汽车功能越来越多,导致ECU的数量越来越多。1993年的时候,奥迪A8才只有5个ECU现在典型的现代汽车上有超过50个ECU,有的车甚至有150个ECU。但是ECU可能是不同的供应商提供的,各厂家的标准、软件架构可能不同,OEM车厂要让这些ECU之间正常通信,是一件复杂和困难的事。供应商软件开发的工作量也很大,版本众多维护起来非常困难。在ECU中添加新功能,或者把ECU-A的功能移植到ECU-B中也不是一件简单的事。

物联网爱好者 1370

【HCIA学习记录】WLAN配置实验

HCIA-WLAN

寸先生的AI道路 3872

拯救者R7000用户实测:用华为电脑管家11.0版搞定MatePad Pro多屏协同(附驱动与显卡避坑指南)

本文详细介绍了如何在非华为笔记本联想拯救者R7000上安装华为电脑管家11.0版,实现与MatePad Pro的多屏协同功能。从驱动优化到显卡配置,提供了全面的避坑指南和实用技巧,帮助用户解决连接失败等常见问题,提升跨设备生产力体验。

weixin_30788619的博客 398

OS:AUTOSAR_CP_RS_OS-R25-11操作系统需求 翻译+理解

本文档定义了AUTOSAR操作系统的高级需求规范,主要包括以下内容:1)适用范围:适用于AUTOSAR OS的高级需求定义;2)核心功能:在OSEK OS基础上扩展实时调度、保护机制(内存/时序/服务保护)、多核支持等功能;3)关键特性:支持静态调度表、OS-Application隔离、错误检测与恢复机制;4)多核管理:规定核间任务激活、事件同步、数据交换等机制,保持与单核系统的行为一致性;5)可扩展性:提供4个可配置级别,支持按需裁剪功能;6)调试支持:集成ARTI接口,便于调试与性能分析。文档采用标准化

梦想技术家 780

【虚幻引擎UE】UE5 仅需6步轻松实现关卡顺滑切换

【虚幻引擎UE】UE5 仅需6步轻松实现关卡切换

灵境引路人 2万+

AUTOSAR OS(操作系统)配置实战:从理论到RTA-OS工具链

本文详细介绍了AUTOSAR OS在汽车ECU开发中的核心价值与实战配置流程。通过对比裸机编程的痛点,阐述了AUTOSAR OS在确定性、安全性和可维护性方面的优势。文章以车身控制器为例,结合RTA-OS工具链,逐步讲解了从核心概念理解、环境搭建到任务、计数器、调度表等关键模块的配置与代码生成,为开发者提供了一套从理论到实践的完整操作指南。

d3e4f的博客 412

【已解决】飞牛nas(fnOS)异常断电导致硬盘未挂载(无法挂载),系统内部错误修复、救回数据全流程!(含更新系统后外接 NTFS 格式硬盘丢失的修复方法)

fnOS 飞牛NAS遭遇非正常断电后,存储空间显示「未挂载」或更新系统后外接 NTFS 格式硬盘丢失,点击挂载提示「系统内部错误」!💥 博主已经完美恢复,本文记录了相关的解决方案,帮您恢复或最大程度保住重要数据🎉

XiaoqiangClub的博客 2160

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

系统学习AutoSAR ETAS RTA-OS嵌入式操作系统(二)开发过程 Development Process

本章提供了如何在应用程序中使用RTA-OS的简要概述。 该过程包括以下步骤: 1. 配置您想要使用的操作系统功能 2. 生成定制的RTA-OS内核库 3. 编写使用操作系统的应用程序代码 4. 将您的应用程序代码编译并链接到RTA-OS库 5. 在目标上运行您的应用程序。

艾格北峰嵌入式 1904

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 关于汽车诊断OBD的理解(ISO15031-5)
下一篇: ISO26262功能安全--产品开发过程
AgingMoon
博客等级 码龄9年 3966粉丝 61原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值