一文读懂AutoSAR内存保护和Mpu

谈思实验室 2024-04-20 18:01

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

MPU的功能

MPU功能简述

MPU保护与当前执行的代码“不相关“的所有数据。

“不相关”是相关内存地址的权限受限制,或者是程序访问内存地址的范围于其无关,阻止关键数据被破坏,使嵌入式系统更加健壮与安全。  

MPU作用主要有两个方面:

为两个保护,一个检测。

1)MPU的保护作用

指访问区域的保护和读写区域的保护。

① 访问区域的保护。

可以将内存区域划为特权区域和普通区域,特权区域只有特权用户才能访问,普通用户被禁止访问,以此来保护特定的数据。

常见的应用场景:

1> 对带系统的来说,可以设置数据,以防止用户应用程序破坏操作系统使用过程中的数据。

2> 隔离任务,以防止一个任务访问其他任务的数据。

3> 将SRAM或者RAM空间定义为不可执行,防止代码注入。

② 读写区域的保护。

设置指定的区域为只读,可以有效的防止比较关键的数据被错误修改。

2)MPU的检测功能

指可以检测堆和栈的溢出情况及数组有没有越界。

功能安全中对内存分区MPU的相关描述

汽车ECU软件是高度模块化的嵌入式软件,其功能实现是可以为非功能安全,和功能安全的SWC组合,它们分别拥有不同的ASIL安全等级。

根据ISO26262,如果嵌入式软件包含不同ASIL等级的SWC,要么整个软件工程都需要基于最高安全等级的要求进行开发,需要保证拥有更高安全等级的SWC的操作不会受到其他SWC的干扰,也即需要做到FFI(Freedom from interference)的设计。

基于更低安全等级要求开发的SWC,可能会出现错误地访问到更高安全等级SWC的内存区域,产生干扰。

为此,SWC需要运行在不同的内存区域,或者不同的内存分区,来防止类似的内存访问违例。

ISO26262中,以下内存相关的故障影响被视为SWC之间产生干扰的原因:

  • 内容损坏

  • 读写区域属于另一个SWC

  • 数据不一致

  • 栈溢出或栈下溢

要满足上述定义,是MPU内存保护的目标,也可以通过限制对于内存以及内存对应的硬件的访问。

这里的内存分区意味着:

各OS Application运行在相互保护(不干涉)的内存区域,在某一个分区上运行的代码,无法修改另一个分区的内存。

内存分区也可以保护只读内存段(例如代码执行)以及内存对应的硬件。

内存分区和用户/特权模式可以保证SWC之前互不干扰——即使某一个SWC出现了内存相关的故障,也不会对其他软件模块有影响。

如果一个SWC运行在用户模式,那么它对CPU资源/指令的访问也是受限制的。

MPU的微控制器有专用的硬件

即内存保护单元(MPU),来支持内存分区。

若想深入理解上述的MPU描述,得先来看下,内存分区和MPU的基础知识。

计算机程序执行的基础简介

内存

计算机的主要作用是对输入数据进行处理和运算后输出,CPU处理器主要完成数据的处理运算,但输入输出数据包括处理过程中的临时数据需要有一个空间去存放,这个临时存放数据供处理器和外设使用的地方就是内存。

如上图,为了提高效率把存放程序(也即控制指令)和数据(也即操作数)的空间分开,同时把访问指令与访问数据的总线分开,使取指令和执行指令能够重叠(处理器的流水线)。

内存寻址

处理器与内存之间有地址总线用于寻址,有数据总线用于传输数据,当然也有相应的控制线来读写操作。

存储器地址的映射简介

存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,如图所示,给存储器分配地址的过程称为存储器映射。

如果内核整体可以寻址的 0 到 2^32 -1 共计 4GB 的寻址空间。功能部件RAM, Flash,外设等共同排列在一个4GB的地址空间内。

地址分配

程序C语言通过这些地址可以访 问 RAM、Flash、外设等,进行读写操作。

C编译的程序占用的内存分为以下几个部分:

栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。

全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。

文字常量区(.const)—常量字符串就是放在这里的。

程序代码区(.text)—存放函数体的二进制代码。

栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。MPU也支持堆栈溢出检测,简单如下图。

代码例子


MPU内存保护单元

Memory Protection Unit

上文描述的内存区,堆栈区,数据区,代码区都可以被MPU保护,安全相关的微处理器通常都在硬件级别上支持内存分区保护,MPU主要是通过内存映射的地址范围限制,和监控非受信区域的内存访问来实现的。

