0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AUTOSAR规范的操作系统知识

jf_78858299 来源:汽车控制与人工智能 作者:Demu 2023-02-13 14:03 次阅读

汽车电子控制器中目前基本遵循AUTOSAR规范,而其中操作系统作为BSW的重头戏,始终让学习AUTOSAR的同学望而生畏,进而望而却步。所以,今天整理下基于AUTOSAR规范的操作系统知识,方便大家学习,以供参考。

0 为什么需要OS?

现在嵌入式系统纷繁复杂,这点毋庸置疑,但是为什么需要操作系统呢?有没有仔细思考过。其实在早期的嵌入式系统中,是没有操作系统概念的。相信做嵌入式开发的同学都能理解,在main()函数中,写个while循环,再加个定时器,按照分时间片的方式,定时执行代码,就可以完成简单的调度。

但是,现在不一样了,系统越来越复杂了,以前那种简单粗暴的调度已经无法满足要求。说到系统复杂,主要原因有如下几点:

  • 任务多样化;
  • 周期复杂化;
  • 分层调用嵌套;
  • 多核系统引入;

举个例子。比如,我们有个三核系统,其中core0负责应用功能ASW,core1负责基础功能BSW,core2负责系统监控、功能安全和诊断等。如何在功能运行时,满足其正常任务的调度,同时系统代码指令和监控等也同步呢?在main()函数里,我们通过循环语句加定时器再试试看,估计要“难于上青天”了吧。

所以,就需要一个叫做操作系统的东西出现。它管理任务和事件的调度、不同任务之间的数据流,并提供监视和错误处理功能。操作系统为实时应用提供所有基本服务,包括中断处理、调度、系统时间和时钟同步、本地消息处理,以及错误检测机制。

1 AUTOSAR OS特点

操作系统可以根据它们的特征被分成不同的组,比如静态配置和动态管理。要对AUTOSAR操作系统(下文简称AUTOSAR OS)进行分类,以下是其基本特征:

  • 静态配置
  • 推断系统的实时性能
  • 提供基于优先级的调度策略
  • 运行时提供保护功能(内存、定时等)
  • 无需外部资源,可嵌入低端控制器

所以,Autosar OS 和常见的OS(如linux系统OS)具有以下的区别:

  • 在运行时不会动态创建新任务;
  • 属于预编译配置变体,必须在编译之前定义所有任务;
  • 操作系统没有动态内存管理,也没有用于手动控制任务的shell。

图片

在AUTOSAR OS提出之前,在汽车电子领域其操作系统已经经历了两个阶段,即non-OSEK OS和OSEK OS。

当然,现在处于的第三个阶段Autosar OS,是与OSEK兼容的操作系统,但是具有多个扩展性能。例如可扩展功能:调度表,OS applications,内存保护和时序保护。OSEK OS 特别提供了以下特性支持AUTOSAR:

  • 基于优先级调度
  • 处理中断的功能
  • 中断高于任务的优先级
  • 防止错误使用OS 服务的保护措施
  • StartOS和StartupHook 启动接口
  • ShutdownOS和ShutdownHook 关闭接口

具体的OS的可扩展级别分四级:

SC1 OSEK OS +计划时间表
SC2 SC1 +时序保护
SC3 SC1 +内存保护
SC4 SC1+SC2+SC3

2 AUTOSAR OS的对象

Autosar OS提供基于优先级的调度策略,具有可抢占属性和同步的机制,通过事件和资源的属性来实现。AutosarOS提供以下对象进行多任务执行的管理,如 Alarms,Applications,Application modes,Counters,Events,ISRs,Register Sets,Resources,Schedule tables,Spinlocks,Tasks。 这些对象及其配置是AUTOSAR OS的重点内容,后续我们会分别详细解释,这里简单介绍。

Alarms :警报器,就像我们的上课铃声,到时间就会响。操作系统用它来做一些定时的事,比如激活一个任务Task。

