NvM产品参考手册

缩写词注解

缩 写词

英文全名

解释/描述

DET

Development Error Tracer – module to which development errors are reported.

开发错误跟踪 器-报告开发错误的模块。

DEM

Diagnostic Event Manager – module to which production relevant errors are reported

诊断事件管理器 -报告生产相关错误的模块

NV

Non volatile

非易失

FEE

Flash EEPROM Emulation

Flash EEPROM仿真

EA

EEPROM Abstraction

EEPROM抽象

FCFS

First come first served

先到先得

EEPROM

Electrically Erasable and Programmable ROM (Read Only Memory)

电可擦可编程只读存储器

(只读型存储器)

MemIf

Memory Abstraction Interface

内存抽象接口

NvM

NVRAM Manager

非易失RAM管理

简介

image1

图1-1 NvM模块层次图

NvM模块应根据汽车环境中NV(非易失性)数据的不同需求提供服务,以确保数据的存储和维护。NvM模块必须能够管理EEPROM和/或FLASH EEPROM仿真设备的NV数据。NvM模块为NV数据的管理和维护提供所需的同步/异步服务(init/read/write/control)。

实现对非易失性数据的管理和维护,即NvM模块应该提供服务,以确保在汽车环境中根据非易失性数据的个人需求进行数据存储和维护;以及能够管理EEPROM或FLASH EEPROM仿真设备的非易失数据。

NvM模块应该可以根据客户对数据的不同需求,提供对NV(非易失性)数据的管理,包括存储、维护、读取、写入等功能。NvM模块可以管理EEPROM和FLASH EEPROM仿真设备的NV数据。针对NV数据的存储、维护、读取、写入等功能,NvM模块需要提供所需的同步/异步服务。

NVM提供的功能包括以下几点:

  • NvM模块应该使用队列机制来缓存外部的请求,并通过异步的形式来完成队列中的请求。NvM模块应该根据请求的优先级顺序来从队列里面获取需要处理的请求,并处理相应的请求。

  • NvM模块应该提供隐式技术来检查NVRAM块的数据一致性,NVRAM块的数据一致性检查应通过相应NV块的CRC重新计算来完成。

  • NvM模块应该提供错误恢复技术。错误恢复取决于NVRAM块管理类型,NvM模块应该通过加载默认值,为每种NVRAM块管理类型提供读时的错误恢复。

  • NvM模块应该提供隐式和显式的恢复技术,以便在NV块的不可恢复的数据不一致的情况下,将ROM数据恢复到相应的RAM块中。在隐式恢复期间,相应NV块的数据内容保持不变。

  • NvM模块应该提供单块/多块请求的中止功能,该功能能通过配置项来决定是否使能,即是否配置相应的cancel函数。

  • NvM模块应该提供不同种类的可配置的写保护。每一种写保护都只与NVRAM块的NV部分相关,即RAM块数据可以修改,但不能写入NV内存。

参考资料

[1] AUTOSAR_SWS_FunctionInhibitionManager.PDF,4.2.2

[2] AUTOSAR_SWS_FunctionInhibitionManager.PDF,R19-11

功能描述

写数据功能

写数据功能介绍

当接收到一个外部写数据调用后,NvM模块会根据请求的对应块的状态信息和当前队列信息进行入队列操作,然后NvM模块会在后台对队列进行进一步的处理,调用相应的下层接口,执行相应的判断等。

写数据功能实现

当NvM模块的NvM_WriteBlock、NvM_WritePRAMBlock、NvM_WriteAll接口被调用的时候,NvM模块会在调用接口里面写进行一些入队列之前的判断,条件符合则将请求放入队列中,然后在NvM_MainFunction函数中进行出队列,并执行相应的请求的操作,符合条件之后会调用MemIf_Write接口进行后续的写操作。如果是轮询模式,则需要调用NvM模块的NvM_GetErrorStatus接口进行任务查询,然后下层执行完成则会返回NVM_REQ_OK,否则会一直返回NVM_REQ_PENDING。如果是回调模式,则NvM模块会在下层执行完成之后,在NvM_MainFunction函数中调用对应块的配置接口NvM_SingleBlockCallbackFunction通知用户执行完成。

读取数据功能

读取数据功能介绍

当接收到一个外部读取数据调用后,NvM模块会根据请求的对应块的状态信息和当前队列信息进行入队列操作,然后NvM模块会在后台对队列进行进一步的处理,调用相应的下层接口,执行相应的判断等。

读取数据功能实现

当NvM模块的NvM_ReadBlock、NvM_ReadPRAMBlock、NvM_ReadAll接口被调用的时候,NvM模块会在调用接口里面写进行一些入队列之前的判断,条件符合则将请求放入队列中,然后在NvM_MainFunction函数中进行出队列,并执行相应的请求的操作,符合条件之后会调用MemIf_Read接口进行后续的写操作。如果是轮询模式,则需要调用NvM模块的NvM_GetErrorStatus接口进行任务查询,然后下层执行完成则会返回NVM_REQ_OK,否则会一直返回NVM_REQ_PENDING。如果是回调模式,则NvM模块会在下层执行完成之后,在NvM_MainFunction函数中调用对应块的配置接口NvM_SingleBlockCallbackFunction通知用户执行完成。

擦除数据功能

擦除数据功能介绍

当接收到一个外部擦除数据调用后,NvM模块会根据请求的对应块的状态信息和当前队列信息进行入队列操作,然后NvM模块会在后台对队列进行进一步的处理,调用相应的下层接口,执行相应的判断等。

擦除数据功能实现

