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

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

相关推荐

  • 快去囤!内存价格暴涨 未来只会更贵

    过去几年,大家或许还对“显卡价格飙升”记忆犹新,如今轮到内存走上舞台中央,“价格狂飙”的剧情正全面上演。这一波上涨并非短期波动或市场炒作,而是由ai热潮引发的全链条刚性需求所驱动。 从用于AI训练的HBM高带宽内存,到你电脑中的DDR5、DDR4,再到智能手机搭载的LPDDR5X,几乎全线内存产品都…

    2025年12月6日 行业动态
    000
  • 白菜价再见了!内存涨价倒逼手机全面涨价:今后越来越贵

    10月24日消息,从昨天redmi k90的定价来看,内存涨价已经对手机市场产生了显著影响,且形势比大众预想的更为严峻。 今日,卢伟冰通过微博宣布,REDMI K90标准版12GB+512GB版本在首销月内直降300元,调整后售价为2899元。需要特别指出的是,此次降价仅限首销月,意味着未来价格有可…

    2025年12月6日 手机教程
    000
  • 涨疯了!装机市场内存价格比肩黄金 目前不建议任何人入手

    如果大家留意近期的diy硬件市场,会发现几乎所有配件都迎来了新一轮涨价潮。其中内存市场的涨幅尤为突出,最低涨幅已达到50%,许多曾经性价比极高的主流型号如今全线缺货。 以DDR5内存为例,涨价之前,600元以内就能轻松购得各大品牌的双16GB DDR5 6000MHz及以上规格套条。而现在,同样的预…

    2025年12月6日 行业动态
    000
  • 一文解析Linux /proc/meminfo是什么?

    下面由linux系统教程栏目给大家介绍linux 中 /proc/meminfo 的含义,希望对需要的朋友有所帮助! Linux 中 /proc/meminfo 的含义 做嵌入式开发对内存泄露很敏感,而对泄露的位置更加关注。本文记录一下从网上搜集的/proc/meminfo各参数的含义。还不完整,待…

    运维 2025年12月4日
    000
  • Golang jsonEncoder编码与输出实践

    json.Encoder适合流式写入场景,如HTTP响应或文件输出,相比json.Marshal更节省内存;通过实例演示了其基本用法、格式化输出、批量写入JSON流及Web服务中的应用。 在Go语言开发中,处理JSON数据是常见需求,特别是在构建Web服务或进行数据交换时。json.Encoder …

    2025年12月2日 后端开发
    000
  • 苹果发布 Safari 技术预览版 223:聚焦稳定性与性能优化

    近日,苹果公司推出了 safari 技术预览版的最新版本 223,该版本属于其专为开发者和早期用户打造的实验性浏览器更新。本次更新的重点在于修复已知问题并提升性能表现,目的是为未来正式版 safari 浏览器打下更坚实的基础。 自 2016 年首次发布以来,Safari 技术预览版一直是开发者测试 …

    2025年12月2日
    000
  • Go HTTP Handler 依赖注入:使用闭包优雅地传递类型

    本教程探讨了在go语言http服务中,如何将数据库连接等自定义类型或依赖项安全有效地传递给http处理函数。通过引入闭包(closure)的概念,我们能够避免使用全局变量,实现更清晰、可测试且易于维护的架构设计,确保每个请求处理都能访问到必要的资源。 在构建Go语言的Web应用程序时,HTTP处理函…

    2025年12月2日 后端开发
    000
  • Go语言中基于磁盘的延迟任务队列实现

    本文探讨了在go语言中处理大量延迟任务时,由于数据长时间驻留内存导致的内存消耗问题。针对这一挑战,文章提出并详细阐述了如何利用嵌入式数据库或磁盘持久化存储来构建一个基于磁盘的fifo队列,从而有效降低内存占用。内容涵盖了传统time.sleep和time.afterfunc方法的局限性,以及使用键值…

    2025年12月2日 后端开发
    000
  • 改进自动驾驶在不确定环境下的轨迹规划方法

    论文题目:《基于改进的模型预测控制的自动驾驶车辆在不确定环境下的轨迹规划方法》 发表期刊:IEEE Transactions on Intelligent Transportation Systems 发布日期:2023年04月 以下是我自己的論文閱讀筆記,主要是我自己覺得重點的部分,非全文翻譯,該…

    2025年12月2日 科技
    000
  • 实战部署:动态时序网络用于端到端检测和跟踪

    本文经自动驾驶之心公众号授权转载,转载请联系出处。 相信除了少数自研芯片的大厂,绝大多数自动驾驶公司都会使用英伟达NVIDIA芯片,那就离不开TensorRT. TensorRT是在NVIDIA各种GPU硬件平台下运行的一个C++推理框架。我们利用Pytorch、TF或者其他框架训练好的模型,可以首…

    2025年12月2日 科技
    000
  • 制造领域中的人工智能应用

    在制造市场中,机器视觉已经成为许多人工智能应用的重要组成部分。随着人工智能进入制造车间,这些标准变得尤为关键 讯飞智作-虚拟主播 讯飞智作是一款集AI配音、虚拟人视频生成、PPT生成视频、虚拟人定制等多功能的AI音视频生产平台。已广泛应用于媒体、教育、短视频等领域。 6 查看详情 在推动视觉应用的多…

    2025年12月2日
    000
  • 谷歌浏览器登录入口 官网入口链接

    谷歌浏览器登录入口官网链接是https://www.google.com/chrome/,用户可通过该网址登录并实现账户同步、个性化设置、安全防护及扩展功能优化等操作。 谷歌浏览器登录入口官网链接在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来谷歌浏览器登录入口官网地址,感兴趣的网友一起随…

    2025年12月2日 电脑教程
    000
  • mysql 临时表和内存表创建 查询 删除以及注意事项

    mysql 临时表和内存表创建 查询 删除以及注意事项临时表和内存表的ENGINE 不同,临时表默认的是MyISAM,而内存表是MEMORY ,临时表只对当前会话可见,连接断开时,自动删除!

    数据库 2025年12月2日
    000
  • MysqL安全策略分享

    1:使用预处理语句防止sql注入2:写入数据库的数据要进行特殊字符的转义,比如字符中带单引号和双引号需要在应用层转义,这样为了防止sql注入3:查询的错误信息不要返回给用户,将错误记录到日志。错误信息不要显示到应用中,这样用户会获取到数据库信息,这样就是不%ignore_a_1%,我们要把错误屏蔽,…

    2025年12月2日
    000
  • 多次鼓吹8GB内存够用 等于别人16G!苹果改变:软件新功能要求16GB内存起

    6月24日消息,据国外媒体报道称,之前一直鼓吹自家产品8gb内存就够用的苹果,正在悄悄对新品升级内存。 报道中提到,用于开发iOS和macOS的苹果官方软件Xcode 16更新后显示,如果开发者想要使用新功能,那内存就必须要在16GB以上。 预测代码完成功能对内存提出了更高要求,这或许是苹果首次变相…

    2025年12月2日 行业动态
    000
  • 雷克沙战神之翼 ARES RGB DDR5 8000 内存体验:首款海力士颗粒认证内存,稳超 8000MT/s极速性能体验

    目前装机圈最主流的内存规格通常都在 DDR5 6000MHz-6400MHz 之间,大家对于极致性能的追求往往都在处理器和显卡上,而对于 7600MT/s、8000MT/s这样超高速率的旗舰内存,不少人觉得性能提升有限,因此优先级要靠后一些。 Type 生成草稿,转换文本,获得写作帮助-等等。 83…

    2025年12月2日 行业动态
    000
  • 国产屏下 3D 人脸识别技术进入测试阶段 华为还是小米首发?

    7 月 14 日,”数码闲聊站” 消息称,有厂商正在实验室中对国产屏下 3d 人脸识别技术进行版本测试,这表明该技术正逐步迈向成熟,未来有望在智能手机领域实现应用。 近年来,屏下 3D 人脸识别技术成为智能手机设计的重要突破,其目标是将 3D 人脸识别模块完全置于屏幕下方,从…

    2025年12月2日
    000
  • 如何在确保Java框架的安全性?

    要确保 java 框架的安全性,请遵守以下最佳实践:验证用户输入以防止 sql 注入和 xss 攻击。对输出进行编码以防止 xss 攻击。使用 httponly 和 secured cookies 实现安全会话管理。通过同步令牌或双重提交令牌实施 csrf 保护。使用预编译语句或 jdbc 模板防止…

    2025年12月2日 java
    000
  • Java 框架的安全性对业务有何影响?

    java 框架的安全性如何影响业务:数据保护:保护敏感数据,防止数据泄露。网络安全:防御网络攻击,防止业务中断和信任损害。法律合规:简化合规性,降低罚款和法律责任风险。 Java 框架的安全性对业务的影响 在现代应用程序开发中,选择正确的 Java 框架至关重要。除了功能和性能之外,安全性也是一个关…

    2025年12月2日 java
    000
  • 如何提升 Java 框架的安全性?

    如何提升 java 框架的安全性?实施输入验证,使用正则表达式检查用户输入,防止恶意输入。使用安全标头,如 content-security-policy 和 strict-transport-security,指导浏览器执行安全措施。防范 csrf 攻击,使用令牌或双阶段提交验证请求的来源。使用加…

    2025年12月2日 java
    000

发表回复

登录后才能评论
关注微信