AUTOSAR NvM模块(一)

news2025/1/11 7:53:15

NvMBlockDescriptor

[ECUC_NVM_00061] 用于存储所有特定于块的配置参数的容器。对于每个非易失性随机存取存储器(NVRAM)块,应该指定这个容器的一个实例。

NvMBlockCrcType

定义了NVRAM块的CRC数据宽度。根据Autosar标准,此参数应定义NV存储器中数据以及永久RAM块中数据的CRC数据宽度。目前,此参数仅定义了永久RAM块中数据的CRC数据宽度(参见参数NvMCalcRamBlockCrc)。对于NV存储器中的数据,CRC将始终由较低层独立于此参数进行计算。

NvMBlockHeaderInclude

定义了一个需要包含的头文件。在这里只需要输入头文件的名称,不需要扩展名。例如,输入Bsw_MemMap而不是Bsw_MemMap.h。如果定义了头文件,用户必须在该头文件内声明RAM数据块(NvMRamBlockDataAddress)和ROM数据块(NvMRomBlockDataAddress)。如果为特定的NvM块定义了头文件,编译时将进行一项检查,以验证配置的NvM块(NvMNvBlockLength)长度是否与RAM数据块(NvMRamBlockDataAddress)和ROM数据块(NvMRomBlockDataAddress)中给出的数据大小匹配。这项检查使用sizeof运算符进行,并在不匹配的情况下导致编译时错误。请注意,只有当NvM块满足以下两个条件时,才能进行编译时检查:1. 在RAM数据块(NvMRamBlockDataAddress)和ROM数据块(NvMRomBlockDataAddress)中输入的值是链接器符号的名称、指针或在头文件中声明的数据结构的子元素(例如MyVar、MyStruct.MyMember、MyArray[3]、&MyVar等),而不是十六进制表示的地址(例如0x8000A000)

NvMBlockJobPriority

定义了非易失性随机存取存储器(NVRAM)块的作业优先级。当前版本的NvM支持两种作业优先级:
0: 立即优先级,
1-255: 标准优先级(数值越高,优先级越低)。
如果不需要明确的标准优先级,则可以使用优先级255,以便其他块可以定义更高的优先级。如果禁用了优先级作业处理,则所有块将以相同的优先级处理,即按照先来先服务(FCFS)的顺序。
只有通过NvMJobPrioritization配置参数启用了优先级作业处理时,才能启用立即优先级。
具有立即优先级的块不应参与多块读取(参见NvMSelectBlockForReadAll)或多块写入(参见NvMSelectBlockForWriteAll)操作。如果选择了一个立即优先级的块进行ReadAll或WriteAll操作,那么在多块操作执行期间,不可能为此块排队一个立即写请求(因为此块的状态将是待定的,参见NVM385)

NvMBlockManagementType

定义了NVRAM块的块管理类型。NvM块可以是原生(native)、冗余(redundant)或数据集(dataset)块
在这里插入图片描述

Native Block:

本地块通常指的是直接存储在NVRAM中的原始数据。
这类数据可能不需要额外的冗余或复杂的管理机制。
本地块的数据通常是直接写入和读取的,没有额外的备份或校验数据。
Redundant Block:

冗余块包含数据的备份副本,用于提高数据的可靠性和容错能力。
在数据损坏或存储介质故障时,冗余块可以提供数据恢复的能力。
冗余块可能采用各种形式,如镜像(完全复制)、奇偶校验或更复杂的纠错码。
Dataset Block:

数据集块通常指的是一组相关的数据项,它们作为一个单元进行管理。
这种类型的块可能包含多个数据元素,它们在逻辑上属于同一组,并且在操作时通常一起处理。
数据集块可能用于需要同时读写多个相关数据项的场景,以优化性能或保证数据的一致性。

NvMBlockUseAutoValidation

