AUTOSAR NvM模块(三)

NvMRbResistantToLayoutRemoval

该参数定义了一个NvM块是否对布局移除具有抵抗性。如果该参数配置为真并且该块已被写入,那么即使该块不再是当前布局的一部分(例如,当配置发生变化并且该块从布局中移除时),底层系统也会将该块保存在持久性存储介质上。

当配置发生变化并且该块被从布局中移除时,该块将无法通过NvM访问。但是,如果配置再次发生变化并且该块被重新配置,那么对该块的访问将再次启用。

如果启用了动态配置(通过NvMDynamicConfiguration参数),那么具有布局移除抵抗性的块必须同时具有对软件更改的抵抗性(通过NvMResistantToChangedSw参数进行配置)。
总的来说,如何确保某些关键的NvM块在配置变更的情况下仍能保留并在必要时重新启用访问权限的机制。

NvMRbSelectBlockForFirstInitAll

配置参数定义了是否在执行NvM_Rb_FirstInitAll操作时处理一个NvM块。
该配置参数可以在以下几种情况下进行设置:
情况 (i):
NvM块是本地块或冗余块,且具有ROM块或InitBlockCallback,且具有永久RAM块或配置为使用显式同步机制。
情况 (ii):
NvM块是本地块或冗余块,且没有ROM块和InitBlockCallback。在这种情况下,NvM块将被NvM_Rb_FirstInitAll操作简单地无效化。
情况 (iii):
NvM块的类型是NVM_BLOCK_DATASET。在这种情况下,NvM块的所有NV块都会被NvM_Rb_FirstInitAll操作无效化。

NvMRbSingleBlockStartCallback

该参数指定了在访问实际存储介质时应调用的块特定回调例程的名称。如果明确不需要调用这样的回调例程,可以在此处输入NULL_PTR。

回调函数的声明:
回调函数的声明取决于配置参数NvMRbCallbackSignatureAR45的值:
NvMRbCallbackSignatureAR45=false:
回调函数的声明应为:Std_ReturnType CallbackName(uint8 ServiceId);
NvMRbCallbackSignatureAR45=true:
回调函数的声明应为:Std_ReturnType CallbackName(NvM_BlockRequestType BlockRequest);

在这个回调函数中,不允许调用任何NvM或DEM函数。这意味着回调函数只能执行独立于NvM和DEM的逻辑操作,不能直接调用这些模块中的函数。

NvMRbWriteCounter

该参数用于定义是否为一个NVRAM块启用写计数器。写计数器用于跟踪对NVRAM块的写操作次数。

当启用写计数器时,存储在非易失性存储器中的数据大小会发生变化。具体而言,块的大小将变为用户数据大小加上写计数器的大小。

这种变化对向后兼容性有重要影响。因为块大小的变化可能导致以前使用该块的系统或软件无法正确识别或处理新的数据格式。

启用写计数器后,由于数据块的总大小发生了变化,所以在涉及数据格式、数据解析以及存储空间分配等方面需要特别注意,以避免兼容性问题。

NvMReadRamBlockFromNvCallback

该参数指定了在需要将数据从NvM模块的镜像复制到RAM块时调用的块特定回调例程的名称。如果明确不需要调用这样的回调例程,可以在此处输入NULL_PTR。

这个回调与NvMBlockUseSyncMechanism参数相关。如果使用同步机制,需要该回调函数来处理数据复制。

对于位于RTE(Runtime Environment)之上的用户,如果NvMRbGenRteServicePort参数设置为TRUE,则这个回调应留空,以便自动生成回调。这意味着在这种情况下,不需要手动指定回调函数的名称。

回调函数的声明必须为:Std_ReturnType CallbackName(void* NvMBuffer);
Std_ReturnType:这是一个标准返回类型,通常用于表示函数的执行结果(如成功或失败)。
CallbackName:这是用户定义的回调函数的名称。
void NvMBuffer*:这是一个指向NvM模块缓冲区的指针,用于在回调函数中访问和复制数据。
函数调用限制:

在这个回调函数中,不允许调用任何NvM或DEM函数。这意味着回调函数只能执行独立于NvM和DEM的逻辑操作,不能直接调用这些模块中的函数。

NvMResistantToChangedSw

这个参数决定了一个NVRAM块是否应在配置更改时保持数据不变。它与其他参数(如NvMCompiledConfigId和NvMDynamicConfiguration)共同作用,确保在配置变更情况下的数据稳定性。

