AUTOSAR NvM模块(一)

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计算,这可能会减少处理时间,但在数据传输过程中如果出现错误,可能无法检测到。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

KVB外汇:澳元/美元、澳元/纽元、英镑/澳元的走势如何?

摘要 本文对近期澳元/美元、澳元/纽元、英镑/澳元的技术走势进行了详细分析。通过对关键支撑位和阻力位的分析,我们可以更好地理解澳元在不同货币对中的表现。随着全球经济形势的变化,各国央行的货币政策对外汇市场的影响也愈发明显。本文旨在帮助投资者…

观成科技:证券行业加密业务安全风险监测与防御技术研究

摘要:解决证券⾏业加密流量威胁问题、加密流量中的应⽤⻛险问题,对若⼲证券⾏业的实际流量内容进⾏调研分析, 分析了证券⾏业加密流量⾯临的合规性⻛险和加密协议及证书本⾝存在的⻛险、以及可能存在的外部加密流量威 胁,并提出防…

用GAN生成奖杯

数据集链接:https://pan.baidu.com/s/19Uxc2ELiMG3acUtLeSTDTA?pwdwsyw 提取码:wsyw 我设置的图片大小为128*128,如果内存爆炸可以将batch_size调小,epoch我设置的2000,我感觉其实1000也够了。代码如下: …

信创认证 | Smartbi Insight V11成功适配申威3231处理器

在信息技术飞速发展的浪潮中,软硬件的深度融合与协同发展已成为推动行业创新的关键因素。 近日,思迈特商业智能与数据分析软件[简称:Smartbi Insight]V11在统信服务器操作系统V20和中电科申泰信息科技有限公司产品申威3231处理器环境下完成适…

CAN和CANFD数据写入.asc文件的dll

因为工作需要,需要做一些硬件不是CANoe的上位机(比如说周立功CAN,NI-CAN),上位机需要有记录数据的功能,所以用Qt制作了一个记录数据的dll,方便重复使用(因为有的客户指定了编程软件,…

51循迹小车(蓝牙+循迹+超声波+舵机+避障L298N)

基本驱动 L298N电机驱动模块负责供电和控制电机驱动 将电池12V供电接到12V供电上,作为输入。单片机及其他器件供电可以使用5V供电,这里的GND都接到一起。 输出A和输出B接到电机上,负责给电机供电和控制电机。 通道A使能和通道B使能以及逻…

【Windows下使用vckpg下载protoc之后环境变量问题】

使用vcpkg进行下载的protoc: vcpkg install protobuf protobuf:x64-windows 检查protoc版本时出现问题: “protoc”不是内部或外部命令,也不是可运行程序或批处理文件 尝试添加系统环境变量后没有反应。 这个时候找到vckpg下的packages目录…

如何利用ChatGPT寻找科研创新点?分享5个有效实践技巧

欢迎关注:智写AI,为大家带来最酷最有效的智能AI学术科研写作攻略。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥交流:yida985 地表功能最强大的高级学术专业版已经开放,拥有全球领先的GPT学术科研应用,有兴趣…

鸿蒙开发设备管理:【@ohos.brightness (屏幕亮度)】

屏幕亮度 该模块提供屏幕亮度的设置接口。 说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import brightness from ohos.brightness;brightness.setValue setValue(value: number):…

【Linux】网络编程套接字

一、预备知识 1.1 理解源IP地址和目的IP地址 在IP数据报的头部中,有两个IP地址,分别叫做源IP地址和目的IP地址。 源IP地址和目的IP地址是网络通信中常用的两个概念,他们代表了通信中的两个节点。 源IP地址是指发起通信的节点的IP地址&#…

在WSL Ubuntu中启用root用户的SSH服务

在 Ubuntu 中,默认情况下 root 用户是禁用 SSH 登录的,这是为了增加系统安全性。 一、修改配置 找到 PermitRootLogin 行:在文件中找到 PermitRootLogin 配置项。默认情况下,它通常被设置为 PermitRootLogin prohibit-password 或…

老生常谈问题之什么是缓存穿透、缓存击穿、缓存雪崩?举个例子你就彻底懂了!!

老生常谈问题之什么是缓存穿透、缓存击穿、缓存雪崩?举个例子你就彻底懂了!! 缓存穿透发生场景解决方案 缓存击穿解决方案 缓存雪崩发生场景解决方案 总结三者区分三者原因三者解决方案 想象一下,你开了一家便利店,店里…

FastAPI教程I

本文参考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 第一步 import uvicorn from fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message": "Hello World"}if __name__ __main__:uvicorn.run(&quo…

从我邮毕业啦!!!

引言 时间过的好快,转眼间就要从北邮毕业了,距离上一次月度总结又过去了两个月,故作本次总结。 PS: https://github.com/WeiXiao-Hyy/blog整理了后端开发的知识网络,欢迎Star! 毕业🎓 6月1号完成了自己的…

Windows server 2016.2019 .NET Framework 3.5安装包、安装步骤

windows server2019 操作系统 安装 sqlserver2008时提示缺少 .NET Frameword 3.5, 在功能里选择 .NET Frameword 3.5安装报错, 下载安装包,下载地址 https://download.csdn.net/download/qq445829096/89450429这里指定备份源路径 安装包解…

多供应商食品零售商城系统的会员营销设计和实现

在多供应商食品零售商城系统中,会员营销是提升用户粘性和增加销售的重要手段。一个有效的会员营销系统能够帮助平台更好地了解用户需求,提供个性化服务,进而提高用户满意度和忠诚度。本文将详细探讨多供应商食品零售商城系统的会员营销设计与…

2毛钱不到的2A同步降压DCDC电压6V频率1.5MHz电感2.2uH封装SOT23-5芯片MT3520B

前言 2A,2.3V-6V输入,1.5MHz 同步降压转换器,批量价格约0.18元 MT3520B 封装SOT23-5 丝印AS20B5 特征 高效率:高达 96% 1.5MHz恒定频率操作 2A 输出电流 无需肖特基二极管 2.3V至6V输入电压范围 输出电压低至 0.6V PFM 模式可在…

MySQL进阶-索引-使用规则-索引失效情况一(索引列运算,字符串不加引号,头部模糊匹配)

文章目录 1、索引列运算1.1、查询表tb_user1.2、查看tb_user的索引1.3、查询 phone177999900151.4、执行计划 phone177999900151.5、查询 substring(phone,10,2) 151.6、执行计划 substring(phone,10,2) 15 2、字符串不加引号2.1、查询 phone177999900152.2、执行计划 phone177…

JAVA-矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 思路: 找到0的位置,把0出现的数组的其他值夜置为0 需要额外空间方法: 1、定义两个布尔数组标记二维数组中行和列…

axios之CancelToken取消请求

从 v0.22.0 开始,Axios 支持以 fetch API 方式—— AbortController 取消请求 此 API 从 v0.22.0 开始已被弃用,不应在新项目中使用 官网链接 1. 背景 最近项目中遇到一个场景,当连续触发一个请求时,如果是同一个接口&#xf…