ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

[AutoSar]BSW_OS 01 Autosar OS入门

2026/9/2 12:35:33 拓冰建站 浏览量
[AutoSar]BSW_OS 01 Autosar OS入门 目录关键词平台说明一、Autosar OS 的位置二、Autosar OS 与OSEK三、TASK3.1两种task3.2 两种task 的区别3.3task 的抢占机制四、scalability class五、Task Priorities关键词嵌入式、C语言、autosar、OS、BSW平台说明项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言CC编译器HighTec (GCC)回到总目录一、Autosar OS 的位置如在[AutoSar]基础部分 autosar分层架构及BSW介绍中所描述的OS位于BSW的服务层。服务层中除了OS外还有一些为系统服务的不属于OS如加密服务存储服务通信栈服务。二、Autosar OS 与OSEKAutosar OS 由 AUTOSARAutomotive Open System Architecture组织制定。OSEK由 OSEK/VDXOffene 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 可能更适合相对简单的嵌入式系统。三、TASK3.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.在实时性上 抢占性任务通常用于实时系统其中对任务响应时间的要求很高。通过抢占性任务可以更及时地响应具有更高优先级的任务。 非抢占性任务相对较灵活通常用于一些不太关注即时性的场景。当然非抢占性任务还用于不可被打断的系统任务例如initstate switch等。2.在资源占用上为了压榨硬件资源大多是TASK都是抢占式的越重要的任务优先级越高。四、scalability class如本文第二节所讲OSEK 与autosar OS可以共存在 AUTOSAR 操作系统配置中系统设计者可以根据硬件平台和性能需求选择适当的 OsScalabilityClass。这有助于确保操作系统在不同的架构和需求中能够以最佳方式运行并充分发挥scalability 架构的优势。选择合适的可扩展性级别可以平衡性能和复杂性以满足特定项目的要求。OS scalability classSC1SC2SC3SC4OSEK 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 PrioritiesAUTOSAR OS允许任务共享优先级。当任务共享优先级时它们将按照先进先出(FIFO)的顺序从就绪状态释放。虽然AUTOSAR OS支持共享优先级但非常不建议这样做因为它会阻止您在系统上执行可调度性分析。因为这样无法计算task 的响应时间。回到总目录