当一个NVRAM块被配置为对配置更改具有抵抗性时,即使配置发生变化,该块的数据也不会被删除或重置。这意味着该块的数据在不同配置版本之间保持一致。
这种机制确保了某些关键数据不会因为配置变化而丢失或被破坏,提供了数据的稳定性和持久性。

NvMRomBlockDataAddress

该参数用于定义一个NVRAM块的ROM块数据的起始地址。

可以通过以下几种方式指定地址:
以十六进制表示法给出地址,例如0x2345BCDE。
使用链接符号的名称,例如MyTestRomBlock。
使用地址符号,例如&MyTestRomBlock。

如果明确表示该块不需要ROM块,可以在此处输入NULL_PTR。

NvM用户应将每个NvM ROM块分配在所谓的“保存恢复区”(saved recovery zone)中。
当使用AUTOSAR机制进行内存分配时,应使用以下内存类:
SEC_CONST_SAVED_RECOVERY_ZONE

NvMRomBlockNum

允许的ROM块数量:

对于本地块或冗余块:允许的ROM块数量范围是 0 到 1。
对于数据集块:允许的ROM块数量范围是 0 到 254。

必须满足以下条件:
NvMNvBlockNum + NvMRomBlockNum <= 255
这个条件确保了NV块(NvMNvBlockNum)和ROM块(NvMRomBlockNum)的总数不超过255。这一要求由引用 [NVM444] 规定。

NvMSelectBlockForReadAll

定义了在执行NvM_ReadAll操作期间是否处理一个NVRAM块。

只有符合以下条件的NVRAM块才允许设置这个配置参数:
NVRAM块配置了永久性RAM块或者NVRAM块配置了使用显式同步机制。
数据集块(通过NvMBlockManagementType参数配置)以及立即优先级块(通过NvMBlockJobPriority参数配置)不允许被选择用于NvM_ReadAll操作。

NvMSelectBlockForWriteAll

定义了在执行NvM_WriteAll操作期间是否处理一个NVRAM块。

只有符合以下条件的NVRAM块才允许设置这个配置参数:
NVRAM块配置了永久性RAM块或者NVRAM块配置了使用显式同步机制。

NvMStaticBlockIDCheck

用于启用或禁用该NVRAM块的静态块ID检查。
目前版本的NvM不支持这一功能,因此这个参数必须始终设置为false。

NvMWriteBlockOnce

启用或禁用一旦NVRAM块成功从存储介质读取或写入后的自动写保护功能。

当自动写保护启用时,一旦NVRAM块的数据成功写入存储介质,该块的数据就会被保护,防止其在写入后被重写。

在NvM_Init之后,块数据成功写入的信息会丢失。要恢复这一信息,通常在尝试对配置为只能写入一次的块执行任何写入/使无效/擦除操作之前,可以通过NvM_ReadAll或NvM_ReadBlock来尝试读取该块。
配置为“写一次”的NvM块允许在布局更改时初始化(请参阅NvMRbInitBlockAtLayoutChange配置参数)。如果块被初始化(即其恢复数据在ReadAll后被写入介质),则在该块上尝试执行任何写入/使无效/擦除操作都将失败。

NvMWriteRamBlockToNvCallback

该参数指定了一个块特定的回调例程的名称,在应用程序中用于将数据从RAM块复制到NvM模块的镜像中。如果不需要调用这样的回调例程,可以在此处输入NULL_PTR。

这个回调与NvMBlockUseSyncMechanism参数相关。如果使用了同步机制,就需要这个回调函数来处理数据复制。

对于位于RTE(Runtime Environment)之上的用户,如果NvMRbGenRteServicePort参数设置为TRUE,则应该将这个回调保留为空,以便自动生成回调。这意味着在这种情况下,不需要手动指定回调函数的名称。
回调函数的声明:
Std_ReturnType CallbackName(void* NvMBuffer);

NvMWriteVerification

启用或禁用写入验证功能。
目前版本的NvM不支持这一功能,因此这个参数必须始终设置为false。

NvMWriteVerificationDataSize

指定在启用写入验证功能时,每步比较RAM块和读回块内容时要比较的字节数。

如果为该块禁用了写入验证功能,则此参数将被忽略。

NvMBlockCipheringRef

如果配置了这个参数,NvM会在存储数据之前对其进行加密,并在恢复数据时对其进行解密。

当配置了加密容器时,NvM会对用户数据进行加密,然后存储在非易失性存储器(NVRAM)中。
在恢复或读取数据时,NvM会对加密的数据进行解密,以便将其还原为原始格式,然后提供给应用程序使用。

如果这个参数为空或未配置(NULL_PTR),则NvM将直接存储和恢复原始的用户数据,没有进行加密或解密处理。