这个参数的设置决定了在执行全系统NVRAM验证时,是否包括对特定NVRAM块的验证。如果一个NVRAM块被配置为具有永久RAM块,那么它可能需要在验证过程中检查RAM和NVRAM之间的数据一致性。同样,如果NVRAM块配置为使用显式同步机制,那么在验证过程中可能需要检查数据同步的状态。

如果此参数被设置为不处理某个NVRAM块,那么在执行 NvM_ValidateAll 时,该块将被排除在验证过程之外。这可以用于优化验证过程,或者在某些特定情况下,确保只有需要的NVRAM块被验证。

NvMBlockUseCRCCompMechanism

这个配置参数定义了在写操作过程中,是否应该将永久RAM块的CRC(循环冗余校验)与上一次成功读取或写入操作时计算的CRC进行比较。此参数仅当参数NvMCalcRamBlockCrc也被设置为真(true)时,才能被设置为真。

这意味着,如果启用了这个配置参数,系统将在每次写入操作时,自动将新计算的CRC与之前成功操作的CRC进行比较,以确保数据的完整性和一致性。如果NvMCalcRamBlockCrc参数没有被设置为真,那么这个比较将不会被执行,因为CRC计算可能没有被启用或配置。

NvMBlockUseCompression

定义了在写入之前数据是否需要被压缩。RTA-CAR NvM目前提供块分割作为压缩类型。如果使用压缩,用户还必须定义块分割的大小,参见容器NvMRbSplitBlock。

true: 激活数据压缩(读写时间更长)
false: 不进行压缩
这个配置参数决定了在将数据写入非易失性存储器(NVRAM)之前,是否需要先进行压缩处理。使用压缩可以减少存储空间的需求,但可能会增加读写操作的时间消耗,因为压缩和解压缩过程本身需要时间。

NvMBlockUseCrc

启用/禁用NVRAM块在NV存储器中的CRC(循环冗余校验)使用。如果启用,在写操作之前会计算CRC,然后将其与块数据一起存储在NV存储器中。在读取操作期间,将再次检查这个CRC以确保数据的完整性。独立于参数NvMBlockUseCrc,MemStack始终使用CRC来确保数据完整性,但这在较低的软件层(不是NVM级别)完成,且无法停用。因此,如果也希望在NVM级别使用CRC,则必须通过将公共参数NvMRbNvCrcEnable设置为TRUE来全局启用NvMBlockUseCrc。只有当两个参数NvMBlockUseCrc和NvMRbNvCrcEnable都被设置为true时,CRC才会在NVM级别上用于这个块。提示:在MemStack的完整使用情况下,这不会影响任何较低层的CRC使用。提示:如果不使用完整的MemStack,则应将公共参数NvMRbNvCrcEnable设置为TRUE,以确保在NVM级别上使用CRC。

NvMBlockUsePort

定义了是否为这个块生成NvMMirror、NvMNotifyInitBlock、NvMNotifyJobFinished、NvMAdmin端口。在为这个块配置了回调函数的情况下,此配置参数还控制相应R-端口的创建。对于通过RTE端口访问的块,此参数应设置为true。

NvMBlockUseSyncMechanism

允许或禁止使用RAM镜像和回调例程的显式同步机制,这些例程用于在NvM(非易失性存储器)模块的RAM镜像之间传输数据。

这个参数的作用是控制是否激活一种机制,该机制通过RAM镜像来同步NVRAM模块中的数据。当启用时,可以使用回调函数来明确控制数据何时从主存储器复制到RAM镜像,以及何时从RAM镜像写回到NVRAM。这种机制可以用于确保数据在断电或其他系统事件之前被安全地存储到非易失性存储中。如果禁用此参数,则数据同步可能依赖于其他机制或自动同步策略。

NvMBlockWriteProt

开启或关闭非易失性(NV)存储块的初始写入保护。