当NvM模块的NvM_EraseNvBlock接口被调用的时候,NvM模块会在调用接口里面写进行一些入队列之前的判断,条件符合则将请求放入队列中,然后在NvM_MainFunction函数中进行出队列,并执行相应的请求的操作,符合条件之后会调用MemIf_EraseImmediateBlock接口进行后续的写操作。如果是轮询模式,则需要调用NvM模块的NvM_GetErrorStatus接口进行任务查询,然后下层执行完成则会返回NVM_REQ_OK,否则会一直返回NVM_REQ_PENDING。如果是回调模式,则NvM模块会在下层执行完成之后,在NvM_MainFunction函数中调用对应块的配置接口NvM_SingleBlockCallbackFunction通知用户执行完成。

数据无效/有效功能

数据无效/有效功能介绍

当接收到一个外部数据无效/有效调用后,NvM模块会根据请求的对应块的状态信息和当前队列信息进行入队列操作,然后NvM模块会在后台对队列进行进一步的处理,调用相应的下层接口,执行相应的判断等。

数据无效功能实现

当NvM模块的NvM_InvalidateNvBlock/ NvM_ValidateAll接口被调用的时候,NvM模块会在调用接口里面写进行一些入队列之前的判断,条件符合则将请求放入队列中,然后在NvM_MainFunction函数中进行出队列,并执行相应的请求的操作,符合条件之后会调用MemIf_InvalidateBlock接口进行后续的写操作。如果是轮询模式,则需要调用NvM模块的NvM_GetErrorStatus接口进行任务查询,然后下层执行完成则会返回NVM_REQ_OK,否则会一直返回NVM_REQ_PENDING。如果是回调模式,则NvM模块会在下层执行完成之后,在NvM_MainFunction函数中调用对应块的配置接口NvM_SingleBlockCallbackFunction通知用户执行完成。

数据恢复功能

数据恢复功能介绍

当接收到一个外部数据恢复调用后,NvM模块会根据请求的对应块的状态信息和当前队列信息进行入队列操作,然后NvM模块会在后台对队列进行进一步的处理,调用相应的下层接口,执行相应的判断等。

数据恢复功能实现

当NvM模块的NvM_RestoreBlockDefaults、NvM_RestorePRAMBlockDefaults接口被调用的时候,NvM模块会在调用接口里面写进行一些入队列之前的判断,条件符合则将请求放入队列中,然后在NvM_MainFunction函数中进行出队列,并执行相应的请求的操作。如果是轮询模式,则需要调用NvM模块的NvM_GetErrorStatus接口进行任务查询,然后执行完成则会返回NVM_REQ_OK,否则会一直返回NVM_REQ_PENDING。如果是回调模式,则NvM模块会在执行完成之后,在NvM_MainFunction函数中调用对应块的配置接口NvM_SingleBlockCallbackFunction通知用户执行完成。

多块写取消功能

多块写取消功能介绍

当接收到一个外部数据多块写调用后,NvM模块会根据请求的对应块的状态信息和当前队列信息进行入队列操作,然后NvM模块会在后台对队列进行进一步的处理,调用相应的下层接口,执行相应的判断等。然后在执行过程中NvM模块接收到NvM_CancelWriteAll接口调用,则会取消正在进行的多块写操作。

多块写取消功能实现

当NvM模块的NvM_WriteAll接口被调用的时候,NvM模块会在调用接口里面写进行一些入队列之前的判断,条件符合则将请求放入队列中,然后在NvM_MainFunction函数中进行出队列,并执行相应的请求的操作。如果在执行过程中NvM模块接收到NvM_CancelWriteAll接口调用,则会取消正在进行的多块写操作。如果是轮询模式,则需要调用NvM模块的NvM_GetErrorStatus接口进行任务查询,会返回NVM_REQ_CANCELED。如果是回调模式,在NvM_MainFunction函数中调用对应块的配置接口NvM_SingleBlockCallbackFunction通知用户NVM_REQ_CANCELED。

支持Dem同步功能

当Dem有存储需要的时候,Dem模块会执行同步功能,使NvM会自动创建对应长度与个数的NvMBlock,实现快速同步Dem信息的作用。

源文件描述

表3-1 NvM组件文件描述

文件

说明

NvM_Cfg.h

定义NvM模块预编译时用到的配置参数。

NvM_Cfg.c

定义NvM模块配置相关的配置参数。

NvM.h

NvM模块头文件,包 含了API函数的扩展声明并定义了端口的数据结构。

NvM .c

NvM模块源文件,包含了API函数的实现。

NvM_MemMap.h

包含NvM模块的内存抽象。

NvM_Types.h

包含NvM模块需要使用的类型定义。

NvM_Inter.c

NvM模块内部处理调用的相关API函数实现。

NvM_Inter.h

NvM模块内部处理调用的相关API函数声明。

NvM_Cbk.h

NvM模块回调接口相关头文件,包含了回调接口 相关API函数的扩展声明并定义了端口的数据结构。

image2

图3-1 NvM组件文件交互关系图

API接口

类型定义

NvM_RequestResultType类型定义

名称

CanTp_ConfigType

类型

uint8

范围

NVM_REQ_OK/N VM_REQ_NOT_OK/NVM_REQ_PENDING/NVM_REQ_INTEGRITY_FAILED/N VM_REQ_BLOCK_SKIPPED/NVM_REQ_NV_INVALIDATED/NVM_REQ_CANC ELED/NVM_REQ_REDUNDANCY_FAILED/NVM_REQ_RESTORED_FROM_ROM

描述

这是NvM_GetErrorStatus接口返回的异 步请求结果。异步请求结果的可用性还可以通过回调函数通知。

NvM_BlockIdType类型定义

名称

