【Zeekr_Tech】汽车软件RTOS-之AUTOSAR OS多核控制简介

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

 极氪软件及电子中心 jojo

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

       与实时操作系统对应的就是非实时操作系统了,例如Linux(可以通过给内核打上RT补丁使其变为实时操作系统),windows。这类操作系统将系统处理机时间和内存空间按照一定的时间间隔,轮流地切换给各终端用户的程序使用,会给低优先级进程分一些运行时间,避免高优先级重负载任务把键盘鼠标控制台桌面之类堵死。

       实时操作系统有很多如μCos、FreeRTOS、Vxworks、QNX、Osek os。AUTOSAR的core OS就是OSEK,他早已广泛应用于汽车工业。OSEK源于德语,是一种嵌入式操作系统,被设计用于提供整车的各种电子控制单元的软件系统。AUTOSAR OS 向后兼容OSEK OS,基于OSEK OS 扩展了一些特性和需求,比如内存保护(memory protection)和时间保护(time protection)等。

OS-Application是AUTOSAR OS 的重要的功能单元, 负责收集操作系统对象,如Tasks, ISRs, Alarms, Schedule tables, Counters等。

AUTOSAR_SWS_OS规范中7.6章节对AUTOSAR OS的框架定义。其中包含:

序号

操作系统对象

作用

1

APPLICATION

OS-APP,负责收集操作系统对象

2

SCHEDULETABLE

调度表

3

ALARM

报警器,一般用于在操作系统运行过程中,可进行实时的报警周期设置,典型的用于功能安全相关的调度机制

4

COUNTER

计数器

5

TASK

周期任务

6

ISR

中断任务,响应外部和内部事件触发的中断

7

ErrorHook

当软件运行遇到Error,调用hook

8

StartupHook

当软件上电且需要从boot进入到操作系统之前,往往需要调用hook,完成启动操作。

9

ShutdownHook

软件下电且需要退出操作系统,往往会调用hook,跳转到shutdown完成下电操作。

       如果在系统中使用OS-Application,则所有的Task, ISR, Counter, Alarm, Schedule Table都必须属于某一个OS-Application 。

       接下来我们来聊聊AUTOSAR操作系统中的多核处理。AUTOSAR中的多核操作系统并不是一个虚拟ECU概念,而是一个共享相同配置和大部分代码的操作系统,但是不同的核上进行不同的运算。操作系统的生成部分的相关信息来源于同一个配置。这意味着,ID(例如TASKID、RESOURCEID…)在核之间是唯一的。任务的优先级定义来源于调度表的配置。因此多个内核可以真正并行运行,可以同时执行多个任务。

  1. Startup阶段。初始化MCU,每个核完成EcuM_Init() (AUTOSAR定义功能),且每个核完成StartOS。
  2. 运行阶段。从启动模式切换到操作系统运行模式,完成OS:Startuphook,并开始操作系统的运行,e.g. 10ms, 100ms等周期性任务开始运行。
  3. Shutdown阶段。从OS运行模式切换到下电模式。下电关闭程序由BswM和EcuM协调。所有核上的EcuM都表明它们已经准备好了关闭,EcuM在主内核上调用shutdownallcore(),完成整个ECU的下电.

   在AUTOSAR OS中具体的分配策略有如下几种:

1)ChainTask链任务机制

什么是ChainTask机制,AUTOSAR规范中又是如何定义的呢?一个链任务由几个任务组成,每个链任务OS-Mechanism相互激活。所以不同的任务可以按照定义的顺序在不同的核上执行。

例如下图所示。左边是单核芯片core X,右边是双核芯片core Y和core Z。

原来任务Task A是单独在单核芯片core X上运行, Task A => proc1(); proc2(); proc3(); proc4()。当把Task A拆分为两个任务Task A’和Task A’’ 并且分别在2个单独的核core Y和core Z上运行时,链任务ChainTask机制确保,流程顺序是与任务A一样,在不同的内核中运行。

       跨核task又是如何开销ChainTask呢?例如下图所示。拿1ms任务举例,首先Core X触发OS_BswStart_1ms_Task任务,由于链任务的作用,直接跨核到Core Y执行OS_1ms_Task,执行完后又通过链任务跨核回到Core X执行OS_BswEnd_1ms_Task。这种任务链的缺点会开销runtime,比如1ms的任务,2次的来回的Chaintask,大约会开销2x30us的负荷,约占6% runtime。

2)分布式运行机制

分布式运行机制,AUTOSAR规范中解释为”task clusters are freely distributable”。该分布式运行机制是当前AUTOSAR多核分配方式的主流,task在一个核上运行,不存在跨核之间的链任务,耦合性不高。缺点是容易造成不同核之间的负荷不均。如下图所示,某一个双核的控制器Core X运行所有CAT1 的中断,Core Y运行所有的周期性任务,不存在跨核间的调度,所有的任务都在自己的核上单独运行。

