功能安全机制:内存分区与实现

汽车ECU开发 2022-10-06 08:46

1. 应用软件

在AUTOSAR架构中,应用软件位于RTE上方,由互连的AUTOSAR SWC组成,这些组件以原子方式封装了应用软件功能的各个组成部分。

图1:应用程序软件

AUTOSAR SWC独立于硬件,因此可以集成到任何可用的ECU硬件上。为了便于ECU内部和内部的信息交换,AUTOSAR SWC仅通过RTE进行通信。

AUTOSAR SWC包含许多提供内部功能的函数和变量。AUTOSAR SWC的内部结构,即其变量和函数调用,通过头文件隐藏在公众视野之外。只有外部RTE调用才会在公共接口上生效。

图2:SWC

AUTOSAR SWC还包含必须在运行时调用的函数。这些C函数在AUTOSAR中称为Runnables。

Runnables不能由它们自己执行;它们必须分配给 OS的可执行实体。可以通过将Runnables的函数调用插入OS任务主体来执行此类分配。

然后,Runnables在调用方OS-Task的上下文中循环执行和/或事件驱动。Runnables对任务的分配是根据图3和图4执行的。

图3:AUTOSAR分层软件架构-Runnables的映射


2. OS-Applications

图4显示了对图3中关系的解释。根据此图,AUTOSAR SWC中的Runnables被分配给 OS任务。

图4:SWC到 OS-Applications的映射

AUTOSAR OS-Applications是 OS对象(如任务、ISR、调度表、计数器和警报)的集合,它们构成了一个内聚的功能单元。属于同一 OS-Applications的所有对象都可以相互访问。

OS-Applications中的 OS对象可能属于不同的AUTOSAR SWC。RTE实现了一个内存区域, OS-Applications的所有成员都可以不受限制地访问该区域,以方便SWC之间有效地进行通信。

OS-Applications有两类:

  1. 受信任的 OS-Applications:“允许受信任的 OS-Applications在运行时禁用监控或保护功能的情况下运行。他们可能不受限地访问内存和 OS模块的API。受信任的 OS-Applications不需要在运行时强制执行其时序行为。当处理器支持时,它们被允许在特权模式下运行。

  2. 不受信的 OS-Applications:“不允许在运行时禁用监控或保护功能的情况下运行不受信的 OS-Applications。它们限制了对内存的访问,限制了对 OS模块的API的访问,并在运行时强制执行其时序行为。当处理器支持时,不允许它们在特权模式下运行。


3. 通信和代码共享

根据图4和图3,一个 OS-Applications可以包含多个AUTOSAR SWC和关联的Runnables。仅允许Runnables直接访问变量并在其各自的 SWC中执行函数调用。

SWC的内部函数调用和变量不被其他 SWC公开获取,因为它们的定义不由外部接口的头文件提供,因此不能规划通过变量直接通信并执行其他 SWC的代码。

在图5中,代码共享示例对此进行了说明,代码共享只允许在 SWC内使用,而不允许在一个OS-Application的 SWC之间共享。与其他 SWC的通信应通过RTE执行。Runnable4可能无法执行属于SWC2.2的功能。

图5:OS-Applications中的代码共享


4. 应用软件中的内存分区

AUTOSAR ECU中的应用软件可以由与安全相关的 SWC和非安全相关的 SWC组成。应根据ISO26262的要求,确保具有不同ASIL等级的 SWC之间的免干扰性。

AUTOSAR OS通过将 OS-Applications放入独占的内存区域,从而不受与内存相关的故障的干扰。此机制称为内存分区。OS-Applications之间彼此受到保护,因为在一个 OS-Applications的内存分区中执行的代码不能修改其他内存区域。AUTOSAR OS规范中的相应要求如表1所示。

要求ID要求文本
[SWS_Os_00207]OS模块应阻止对 OS的写入访问来自其他不受信的OS-Applications的应用程序的私有数据分区。
[SWS_Os_00355]OS模块应阻止从其他不受信的 OS-Applications对 OS-Applications的任务/2类ISR的所有私有堆栈进行写入访问。
[SWS_Os_00356]OS模块应阻止从其他不受信的 OS-Applications对 OS-Applications的任务/2类ISR的所有私有数据分区进行写入访问。