这个配置参数的作用是控制NV存储块在系统启动或重置时是否处于写保护状态。启用初始写保护可以防止在系统初始化完成之前对NV块进行意外的写操作,从而保护存储的数据不被覆盖或损坏。如果禁用初始写保护,NV块将在系统启动时即可被写入,这可能会在某些特定的应用场景中提供更大的灵活性,但同时也增加了数据损坏的风险。

NvMCalcRamBlockCrc

开启或关闭对于永久RAM块或者配置为使用显式同步机制的非易失性随机存取存储器(NVRAM)块的CRC重新计算功能。

这个参数的作用是决定是否在数据写入永久RAM块或NVRAM块时重新计算CRC值。启用此功能可以确保数据的完整性和准确性,通过在写入操作前后进行CRC计算和比对来检测数据是否在传输过程中发生了变化。如果禁用此功能,系统将不会进行这种额外的CRC计算,这可能会减少处理时间,但在数据传输过程中如果出现错误,可能无法检测到。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

msvcp120.dll文件不见了要怎么处理?教你科学的方法修复msvcp120.dll

msvcp120.dll文件不见了?那么这时候你就要注意了,有可能你的某些程序已经打不开了!因为这个msvcp120.dll文件是用来支持程序运行的,下面我们一起来聊一下msvcp120.dll文件不见了要怎么修复。 一.msvcp120.dll文件讲解 msvcp120.d…

Java SE入门及基础(58) 并发 进程与线程概念

目录 并发 进程和线程 1. 进程和线程 2. 进程 3.线程 总结 并发 并发(Concurrency) Computer users take it for granted that their systems can do more than one thing at a time. They assume that they can continue to work in a word processor, while other app…

AI大模型怎么备案?

随着人工智能技术的飞速发展,生成式AI正逐渐渗透到我们的日常生活和各行各业中。从文本创作到艺术设计,从虚拟助手到智能客服,AI的身影无处不在。然而,技术的创新与应用,离不开法律的规范与引导。为进一步保障和监管AI…

《昇思25天学习打卡营第2天|快速入门》

文章目录 前言:今日所学:1. 数据集处理2. 网络的构建3. 模型训练4. 保存模型5. 加载模型 总体代码与运行结果:1. 总体代码2. 运行结果 前言: 今天是学习打卡的第2天,今天的内容是对MindSpore的一个快速入门&#xff0…

HarmonyOS ArkUi ArkWeb加载不出网页问题踩坑