NvM_BlockIdType

类型

uint16

范围

0..2^(16-NvMDatasetSelectionBits)-1

描述

通过一个唯一的块标识符来标识一个NVRAM块。

保留NVRAM块id:

0:通过NvM_GetErrorStatus派生多个块请求结果

1:冗余NVRAM块,它保存配置ID

NvM_ConfigType类型定义

名称

NvM_ConfigType

类型

Structure

范围

描述

配置参数结构体类型定义

输入函数描述

输入模块

API

DET

Det_ReportError

Det_ReportRuntimeError

MemIf

MemIf_Cancel

MemIf_EraseImmediateBlock

MemIf_GetJobResult

MemIf_GetStatus

MemIf_InvalidateBlock

MemIf_Read

MemIf_Write

MemIf_SetMode

CRC

Crc_CalculateCRC16

Crc_CalculateCRC32

Crc_CalculateCRC8

ECUM

EcuM_CB_NfyNvMJobEnd

静态接口函数定义

NvM_Init函数定义

函数名称:

NvM_Init

函数原型:

void NvM_Init(const NvM_ConfigType* ConfigPtr)

服务编号:

0x00

同步/异步:

同步

是 否可重入:

输入参数:

ConfigPtr:配置数据结构体

值 域:

输入 输出参数:

输出参数:

返回值:

功能概述:

初始化NVM模块变量

NvM_SetDataIndex函数定义

函数名称:

NvM_SetDataIndex

函数原型:

Std_ReturnType NvM_SetDataIndex(NvM_BlockIdType BlockId,uint8 DataIndex)

服务编号:

0x01

同步/异步:

同步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值域:

0 ..65535

DataIndex:NV/ROM块的索引位置

值域:

0..255

输入 输出参数:

输出参数:

返回值:

Std_ReturnType

功能概述:

设置指定块的索引值

NvM_GetDataIndex函数定义

函数名称:

NvM_GetDataIndex

函数原型:

Std_ReturnType Nv M_GetDataIndex(NvM_BlockIdType BlockId,uint8* DataIndexPtr)

服务编号:

0x02

同步/异步:

同步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值域:

0. .65535

输入 输出参数:

输出参数:

Da taIndexPtr:NV/ROM块的索引位置

返回值:

Std_ReturnType:

E_OK:成功

E_NOT_OK:失败

功能概述:

获取指定块的索引值

NvM_SetBlockProtection函数定义

函数名称:

NvM_SetBlockProtection

函数原型:

Std_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId,boolean ProtectionEnabled)

服务编号:

0x03

同步/异步:

同步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值 域:

0..65535

ProtectionEnabled: 写保护标志

值 域:

TRUE/FALSE:

输入 输出参数:

输出参数:

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

设置块保护

NvM_GetErrorStatus函数定义

函数名称:

NvM_GetErrorStatus

函数原型:

Std_ReturnType NvM_Get ErrorStatus(NvM_BlockIdType Bloc kId,NvM_RequestResultType* RequestResultPtr)

服务编号:

0x04

同步/异步:

同步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值 域:

0..65535

输入 输出参数:

输出参数:

RequestResultPtr:请求结果

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

获取指定块的处理结果

NvM_GetVersionInfo函数定义

函数名称:

N vM_GetVersionInfo

函数原型:

void NvM_Ge tVersionInfo(Std_ VersionInfoType* versioninfo)

服务编号:

0x0f

同步/异步:

同步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

vers ioninfo:版本信息

返回值:

功能概述:

获 取NvM模块版本信息

NvM_SetRamBlockStatus函数定义

函数名称:

NvM_SetRamBlockStatus

函数原型:

Std_ReturnType NvM_SetRamBlockStatus (NvM_BlockIdType BlockId,boolean BlockChanged)

服务编号:

0x05

同步/异步:

同步

是 否可重入:

输入参数:

BlockChanged: 有效改变标志

值域:

T RUE/FALSE

BlockId:NVRAM块唯一描述符

值域:

0..65535

输入 输出参数:

输出参数:

返回值:

Std_ReturnType

功能概述:

设置NVRAM块的RAM block 状态

NvM_SetBlockLockStatus函数定义

函数名称:

NvM_SetBlockLockStatus

函数原型:

void NvM_SetBloc kLockStatus(NvM_BlockIdType BlockId,

boolean BlockLocked)

服务编号:

0x13

同步/异步:

同步

是 否可重入:

输入参数:

BlockLocked:上锁标志

值域:

TRUE/FALSE

BlockId:NVRAM块唯一描述符

值域:

0..65535

输入 输出参数:

输出参数:

返回值:

功能概述:

设置永久RAM 块或NVRAM块显式同步的锁状态

NvM_CancelJobs函数定义

函数名称:

NvM_CancelJobs

函数原型:

Std_ReturnType NvM _CancelJobs(NvM_BlockIdType BlockId)

服务编号:

0x10

同步/异步:

同步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值 域:

0..65535

输入 输出参数:

输出参数:

返回值:

Std_ReturnType:

E_OK:取消请求成功

E_NOT_OK:取消请求失败

功能概述:

取消指定块之前的请求

NvM_ReadBlock函数定义

函数名称:

NvM_ReadBlock

函数原型:

Std_ReturnType NvM_ReadBlock(NvM_BlockIdType BlockId,void* NvM_DstPtr)

服务编号:

0x06

同步/异步:

异步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值域:

0. .65535

输入 输出参数:

输出参数:

NvM_DstPtr:RAM数据块地址

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

读取块数据

NvM_WriteBlock函数定义

函数名称:

NvM_WriteBlock

函数原型:

