NEWS
新闻中心
AUTOSAR OS操作系统详解(下)
发布时间:2025-09-15 浏览数:13




04
多核启动与关闭



在AUTOSAR软件基本架构下,无论是单核操作系统还是多核操作系统,都与EcuM模块和BswM模块息息相关。因为这两类模块决定了OS启动,初始化,运行,关闭等状态及其过程。ECU工作过程可分为启动(STARTUP), 运行(UP), 睡眠(SLEEP)以及关闭(SHUTDOWN)四种状态

ECU在上电前处于SHUTDOWN阶段,上电后便进入STARTUP阶段,主要包括StartPreOS与StartPostOS两个子阶段,在StartPreOS子阶段主要完成一些OS启动之前的一些准备工作,如初始化MCU,IO,WatchDog等模块;在StartPostOS子阶段则是启动OS之后的阶段,该阶段主要执行初始化BSW的调度器以及初始化BswM模块两个动作,如下图所示



ECU详细的启动过程将在<<AUTOSAR系统服务 - EcuM模块详解>>介绍,本文就不再赘述,只是作为一个引子,大家如果有兴趣,可以关注我们,我们将在后续更新。





多核OS启动





当然无论是否存在OS,多核的启动过程相比单核与硬件关系则更为密切。通常情况下,硬件会首先启动一个核作为主核(Master Core),而从核(Slave Core)则由软件启动,这种启动方式被称为主从模式。AUTOSAR规范定义了多核启动方式应该为主从模式。

值得注意的是:即使硬件支持多核同时启动,AUTOSAR规定也需要通过软件模拟的方式来实现主从模式来启动多核系统。

如下图所示,描述了主从模式的各个环节的启动时序及相互之间的交互关系。




Core 0作为主核,其他核则作为从核,启动流程如下:

  • 主核Core 0完成前期的硬件初始化之后启动从核Core 1 并随后调用Start OS函数来启动OS,OS完成初始化之后在第一个同步点等待所有从核完成OS的启动。

  • 从核Core 1被主核启动之后,首先完成硬件相关的初始化,然后激活从核Core2,Core3,并在第一个同步点等待其余从完成OS的启动;

  •  从核Core2,Core3被Core 1激活之后,首先完成各自的硬件相关初始化,然后调用StartOS完成OS的初始化并在第一个同步点进行同步;

  • 在完成第一个同步点之后,主从核便分别执行Startup Hook函数之后在第二个同步点进行同步,然后所有核的Kernel将一起运行,只有这样才能够更好的保证整个系统的稳定性与鲁棒性。

值得注意的是如果某从核运行的OS不是AUTOSAR OS时,此时则不能使用AUTOSAR OS API StartCore来启动该从核,而应当使用StartNonAutosarCore来实现该从核的启动。





多核OS关闭





与单核OS关闭过程类似,多核OS的关闭也是通过EcuM来完成,如果在关闭过程中出现唤醒事件,ECU则需要关闭之后立即重启。

ECU关闭过程主要分为以下几个阶段,下图表明了多核OS关闭流程:

  • 反初始化BswM以及BSW调度器;

  • 检查是否存在唤醒事件发生;

  • 选择ShutDown Target;

  • 关闭OS;




在多核系统中,关闭过程存在以下几个特点:

  • AUTOSAR4.x不支持仅仅关闭单个核,即若发送关闭指令或者致命错误时所有核必须全部关闭,具体的关闭过程如上图所示;

  • 若某一任务拥有调用ShutDown All Cores的权限时,关闭信号将会同步发送至所有核;

  • 当关闭过程启动后,所有的中断服务和任务都不能被激活,关闭前必须完成的程序由EcuM保证完成;

  • 关闭完成前,各自的OS Application调用各自的Shutdown Hooks函数完成对应的回调程序,然后等待到同步点所有核执行关闭回调函数。




05
多核OS调度策略






基本特点





多核OS调度和单核OS调度在基本原理上并没有本质的区别,都是根据任务或者中断的优先级作为首要因素来决定调度顺序。在同一处理器内核上,优先级越高的任务或者中断会优先调度。如果优先级相同,那么就根据激活顺序进行调度。

  • 单核系统的工作方式对于单核系统来说,CPU每时每刻只能运行一个任务或者中断。为了实现看似并发的执行效果,单核系统采用时间片轮转法(Round-Robin Scheduling)。这种方法通过将CPU时间划分为多个时间片,每个任务在分配到的时间片内运行,时间片用完后,当前任务被暂停,下一个任务开始运行。这样,多个任务似乎同时在运行,但实际上它们是交替占用CPU时间的。

  • 多核系统的工作方式多核系统则不同,由于存在多个处理器内核,系统可以同时运行多个任务或者中断。具体能够同时运行的任务或中断数量由CPU内核的数量决定。这种执行方式称为并行执行(Parallel Execution)。

对于AUTOSAR操作系统而言,任务及中断的优先级是提前静态分配的,在运行过程中不支持动态更改。





调度策略





多核OS调度任务的过程。根据调度规则,若在同一核上多个任务被同时调度,即这些任务均处于就绪状态,那么高优先级任务会被率先执行,如图中的Core0上的任务T2,Core1上的任务T3以及Core2上的任务T5,三个任务同时进入运行状态,各个内核上的任务独立运行,互不干扰,其优先级并没有相互影响。如下图所示



对于AUTOSAR 多核OS支持任务选择调度模式,可分为全调度和拒绝调度模式。对于全调度模式,任务在运行过程中,可以被高优先级的任务或者中断抢占,而对于拒绝调度模式下,该任务不能够被任何其他任务或者中断抢占。

因此在任务分配优先级的过程中,应当将起到关键作用的重要任务分配较高的优先级,重要程度类似的任务周期越短,分配的优先级越高。




06
总结



AUTOSAR(汽车开放系统架构)是汽车电子领域的重要标准化框架,其操作系统(OS模块)通过分层架构设计与模块化管理,为现代汽车电子系统提供了高效且可靠的运行基础。该系统通过硬件抽象层(MCAL)将应用层与底层硬件解耦,使软件开发者能够专注于功能实现而非硬件适配,显著提升了代码的可移植性与复用率。同时,标准化的基础软件(BSW)接口规范统一了不同厂商的开发流程,减少了重复开发成本,确保了ECU间的无缝通信与协作。随着汽车软件占比的持续提升,AUTOSAR OS的标准化与灵活性成为应对系统复杂性挑战的核心工具,为构建安全、高效、可扩展的智能汽车生态奠定了坚实基础。

服务热线:

0551-65691812

地址:合肥高新区安徽工业技术创新研究院A座
邮箱:gk.anghui@outlook.com

Copyright © 2001-2025 安徽国科昂辉科技有限公司 - All Rights Reserved.
皖ICP备2024030710号-1