使用 使用还是比较简单的,直接贴代码了 别忘了配置网络权限 Entry Component struct WebPage {State isAttachController: boolean falseState url: string State title: string Prop controller: web_webview.WebviewController new web_webview.WebviewCont…

锐捷网络闪耀CVPR 2024,外观异常检测方案斩获世界认可!

近日,锐捷网络在“视觉异常检测和创新性检测2024挑战赛”(Visual Anomaly and Novelty Detection 2024 Challenge,简称VAND)的少样本逻辑/结构异常检测赛道(VAND 2.0赛道2)中荣获第二名,并在计算机视觉顶级会议CVPR 2024上展示了这一成果&…

详细介绍LP-SCADA系统的核心数据采集单元

关键字:LP-SCADA系统, 传感器可视化, 设备可视化, 独立SPC系统, 智能仪表系统,SPC可视化,独立SPC系统 SCADA系统的数据采集功能是其核心组成部分,它允许系统从各种传感器、仪器和设备中收集实时数据。以下是SCADA系统数据采集功能的详细描述: 传感器和…

我的创作纪念日学期总结

🔥个人主页: Forcible Bug Maker 🔥专栏: 关于博主 目录 🌈前言🔥我的期末考试🔥我的学期总结🔥对未来的展望🌈结语 🌈前言 本篇博客主要内容:博…

SOLIDWORKS Electrical智能模型--实现机电一体化设计的关键

SOLIDWORKS Electrical 3D布线可以根据原理图自动生成线路,并且电气属性可以自动与导轨或机柜进行配合放置。但是这些电气模型该如何添加这些属性呢? 1.首先确保我们已经打开SOLIDWORKS Electrical 3D插件,接着打开一个模型,此处以…

【新版本来袭】ONLYOFFICE桌面编辑器8.1 —— 重塑办公效率与体验

文章目录 一、功能完善的PDF编辑器:重塑文档处理体验编辑文本插入和修改各种对象,如表格、形状、文本框、图像、艺术字、超链接、方程式等添加、旋转和删除页面添加文本注释和标注 二、幻灯片版式设计:创意展示的无限舞台三、改进从右至左显示…

使用SpringBoot整合Listener

常用的Web事件的监听接口如下: ServletContextListener:用于监听Web的启动及关闭 ServletContextAttributeListener:用于监听ServletContext范围内属性的改变 ServletRequestListener:用于监听用户请求 ServletRequestAttributeLi…

博睿数据受邀出席GOPS全球运维大会北京站,分享《一体化可观测数据模型和AIOps的融合实践》

2024年6月28日,第二十三届 GOPS 全球运维大会暨 XOps 技术创新峰会在北京顺利召开。大会为期2天,侧重 BizDevOps、XOps、DevOps、持续测试、SRE、可观测性、云原生等热门技术领域。并特别设置大模型运维、银行/证券数字化转型、平台工程、DevOps/AIOps 最…

游戏AI的创造思路-技术基础-机器学习(2)

本篇存在大量的公式,数学不好的孩子们要开始恶补数学了,尤其是统计学和回归方程类的内容。 小伙伴们量力而行~~~~~ 游戏呢,其实最早就是数学家、元祖程序员编写的数学游戏,一脉相承传承至今,囊括了更多的设计师、美术…

华为HCIP Datacom H12-821 卷18

1.问答题 (拖拽题)如图所示,请根据 DHCPv6 的四歩交互流程, 将报文按照顺序拖拽到相应的位置 参考答案: 1--solicit ,2--advertise , 3--equest, 4--reply 解析: DHCPv6的报文交互流程,类似于V4,先组播发现,服

二叉树的方法

目录 一、二叉树的定义 ​编辑 二、二叉树的创建 三、二叉树的遍历 1、前序遍历 2、中序遍历 3、后序遍历 4、层序遍历 四、二叉树遍历方法的使用 五、二叉树的操作 1、节点的个数 2、叶子节点的个数 3、第k层节点的个数 4、二叉树的高度 5、检查值为value的元素…

自动化巡检革命:旗晟双圆管轨道机器人的创新应用

在输煤皮带线和矿山带式输送机的巡检过程中,面临着高湿度、多粉尘、温湿度极端、噪音干扰;设备磨损频繁,难以及时发现问题;传统的人工巡检方式存在劳动强度大、效率低、检测质量不稳定、数据采集和分析滞后,无法实现实…

Promise 类的方法简介

文章目录 Promise.resolve() 和 Promise.reject()resolve()和reject()的参数 Promise.all()Promise.all()案例:多张图片上传Promse.allSettled()Promise.race()Promise.race()举例:图片加载超时Promise.race()举例:网络请求超时Promise.any()…

第4章 客户端-客户端管理

1. 客户端API 1.1client list client list命令能列出与Redis服务端相连的所有客户端连接信息。 127.0.0.1:6379> client list id254487 addr10.2.xx.234:60240 fd1311 name age8888581 idle8888581 flagsN db0 sub0 psub0 multi-1 qbuf0 qbuf-free0 obl0 oll0 omem0 events…

硬件实用技巧:摄像头常用的输出协议类型和输出接口类型

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140042485 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

07-border布局的另一个用处

07-border布局的另一个用处 实现如下的布局: 分析: 1.USERNAME和PASSWORD使用form 2.PASSWORD的文本框使用NewMultiLineEntry 布局1 USERNAME和PASSWORD作为一个form整体,使用border布局,form设置为top,文本框设置为center参数。 packa…