内存分区和实现的功能安全机制

1. 应用软件

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

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

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

图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有两类:

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

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

表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实现都支持任务级内存分区。

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

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

6. 内存分区的实现

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

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

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

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

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

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

ViiTor实时翻译 ViiTor实时翻译

AI实时多语言翻译专家!强大的语音识别、AR翻译功能。

ViiTor实时翻译 116 查看详情 ViiTor实时翻译

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

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

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

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

表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的内存分区。

以上就是内存分区和实现的功能安全机制的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/555603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 22:18:31
下一篇 2025年11月9日 22:19:44

相关推荐

  • 提升前端交互效率:JavaScript事件委托实现多元素悬停效果

    本文旨在解决JavaScript中为多个相似元素绑定事件时可能遇到的“仅最后一个元素生效”的问题。通过深入解析传统事件绑定方法的局限性,重点介绍并演示了事件委托(Event Delegation)这一高效解决方案。我们将学习如何利用事件冒泡机制,通过在父元素上统一监听事件,并结合event.targ…

    2025年12月23日
    000
  • HTML如何防范入侵攻击_前端安全防护策略【解析】

    HTML安全防护需五方面协同:一、用户输入严格转义与过滤,用DOMPurify净化富文本、JSON.parse替代eval、模板引擎启用自动转义;二、设置CSP白名单响应头,禁用unsafe-inline/eval,启用report-uri;三、补充X-XSS-Protection和X-Conten…

    2025年12月23日
    000
  • 解决JavaScript To-Do应用中动态列表项删除的逻辑问题

    本教程旨在解决JavaScript To-Do应用中动态列表项删除功能失效或错位的问题。我们将深入探讨如何通过优化数据管理、实现事件委托机制,以及确保删除操作与特定列表项精确关联,从而构建一个健壮且用户体验良好的删除功能,避免删除行为与预期不符的常见错误。 核心问题分析:为何删除按钮行为异常? 在开…

    2025年12月23日
    000
  • HTML表单数据怎么加密传输_HTML表单数据加密传输的安全方法与实现

    答案:HTML表单数据加密传输依赖HTTPS、前端加密和安全配置。首先必须使用HTTPS(SSL/TLS)加密通信,部署有效证书并强制跳转;其次可选前端加密如RSA或SHA-256增强敏感信息保护;同时设置autocomplete=”off”、CSP等防护属性;服务端需验证数…

    好文分享 2025年12月23日
    000
  • Django模板中Markdown转HTML内容显示异常的解决方案

    本教程旨在解决Django应用中将Markdown内容转换为HTML后,在模板中显示为原始文本而非渲染为可交互页面的问题。核心解决方案是利用Django模板语言提供的|safe过滤器,指示模板引擎将特定变量视为安全HTML内容,从而避免自动转义,确保HTML标签能够被浏览器正确解析和渲染。 问题剖析…

    2025年12月22日
    000
  • 推荐有效的工具和技术来进行网站性能优化

    随着互联网的快速发展,越来越多的企业将自己的业务扩展到了网上。然而,随之而来的问题是网站的性能优化。一个高效的网站能够提高用户体验,增加访问量以及销售额。为了达到这些目标,下面将要介绍一些有效的工具和技术来帮助您对网站进行性能优化。 页面压缩:页面压缩是通过减少文件大小来提高页面加载速度的一种方法。…

    2025年12月22日
    200
  • 实现响应式布局的技术和策略

    如何实现响应式布局的技术与方法 引言:随着移动设备的普及和多种终端的涌现,实现响应式布局已成为现代网页开发的重要一环。响应式布局可以使网页在不同的屏幕尺寸下自动适应,提供更好的用户体验。本文将介绍响应式布局的技术与方法,并提供具体的代码示例。 一、媒体查询(Media Queries)媒体查询是实现…

    2025年12月21日
    000
  • cookie保存的秘密:从硬盘到内存的奥秘

    Cookie保存的秘密:从硬盘到内存的奥秘,需要具体代码示例 摘要:本文将探讨Cookie在Web开发中的作用以及Cookie是如何在硬盘和内存之间进行保存的。我们将通过具体的代码示例来解释Cookie的工作原理,以帮助读者更好地理解Cookie的保存过程。 引言 在现代Web开发中,Cookie是…

    2025年12月21日
    000
  • 静态重定位技术的原理及其应用案例

    静态重定位技术的原理和应用 引言:在现代计算机系统中,内存管理是一个非常重要的课题。随着软件的复杂性和规模的增加,内存的限制成为了我们面临的一个挑战。为了更高效地利用内存资源,静态重定位技术应运而生。本文将介绍静态重定位技术的原理、应用以及提供一些具体的代码示例。 一、静态重定位技术的原理静态重定位…

    2025年12月21日
    000
  • 分析静态定位技术的优缺点

    静态定位技术的优势与局限性分析 随着现代科技的发展,定位技术已经成为我们生活中不可或缺的一部分。而静态定位技术作为其中的一种,具有其特有的优势和局限性。本文将对静态定位技术进行深入分析,以便更好地了解其应用现状和未来的发展趋势。 首先,我们来看一下静态定位技术的优势所在。静态定位技术是通过对待定位对…

    2025年12月21日
    000
  • 优化网页设计的方法——静态定位的应用技巧

    在现代互联网领域中,网页设计是一个至关重要的领域。深入探究网页设计的方方面面,现代设计师越来越意识到静态定位技术的重要性。静态定位技术可以使得网页设计更灵活,更符合用户的需求,从而大大提高用户对于网页的满意度与使用体验。本文将探究静态定位技术的作用,以及如何在网页设计中去优化与应用静态定位技术。 一…

    2025年12月21日
    000
  • 用Canvas技术打造引人入胜的动态效果,轻松get!

    轻松掌握Canvas技术,打造炫酷动态效果 Canvas是HTML5中一项功能强大的绘图技术,可以实现各种炫酷的动态效果。本文将带你一步步学习Canvas的基本用法,并提供具体的代码示例,让你轻松掌握这项技术。 一、Canvas简介 Canvas是HTML5中的一个元素,用于在网页上绘制图形、动画等…

    2025年12月21日
    000
  • 了解canvas的JS技术:你熟知哪些呢?

    探究canvas的JS技术:你知道有哪些吗? 简介 在现代Web开发中,JavaScript已经成为不可或缺的一部分。作为一种脚本语言,它可以为网页添加交互性和动态性。而在JS技术中,canvas则是一个重要的API之一。本文将带您深入了解canvas的JS技术,并介绍一些常用的canvas相关功能…

    2025年12月21日
    200
  • 前端开发中sessionStorage的优点及应用案例分析

    sessionStorage在前端开发中的优势与应用案例分析 随着Web应用的发展,前端开发的需求也越来越多样化。前端开发人员需要使用各种工具和技术来提高用户体验,其中,sessionStorage是一个非常有用的工具。本文将介绍sessionStorage在前端开发中的优势,以及几个具体的应用案例…

    2025年12月21日
    000
  • 再谈前端HTML模板技术

    这篇文章介绍的内容是关于再谈前端HTML模板技术,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在web2.0之前,写jsp的时候虽然有es和JSTL,但是还是坚持jsp。后面在外包公司为了快速交货,还是用了php Smart技术。 web2.0后,前端模板技术风行。 代表有如下三大…

    2025年12月21日 好文分享
    000
  • javascript如何优化性能_有哪些常见的性能优化技巧

    JavaScript性能优化核心是减少执行时间、内存占用和提升响应速度,关键在于提升浏览器解析、执行与渲染效率,涵盖DOM操作优化、事件与内存管理、代码轻量化及加载时机控制。 JavaScript性能优化核心在于减少执行时间、降低内存占用、提升响应速度。关键不是写得多快,而是让浏览器更高效地解析、执…

    2025年12月21日
    000
  • JavaScript网络安全防护_javascript最佳实践

    防范XSS需对用户输入转义,使用textContent替代innerHTML,并启用CSP;2. 管理第三方依赖需定期审计漏洞、锁定版本并移除无用包;3. 敏感数据和逻辑应置于服务端,避免前端暴露密钥或权限判断;4. 采用严格模式、禁用eval等危险函数,全程使用HTTPS,确保编码安全。 Java…

    2025年12月21日
    000
  • Node.js Express应用中高效内存缓存策略与实践

    本文旨在探讨node.js express应用中利用`setinterval`实现数据内存缓存的常见模式,分析其潜在的内存管理问题,并提供一套健壮、高效且易于维护的缓存策略。我们将通过优化代码结构、引入生命周期管理和内存监控,帮助开发者构建更稳定的服务。 在构建高性能的Node.js应用时,减少对数…

    2025年12月21日
    000
  • 如何安全地执行动态生成的JavaScript代码

    安全执行动态JavaScript的核心是隔离与权限控制:避免使用eval和new Function,优先通过iframe沙箱、Web Worker或专用解释器(如vm2)限制代码执行环境,结合CSP策略、AST语法分析和API白名单机制,遵循最小权限原则,对不可信代码进行严格校验与监控,层层防御以降…

    2025年12月21日
    000
  • 移动端JavaScript性能优化策略

    减少DOM操作并批量处理,使用DocumentFragment或innerHTML合并修改;2. 采用事件委托、节流与防抖控制高频事件;3. 拆分长任务或使用Web Worker避免主线程阻塞;4. 及时释放资源防止内存泄漏。 移动端JavaScript性能直接影响用户体验,尤其在低配置设备上更明显…

    2025年12月20日
    000

发表回复

登录后才能评论
关注微信