AUTOSAR图解==>AUTOSAR_SRS_OS

AUTOSAR OS (操作系统)详解

基于AUTOSAR SRS OS规范的分析与图解

目录

  1. 概述
  2. AUTOSAR OS架构
    2.1 整体架构
    2.2 保护机制
  3. 任务管理
    3.1 任务状态
    3.2 任务调度
  4. 系统流程
    4.1 启动与关闭序列
  5. 总结

1. 概述

AUTOSAR OS是AUTOSAR架构中的核心基础软件模块,为应用软件组件和其他基础软件模块提供运行环境。它管理任务的调度、资源共享、事件处理以及中断服务等功能,是整个AUTOSAR架构的基础。

根据AUTOSAR规范,OS模块具有以下主要特性:

  • 兼容OSEK OS API:确保与现有OSEK OS应用的兼容性
  • 隔离与保护:支持故障隔离和保护能力,允许多个逻辑应用在同一处理器上安全共存
  • 静态配置调度表:提供基于时间表的静态配置调度表
  • 多核支持:支持多核微控制器,提供核心间通信和同步机制
  • 保护机制:提供时间保护、内存保护、服务保护和访问保护
  • 可扩展性:根据应用需求提供不同配置级别

本文档基于AUTOSAR SRS OS规范分析AUTOSAR OS的架构、组件、状态和流程,并通过图表进行直观展示。


2. AUTOSAR OS架构

2.1 整体架构

AUTOSAR OS作为AUTOSAR架构中的基础软件模块,位于应用层和硬件抽象层之间,提供任务管理、资源管理、事件管理等核心服务。下图展示了AUTOSAR OS的整体架构:

在这里插入图片描述

架构说明:

  1. 应用层

    • 软件组件(SWC):实现具体功能的应用软件组件
    • 应用服务:应用层提供的服务,通过OS API进行系统调用
  2. AUTOSAR运行时环境(RTE)

    • 在应用层和基础软件层之间提供标准化接口
    • 通过OS API调用操作系统服务
  3. AUTOSAR操作系统(OS)

    • 核心OS功能

      • 任务管理:负责任务的创建、调度和终止
      • 资源管理:处理共享资源的访问和优先级继承
      • 事件管理:处理任务间的事件通知
      • 中断管理:管理中断服务例程
      • 计数器和警报:提供基于时间或事件的触发机制
    • 扩展OS功能

      • 调度表管理:管理基于时间表的静态调度
      • 保护机制:提供内存、时间和服务保护
      • OS应用管理:管理OS应用的启动、终止和重启
      • 多核支持:提供多核调度和同步
      • 定时保护:防止任务超时执行
      • 内存保护:防止非法内存访问
    • OS服务接口

      • OSEK兼容API:提供与OSEK OS兼容的API
      • AUTOSAR扩展API:提供AUTOSAR特有的扩展功能
  4. BSW模块和硬件抽象

    • 提供硬件抽象,屏蔽底层硬件差异
    • 与OS交互,实现底层功能

2.2 保护机制

AUTOSAR OS提供多种保护机制,确保系统的稳定性、安全性和可靠性。下图展示了AUTOSAR OS的保护机制类图:

在这里插入图片描述

保护机制说明:

  1. 保护机制基类

    • 定义通用的错误检测、错误通知和错误恢复方法
    • 作为各种具体保护机制的基础
  2. 时间保护

    • 功能:确保任务不会超出预先配置的最大执行时间
    • 监控对象
      • 执行时间预算
      • 锁定时间预算
      • 跨时间帧保护
      • 中断锁定时间
      • 资源锁定时间
      • OS服务执行时间
  3. 内存保护

    • 功能:确保任务只能访问被授权的内存区域
    • 保护方式
      • 内存区域定义和隔离
      • 访问权限设置
      • 栈保护
      • 非法访问检测和处理
  4. 服务保护

    • 功能:控制对OS服务的访问
    • 保护方式
      • 服务访问控制
      • 服务调用权限检查
      • 服务保护错误处理
  5. OS应用

    • 功能:作为逻辑隔离单元,包含多个相关的OS对象
    • 组成
      • 任务、ISR、资源、计数器、警报和调度表
    • 操作
      • 启动、终止和重启
  6. 错误处理

    • 功能:处理保护违规错误
    • 处理级别
      • 任务级别恢复
      • 应用级别恢复
      • 系统级别恢复
  7. 隔离

    • 功能:实现故障隔离机制
    • 隔离类型
      • 时间隔离
      • 空间隔离
      • 故障隔离区域