表1:AUTOSAR OS- OS-Applications的内存分区

应用程序软件可以由具有不同ASIL等级的 SWC组成。但是,具有不同ASIL分级的 SWC不应分配给同一个 OS-Applications。内存分区不能提供分配给同一 OS-Applications的 SWC之间的免干扰性。OS仅阻止其他 OS-Applications执行不正确的访问。不会阻止有故障的 SWC修改同一 OS-Applications中其他SWC的内存区域。

注意:有关任务级分区的详细信息,请参阅后续分区。


5. SWC中的内存分区

混合ASIL SWC可能由具有不同ASIL评级的Runnable组成,因此需要一个支持不受这些Runnable之间干扰的执行环境。由于以下原因,无法在不同的内存分区中执行一个 SWC的不同Runnables:

内存分区在 OS-Applications级别执行。如图所示图3和图4,一个 SWC只能分配给一个OS-Applications,因此只有一个内存分区。此外, SWC的Runnables只能由一个 OS-Applications的任务调用。

如图6所示, SWC的Runnables不能分发到多个 OS-Applications的任务。

图6:SWC与分区

内存分区不能用于分隔同一SWC中的Runnables。如果有必要让 SWC包含具有不同ASIL的Runnable,并且这些Runnable需要免干扰的独立执行,那么在 OS-Applications级进行内存分区是不够的,内存分区必须在任务级别执行。方法如图7所示。

图7:任务级分区

与任务级别的内存分区相关的要求列在表2的AUTOSAR OS规范中。使用弱词“may”表明任务级分区的实现对于AUTOSAR OS是可选的。因此,并非每个AUTOSAR OS实现都支持任务级内存分区。

要求ID要求文本
[SWS_Os_00208]OS模块可能会阻止从同一 OS-Applications中的所有其他任务/ISR写入对非受信任应用程序的任务/2类ISR的专用堆栈的写入访问。
[SWS_Os_00195]OS模块可能会阻止从同一 OS-Applications中的所有其他任务/ISR写入对非受信任应用程序的任务/2类ISR的私有数据分区的写入访问。

表2:AUTOSAR OS要求–任务级的内存分区


6. 内存分区的实现

可以使用内存分区机制在系统和软件级别上实现各种技术安全概念。

图8显示了一个可能的实现,而所有基础软件模块都在一个受信任/监控模式内存分区中执行(图8中以红色突出显示)。某些SWC在逻辑上分组并放在单独的非受信任/用户模式内存分区中(以绿色突出显示)。选定的软件模块与基础软件模块属于同一可信/管理模式内存分区(参见图8中红色高亮的第四个SWC)。可能有多个不受信的/用户模式分区,每个分区包含一个或多个SWC。

在非受信任/用户模式内存分区中执行SWCs会受到限制,不能修改其他内存区域,而受信任/监控程序内存分区的SWCs的执行不受限制。

用于安全相关应用的现代微控制器支持通过专用硬件(内存保护单元(MPU))进行内存分区。

注意:假设内存分片将在具有MPU或类似硬件功能的微控制器上实现。

使用典型的MPU实现,不受信的应用程序可以允许访问微控制器地址空间的多个分区。访问控制定义为读取、写入和执行访问的组合。MPU的配置仅在监控模式下是允许的。

注意:在某些微控制器实现中,MPU集成在处理器内核中。因此,MPU仅控制关联内核的访问。其他总线主站(如DMA控制器和其他内核)不受此分段MPU实例的控制。

下表和用例说明了内存保护单元的配置派生自系统要求时的一组可能方案。注意:对于正在使用的特定硬件设备的功能,此表可能不完整。

地址空间理由执行
闪存读取、执行和写入访问不会修改闪存内容。必须首先擦除闪存,并启用其他机制才能写入。注意:从安全角度来看,以下含义:读取和执行外来代码可能用于获取原本不适用于软件的信息。OOO
RAM对RAM的写入访问可能会导致内存损坏,从而影响软件的行为。OXO
外设即使从外设地址空间读取,也可能产生副作用。例如通过对中断控制器的读取访问来执行中断确认,对外围设备的读取访问可能会导致I/O错误。XXX