操作系统的运行时间可以通过优化减少数据的访问时间来实现。如下图举例。某个3核的MCU,Core0为Peripheral Core,Core 1为Locked Core,Core 2为Performance Core。每个core都有单独的RAM分别为RAM0,1,2,同时通过总线外部挂有system Ram。通过下图可以发现当core1访问自己的RAM1只需要1个tick的时间,而core1访问core2的RAM需要9个tick的时间。同时访问外挂system ram需要9个tick的时间。

由此可见,当代码运行在特定的内核上,尽量把该段功能所属的变量定义在相同的RAM上,以便优化核减少运行时间。我们在做功能开发的时候特别需要关注变量的分配和任务的分配,使其尽量保持一致,以便减小MCU的开销。优秀的软件工程师通过优化内存,可以降低10%左右的负荷。

 AUTOSAR的软件架构已经成为汽车电子控制领域不可逆转的趋势,当前国内不少车企,已经把非AUTOSAR软件架构的电子控制器供应商排除在供应商目录之列。同时随着汽车电子芯片的飞速发展,用于AUTOSAR Classic的MCU也发展迅猛。迅速从单核跨入到多核时代,主频和内存空间也有了大幅度的提升。很多车型已经集成了基于AUTOSAR的软件架构和多核芯片的控制单元,以满足日益复杂的电子电器架构。目前,极氪的软件及电子中心正在开发下一代行业顶尖的ZEEA3.0电气架构平台,其中的中央计算平台CSC(Core Super Computer)包含A核和M核,A核上运行由极氪自研的ZEEKR_OS ,M核上将运行Classic AUTOSAR OS来实现多核处理,因此本文介绍基于AUTOSAR OS和多核控制芯片的控制策略,帮助大家尽快理解基础软件的运行架构。

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

相关推荐

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

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

酒无忧的博客 5912

Autosar - 【1 OS模块】

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

hammershr2012的博客 6002

AUTOSAR操作系统(OS):详细介绍与配置说明

AUTOSAR操作系统提供了任务管理、调度器、通信和资源管理等功能,通过配置文件进行灵活的配置和定制。开发人员可以根据具体需求和系统的特点来定义任务、调度策略、通信机制和资源访问规则,以实现高效、可靠的汽车软件系统。AUTOSAR操作系统(OS)是AUTOSAR架构中的一个关键组成部分,它提供了任务管理、调度、通信和资源管理等功能,用于支持复杂的汽车软件开发。AUTOSAR操作系统的配置是通过AUTOSAR工具链进行的。配置文件包含了任务、调度器、通信和资源的定义以及它们的属性和关系。

TcData的博客 1689

AUTOSAR之AUTOSAR OS(上)

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

fuyun32的博客 5280

3.AUTOSAR OS分析(一)

先上一个我个人认为很形象的图片​ 所谓任务,就是能够被执行的最基本C函数;同时这些任务对CPU的访问权限是有竞争的,这就引出了任务的优先级概念;任务在执行完毕后释放CPU以供其他任务使用;这种理解角度可能比较新奇,但很有效果;把多个任务想象成多个人物实体,人要使用CPU来处理某种工作,就必须要竞争和释放,这种竞争是有规则的,这就又引出了调度的概念。OS Task的优先级还是源自OSEK OS,根据规范ISO 17356-3定义,数字越小优先级越低,比如0就是最低优先级;

认真搞搞汽车MCU 2494

AutoSAR开发基础与实践(OS)1.1-OS基础模块

AutoSAR开发基础与实践(OS)1.1-OS元素交互一、AutosarOs操作系统的演化二、AutosarOs的基本类型三、AutosarOs模块配置项3.1、CoresNumber芯片核数量配置3.2、ScalabilityClass类型配置3.3、OSStatus状态返回3.4、OSHook异常返回3.5、StackMonitoring堆栈监控 返回总目录 一、AutosarOs操作系统的演化 AUTOSAR OS的前身是OSEK OS,由于OSEK OS得到了业界的高度认可,所以在后来发展的AUT

pvmsmfchcs的博客 789

AUTOSAR基础篇之OS(下)

前言 首先,请问大家几个小小的问题,你清楚: 你知道多核OS在什么场景下使用吗? 多核系统OS又是如何协同启动或者关闭的呢? AUTOSAR OS存在哪些功能安全等方面的要求呢? 多核OS之间的启动关闭与单核相比又存在哪些异同呢? 。。。。。。 今天,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲: 正文 AUTOSAR OS 保护 在上篇文章AUTOSAR基础篇之OS(上)中我们可以了解到AUTOSAR OS的基本特点,基本对象以及各个对象之间的彼此关联,本篇文章将承前启后,在此

