AUTOSAR是从4.0版本开始支持多核OS的。随着汽车电子对软件可靠性和实时性要求的不断提高,多核OS应运而生。
1.OS Application
AUTOSAR多核OS采用软件分区机制,每个核中至少分配一个OS Application。每个OS Application都有任务、中断服务、计数器、报警、调度表等对象。OS Application需要定义访问权限:Trusted和Non-Trusted。Trusted OS Application包含的对象,对大部分内存拥有读写的权限,包括所有的FLASH、LMU(Local Memory Unit)、CSA(Context Save Areas)以及外设单元等。Non-Trusted OS Application内包含的对象只有读写少部分内存的权限:当前活跃的栈、当前OS Application的数据以及LMU中的共享数据。
2. 软件分区机制
AUTOSAR OS采用软件分区机制来实现简单的内存保护功能。其原理是在内存空间中划分不同的内存区间,各个分区的软件代码执行互不干扰,防止一个分区中发生的故障影响到同一个ECU的其他分区。一般来讲,每一个OS Application对应一个分区,每个分区会规定对应的OS Application所能访问的内存地址范围。
3. 任务调度
AUTOSAR多核OS根据任务或中断的优先级来决定调度顺序。同一内核中,优先级越高的任务或中断优先调度;优先级相同时,根据激活顺序决定调度顺序。不同内核中的任务调度顺序是独立的,其优先级不会相互影响。
有一点需要注意,由于汽车电子对可靠性的需求,AUTOSAR OS中的任务、资源、服务均是静态配置的,不可以动态创建。