表3:内存保护的配置方案

图标说明:

X–需要保护

O–可选保护

注意:从性能角度来看,由于总线争用、接口仲裁等原因,可能会产生副作用。

用例1:SWC位于同一分区中。

  • 同一分区中的 SWC可以访问彼此的RAM区域,因此可能会损坏彼此的内存内容。

  • 根据定义, SWC无法访问外围设备,因为它们不应了解底层微控制器架构。当 SWC被允许直接访问外围设备时,可能会创建不安全的系统。
    用例2:不同分区中的 SWC。

  • 不同分区中的 SWC无法访问彼此的RAM区域,因此无法损坏彼此的内存内容。

  • 根据定义, SWC无法访问外围设备,因为它们不应了解底层微控制器架构。当 SWC被授予对外围设备的直接访问权限时,可能会创建可能不安全的系统。
    用例3:MCAL驱动程序

  • MCAL驱动程序是函数的集合,例如读/写/初始化。它们必须由另一个实体执行,例如BSW或CDD。有关详细信息,请参见图8。

  • MCAL驱动程序需要对相应外设硬件模块的外设空间进行读/写访问。根据硬件架构,可能还需要处理器的监控模式。


2.1.3检测和响应

功能安全机制内存分区通过限制对内存和内存映射硬件的访问来提供保护。在一个分区中执行的代码不能修改另一个分区的内存。内存分区可以保护只读内存段,以及保护内存映射硬件。此外,在用户模式下执行的SWC对CPU指令的访问受到限制,例如重新配置。

内存分区机制可以在微控制器硬件(如内存保护单元或内存管理单元)的支持下实现。微控制器硬件必须由 OS进行适当配置,以便于检测和防止不正确的内存访问。然后监控在不受信的/用户模式内存分区中SWC的执行。

如果内存访问违规或非受信任/用户模式分区中的CPU指令冲突,则错误访问将被阻止,微控制器硬件会引发异常。OS和RTE通过执行分区关闭或重新启动此分区的所有软件分区来消除错误的软件分区。

注意:OS的实际响应可以通过保护挂钩实现进行配置。有关更多详细信息,请参阅 OS SWS[i]文档。

注:AUTOSAR文档“应用程序级错误处理说明”[ii]提供了有关错误处理的其他信息。在文档中,解释了如何执行错误处理以及可以从何处获取所需数据(例如替代值)。此外,本文档还提供了有关如何在AUTOSAR中执行 OS-Applications/分区终止和重新启动的详细说明(用户手册)。

2.1.4限制

1. 具有相同ASIL分级的SWC的内存分区。

ISO26262标准要求不同ASIL等级[iii]的 SWC之间的免干扰性。但是,标准不要求在具有相同ASIL等级的 SWC之间的免干扰性。

允许使用由大量 SWC组成的 OS-Applications。如果单个 SWC导致冲突,从而导致关闭或重新启动整个内存分区,则此内存分区的所有其他正常工作的SWC也会受到影响。

2. 内存分区不适用于受信任的 OS-Applications。

受信任/监控模式内存分区的执行不受 OS和某些MMU/MPU硬件实现的控制。

3. 任务级别不支持内存分区。

任务级分区的实现对于AUTOSAR OS实现不是必需的。因此,可能不支持 OS-Applications中的免干扰性。

4. 由于内存分区导致的性能损失。

根据应用软件的架构以及微控制器硬件和 OS的实现,使用内存分区会降低性能。此损失随着每个时间单位执行的上下文切换数的增加而增加。

5. 无基础软件分区。

基础软件的当前规范未指定来自不同供应商的不同ASIL等级的基础 SWC的内存分区。

阅读原文,关注作者知乎!

推荐阅读

国内主机整车EEA架构汇总

谈谈整车控制器对油门信号处理的理解

浅谈电机控制器及其功能

谈谈电池管理系统的功能

谈谈整车控制器的功能

谈谈整车OTA系统的理解

五千字说清汽车基础软件及国产现状