Applications :从字面意思理解,它是一个应用,准确地说,它应该是一个分区。它部署到某个Core上,主要的作用就是管理放到其中的对象。为什么要这个东西呢?举个不恰当的例子。MCU像一个国家,核就是它的省,那么Applications就可以理解成省管辖下的地级市。比如,某一天一个地级市里发现了大量新冠病毒感染者,为了防止扩散,将该市封闭处理,以免扩张到其他市区。想想看,当这个市里出现疫情时,是封闭整个省好呢,还是仅封闭该市好呢?显然是后者。芯片里的划区也是非常合理的。AUTOSAR OS 分区分为可信的和非可信的。

Application modes :用的极少,这里不展开介绍;

Counters :把Counter比作心脏比较合适,对于芯片来说,它就是晶振。在操作系统它的作用就是计时或者计数,一般Counter与芯片的Timer结合起来,Counter的精度决定了操作系统能计时的准确度。

Events: 事件。在嵌入式操作系统中,事件一般是和任务绑定一起来实现调度功能的,当然也可以由Alarms来触发。比如,我通过设定某个任务在10ms进程执行,10ms的任务就和该事件一起来实现。

ISRs: interrupt service routine,就是我们讲的中断。中断的概念对于嵌入式开发的同学而言,应该都比较熟悉。在AUTOSAR OS中中断有两种类型,Autosar OS中将中断分为Cat1 和Cat2,即所谓的1类中断和2类中断,所谓的2类中断其实就是完全被OS接管的中断,这类中断的上下文切换,堆栈管理全部由OS管理;而1类中断则不被OS接管,因此它的上下文由自己管理。另外Autosar Os中要求Cat1的中断的最低优先级高于Cat2的最高优先级,也就是说Cat1的中断优先级更高。所以Cat1的中断一般用于时间要求更紧急的场合。要知道,中断有比任何任务都高的优先级,即中断可以抢占任务。

Register Sets: 几乎没有使用,暂时不介绍。

**Resources:**资源。嵌入式系统内部的资源是用来强制任务分组运行的,在分组内部,是没有抢占一说的,即共享资源。当然,中断就不能使用内部分组资源了。共享什么资源呢?比如栈的共用,为了降低系统的负荷,我们可以让同分组的任务共用分配的栈资源,你用完我用,像和谐社会一般。

**Schedule tables:**调度表,可以将其理解为包含了很多调度点的表,Autosar Os中一般这么用调度表,比如有 1ms,2ms,5ms 三个周期需要调度的任务,那么会根据公约数,生成一个表,这个表在1ms 处调度1ms任务,2ms处调度1ms和2ms任务,4ms处调度1ms和2ms任务,5ms处调度1ms和5ms任务,10ms处调度1ms,2ms,5ms任务,然后按照这样的关系循环,这就是所谓的调度表。目前有部分主流的Autosar开发商使用这种方式进行任务的调度。当然,Schedule Table有自己的状态机,Schedule Table调度方式最大的好处在于保持调度的同步性。

Spinlocks: 没有项目使用,暂不介绍。

**Tasks:**任务应该也比较熟悉,Autosar Os有些自己的性质,简单介绍下。

Task 类型:

  • Basic Task:包含状态Ready,Running,Suspend
  • Extend Task:包含状态Ready,Running,Suspend和Waiting

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

此外Task的调度分为抢占式和协作式,对于可抢占的Task,OS会根据Task的优先级进行排序调度,优先级高的可以抢占优先级低的。在AUTOSAT OS中数字越大优先级越高。

当然,操作系统还有内存保护,时序保护和错误机制等内容,今天概览性地介绍这些,后续有机会再分别详细阐述。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16356

    浏览量

    177990
  • 汽车电子
    +关注

    关注

    3026

    文章

    7952

    浏览量

    167011
  • AUTOSAR
    +关注

    关注

    10

    文章

    362

    浏览量

    21576
  • BSW
    BSW
    +关注

    关注

    0

    文章

    15

    浏览量

    3509
