[AutoSar]BSW_OS 01 Autosar OS入门(一)

目录

  • 关键词
  • 平台说明
  • 一、Autosar OS 的位置
  • 二、Autosar OS 与OSEK
  • 三、TASK
    • 3.1两种task
    • 3.2 两种task 的区别
    • 3.3task 的抢占机制
    • 3.4 task stack

  

关键词

嵌入式、C语言、autosar、OS、BSW

平台说明

项目 Value
OS autosar OS
autosar厂商 vector
芯片厂商 TI
编程语言 C,C++
编译器 HighTec (GCC)

在这里插入图片描述

一、Autosar OS 的位置

  如在[AutoSar]基础部分 autosar分层架构及BSW介绍中所描述的,OS位于BSW的服务层。服务层中除了OS外还有一些为系统服务的不属于OS,如加密服务,存储服务,通信栈服务。
[AutoSar]BSW_OS 01 Autosar OS入门(一)_第1张图片

二、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

[AutoSar]BSW_OS 01 Autosar OS入门(一)_第2张图片
[AutoSar]BSW_OS 01 Autosar OS入门(一)_第3张图片
[AutoSar]BSW_OS 01 Autosar OS入门(一)_第4张图片
[AutoSar]BSW_OS 01 Autosar OS入门(一)_第5张图片

如上图所示分为基本任务和扩展任务。扩展任务比基本任务多了一个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 通常用于处理对实时性要求较高的任务,例如需要满足硬实时性的场景。

在Davinci configurator或者EB中我们可以根据需求选择合适的task类型。
在这里插入图片描述

3.3task 的抢占机制

分为抢占式和不可抢占式,可以在Davinci configurator或者EB中配置。
在这里插入图片描述

**非抢占式:**如果该TASK为非抢占式,当该task没有完成的时候及时高优先级的任务来了也无法preempt。
**抢占式:**如果该TASK为抢占式,当该task没有完成的时候如果高优先级的任务来了将会preempt该task。

抢占和非抢占的选择:
1.在实时性上, 抢占性任务通常用于实时系统,其中对任务响应时间的要求很高。通过抢占性任务,可以更及时地响应具有更高优先级的任务。 非抢占性任务相对较灵活,通常用于一些不太关注即时性的场景。当然,非抢占性任务还用于不可被打断的系统任务,例如init,state switch等。
2.在资源占用上:为了压榨硬件资源,大多是TASK都是抢占式的,越重要的任务优先级越高。

3.4 task stack

明天更新,睡觉睡觉。

你可能感兴趣的:(CP_Autosar,Autosar,BSW,OS)