king110108的专栏 1万+

livebos报表开发

文章目录1.参数的设定2.展示的内容3.综合展示的效果4.调用过程5.可以在数据库里面查看6.注意事项7.过程代码 1.参数的设定 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-flb5C49A-1619516341977)(/uploads/xinxibuneibuzhishiku/images/m_bc71bb4608053778dbf29e06cd102ae1_r.png)] 2.展示的内容 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-

阿浪的专栏 709

汽车电子笔记之:AUTOSA架构下的多核OS操作系统

AUTOSAR多核操作系统采用分区机制,多核处理器的每个核中至少分配一个OS应用(OS Application)。每个OS应用均包含任务、中断服务、计数器、报警、调度表等相关要素,统称为操作系统的对象(OS Object)。每个OS应用需要定义访问权限,AUTOSAR操作系统有两种类型的OS-Application,分别为受信任的OS应用(Trusted OS Application)和不受信任的OS应用(Non-TrustedOS Application)。

梦想技术家 1万+

ParallelsDesktop 安装 CentOS-6.9-x86_64-minimal 教程

安装参考 tools没做 想安装的可以参考这个 mac 本机环境: 系统:macOS Catalina version 10.15.6 虚拟机软件:parallels Desktop 15 for Mac( Parallels Desktop-15.1.4(47270)) Centos镜像: CentOS-6.9-x86_64-minimal.iso https://mirrors.aliyun.com/centos-vault/6.8/isos/x86_64/ http://vault.centos.

爱吃鱼的小明的博客 955

RK3568/RK3588之修改8250驱动实现RS485收发的自动切换

在串口发送前,若为485,则将控制引脚拉为发送状态,在发送后,循环查看是否发送完成,若发送完成则将引脚置回读状态,如此一来,就能实现在内核测控制方向切换,而不会因为延时造成数据丢失,经过测试此办法可行。全部修改完成后,重新编译生成内核文件和设备树文件,烧写到板子上即可。

哒宰的博客 3116

汽车电子笔记之:AUTOSA架构下的OS概述

OSEK操作系统(OS)是一个为分布式嵌入式系统所定义的单核操作系统。为适应汽车电子可靠性、实时性、成本敏感性的需求,OSEK操作系统具有以下特性:操作系统中任务、资源、服务是静态配置的;支持在只读存储器上运行;应用中的任务具有很好的可移植性;操作系统中所定义的动作是可预见和可记录的。OSEK 操作系统提供以下服务:任务管理:包括任务的激活与终止、任务状态的切换;同步服务:主要通过资源调度和事件控制(下文会有例子)来实现;中断服务程序:包括一类中断和二类中断;

梦想技术家 3848

Android 关于佳博和汉印蓝牙热敏打印机开发,Android程序员必经的实践之路

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_84149570的博客 1022

AutoSAR OS

如果用户使能了相关Hook,StartOS会在所有初始化完成之后,启动系统定时器、触发第一次任务调度之前,调用用户的Hook,调用顺序为:(1)调用OsSartupHook,(2)调用各个OS-Appication的OsAppSartupHook。该函数会禁能所有中断,停止系统定时器运行,最终进入死循环。如果用户使能了相关Hook,ShutdownOS会在进入结尾处,进入死循环之前,调用用户的Hook,StartOS()的最后,会启动系统定时器,并触发第一次任务调度。

weixin_37591578的博客 1271

软件产品国际化:前后端及App多语言版本解决方案(超详细实现过程)

多语言版本解决方案是应对全球化趋势的关键策略,它通过构建灵活且可扩展的架构,支持软件产品在不同语言和文化环境下的顺畅运行与展示。此方案涵盖了前端多语言界面实现、后端多语言数据处理及大数据环境下的多语言支持等多个层面,确保公司能够高效地推出适应全球用户多样化需求的软件产品。在前端多语言界面实现方面,解决方案采用了国际化与本地化的结合方法。国际化过程确保软件的功能和代码设计能够处理多种语言和文化习惯,而本地化则针对特定地区进行界面和内容的调整。

大模型大数据攻城狮的专栏 2753

2023华为od机试真题【恢复数字序列】C++

2023华为od机试真题【恢复数字序列】C++ 对于一个连续正整数组成的序列,可以将其拼接成一个字符串,再将字符串里的部分字符打乱顺序。如序列8 9 10 11 12,拼接成的字符串为89101112,打乱一部分字符后得到90811211,原来的正整数10就被拆成了0和1。现给定一个按如上规则得到的打乱字符的字符串,请将其还原成连续正整数序列,并输出序列中最小的数字. 输入描述