收藏 人收藏

    评论

    相关推荐

    实时操作系统和分时操作系统的区别

    操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统和实时操作系统,分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统
    发表于 11-14 17:39 1.3w次阅读

    如何开发符合AUTOSAR规范的电机控制器软件

    基于AUTOSAR规范的电机控制器软件开发本系列文章主要介绍如何开发符合AUTOSAR规范的电机控制器软件的详细过程。全系类分为基础篇和实战篇:基础篇内简要介绍最新的
    发表于 08-30 08:59

    嵌入式操作系统FreeRTOS的相关资料分享

    嵌入式操作系统FreeRTOS (1)1、基础知识 系统认识2、移植必要文件 文件 移植说明3、源码的命名规范1、基础知识
    发表于 12-27 06:29

    介绍一种适配RT-Thread内核的autosar操作系统

    目是基于autosar3.1的开源代码arctic core,在此基础上,完成在n32g45x上的mcal驱动,适配RT-Thread内核为autosar操作系统。  目前已完成mcal的mcu驱动
    发表于 05-19 15:40

    Linux操作系统原理及应用

    Linux操作系统原理及应用 1.1  操作系统的地位 1.2  操作系统的功能 1.3  操作系统的发展过程 1.4 
    发表于 04-28 14:53 0次下载

    操作系统教程_孙钟秀

    本书的特点之一是:既致力于传统操作系统基本概念、基本技术、基本方法的阐述,又融合现代操作系统最新技术发展和应用的讨论,着眼于操作系统学科知识体系的系统性、先进性和
    发表于 12-09 14:55 0次下载
    <b class='flag-5'>操作系统</b>教程_孙钟秀

    操作系统原理_孙钟秀

    本书的特点之一是:既致力于传统操作系统基本概念、基本技术、基本方法的阐述,又融合现代操作系统最新技术发展和应用的讨论,着眼于操作系统学科知识体系的系统性、先进性和
    发表于 04-11 14:23 0次下载

    RTOS操作系统

    RTOS操作系统RTOS操作系统RTOS操作系统RTOS操作系统RTOS操作系统
    发表于 12-28 15:30 0次下载

    计算机测控系统操作系统概述集合【labview基础知识

    计算机测控系统操作系统概述集合,labview基础知识
    发表于 01-12 11:13 19次下载

    全球及我国汽车操作系统发展现状分析

    车控操作系统是管理车辆动力、底盘、车身等基础硬件系统和软件资源的程序。以欧美为主导,已开展了两轮标准化工作:OSEK/VDX和AUTOSAR。OSEK/VDX主要对操作系统和网络管理进
    发表于 07-24 17:09 3164次阅读

    Linux操作系统知识讲解:走进内存

    Linux操作系统知识讲解:走进内存
    的头像 发表于 08-28 10:30 2361次阅读
    Linux<b class='flag-5'>操作系统</b><b class='flag-5'>知识</b>讲解:走进内存

    关于操作系统知识详细解读

    广义的操作系统包括:计算机(PC、工作站、服务器)系统、移动端系统(例如鸿蒙)、嵌入式系统 等。本篇报告只涉及计算机操作系统
    的头像 发表于 03-26 14:58 9552次阅读
    关于<b class='flag-5'>操作系统</b><b class='flag-5'>知识</b>详细解读

    linux操作系统基础知识

    本文主要阐述了linux操作系统基础知识
    发表于 06-04 15:07 5893次阅读

    汽车操作系统和中间件的关系

    如果嵌入式操作系统(比如FreeRTOS, uCOS或Autosar CP的内核)的开发难度和工作量是1, 那么大型操作系统的开发难度和工作量就是99, 从体量就能看出,一个完整的嵌入式操作系
    发表于 07-21 11:16 874次阅读
    汽车<b class='flag-5'>操作系统</b>和中间件的关系

    AUTOSAR OS操作系统功能特性

    汽车电子系统中的软件任务和中断。它提供了以下功能特性: 任务和中断管理:AUTOSAR OS可以创建、启动、停止和删除任务,并处理中断请求。它可以根据任务的优先级和调度策略来调度任务的执行,确保任务
    的头像 发表于 10-27 16:55 2158次阅读