AUTOSAR NvM模块(六)

发布于:2024-07-03 ⋅ 阅读:(103) ⋅ 点赞:(0)

NvMRbRamInitCheck

允许选择NvM模块在发生复位时的行为。

NVM_RB_RAM_INIT_CHECK_NONE:在复位后,NvM_ReadAll()会读取所有适合ReadAll的块。

NVM_RB_RAM_INIT_CHECK_QUICK:在复位后,会检查保存区是否丢失。如果未丢失,则仅填充RAM状态位为INVALID的块的数据;如果发现块的RAM状态位为VALID,则NvM_ReadAll()会跳过该块。

NvMRbRandomNrLength

定义了用于用户数据加密/认证的随机数长度,单位为字节。

NvMRbRemoveNonResistantBlocks

启用或禁用增强型动态配置。

如果启用,并且配置的配置ID与存储在存储介质上的配置ID不同,以下操作将会进行:
在NvM_ReadAll完成后,直接从存储介质中移除所有未配置为对软件更改不敏感(参数 NvMResistantToChangedSw 设置为false)的NV块。

在处理任何其他NvM请求之前,立即将变更后的配置ID写入存储介质。
该功能仅在启用了动态配置(参见参数 NvMDynamicConfiguration)时才可用。

NvMRbReqMonDevId

定义请求监视的NVRAM块所在的设备。

NvMRbReqMonitor

定义NvM的请求监视功能。

NVM_RB_REQ_MON_DISABLED [默认]:禁用请求监视功能。

NVM_RB_REQ_MON_WRITE:启用写请求监视。
此时可用以下计数器:
NvM_Rb_cntrWrites_u16:自上次上电以来的写请求次数。
NvM_Rb_nrBytesWritten_u32:自上次上电以来写入的字节数。
NvM_Rb_idLastWrittenBlock_uo:最后写入块的ID。
NvM_Rb_WriteMon_st.nrBytesWrittenMax_u32:自上次上电以来的最大写入字节数。
NvM_Rb_WriteMon_st.cntrWritesAbs_u32:所有写请求的累积次数。
NvM_Rb_WriteMon_st.cntrWritesMax_u16:自上次上电以来的最大写入请求次数。

NvMRbSetWriteAllTriggerApi

启用或禁用 NvM_Rb_SetWriteAllTrigger API。

NvM_Rb_SetWriteAllTrigger API 允许独立触发 WriteAll 操作,无论RAM块的状态如何或者块当前是否忙碌。

通常情况下,WriteAll 操作需要所有相关RAM块处于适当的状态,并且没有正在进行的其他操作。

如果系统使用了Dem(Diagnostics Event Manager),则必须将 NvMRbSetWriteAllTriggerApi 设置为 TRUE。

NvMRbSwcdToEcucValuesEnable

在软件组件描述(SWCD)层级可以配置NvBlockNeeds。对于这些NvBlockNeeds,需要在EcucValues层级配置相应的NvM块。启用此开关后,SWCD中的可用信息会自动转换为EcucValues中的配置。SWCD仅支持一部分纯AUTOSAR参数,因此在EcucValues层级需要提供额外的信息。目前无法从SWCD配置中自动计算必需的参数块长度和设备ID。因此,必须在EcucValues层级额外提供参数NvMNvBlockLength和NvMNvramDeviceId。

NvMRbTimeoutCallback

系统中所有回调函数的超时时间,时间分辨率为1毫秒,而且不考虑NvM中重复执行的操作(NvMRepeatMirrorOperations)。

NvMRbTimeoutCallbackRepeat

系统中所有回调函数的超时时间,时间分辨率为1毫秒,并允许重复执行镜像操作(NvMRepeatMirrorOperations)。如果未指定具体数值,则内部确定为NvMRbTimeoutCallback加上NvMRepeatMirrorOperations乘以20。

NvMRepeatMirrorOperations

这个参数定义了在将数据从或向NvM模块的镜像复制时,允许应用程序重试的次数,然后才会推迟当前的任务。如果没有任何块配置为使用显式同步机制(NvMBlockUseSyncMechanism参数),实际上无需配置此参数。

NvMSetRamBlockStatusApi

这个参数控制是否启用NvM_SetRamBlockStatus API。启用时,NvM_WriteAll只会写入那些通过调用此API显式标记为已更改的块到内存中。禁用时,该API不可用,NvM_WriteAll将无论块是否已更改都写入内存中。当前版本的NvM不支持禁用NvM_SetRamBlockStatus API,因此此参数必须始终设置为true。

NvMSizeImmediateJobQueue

这个参数定义了即时优先级作业队列的队列条目数量。该参数仅在NvMJobPrioritization参数设置为true时适用。

NvMSizeStandardJobQueue

这个参数定义了标准作业队列的队列条目数量。

NvMVersionInfoApi

这个参数控制是否启用NvM_GetVersionInfo API。

NvMMasterEcucPartitionRef

这个参数将NvM主功能映射到零个或一个ECUC分区,以便将主功能分配给特定的核心。所引用的ECUC分区是NvM映射到的ECUC分区的子集。

NvMRbCsmJobRandomNrRef

这个参数是关于引用Csm作业来获取用于加密服务的随机数的引用。

NvMEcucPartitionRef

这个参数是关于将NvM映射到一个或多个ECUC分区,以便在相应的分区中使其C-APIs可用的说明。