MISAYAONE的博客 5729

AUTOSAR之AUTOSAR OS(下)

本篇主要对AUTOSAR OS的资源,分区,保护以及多核的启动与关闭进行了介绍。不同裁剪类型具备不同种类的保护功能,用IOC机制完成分区间的通信。利用GetResource(x)和ReleaseResource(x)来保证核内数据的一致性,可以用自旋锁Spinlock(GetSpinlock/ReleaseSpinlock)和中断锁来保证核间数据的一致性(若是原子操作则不需要这些手段)。

fuyun32的博客 3955

基于 Simulink 的固态变压器(SST)多级协同控制实战教程

《固态变压器多级协同控制仿真指南》摘要: 本教程详细讲解了基于Simulink的固态变压器(SST)三级架构建模与控制方法。核心内容包含:1)搭建级联H桥整流(CHB)、双有源桥(DAB)和逆变器(VSI)的三级主电路;2)提出创新的多级协同控制策略,通过功率前馈实现输入输出级动态匹配;3)给出系统级功率平衡、单元级均压控制的具体实现方案。教程特别强调解决实际工程中的关键问题:代数环处理、软启动设计和刚性系统求解器选择,并提供了硬件在环(HIL)仿真建议。附带的MATLAB代码示例可直接用于实现电容电压均衡

xiaoheshang_123的博客 120

【小猫爪】AUTOSAR学习笔记17-AUTOSAR OS

这一节来介绍一下OS的一些小点点,这一章都是文字,估计比较枯燥乏味。对OS基础不太了解的朋友,这里推荐两篇网上好文:《AUTOSAR基础篇之OS(上)》,《AUTOSAR基础篇之OS(下)AUTOSAR OS为了适应各种各种样的芯片,所以它需要良好的可扩展性来做支撑,说得简单点就是OS的功能可被灵活裁剪,AUTOSAR则根据功能扩展分成了四种扩展类型,分别是SC1 ~ SC4,其主要区别为:下面则根据这四种,挑重点的开始说。

Oushuwen的博客 1万+

48-OpenCVSharp —-Cv2.MatchTemplate() 函数功能(模板匹配)详解

是 OpenCV 中一个常见且简单的模板匹配算法,适用于目标检测和图像识别中的静态场景。它的优点是易于理解和实现,但在面对旋转、尺度变化、复杂背景或光照变化等挑战时,效果可能大打折扣。在这些情况下,结合多尺度图像、特征匹配算法(如 SIFT、SURF、ORB 等)以及深度学习模型可以显著提高匹配的鲁棒性和精度。模板匹配仍然是一个非常基础但强大的工具,适用于一些简单的图像匹配任务。对于更加复杂和动态的图像识别任务,我们通常会使用其他更加复杂的算法或者深度学习模型来处理。

weixin_45590420的博客 4523

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

OS (Operating System)

AUTOSAR OS提供了强大而灵活的功能,用于管理和优化汽车电子系统中的任务调度、资源管理、时间管理、事件处理等关键操作。通过合理的配置和使用AUTOSAR OS,可以实现高效、可靠的汽车电子系统。这些功能在现代汽车中发挥着至关重要的作用,帮助实现复杂的控制和通信需求。理解并有效利用AUTOSAR OS功能,对于开发高效、可靠的汽车电子系统具有重大意义。如果你有更多的具体问题或需要进一步的支持,请随时告诉我!

erroror的专栏 1453

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Autosar Os降低CPU负载的方案总结

由于各个项目的实际场景不尽相同,可能需要有针对性的对症优化。如果你还有别的一些优化手段欢迎留言交流。

3677

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

AUTOSAR 技术分析 (上)

AUTOSAR 技术分析 (上)

NMR0574的博客 1788

AUTOSA —— OS

AUTOSAR OS 规范文档笔记

u011807371的博客 3421

【车载开发系列】AutoSAR OS基础篇

我们知道传统所说的“裸机编程”就是不带操作系统的编程,在系统需求相对比较简单的情况下使用裸机编程可以满足要求。但是随着系统需求越来越复杂,此时就需要用到模块化设计方法以及多任务编程思想,否则后期软件升级维护成本将会急剧增加。虽然我们可以采用传统编程方式(如计数器与状态机)来实现简单多个任务的调度,但是当涉及到多个任务之间的状态切换,优先级,现场保护,执行时间控制等方面就显得极为吃力,开发效率低下且极容易出错。

千月星跡 1656
上一篇: 【Zeekr_Tech】汽车软件敏捷开发和分支管理
下一篇: 【Zeekr_Tech】ROS/ROS 2介绍
Zeekr_Tech
博客等级 码龄5年 141粉丝 9原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值