MPU可以保护的区域为内存映射区memory map,可以设置不同存储区域的存储器访问特性(如只支持特权访问或全访问)和存储器属性(如可缓存、可缓冲、可共享),对存储器(主要是内存和外设)提供保护,保护可执行程序的(data、code和stack)区域。

MPU 的Region区域

是可编程保护区域(需要控制器硬件支持),如下图

MPU的配置是通过设置多个MPU寄存器,定义多个MPU region,每个MPU region的可配置选项包括: 被保护的起始地址,大小size,访问权限,所属硬件MPU分类,Region Owner 以及有效ID等。

MPU在执行其功能时,也是以“region区域”为单位的。

通过上述的MPU配置,各个软件模块将具备对不同memory区域的不同访问权限。

如图,一个region上述配置的一段连续的地址,它们的位置和范围都要满足一些限制。

MPU是可以管理所有的存储空间(如图 4G),可以划分不同的Region内存区域,并为每个Region设置访问权限与规则,不同的Region允许相互重叠,重叠区域受多重访问规则的限制。

Link命令对于内存的设置

编译器关联的,可参考下面TI的解释

https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html

特权模式与用户模式

是内核的执行模式。

当代码运行在特权模式下,代码拥有所有的访问许可;

而代码运行在用户模式,则访问权限受限制。

也是MPU中所定义的内存访问规则。

AUTOSAR中的定义

内存分区的定义

如上图,一般来说

  • BSW模块运行在授信模式/监控者模式内存分区当中。

  • 部分SWC分组并放置到非授信/用户模式内存分区当中。

  • 个别SWC也运行在授信/监控者模式内存分区当中。

项目中可以有多个非授信/用户分区,每个分区都可以包含一个或多个SWC。

上图中,分区是以应用软件OS-Application为对象定义的,OS-Application和内存分区(Partition)之间,是一对一的关系。

如何理解OS-Application?

下文简述

如下图中,应用程序内的 AUTOSAR SWC

在AUTOSAR架构中,应用程序位于RTE之上的,基于应用功能逻辑定义,内部包含一组存在信息交换的软件组件(SWC)。

软件组件SWC是实现一系列的原子功能(最小单元不可拆分),SWC包含一系列的功能实现和变量定义,这些功能实现和变量定义对于外部是不可见的,仅能通过公布的RTE接口使用。

SWC以周期性执行或者以外部触发的runnable中执行。

从分配的角度来看,一个SWC可以由多个Runnable构成,一个OS-Task可以触发多个Runnable(同一个SWC内的Runnable可以在不同的OS-Task上执行),一个OS-Application可以管理多个OS-Task。

AUTOSAR OS-Application

AUTOSAR的OS-Application是操作系统对象的集合体,其中包括任务(Tasks),中断服务程序 (ISRs),调度表 (Schedule Tables),计数器 (Counters)和警报 (Alarms),这些对象构成一个内聚的功能单元。

OS-Application可以分为2类:

受信任 (Trusted)的OS-Application

可以不受那些运行时的监控 (Monitoring)或者保护 (Protection)特性的限制执行。

这类应用可以不受限的访问内存和操作系统API。受信任的应用对于执行时间上也不受限制,同时也可以在任何支持的处理器上以特权模式执行。

不受信任 (Non-trusted)的OS-Application

不可以在运行时监控及保护机制关闭的时候执行。这类应用在访问内存、操作系统API时都有限制,同时也不允许以特权模式执行。

AUTOSAT Memory Mapping

AUTOSAR有memory mapping的特性可支持上述内存分区Memory

Partitioning,从而提供MPU需要的Non-trusted 和Trusted的内存分配区域设置。

MPU的限制规则

内存分区Memory Partitioning的限制

在同一个OS-Application内的对象相互访问,提供了不受限的通信支持。

在一个OS-Application内的各个对象可以互相访问,可以分属于不同的SWC。

MPU工作的过程

操作系统要事先根据功能,和软件架构,定义软件分区,进行MPU region配置,任务运行时,操作系统根据MPU的配置,检测和阻止不正确的内存访问,若出现了在非受信区域的内存访问或者执行了不合法的CPU指令,这些访问首先会被阻止,然后处理器硬件会产生一个异常 (Exception),记录故障码DTC。

操作系统和RTE会处理这些异常:执行内存分区的关闭 (Shutdown),或重启分区内的所有SWC的动作。

总结语

AUTOSAR中提供的内存分区机制,通过SWC,RTE,Mem映射实现,限制访问内存,支持内存保护。而内存分区的定义(trust/un trust)和限制规则由控制器的系统设计决定。