带不带功能安全(IS26262)的区别,功能安全要做啥?

谈谈simulink自动代码生成

浅谈电机控制器及其功能

谈谈Bootloader自更新

电子电气架构设计需要考虑哪些方面?

汽车E/E架构的网络安全分析

深度解读汽车域控制器

自动驾驶域控制器信息梳理

深度分析整车控制域现状与发展

分享不易,恳请点个【👍】和【在看】

汽车ECU开发 专注于汽车电子ECU软件开发,技术分享。
评论
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-11 17:58 83浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-12 10:13 9浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 83浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 69浏览
  • 应用环境与极具挑战性的测试需求在服务器制造领域里,系统整合测试(System Integration Test;SIT)是确保产品质量和性能的关键步骤。随着服务器系统的复杂性不断提升,包括:多种硬件组件、操作系统、虚拟化平台以及各种应用程序和服务的整合,服务器制造商面临着更有挑战性的测试需求。这些挑战主要体现在以下五个方面:1. 硬件和软件的高度整合:现代服务器通常包括多个处理器、内存模块、储存设备和网络接口。这些硬件组件必须与操作系统及应用软件无缝整合。SIT测试可以帮助制造商确保这些不同组件
    百佳泰测试实验室 2024-12-12 17:45 13浏览
  • 首先在gitee上打个广告:ad5d2f3b647444a88b6f7f9555fd681f.mp4 · 丙丁先生/香河英茂工作室中国 - Gitee.com丙丁先生 (mr-bingding) - Gitee.com2024年对我来说是充满挑战和机遇的一年。在这一年里,我不仅进行了多个开发板的测评,还尝试了多种不同的项目和技术。今天,我想分享一下这一年的故事,希望能给大家带来一些启发和乐趣。 年初的时候,我开始对各种开发板进行测评。从STM32WBA55CG到瑞萨、平头哥和平海的开发板,我都
    丙丁先生 2024-12-11 20:14 68浏览
  • 本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-ImportKeyPair工具在源码:build/target/product/security/系统初始签名文件目录中,将以下三个文件拷贝出来:platform.pem;platform.
    Industio_触觉智能 2024-12-12 10:27 12浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 106浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 63浏览
  • 全球智能电视时代来临这年头若是消费者想随意地从各个通路中选购电视时,不难发现目前市场上的产品都已是具有智能联网功能的智能电视了,可以宣告智能电视的普及时代已到临!Google从2021年开始大力推广Google TV(即原Android TV的升级版),其他各大品牌商也都跟进推出搭载Google TV操作系统的机种,除了Google TV外,LG、Samsung、Panasonic等大厂牌也开发出自家的智能电视平台,可以看出各家业者都一致地看好这块大饼。智能电视的Wi-Fi连线怎么消失了?智能电
    百佳泰测试实验室 2024-12-12 17:33 17浏览
  • 在智能化技术快速发展当下,图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进步,对于图像数据的采集、处理和分析的需求日益增长,这不仅要求我们拥有高性能的相机硬件,还要求我们能够高效地集成和测试各种算法。我们探索了一种多源相机数据采集与算法集成测试方案,能够满足不同应用场景下对图像采集和算法测试的多样化需求,确保数据的准确性和算法的有效性。一、相机组成相机一般由镜头(Lens),图像传感器(Image
    康谋 2024-12-12 09:45 74浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 98浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 108浏览
  • 铁氧体芯片是一种基于铁氧体磁性材料制成的芯片,在通信、传感器、储能等领域有着广泛的应用。铁氧体磁性材料能够通过外加磁场调控其导电性质和反射性质,因此在信号处理和传感器技术方面有着独特的优势。以下是对半导体划片机在铁氧体划切领域应用的详细阐述: 一、半导体划片机的工作原理与特点半导体划片机是一种使用刀片或通过激光等方式高精度切割被加工物的装置,是半导体后道封测中晶圆切割和WLP切割环节的关键设备。它结合了水气电、空气静压高速主轴、精密机械传动、传感器及自动化控制等先进技术,具有高精度、高
    博捷芯划片机 2024-12-12 09:16 80浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