3. 任务管理

3.1 任务状态

AUTOSAR OS任务在生命周期中经历不同的状态,状态转换由OS API和调度器控制。下图展示了AUTOSAR OS任务的状态转换:

在这里插入图片描述

任务状态说明:

  1. 挂起状态 (SUSPENDED)

    • 任务未激活或已完成执行
    • 不消耗CPU资源
    • 通过ActivateTask()ChainTask()激活进入就绪状态
  2. 就绪状态 (READY)

    • 任务已激活,等待CPU资源
    • 调度器按优先级选择任务
    • 多个任务可同时处于就绪状态
    • 被调度器选中后进入运行状态
  3. 运行状态 (RUNNING)

    • 任务当前正在执行
    • 每个核心同一时刻只有一个任务运行
    • 可被高优先级任务抢占回到就绪状态
    • 通过TerminateTask()ChainTask()终止回到挂起状态
    • 通过WaitEvent()等待事件进入等待状态
  4. 等待状态 (WAITING)

    • 扩展任务等待事件
    • 任务暂停执行
    • 当等待的事件通过SetEvent()被触发时,返回就绪状态

3.2 任务调度

AUTOSAR OS支持以下调度策略:

  1. 优先级调度

    • 高优先级任务可抢占低优先级任务
    • 同优先级任务按先进先出(FIFO)调度
  2. 非抢占式调度

    • 任务一旦获得CPU,将执行到完成或主动放弃
    • 适用于关键任务
  3. 混合调度

    • 不同任务可配置不同的调度策略
    • 提供更灵活的调度方案
  4. 基于表的调度

    • 通过调度表定义任务激活的时间点
    • 支持周期性和静态定义的调度

4. 系统流程

4.1 启动与关闭序列

AUTOSAR OS的启动和关闭过程涉及多个组件的初始化和终止。下图展示了启动与关闭的序列:

在这里插入图片描述

启动与关闭序列说明:

  1. 启动阶段

    • 硬件初始化:配置基本硬件
    • C/C++启动代码执行:初始化C运行环境
    • 全局变量初始化:初始化系统所需变量
    • StartOS调用:开始OS初始化
    • OS应用初始化:初始化OS应用
    • 中断向量表初始化:配置中断控制器
    • 计时服务初始化:配置系统计时器
    • 任务管理器初始化:初始化任务控制块
    • 自动启动任务执行:执行配置为自动启动的任务
    • 调度器启动:开始正常调度
  2. 关闭阶段

    • ShutdownOS调用:开始OS关闭
    • 停止所有任务:终止当前运行的任务
    • 停止所有计时器:关闭系统计时器
    • 禁用中断:配置中断控制器禁用中断
    • 执行关闭钩子函数:执行用户定义的关闭钩子
    • 系统关闭/重启:完成关闭或重启操作

5. 总结

AUTOSAR OS作为AUTOSAR架构的核心组件,提供了丰富的功能和灵活的配置选项,满足汽车电子控制单元(ECU)的多样化需求。其主要特点包括:

  1. 标准化与兼容性

    • 向后兼容OSEK OS API,支持现有代码迁移
    • 符合AUTOSAR标准,确保不同供应商实现的互操作性
  2. 安全性与可靠性

    • 提供全面的保护机制,包括时间保护、内存保护和服务保护
    • 支持故障隔离和恢复,提高系统鲁棒性
  3. 扩展功能

    • 支持多核处理器,提高系统性能
    • 提供静态配置的调度表,满足确定性需求
    • 支持OS应用的管理,实现逻辑隔离
  4. 可扩展性

    • 根据应用需求提供不同配置级别
    • 可裁剪架构,优化资源使用
  5. 实时性能

    • 高效的任务管理和调度机制
    • 精确的时间管理和监控

通过本文的分析和图解,我们可以更直观地了解AUTOSAR OS的架构、组件、状态和流程,为AUTOSAR系统的设计、开发和调试提供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaiGer666

慧眼~施主!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值