NvMBlockEcucPartitionRef

将NV块映射到一个特定的ECUC分区,或者可以选择不映射到任何ECUC分区。

通过映射NV块到特定的ECUC分区,可以限制只有被指定的分区才能访问该NV块的数据。

所引用的ECUC分区必须属于NvM映射到的ECUC分区子集之一。换句话说,NvM必须已经映射到某个ECUC分区,然后才能将NV块映射到该分区。

NvMRbRamInitAddSavedZoneNameRef

此参数(BSW_SWCS_AR_NVRAMManager_Ext-3440)仅在特定条件下使用:
NvMRbRamInitCheck必须设置为TRUE。
NvMRbRamInitUnconditional必须设置为FALSE。
必须配置了一个PRAM块。

复位标记决定了NvM模块在系统启动或复位时如何初始化PRAM块。
如果未指定具体内容,将使用标准的“SAVEDZONE”声明区段。这个区段确保PRAM块在复位后的初始化行为与其他RAM块类似。

如果PRAM位于具有不同复位行为的RAM区域中,则NvM的初始化行为需要与之同步。
因此,必须在与PRAM同一区段中放置额外的复位标记。用于额外复位标记的声明为 NVM_{START/STOP}SEC_VAR_SAVED_ZONE_32。
参数 NvMRbRamInitAddSavedZoneName 是对 AUTOSAR_SWS_MemoryMapping 中 SEC_VAR_SAVED_ZONE 的进一步细化。

这个区段必须添加到 NvM_MemMap.h 中(如果没有使用 MemMapGen)或者 MemMap-Pragma-configuration xpt 文件中(如果使用了 MemMapGen)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/365721.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短视频抓取:成都柏煜文化传媒有限公司

短视频抓取&#xff1a;技术挑战、法律边界与未来趋势 随着移动互联网的迅猛发展&#xff0c;短视频平台如雨后春笋般涌现&#xff0c;成为现代人生活娱乐的重要组成部分。然而&#xff0c;在海量短视频内容中&#xff0c;如何高效、准确地抓取目标视频&#xff0c;成为了一个…

3D立体卡片动效(附源码)

3D立体卡片动效 欢迎关注&#xff1a;xssy5431 小拾岁月参考链接&#xff1a;https://mp.weixin.qq.com/s/9xEjPAA38pRiIampxjXNKQ 效果展示 思路分析 需求含有立体这种关键词&#xff0c;我们第一反应是采用动画中的平移、倾斜等实现。如果是立体&#xff0c;必然产生阴影&…

