[AutoSar]BSW_OS 01 Autosar OS入门

本文探讨了AutosarOS在汽车电子系统中的位置,与OSEK的对比,包括它们的相似点和区别,如任务类型(基本任务和扩展任务)、抢占机制、ScalabilityClass选择以及TaskPriorities。文章指出AutosarOS适用于复杂系统,而OSEK适合简单嵌入式系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  

关键词

嵌入式、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 通常用于处理对实时性要求较高的任务,例如需要满足硬实时性的场景。**例如:**收到一个信号后要马上运行一个runnable进行处理,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 的响应时间。

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

### AUTOSAR OS 架构与实现 #### 1. AUTOSAR OS 的基本结构 AUTOSAR(Automotive Open System Architecture)操作系统是一个专为汽车电子控制系统设计的操作系统框架。其核心目标是提供一个标准化的环境,支持功能安全、实时性和可扩展性[^1]。AUTOSAR OS 使用分层架构来分离不同的功能模块,从而提高系统的灵活性和可维护性。 - **任务调度**:AUTOSAR OS 提供基于优先级的任务调度机制,允许开发者定义不同任务之间的优先级关系。 - **资源管理**:通过引入资源的概念,AUTOSAR OS 实现了对共享硬件资源的安全访问控制。 - **时间保护**:为了防止单个任务占用过多 CPU 时间而导致系统崩溃,AUTOSAR OS 集成了 Timing Protection 功能[^3]。 以下是 Timing Protection 的简单代码示例: ```c #include "Os.h" void TaskA(void) { while (1) { ProcessTaskA(); if (Os_CheckTimingProtection() == ERROR) { HandleTimingError(); } Os_Sleep(10); } } ``` --- #### 2. AUTOSAR OS 的主要组件 AUTOSAR OS 的实现依赖于多个关键组件,这些组件共同构成了整个操作系统的功能基础。 - **任务(Tasks)**:任务是最小的调度单元,可以分为周期性任务和非周期性任务两种类型。每种任务都有自己的属性集,例如优先级、激活数限制等[^1]。 - **事件(Events)**:事件用于通知任务或其他实体某些条件已经满足。它们可以通过 API 进行设置或清除。 - **报警器(Alarms)**:报警器负责触发定时事件,在指定的时间间隔后唤醒相应的任务。 - **资源(Resources)**:资源表示需要被独占使用的对象,比如外设寄存器或者全局变量。当多个任务竞争同一资源时,AUTOSAR OS 可以自动处理互斥问题。 --- #### 3. AUTOSAR OS配置过程 在实际开发过程中,AUTOSAR OS 的行为通常由 XML 文件描述并生成对应的 C/C++ 源码文件。这种做法简化了复杂嵌入式系统的部署流程,并减少了手动编码带来的潜在错误风险。 具体来说,工程师会利用工具链完成以下几个阶段的工作: - 定义所有的任务及其特性; - 设置各类中断服务程序以及关联的优先级顺序; - 描述各个应用程序之间可能存在的通信路径; - 明确指出哪些地方需要用到特定类型的同步原语。 --- #### 4. 应用场景分析 由于具备高度定制化能力加上良好的兼容性表现,目前已有众多厂商将其应用于动力总成控制单元 ECU 中作为底层支撑平台之一[^2]。除此之外,在车身控制器 BCM 和信息娱乐主机 IVI 上也有广泛采纳记录。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老灰╮(╯-╰)╭

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值