Std_ReturnType NvM_WriteBloc k(NvM_BlockIdType BlockId,const void* NvM_SrcPtr)

服务编号:

0x07

同步/异步:

异步

是 否可重入:

输入参数:

NvM_SrcPtr

值域:

BlockId

值域:

0..65535

输入 输出参数:

输出参数:

返回值:

Bool ean:功能是否抑制

功能概述:

将RAM块的数据复制 到其相应的NV块。

NvM_RestoreBlockDefaults函数定义

函数名称:

NvM_RestoreBlockDefaults

函数原型:

Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId,void* NvM_DestPtr)

服务编号:

0x08

同步/异步:

异步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值域:

0 ..65535

输入 输出参数:

输出参数:

NvM_DestPtr:RAM数据块地址

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

请求将指定块恢复为默认数据

NvM_EraseNvBlock函数定义

函数名称:

NvM_EraseNvBlock

函数原型:

Std_ReturnType N vM_EraseNvBlock(NvM_BlockIdType BlockId)

服务编号:

0x09

同步/异步:

异步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值 域:

0..65535

输入 输出参数:

输出参数:

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

请求擦除指定块

NvM_CancelWriteAll函数定义

函数名称:

N vM_CancelWriteAll

函数原型:

void NvM_Can celWriteAll(void)

服务编号:

0x0a

同步/异步:

异步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

请求取消全写任务

NvM_InvalidateNvBlock函数定义

函数名称:

NvM_InvalidateNvBlock

函数原型:

Std_ReturnType NvM_Inv alidateNvBlock(NvM_BlockIdType BlockId)

服务编号:

0x0b

同步/异步:

异步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值域:

0. .65535

输入 输出参数:

输出参数:

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

无效化指定块

NvM_ReadPRAMBlock函数定义

函数名称:

NvM_ReadPRAMBlock

函数原型:

Std_ReturnType NvM_ ReadPRAMBlock(NvM_BlockIdType BlockId)

服务编号:

0x16

同步/异步:

异步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值域:

0..65535

输入 输出参数:

输出参数:

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

请求拷贝指定块数据到配置的RAM

NvM_WritePRAMBlock函数定义

函数名称:

NvM_WritePRAMBlock

函数原型:

Std_ReturnType Nv M_WritePRAMBlock(NvM_BlockIdType BlockId)

服务编号:

0x17

同步/异步:

异步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值域:

0 ..65535

输入 输出参数:

输出参数:

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

请 求将RAM数据放入指定块配置的ram区

NvM_RestorePRAMBlockDefaults函数定义

函数名称:

NvM_RestorePRAMBlockDefaults

函数原型:

Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId)

服务编号:

0x18

同步/异步:

异步

是 否可重入:

输入参数:

BlockId:NVRAM块唯一描述符

值域:

0..65535

输入 输出参数:

输出参数:

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

请求 将RAM数据恢复到配置的RAM数据

NvM_ReadAll函数定义

函数名称:

NvM_ReadAll

函数原型:

void NvM_ReadAll(void)

服务编号:

0x0c

同步/异步:

异步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

请求读取所有块

NvM_WriteAll函数定义

函数名称:

NvM_WriteAll

函数原型:

void N vM_WriteAll(void)

服务编号:

0x0d

同步/异步:

同步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

请 求对所有块进行写

NvM_ValidateAll函数定义

函数名称:

NvM_ValidateAll

函数原型:

void NvM_ ValidateAll(void)

服务编号:

0x19

同步/异步:

异步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

请 求将索引块无效化

NvM_JobEndNotification函数定义

函数名称:

NvM_J obEndNotification

函数原型:

void NvM_JobEndN otification(void)

服务编号:

0x11

同步/异步:

同步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

任务完成回调

NvM_JobErrorNotification函数定义

函数名称:

NvM_Job ErrorNotification

函数原型:

void NvM_JobErrorN otification(void)

服务编号:

0x12

同步/异步:

同步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

任务错误回调

NvM_MainFunction函数定义

函数名称:

NvM_MainFunction

函数原型:

void NvM_M ainFunction(void)

服务编号:

0x0e

同步/异步:

同步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

主函数处理任务

可配置函数定义

NvM_SingleBlockCallbackFunction函数定义

函数名称:

NvM_SingleBlockCallbackFunction

函数原型:

Std_ReturnType NvM_SingleBlockCallbackFunction(uint8 ServiceId,NvM_RequestResultType JobResult)

服务编号:

同步/异步:

同步

是 否可重入:

输入参数:

ServiceId:NVM模块的唯一服务ID

值 域:

JobResu lt:覆盖以前处理的单个块请求的任务结果

值 域:

输入 输出参数:

输出参数:

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

块回 调通知上层一个异步单个块请求已经完成。

NvM_MultiBlockCallbackFunction函数定义

函数名称:

NvM_MultiBlockCallbackFunction

函数原型:

void NvM_MultiBlockCallbackFunction(uint8 ServiceId,

NvM_RequestResultType JobResult)

服务编号:

同步/异步:

同步

是 否可重入:

输入参数:

ServiceId:NVM模块的唯一服务ID

值 域:

JobResu lt:覆盖以前处理的单个块请求的任务结果

值 域:

输入 输出参数:

输出参数:

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

通知上层异步多块请求已经完成的回调。

InitBlockCallbackFunction函数定义

函 数名称:

InitBlockCa llbackFunction

函 数原型:

Std_ReturnType InitBloc kCallbackFunct ion(NvM_InitBl ockRequestType Ini tBlockRequest)

服 务编号:

同 步/异步:

同步

是否 可重入:

输 入参数:

In itBlockRequest

值 域 :