来源:车端软件开发

 专业社群 

 精品活动推荐 

更多文章

不要错过哦,这可能是汽车网络安全产业最大的专属社区!

关于涉嫌仿冒AutoSec会议品牌的律师声明

一文带你了解智能汽车车载网络通信安全架构

网络安全:TARA方法、工具与案例

汽车数据安全合规重点分析

浅析汽车芯片信息安全之安全启动

域集中式架构的汽车车载通信安全方案探究

系统安全架构之车辆网络安全架构

车联网中的隐私保护问题

智能网联汽车网络安全技术研究

AUTOSAR 信息安全框架和关键技术分析

AUTOSAR 信息安全机制有哪些?

信息安全的底层机制

汽车网络安全

Autosar硬件安全模块HSM的使用

首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议

谈思实验室 深入专注智能汽车网络安全与数据安全技术,专属汽车网络安全圈的头部学习交流平台和社区。平台定期会通过线上线下等形式进行一手干货内容输出,并依托丰富产业及专家资源,深化上下游供需对接,逐步壮大我国汽车安全文化及产业生态圈。
评论 (0)
  • 网约车,真的“饱和”了?近日,网约车市场的 “饱和” 话题再度引发热议。多地陆续发布网约车风险预警,提醒从业者谨慎入局,这背后究竟隐藏着怎样的市场现状呢?从数据来看,网约车市场的“过剩”现象已愈发明显。以东莞为例,截至2024年12月底,全市网约车数量超过5.77万辆,考取网约车驾驶员证的人数更是超过13.48万人。随着司机数量的不断攀升,订单量却未能同步增长,导致单车日均接单量和营收双双下降。2024年下半年,东莞网约出租车单车日均订单量约10.5单,而单车日均营收也不容乐
    用户1742991715177 2025-04-29 18:28 161浏览
  • 文/Leon编辑/cc孙聪颖‍2023年,厨电行业在相对平稳的市场环境中迎来温和复苏,看似为行业增长积蓄势能。带着对市场向好的预期,2024 年初,老板电器副董事长兼总经理任富佳为企业定下双位数增长目标。然而现实与预期相悖,过去一年,这家老牌厨电企业不仅未能达成业绩目标,曾提出的“三年再造一个老板电器”愿景,也因市场下行压力面临落空风险。作为“企二代”管理者,任富佳在掌舵企业穿越市场周期的过程中,正面临着前所未有的挑战。4月29日,老板电器(002508.SZ)发布了2024年年度报告及2025
    华尔街科技眼 2025-04-30 12:40 125浏览
  • 在智能硬件设备趋向微型化的背景下,语音芯片方案厂商针对小体积设备开发了多款超小型语音芯片方案,其中WTV系列和WT2003H系列凭借其QFN封装设计、高性能与高集成度,成为微型设备语音方案的理想选择。以下从封装特性、功能优势及典型应用场景三个方面进行详细介绍。一、超小体积封装:QFN技术的核心优势WTV系列与WT2003H系列均提供QFN封装(如QFN32,尺寸为4×4mm),这种封装形式具有以下特点:体积紧凑:QFN封装通过减少引脚间距和优化内部结构,显著缩小芯片体积,适用于智能门铃、穿戴设备
    广州唯创电子 2025-04-30 09:02 136浏览
  • 浪潮之上:智能时代的觉醒    近日参加了一场课题的答辩,这是医疗人工智能揭榜挂帅的国家项目的地区考场,参与者众多,围绕着医疗健康的主题,八仙过海各显神通,百花齐放。   中国大地正在发生着激动人心的场景:深圳前海深港人工智能算力中心高速运转的液冷服务器,武汉马路上自动驾驶出租车穿行的智慧道路,机器人参与北京的马拉松竞赛。从中央到地方,人工智能相关政策和消息如雨后春笋般不断出台,数字中国的建设图景正在智能浪潮中徐徐展开,战略布局如同围棋
    广州铁金刚 2025-04-30 15:24 122浏览
  • 4月22日下午,备受瞩目的飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!1、精彩纷呈的展区产品及方案展区是本场活动的第一场重头戏,从硬件产品到软件系统,从企业级应用到高校教学应用,都吸引了现场来宾的驻足观看和交流讨论。全产品矩阵展区展示了飞凌嵌入式丰富的产品线,从嵌入式板卡到工控机,从进口芯片平台到全国产平台,无不体现出飞凌嵌入式在嵌入式主控设备研发设计方面的
    飞凌嵌入式 2025-04-28 14:43 125浏览
  • 文/郭楚妤编辑/cc孙聪颖‍越来越多的企业开始蚕食动力电池市场,行业“去宁王化”态势逐渐明显。随着这种趋势的加强,打开新的市场对于宁德时代而言至关重要。“我们不希望被定义为电池的制造者,而是希望把自己称作新能源产业的开拓者。”4月21日,在宁德时代举行的“超级科技日”发布会上,宁德时代掌门人曾毓群如是说。随着宁德时代核心新品骁遥双核电池的发布,其搭载的“电电增程”技术也走进业界视野。除此之外,经过近3年试水,宁德时代在换电业务上重资加码。曾毓群认为换电是一个重资产、高投入、长周期的产业,涉及的利
    华尔街科技眼 2025-04-28 21:55 107浏览
  • 你是不是也有在公共场合被偷看手机或笔电的经验呢?科技时代下,不少现代人的各式机密数据都在手机、平板或是笔电等可携式的3C产品上处理,若是经常性地需要在公共场合使用,不管是工作上的机密文件,或是重要的个人信息等,民众都有防窃防盗意识,为了避免他人窥探内容,都会选择使用「防窥保护贴片」,以防止数据外泄。现今市面上「防窥保护贴」、「防窥片」、「屏幕防窥膜」等产品就是这种目的下产物 (以下简称防窥片)!防窥片功能与常见问题解析首先,防窥片最主要的功能就是用来防止他人窥视屏幕上的隐私信息,它是利用百叶窗的
    百佳泰测试实验室 2025-04-30 13:28 142浏览
  • 贞光科技代理品牌紫光国芯的车规级LPDDR4内存正成为智能驾驶舱的核心选择。在汽车电子国产化浪潮中,其产品以宽温域稳定工作能力、优异电磁兼容性和超长使用寿命赢得市场认可。紫光国芯不仅确保供应链安全可控,还提供专业本地技术支持。面向未来,紫光国芯正研发LPDDR5车规级产品,将以更高带宽、更低功耗支持汽车智能化发展。随着智能网联汽车的迅猛发展,智能驾驶舱作为人机交互的核心载体,对处理器和存储器的性能与可靠性提出了更高要求。在汽车电子国产化浪潮中,贞光科技代理品牌紫光国芯的车规级LPDDR4内存凭借
    贞光科技 2025-04-28 16:52 183浏览
  • 在CAN总线分析软件领域,当CANoe不再是唯一选择时,虹科PCAN-Explorer 6软件成为了一个有竞争力的解决方案。在现代工业控制和汽车领域,CAN总线分析软件的重要性不言而喻。随着技术的进步和市场需求的多样化,单一的解决方案已无法满足所有用户的需求。正是在这样的背景下,虹科PCAN-Explorer 6软件以其独特的模块化设计和灵活的功能扩展,为CAN总线分析领域带来了新的选择和可能性。本文将深入探讨虹科PCAN-Explorer 6软件如何以其创新的模块化插件策略,提供定制化的功能选
    虹科汽车智能互联 2025-04-28 16:00 143浏览
  • 一、gao效冷却与控温机制‌1、‌冷媒流动设计‌采用低压液氮(或液氦)通过毛细管路导入蒸发器,蒸汽喷射至样品腔实现快速冷却,冷却效率高(室温至80K约20分钟,至4.2K约30分钟)。通过控温仪动态调节蒸发器加热功率,结合温度传感器(如PT100铂电阻或Cernox磁场不敏感传感器),实现±0.01K的高精度温度稳定性。2、‌宽温区覆盖与扩展性‌标准温区为80K-325K,通过降压选件可将下限延伸至65K(液氮模式)或4K(液氦模式)。可选配475K高温模块,满足材料在ji端温度下的性能测试需求
    锦正茂科技 2025-04-30 13:08 131浏览
  • 随着电子元器件的快速发展,导致各种常见的贴片电阻元器件也越来越小,给我们分辨也就变得越来越难,下面就由smt贴片加工厂_安徽英特丽就来告诉大家如何分辨的SMT贴片元器件。先来看看贴片电感和贴片电容的区分:(1)看颜色(黑色)——一般黑色都是贴片电感。贴片电容只有勇于精密设备中的贴片钽电容才是黑色的,其他普通贴片电容基本都不是黑色的。(2)看型号标码——贴片电感以L开头,贴片电容以C开头。从外形是圆形初步判断应为电感,测量两端电阻为零点几欧,则为电感。(3)检测——贴片电感一般阻值小,更没有“充放
    贴片加工小安 2025-04-29 14:59 143浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