这才是CSDN最系统的网络安全学习路线(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

24 年程序员各岗位薪资待遇汇总(最新)

大家好&#xff0c;我是程序员鱼皮。今天分享 24 年 6 月最新的程序员各岗位薪资待遇汇总。 数据是从哪儿来的呢&#xff1f;其实很简单&#xff0c;BOSS 直聘上有一个免费的薪酬查询工具&#xff0c;只要认证成为招聘者就能直接看&#xff0c;便于招聘者了解市场&#xff0c;…

线性代数基础概念:行列式

目录 线性代数基础概念&#xff1a;行列式 1. 行列式的定义 1.1 递归定义 1.2 代数余子式定义 1.3 几何定义 2. 行列式的性质 2.1 行列式等于其转置的行列式 2.2 交换两行或两列&#xff0c;行列式变号 2.3 将一行或一列乘以一个数 k&#xff0c;行列式乘以 k 2.4 将…

加密与安全_三种方式实现基于国密非对称加密算法的加解密和签名验签

文章目录 国际算法基础概念常见的加密算法及分类签名和验签基础概念常见的签名算法应用场景 国密算法对称加密&#xff08;DES/AES⇒SM4&#xff09;非对称加密&#xff08;RSA/ECC⇒SM2&#xff09;散列(摘要/哈希)算法&#xff08;MD5/SHA⇒SM3&#xff09; Code方式一 使用B…

App测试技术(纯理论)

之前我们也学习过一些普通用例的设计, 如功能, 性能, 安全性, 兼容性, 易用性, 界面的测试用例设计, 之前我们讲的基本都是对于Web应用而言的, 这里我们来讲一下移动端的App测试用例设计. 功能方面 安装&卸载测试 这是只属于App的一类测试, 再平常我们使用移动设备(手机…

鸿蒙 HarmonyOs 动画效果 快速入门

一、理论 1.1 animation属性 名称参数类型必填描述durationnumber否设置动画时长&#xff0c;默认值&#xff1a;1000&#xff0c;单位&#xff1a;毫秒temponumber否动画播放速度。数值越大&#xff0c;速度越快&#xff0c;默认为1curvestring | Curve否 设置动画曲线。 默…

喜提一等奖!白鲸开源在“创业北京”创业创新大赛海淀区选拔赛决赛表现亮眼

6月25日&#xff0c;第七届“创业北京”创业创新大赛海淀区选拔赛决赛在中关村东升国际科学园成功举办。本次活动由海淀区人力资源和社会保障局、中关村科学城管委会主办&#xff0c;以“创响新时代 共圆中国梦”为主题&#xff0c;活动现场主体赛先进制造赛道和主体赛现代服务…

ONLYOFFICE 桌面编辑器 8.1

ONLYOFFICE 桌面编辑器 8.1 ONLYOFFICE 简介一、轻松编辑器 PDF 文件二、用幻灯片版式快速修改幻灯片三、无缝切换文档编辑、审阅和查看模式四、**改进从右至左语言的支持 & 新的本地化选项**五、隐藏“连接到云”板块六、在演示文稿中播放视频和音频文件七、版本 8.1&…

Asp.NET identity以及Owin

》》》Identity是集成到Owin框架中中 ● Microsoft.AspNet.Identity.Core&#xff1a;Identity的核心类库&#xff0c;实现了身份验证的核心功能&#xff0c;并提供了拓展接口。● Microsoft.AspNet.Identity.EntityFramework&#xff1a;Identity数据持久化的EF实现。   ● …

币界网快讯,比特币7月份看牛预测

今日数字货币市场全面开启反弹&#xff0c;比特币从 60,000 美元大关飙升至 63,700 美元&#xff0c;预示着 7 月牛市的到来。在此之前&#xff0c;上周曾短暂跌破 60,000 美元&#xff0c;但受到 BTC 现货 ETF 流入的 7,300 万美元的推动——这是两周以来最大的流入。 BTC价格…

熊猫烧香是什么?

熊猫烧香&#xff08;Worm.WhBoy.cw&#xff09;是一种由李俊制作的电脑病毒&#xff0c;于2006年底至2007年初在互联网上大规模爆发。这个病毒因其感染后的系统可执行文件图标会变成熊猫举着三根香的模样而得名。熊猫烧香病毒具有自动传播、自动感染硬盘的能力&#xff0c;以及…

3dmax如何制作全景图?渲染100邀请码1a12

全景图很常见&#xff0c;制作起来也简单&#xff0c;这里我给大家稍微分享下。 1、创建相机 打开要渲染全景的场景文件&#xff0c;创建相机并调整好位置。 2、 设置分辨率 按F10打开渲染设置界面&#xff0c;选择相机视口&#xff0c;在公用里设置宽度和高度&#xff0c;…

Day38:LeedCode 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果…

EDI是什么?与ERP有何关系

EDI的发展过程 电子数据交换&#xff08;Electronic Data Interchange&#xff0c;EDI&#xff09;是一种通过电子方式传输商业文件的技术。EDI的历史可以追溯到20世纪60年代&#xff0c;当时企业开始使用计算机进行数据处理。最早的EDI系统是为解决大型企业间的信息交换问题而…

实验6 形态学图像处理

1. 实验目的 ①掌握数字图像处理中&#xff0c;形态学方法的基本思想&#xff1b; ②掌握膨胀、腐蚀、开运算、闭运算等形态学基本运算方法&#xff1b; ③能够利用形态学基本运算方法&#xff0c;编程实现图像去噪&#xff0c;边界提取等功能。 2. 实验内容 ①调用Matlab /…

[数据集][目标检测]电缆钢丝绳线缆缺陷检测数据集VOC+YOLO格式1800张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1800 标注数量(xml文件个数)&#xff1a;1800 标注数量(txt文件个数)&#xff1a;1800 标注…

为什么我的Skype点数不见了?如何重新激活 Skype 点数?

您超过180天没有使用过点数打电话功能&#xff0c;点数暂时封存在您的账户里面&#xff0c;需要您手动激活&#xff08;目前必须要登录网页版skype&#xff09; 可再次使用。 如何重新激活 Skype 点数&#xff1f; 登录到你的帐户 . 选择 重新激活信用额度 .注意&#xff1a; …

源码学习:文件描述符

在进程描述学习中&#xff0c;扯到了max_fds&#xff0c;接着就联想到了日常运维中常见的ulimit参数、sysctl内核参数&#xff0c;原来以为max_fds与这些个关联性比较强&#xff0c;但经过一早上折腾以后&#xff0c;发现其实还是有一些差距的。但是在学习过程中&#xff0c;却…