NVM_INIT_READ_BLOCK,

NVM_INIT_RESTORE_BLOCK_DEFAULTS,

NVM_INIT_READ_ALL_BLOCK, NVM_INIT_FIRST_INIT_ALL

输入输 出参数:

输 出参数:

返回值:

St d_ReturnType:

E_OK:请求成功

E_NO T_OK:请求失败

功 能概述:

当默认数据 需要在RAM中恢 复时,由NvM模 块调用的回调通 知函数,即使配 置了一个ROM块

NvM_WriteRamBlockToNvm函数定义

函数名称:

NvM_WriteRamBlockToNvm

函数原型:

Std_ReturnType NvM_WriteRamBlockToNvm(void* NvMBuffer)

服务编号:

同步/异步:

同步

是 否可重入:

输入参数:

值 域:

输入 输出参数:

输出参数:

NvMBuffer:数据要写入的缓冲区的地址

返回值:

Std_ReturnType:

E_OK:请求成功

E_NOT_OK:请求失败

功能概述:

为了将数据从RAM块复制到NvM 模块的镜像,需要调用特定块的回调例程。

NvM_ReadRamBlockFromNvm函数定义

SWC服务组件封装

以下类型和接口可以封装至SWC生成完整的服务组件,可以与应用通过端口连接,没有列出的部分NvM底层暂时不支持。

  1. 实现数据类型封装

类型名及定义引用

生成条件

NvM_RequestResultType

NvM_BlockIdType

NvM_InitBlockRequestType

NvM_BlockRequestType

  1. CS接口封装

    1. Rte_Call_NvM_PAdmin_{Block}_SetBlockProtection

函数名称:

Rte_Call_NvM_PAdmin_{Block}_SetBlockProtection

引用 函数定义:

详见4.3.4

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PAdmin_{Block}

  1. Rte_Call_NvM_PM_{Block}_ReadRamBlockFromNvM

函数名称:

Rte_Call_NvM_PM_{Block}_ReadRamBlockFromNvM

引用 函数定义:

详见4.4.5

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

  1. UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

  2. UsePortSyncMech = nvBloc

kDescriptor.subElt(“NvMBlockUseSyncMechanism”).value()

== true;

端口类型:

Required Port

从属端口:

PM_{Block}

  1. Rte_Call_NvM_PM_{Block}_WriteRamBlockToNvM

函数名称:

Rte_Call_NvM_PM_{Block}_WriteRamBlockToNvM

引用 函数定义:

详见4.4.4

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

  1. UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

  2. UsePortSyncMech = nvBloc

kDescriptor.subElt(“NvMBlockUseSyncMechanism”).value()

== true;

端口类型:

Required Port

从属端口:

PM_{Block}

  1. Rte_Call_NvM_PNIB_{Block}_InitBlock

函数名称:

Rte_Call_NvM_PNIB_{Block}_InitBlock

引用 函数定义:

详见4.4.3

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

  1. UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

  2. InitBlockCallbackDef = nvBlock

Descriptor.subElt(“NvMInitBlockCallback”).isDefined();

  1. InitBlockCallbackFncDef = nvBlockDescriptor.subElt(“NvMIn

itBlockCallback/NvMInitBlockCallbackFnc”).isDefined();

端口类型:

Required Port

从属端口:

PNIB_{Block}

  1. Rte_Call_NvM_PNJF_{Block}_JobFinished

函数名称:

Rte_Call_NvM_PNJF_{Block}_JobFinished

引用 函数定义:

详见4.4.1

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

  1. UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

  2. SingleBlockCallbackDef = nvBlockDe

scriptor.subElt(“NvMSingleBlockCallback”).isDefined();

  1. SingleBlockCallbackFncDef = nvBlockDescriptor.subElt(“NvMSingle

BlockCallback/NvMSingleBlockCallbackFnc”).isDefined();

端口类型:

Required Port

从属端口:

PNJF_{Block}

  1. Rte_Call_NvM_PS_{Block}_EraseBlock

函数名称:

Rte_Call_NvM_PS_{Block}_EraseBlock

引用 函数定义:

详见4.3.13

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_GetDataIndex

函数名称:

Rte_Call_NvM_PS_{Block}_GetDataIndex

引用 函数定义:

详见4.3.3

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_GetErrorStatus

函数名称:

Rte_Call_NvM_PS_{Block}_GetErrorStatus

引用 函数定义:

详见4.3.5

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_InvalidateNvBlock

函数名称:

Rte_Call_NvM_PS_{Block}_InvalidateNvBlock

引用 函数定义:

详见4.3.15

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_ReadBlock

函数名称:

Rte_Call_NvM_PS_{Block}_ReadBlock

引用 函数定义:

详见4.3.10

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_ReadPRAMBlock

函数名称:

Rte_Call_NvM_PS_{Block}_ReadPRAMBlock

引用 函数定义:

详见4.3.16

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_RestoreBlockDefaults

函数名称:

Rte_Call_NvM_PS_{Block}_RestoreBlockDefaults

引用 函数定义:

详见4.3.12

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_RestorePRAMBlockDefaults

函数名称:

Rte_Call_NvM_PS_{Block}_RestorePRAMBlockDefaults

引用 函数定义:

详见4.3.18

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_SetDataIndex

函数名称:

Rte_Call_NvM_PS_{Block}_SetDataIndex

引用 函数定义:

详见4.3.2

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_SetRamBlockStatus

函数名称:

Rte_Call_NvM_PS_{Block}_SetRamBlockStatus

引用 函数定义:

详见4.3.7

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_WriteBlock

函数名称:

Rte_Call_NvM_PS_{Block}_WriteBlock

引用 函数定义:

详见4.3.11

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

  1. Rte_Call_NvM_PS_{Block}_WritePRAMBlock

函数名称:

Rte_Call_NvM_PS_{Block}_WritePRAMBlock

引用 函数定义:

详见4.3.17

变体:

Block = nvBlockDescriptor.shortname();

生成条件:

UsePort = nvBlockDescriptor.subElt(“NvMBlockUsePort”).value() == true;

端口类型:

Provided Port

从属端口:

PS_{Block}

配置

NvMCommon

image3

图5-1 NvMCommon容器配置图

表5-1 NvMCommon属性描述

UI名称

描述

NvMAp iConfigClass

取值范围

NVM_ API_CONFIG_CLASS _1/NVM_API_CONFI G_CLASS_2/NVM_AP I_CONFIG_CLASS_3

默认取值

False

参数描述

预处理器开关,使 能一些API的调用

依赖关系

N vMBswMMultiB lockJobStatu sInformation

取值范围

true/false

默认取值

True

参数描述

是否通知BswM多 块作业的当前状态

依赖关系

NvMComp iledConfigId

取值范围

0 .. 65535

默认取值

0

参数描述

关于NV内 存布局的配置ID。

依赖关系

NvMC rcNumOfBytes

取值范围

1 .. 65535

默认取值

65535

参数描述

如果为 至少一个NVRAM块 配置CRC,则此参 数定义在请求处理 的一个周期内应处 理的最大字节数, CRC计算的长度。

依赖关系

NvMDatasetS electionBits

取值范围

0 .. 8

默认取值

0

参数描述

在内存硬件 抽象接口中定义最 低有效位的数目, 用于寻址dataset 类型的NVRAM块。

0 . .8: 用于数据集或冗余 块寻址的bit位。

0:根本没有data set或冗余NVRAM块 ,不需要选择位。

1:配 置了冗余NVRAM块 ,但没有dataset 的NVRAM块。

依赖关系

依 赖于底层硬件要求

NvMDe vErrorDetect

取值范围

true/false

默认取值

False

参数描述

DET检查使能开关

依赖关系

NvMD rvModeSwitch

取值范围

true/false

默认取值

False

参数描述

预处 理器开关,使驱动 在执行NvM_ReadA ll和NvM_WriteAll 时切换到快速模式

true :启用快速模式。

false :禁用快速模式。

依赖关系

NvMDynamicC onfiguration

取值范围

true/false

默认取值

False

参数描述

动 态配置管理处理N vM_ReadAll请求。

true:启用动 态配置管理处理。

false:禁用动 态配置管理处理。

依赖关系

NvMJobPr ioritization

取值范围

true/false

默认取值

False

参数描述

优先级处理开关

true: 启用优先级处理。

false: 禁用优先级处理。

依赖关系

NvMMainFu nctionPeriod

取值范围

1E-7 .. INF

默认取值

0

参数描述

主函数周期

依赖关系

未使 用,可以不用关心

NvMMultiB lockCallback

取值范围

默认取值

参数描述

每个异步 多块请求终止时调 用的公共回调函数

依赖关系

NvMBs wMMultiBlockJobS tatusInformation

Nv MPollingMode

取值范围

true/false

默认取值

False

参数描述

启用 /禁用轮询模式, 同时禁用/启用底 层可用的回调函数

tr ue:开启轮询模式 ,关闭回调功能。

fal se:关闭轮询模式 ,启用回调功能。

依赖关系

N vMRepeatMirr orOperations

取值范围

0-7

默认取值

0

参数描述

在推迟当 前作业之前,让应 用程序将数据复制 到NvM模块的镜像 或从NvM模块复制 数据的重试次数。

依赖关系

NvMSetRamBl ockStatusApi

取值范围

true/false

默认取值

False

参数描述

Nvm _setramblockstat us函数使能开关。

true: NvM_S etRamBlockStatus 使能。

false: NvM_S etRamBlockStatus 不使能。

依赖关系

NvMSizeImmed iateJobQueue

取值范围

1-255

默认取值

1

参数描述

定义立即优 先级作业队列的队 列条目数。如果NV M_JOB_PRIORITIZA TION被关闭,则该 参数将超出范围。

依赖关系

NVM_JOB_PRIORI TIZATION需要使能

NvMSizeStan dardJobQueue

取值范围

1-255

默认取值

1

参数描述

标准作业 队列的队列条目数

依赖关系

NvMVe rsionInfoApi

取值范围

true/false

默认取值

False

参数描述

版本获取函数开关

依赖关系

NvMRamBlock StartAddress

取值范围

0-0xFFFFFFFF

默认取值

0

参数描述

RAM 自动计算起始地址

依赖关系

NvMBlockDescriptor

image4

image5

图5-2 NvMBlockDescriptor容器配置图

表5-2 NvMBlockDescriptor属性描述

UI名称

描述

NvM BlockCrcType

取值范围

NVM_CRC16/NV M_CRC32/NVM_CRC8

默认取值

NVM_CRC16

参数描述

定义NVRAM块 的CRC数据宽度。

依赖关系

NVM_BLOCK_USE _CRC使能后可配置

NvMBlockH eaderInclude

取值范围

默认取值

参数描述

定义头文件,其中 NVRAM块的所有者 有永久RAM数据块 的声明,ROM数据 块(如果配置)和每 个配置回调的回调 函数原型。如果没 有永久的RAM块,R OM块或回调函数被 配置,那么这个配 置参数将被忽略。

依赖关系

NvMBloc kJobPriority

取值范围

0 .. 255

默认取值

1

参数描述

NV块的优先级

依赖关系

将所有块的N vMBlockJobPriori ty进行排序,如果 NvMBlockJobPrio rity不是连续数( 可以是重复数值)

NvMJ obPrioritization

NvMBlockMa nagementType

取值范围

NVM_BL OCK_DATASET/NVM_ BLOCK_NATIVE/NVM _BLOCK_REDUNDANT

默认取值

NVM_BLOCK _REDUNDANT

参数描述

块类型

依赖关系

N vMBlockUseAu toValidation

取值范围

true/false

默认取值

False

参数描述

定义 RAM块在关闭阶段 是否应自动验证。

True:使 用自动验证机制,

false:其他情况

依赖关系

NvM BlockUseCRCC ompMechanism

取值范围

true/false

默认取值

False

参数描述

是否 在写期间将RAM块 的CRC与上次成功 读写作业期间计算 的CRC进行比较。

True :使用比较机制,

false:其他情况

依赖关系

Nv MBlockUseCrc

取值范围

true/false

默认取值

False

参数描述

NVRAM块的CRC使能 开关,即在RAM和 NV内存中保留用于 CRC的内存空间。

true:此NV RAM块将使用CRC。

false:此NV RAM块不使用CRC。

依赖关系

NvMWriteBlo ckOnce使能是此项 不可配置并且使能

NvMB lockUseSetRa mBlockStatus

取值范围

true/false

默认取值

False

参数描述

这个 块是否使能NvMSet RamBlockStatus。

true:这个R AM块的NvMSetRamB lockStatus使能。

false:这个RAM块 的NvMSetRamBlock Status将被忽略。

依赖关系

如 果禁用NvMCommon 中的NvMSetRa mBlockStatus,此 配置参数将被忽略

NvMBlockUseS yncMechanism

取值范围

true/false

默认取值

False

参数描述

NV块是否使用带有 RAM镜像和回调例 程的显式同步机制 来传输NvM模块的 RAM镜像的数据。

tr ue:使用同步机制

false:不使用

依赖关系

NvMBlockUseCrc

NvMBl ockWriteProt

取值范围

true/false

默认取值

False

参数描述

定义 NV块的初始写保护

true:启 用初始块写保护。

false:关 闭初始块写保护。

依赖关系

NvMW riteBlockOnce和N vMBlockWriteProt 只能配置两者之一

NvMBs wMBlockStatu sInformation

取值范围

true/false

默认取值

False

参数描述

是否告知BswM指 定块的当前状态。

True:在变更 时调用BswM_NvM_ CurrentBlockMode

False :根本不通知BswM

依赖关系

NvMCal cRamBlockCrc

取值范围

true/false

默认取值

False

参数描述

是否 为配置为使用显式 同步机制的永久RA M块或NVRAM块定义 CRC(重新)计算。

true:这 个永久RAM块的CRC 将被(重新)计算。

false:这 个永久RAM块不会 (重新)计算CRC。

依赖关系

N VM_BLOCK_USE_CRC 使能情况下可配置

NvMInitB lockCallback

取值范围

默认取值

参数描述

块特定回调程 序的入口地址,如 果没有ROM数据可 用来初始化NVRAM 块,该回调程序将 被调用。如果没有 配置,则不需要调 用特定的回调例程 来初始化带有默认 数据的NVRAM块。

依赖关系

NvMMaxNumO fReadRetries

取值范围

0 .. 7

默认取值

0

参数描述

最大读取重试次数

依赖关系

NvMMaxNumOf WriteRetries

取值范围

0 .. 7

默认取值

0

参数描述

最大写重试次数

依赖关系

NvMNvBlo ckBaseNumber

取值范围

1 .. 65534

默认取值

1

参数描述

连接 到下层的基础块号

依赖关系

下层块号右移配置 项NvMDatasetSel ectionBits的位数

NvMN vBlockLength

取值范围

1 .. 65535

默认取值

2

参数描述

NV块长度

依赖关系

检查下层 FEE和EA关联的块 长度,如果比NVM 配置的块长度加上 CRC长度小则报错

N vMNvBlockNum

取值范围

1 .. 255

默认取值

1

参数描述

根据给定的 块管理类型,定义 一个相邻区域内的 多个NV块的数量。

1 -255用于配置块管 理类型为NVM_BLO CK_DATASET的块。

1用于 于需要配置块管理 类型为NVM_BLOCK _NATIVE的NVRAM块

2 用于配置块管理类 型为NVM_BLOCK_RE DUNDANT的NVRAM块

依赖关系

取决于NVM_BLOCK _MANAGEMENT_TYPE

NvMNvramBlo ckIdentifier

取值范围

1 .. 65535

默认取值

参数描述

NV块号,自 动生成,不可配置

依赖关系

NvMN vramDeviceId

取值范围

0 .. 1

默认取值

参数描述

设备号,自 动生成,不可配置

依赖关系

NvMRamB lockDataAddr essAutoCount

取值范围

true/false

默认取值

True

参数描述

自动计算ram地址

依赖关系

NvMRamBloc kDataAddress

取值范围

默认取值

参数描述

Ram地址, 可以通过配置项进 行选择为自动计算

依赖关系

NvMRamBlo ckDataAddressAut oCount使能时,会 根据NvMRamBlock StartAddress、Nv MNvBlockLength以 及前一个块的ram 地址进行自动计算

NvMRe adRamBlockFr omNvCallback

取值范围

默认取值

参数描述

块特定回调接口的 入口地址,为了让 应用程序从NvM模 块的镜像复制数据 到RAM块,应该调 用这个回调接口。

依赖关系

NvMBlock UseSyncMechanism

NvMResistan tToChangedSw

取值范围

true/false

默认取值

True

参数描述

N VRAM块对更改是否 具有抵抗力。如果 在配置时没有可用 的默认数据,则应 用程序应负责提供 默认初始化数据。 在这种情况下,应 用程序必须使用Nv M_GetErrorStatus ()来区分第一次初 始化和数据损坏。

true: NVR AM块是抵抗更改。

false: NVR AM块不抵抗更改。

依赖关系

NvMDyna micConfiguration

NvMRomBloc kDataAddress

取值范围

默认取值

参数描述

ROM 块数据的起始地址 。如果不配置,则 所选的块管理类型 没有ROM块可用。

依赖关系

Nv MRomBlockNum

取值范围

0 .. 254

默认取值

0

参数描述

根据块 管理类型,定义一 个连续区域中的多 个ROM块的数量。

0 -254用于配置块管 理类型为NVM_BLO CK_DATASET的块。

0-1配置 块管理类型为NVM_ BLOCK_NATIVE的块

0-1用于配置块管 理类型为NVM_BLO CK_REDUNDANT的块

依赖关系

取决于NVM_BLOCK _MANAGEMENT_TYPE

NvMSelectBlo ckForReadAll

取值范围

true/false

默认取值

False

参数描述

NVRAM块是否应在N vM_ReadAll期间处 理。此配置参数只 影响那些配置为具 有永久RAM块或配 置为使用显式同步 机制的NVRAM块。

true: NVRAM块由 NvM_ReadAll处理

false: NVRAM块不被 NvM_ReadAll处理

依赖关系

NV M_RAM_BLOCK_DATA _ADDRESS是否配置

NvMBlo ckManagementType

N vMSelectBloc kForWriteAll

取值范围

true/false

默认取值

False

参数描述

NVR AM块是否应该在Nv M_WriteAll期间处 理。此配置参数只 影响那些配置为具 有永久RAM块或配 置为使用显式同步 机制的NVRAM块。

true: NVRAM块由 NvM_WriteAll处理

false: NVRAM块不被 NvM_WriteAll处理

依赖关系

NV M_RAM_BLOCK_DATA _ADDRESS是否配置

NvMSingleB lockCallback

取值范围

默认取值

参数描述

块特定回调函数 ,该回调函数将在 每个异步单个块请 求终止时被调用。

依赖关系

NvMStatic BlockIDCheck

取值范围

true/false

默认取值

False

参数描述

是否启用 了静态块ID检查。

false:禁 用静态块ID检查。

true:启 用静态块ID检查。

依赖关系

NvMWr iteBlockOnce

取值范围

true/false

默认取值

False

参数描述

首次写入 后的写保护。NVR AM管理器在第一次 写入NV块后设置写 保护位。这意味着 NVRAM中的一些NV 块永远不应该被擦 除,也不应该在第 一次初始化后被默 认ROM数据替换。

true:首 次写入后写保护。

false:禁用第 一次写后写保护。

依赖关系

NvMW riteBlockOnce和N vMBlockWriteProt 只能配置两者之一

NvMW riteRamBlock ToNvCallback

取值范围

默认取值

参数描述

让 应用程序将数据从 RAM块复制到NvM模 块的镜像,需要调 用块的回调接口。

依赖关系

NvMWrite Verification

取值范围

true/false

默认取值

False

参数描述

是 否启用写入验证。

fal se:关闭写验证。

tr ue:开启写验证。

依赖关系

NvMW riteVerifica tionDataSize

取值范围

1 .. 65535

默认取值

1

参数描述

在比较 RAM块和回读块的 内容时,每一步中 要比较的字节数。

依赖关系

NvMNvBlockLength

IS oftNvMUseNot ifyInitBlock

取值范围

true/false

默认取值

False

参数描述

块初 始化通知回调接口

依赖关系

ISof tNvMUseNotif yJobFinished

取值范围

true/false

默认取值

False

参数描述

块任务 完成通知回调接口

依赖关系

NvMTargetBlockReference

image6

图5-3 NvMTargetBlockReference容器配置图

表5-3 NvMTargetBlockReference属性描述

UI名称

描述

NvMN ameOfEaBlock

取值范围

默认取值

参数描述

EA块关联

依赖关系

NvMNa meOfFeeBlock

取值范围

默认取值

参数描述

FEE块关联

依赖关系

NvmDemEventParameterRefs

image7

图5-4 NvmDemEventParameterRefs容器配置图

表5-4 NvmDemEventParameterRefs属性描述

UI名称

描述

NV M_E_HARDWARE

取值范围

默认取值

参数描述

硬件故障发 生的事件DEM关联

依赖关系

NVM_E_INTE GRITY_FAILED

取值范围

默认取值

参数描述

API 请求完整性失败发 生的事件DEM关联

依赖关系

NVM_E_LOSS_O F_REDUNDANCY

取值范围

默认取值

参数描述

冗余丢失发 生的事件DEM关联

依赖关系

NVM_E_QU EUE_OVERFLOW

取值范围

默认取值

参数描述

队列溢出发 生的事件DEM关联

依赖关系

NVM_ E_REQ_FAILED

取值范围

默认取值

参数描述

请求失败发 生的事件DEM关联

依赖关系

NVM_E_V ERIFY_FAILED

取值范围

默认取值

参数描述

校验失败发 生的事件DEM关联

依赖关系

NVM_E_WRI TE_PROTECTED

取值范围

默认取值

参数描述

请求写 已经写保护的块发 生的事件DEM关联

依赖关系

NVM_E_WR ONG_BLOCK_ID

取值范围

默认取值

参数描述

静 态块ID检查失败发 生的事件DEM关联

依赖关系