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管理 |
简介¶
图 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_ FlashEEPROMEmulation.PDF,R19-11
[2] AUTOSAR_SWS_ FlashDriver.PDF,R19-11
[3] AUTOSAR_SWS_ MemoryAbstractionInterface.PDF,R19-11
[4] AUTOSAR_SWS_ NVRAMManager.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信息的作用。
源文件描述¶
表 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函数的扩展声 明并定义了端口的数据结构。(在FEE/EA模块中引用) |
图 NvM组件文件交互关系图
API接口¶
类型定义¶
导入类型定义¶
NvM_ConfigType类型定义¶
名称 |
NvM_ConfigType |
类型 |
Structure |
范围 |
无 |
描述 |
配置参数结构体类型定义 |
NvM_MultiBlockRequestType类型定义¶
名称 |
NvM_MultiBlockRequestType |
类型 |
Enumeration |
范围 |
执行多块读操作:NVM_READ_ALL = 0 执行多块写操作:NVM_WRITE_ALL = 1 执行多块有效操作:NVM_VALIDATE_ALL = 2 执行多块第一次初始化操作:NVM_FIRST_INIT_ALL = 3 执行多块取消写操作:NVM_CANCEL_WRITE_ALL = 4 |
描述 |
标识通 过回调函数发出信号或向BswM报告时在多个块上执行的请求类型 |
实现数据类型定义¶
NvM_RequestResultType类型定义¶
名称 |
NvM_RequestResultType |
类型 |
uint8 |
范围 |
上一次异步请求已成功完成,NVM_REQ_OK = 0 上一次异步读/写/控制请求未成功完成,NVM_REQ_NOT_OK = 1 当前正在等待异步读/写/控制挂起,NVM_REQ_PENDING = 2 上 一次异步请求的数据完整性失败,NVM_REQ_INTEGRITY_FAILED=3 NvM_Re adAll或NvM_WriteAll请求的块被跳过,NVM_REQ_BLOCK_SKIPPED = 4 引用的NV块无效,NVM_REQ_NV_INVALIDATED = 5 NvM_CancelWriteAll取消多块请求,NVM_REQ_CANCELED = 6 引用 的NV块将默认值复制到RAM映像中,NVM_REQ_RESTORED_FROM_ROM = 8 |
描述 |
调用NvM_GetErrorStatus返回的异步请求结果 |
NvM_BlockIdType类型定义¶
名称 |
NvM_BlockIdType |
类型 |
uint16 |
范围 |
0..2^(16-NvMDatasetSelectionBits)-1 |
描述 |
通过一个唯一的块标识符来标识一个NVRAM块。 保留NVRAM块id: 0:通过NvM_GetErrorStatus派生多个块请求结果 1:冗余NVRAM块,它保存配置ID |
NvM_InitBlockRequestType类型定义¶
名称 |
NvM_InitBlockRequestType |
类型 |
uint8 |
范围 |
请求NvM_ReadBlock/ NvM_ReadPRAMBlock服务, NVM_INIT_READ_BLOCK = 0; 请求NvM_RestoreBlockDefaults/ NvM_Resto rePRAMBlockDefaults服务,NVM_INIT_RESTORE_BLOCK_DEFAULTS = 1; NvM_ReadAll正在处理这个块,NVM_INIT_READ_ALL_BLOCK = 2; NvM_FirstInitAll正在处理这个块NVM_INIT_FIRST_INIT_ALL = 3; |
描述 |
标识通过回调函数发出信号时在块上执行的请求类型 |
NvM_BlockRequestType类型定义¶
名称 |
NvM_BlockRequestType |
类型 |
uint8 |
范围 |
NvM_ReadBlock/ NvM_ReadPRAMBlock服务已执行, NVM_READ_BLOCK = 0; NvM_WriteBlock/ NvM_WritePRAMBlock服务已执行, NVM_WRITE_BLOCK = 1; NvM_RestoreBlockDefaults/ NvM_Restor ePRAMBlockDefaults服务已执行,NVM_RESTORE_BLOCK_DEFAULTS = 2; NvM_EraseNvBlock服务已执行,NVM_ERASE_NV_BLOCK = 3; NvM_InvalidateNvBlock服务已执行,NVM_INVALIDATE_NV_BLOCK = 4; NvM_ReadAll已经完成对这个块的处理,NVM_READ_ALL_BLOCK = 5; |
描述 |
标识通过回调函数发出信号时在块上执行的请求类型 |
输入函数描述¶
输入模块 |
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 |
BswM |
BswM_NvM_CurrentBlockMode |
BswM_NvM_CurrentJobMode |
静态接口函数定义¶
NvM_Init函数定义¶
函数名称: |
NvM_Init |
||
函数原型: |
FUNC(void, NVM_CODE) NvM_Init(const NvM_ConfigType* ConfigPtr) |
||
服务编号: |
0x00 |
||
同步/异步: |
同步 |
||
是 否可重入: |
否 |
||
输入参数: |
Confi gPtr:配置数据结构体的指针 |
值 域: |
无 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
初始化NVM模块变量 |
NvM_SetDataIndex函数定义¶
函数名称: |
NvM_SetDataIndex |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM_SetDataIndex(NvM_BlockIdType BlockId, uint8 DataIndex) |
||
服务编号: |
0x01 |
||
同步/异步: |
同步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值域: |
0 ..65535 |
DataIndex:NV/ROM块的索引位置 |
值域: |
0..255 |
|
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType:E_OK: The index position was set successfully. E_NOT_OK: An error occurred. |
||
功能概述: |
设置指定块的索引值 |
NvM_GetDataIndex函数定义¶
函数名称: |
NvM_GetDataIndex |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) Nv M_GetDataIndex(NvM_BlockIdType BlockId, P2VAR(uint8, AUTOMATIC, NVM_APPL_DATA) DataIndexPtr) |
||
服务编号: |
0x02 |
||
同步/异步: |
同步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值域: |
0. .65535 |
输入 输出参数: |
无 |
||
输出参数: |
Da taIndexPtr:NV/ROM块的索引位置 |
||
返回值: |
Std_ReturnType: E_OK:成功 E_NOT_OK:失败 |
||
功能概述: |
获取指定块的索引值 |
NvM_SetBlockProtection函数定义¶
函数名称: |
NvM_SetBlockProtection |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM_SetBloc kProtection(NvM_BlockIdType BlockId, boolean ProtectionEnabled) |
||
服务编号: |
0x03 |
||
同步/异步: |
同步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值 域: |
0..65535 |
ProtectionEnabled: 写保护标志 |
值 域: |
TRUE/FALSE |
|
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType: E_OK:请求成功 E_NOT_OK:请求失败 |
||
功能概述: |
设置/重置块保护 |
NvM_GetErrorStatus函数定义¶
函数名称: |
NvM_GetErrorStatus |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM_Get ErrorStatus(NvM_BlockIdType BlockId, 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 |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM_SetR amBlockStatus(NvM_BlockIdType BlockId, boolean BlockChanged) |
||
服务编号: |
0x05 |
||
同步/异步: |
同步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockChanged: 有效改变标志 |
值域: |
T RUE/FALSE |
BlockId:NVRAM块唯一描述符 |
值域: |
0..65535 |
|
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType: E_OK: The status of the permanent RAM block or the explicit synchronization was changed as requested. E_NOT_OK: An error occurred. |
||
功能概述: |
设置永久内存块 的状态或NVRAM块显式同步的状态 |
NvM_SetBlockLockStatus函数定义¶
函数名称: |
NvM_SetBlockLockStatus |
||
函数原型: |
FUNC(void, NVM_CODE) NvM_SetBloc kLockStatus(NvM_BlockIdType BlockId, boolean BlockLocked) |
||
服务编号: |
0x13 |
||
同步/异步: |
同步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockLocked:上锁标志 |
值域: |
TRUE/FALSE |
BlockId:NVRAM块唯一描述符 |
值域: |
0..65535 |
|
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
设置永久RAM 块或NVRAM块显式同步的锁状态 |
NvM_CancelJobs函数定义¶
函数名称: |
NvM_CancelJobs |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM _CancelJobs(NvM_BlockIdType BlockId) |
||
服务编号: |
0x10 |
||
同步/异步: |
同步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值 域: |
0..65535 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType: E_OK:取消请求成功 E_NOT_OK:取消请求失败 |
||
功能概述: |
取消指定块之前的请求 |
NvM_ReadBlock函数定义¶
函数名称: |
NvM_ReadBlock |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM_ReadBlock(NvM_BlockIdType BlockId, void* NvM_DstPtr) |
||
服务编号: |
0x06 |
||
同步/异步: |
异步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值域: |
0. .65535 |
输入 输出参数: |
无 |
||
输出参数: |
NvM_DstPtr:RAM数据块地址 |
||
返回值: |
Std_ReturnType: E_OK:请求成功 E_NOT_OK:请求失败 |
||
功能概述: |
将NV块的数据复制到其相应的RAM块 |
NvM_WriteBlock函数定义¶
函数名称: |
NvM_WriteBlock |
||
函数原型: |
FUN C(Std_ReturnType, NVM_CODE) NvM_WriteBloc k(NvM_BlockIdType BlockId, void* NvM_SrcPtr) |
||
服务编号: |
0x07 |
||
同步/异步: |
异步 |
||
是 否可重入: |
是 |
||
输入参数: |
NvM_SrcPtr: 指 向RAM数据块的指针 |
值域: |
无 |
BlockId: NVRAM块唯一描述符 |
值域: |
0..65535 |
|
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType: E_OK:请求成功 E _NOT_OK:请求失败 |
||
功能概述: |
将RAM块的数据复制 到其相应的NV块。 |
NvM_RestoreBlockDefaults函数定义¶
函数名称: |
NvM_RestoreBlockDefaults |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM_Rest oreBlockDefaults(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 |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) N vM_EraseNvBlock(NvM_BlockIdType BlockId) |
||
服务编号: |
0x09 |
||
同步/异步: |
异步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值 域: |
0..65535 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType: E_OK:请求成功 E_NOT_OK:请求失败 |
||
功能概述: |
请求擦除指定块 |
NvM_CancelWriteAll函数定义¶
函数名称: |
N vM_CancelWriteAll |
||
函数原型: |
FUNC(void, NVM_CODE) NvM_Can celWriteAll(void) |
||
服务编号: |
0x0a |
||
同步/异步: |
异步 |
||
是 否可重入: |
否 |
||
输入参数: |
无 |
值域: |
无 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
请求取消全写任务 |
NvM_InvalidateNvBlock函数定义¶
函数名称: |
NvM_InvalidateNvBlock |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM_Inv alidateNvBlock(NvM_BlockIdType BlockId) |
||
服务编号: |
0x0b |
||
同步/异步: |
异步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值域: |
0. .65535 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType: E_OK:请求成功 E_NOT_OK:请求失败 |
||
功能概述: |
无效化指定块 |
NvM_ReadPRAMBlock函数定义¶
函数名称: |
NvM_ReadPRAMBlock |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM _ReadPRAMBlock(NvM_BlockIdType BlockId) |
||
服务编号: |
0x16 |
||
同步/异步: |
异步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值域: |
0..65535 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType: E_OK:请求成功 E_NOT_OK:请求失败 |
||
功能概述: |
请求拷贝指定块数据到配置的RAM |
NvM_WritePRAMBlock函数定义¶
函数名称: |
NvM_WritePRAMBlock |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) Nv M_WritePRAMBlock(NvM_BlockIdType BlockId) |
||
服务编号: |
0x17 |
||
同步/异步: |
异步 |
||
是 否可重入: |
是 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值域: |
0 ..65535 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType: E_OK:请求成功 E_NOT_OK:请求失败 |
||
功能概述: |
请求将PRAM数据放入指定的NV块 |
NvM_RestorePRAMBlockDefaults函数定义¶
函数名称: |
NvM_RestorePRAMBlockDefaults |
||
函数原型: |
FUNC(Std_ReturnType, NVM_CODE) NvM_RestorePRAM BlockDefaults(NvM_BlockIdType BlockId) |
||
服务编号: |
0x18 |
||
同步/异步: |
异步 |
||
是 否可重入: |
否 |
||
输入参数: |
BlockId:NVRAM块唯一描述符 |
值域: |
0..65535 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
Std_ReturnType: E_OK:请求成功 E_NOT_OK:请求失败 |
||
功能概述: |
请求将PRAM数据恢复为默认数据 |
NvM_ReadAll函数定义¶
函数名称: |
NvM_ReadAll |
||
函数原型: |
FUNC(void, NVM_CODE) NvM_ReadAll(void) |
||
服务编号: |
0x0c |
||
同步/异步: |
异步 |
||
是 否可重入: |
否 |
||
输入参数: |
无 |
值域: |
无 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
请求读取所有块 |
NvM_WriteAll函数定义¶
函数名称: |
NvM_WriteAll |
||
函数原型: |
FUNC(void, NVM_CODE) N vM_WriteAll(void) |
||
服务编号: |
0x0d |
||
同步/异步: |
异步 |
||
是 否可重入: |
否 |
||
输入参数: |
无 |
值域: |
无 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
请 求对所有块进行写 |
NvM_ValidateAll函数定义¶
函数名称: |
NvM_ValidateAll |
||
函数原型: |
FUNC(void, NVM_CODE) NvM_ ValidateAll(void) |
||
服务编号: |
0x19 |
||
同步/异步: |
异步 |
||
是 否可重入: |
否 |
||
输入参数: |
无 |
值域: |
无 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
请 求将指定块无效化 |
NvM_JobEndNotification函数定义¶
函数名称: |
NvM_J obEndNotification |
||
函数原型: |
FUNC(void, NVM_CODE) NvM_JobEndN otification(void) |
||
服务编号: |
0x11 |
||
同步/异步: |
同步 |
||
是 否可重入: |
否 |
||
输入参数: |
无 |
值域: |
无 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
任务完成回调 |
NvM_JobErrorNotification函数定义¶
函数名称: |
NvM_Job ErrorNotification |
||
函数原型: |
FUNC(void, NVM_CODE) NvM_JobErrorN otification(void) |
||
服务编号: |
0x12 |
||
同步/异步: |
同步 |
||
是 否可重入: |
否 |
||
输入参数: |
无 |
值域: |
无 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
任务错误回调 |
NvM_MainFunction函数定义¶
函数名称: |
NvM_MainFunction |
||
函数原型: |
FUNC(void, NVM_CODE) NvM_M ainFunction(void) |
||
服务编号: |
0x0e |
||
同步/异步: |
同步 |
||
是 否可重入: |
是 |
||
输入参数: |
无 |
值域: |
无 |
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
主函数处理任务 |
可配置函数定义¶
NvM_SingleBlockCallbackFunction函数定义¶
函 数 名 称 |
NvM_SingleB lockCallbackFunction |
||
函 数 原 型 |
Std_ReturnType NvM_SingleBlockCa llbackFunction(uint8 ServiceId, NvM_RequestResultType JobResult) |
||
服 务 编 号 |
无 |
||
同 步 / 异 步 |
同步 |
||
是 否 可 重 入 |
否 |
||
输 入 参 数 |
BlockReque st:单个块的请求类型 |
值 域 : |
NVM_INIT_READ_BLOCK, NVM_INIT_RESTORE_BLOCK_DEFAULTS, NVM_INIT_READ_ALL_BLOCK, NVM_INIT_FIRST_INIT_ALL |
J obResult:以前处理的 单个块请求的任务结果 |
值 域 : |
NVM_REQ_OK NVM_REQ_NOT_OK NVM_REQ_PENDING NVM_REQ_INTEGRITY_FAILED NVM_REQ_BLOCK_SKIPPED NVM_REQ_NV_INVALIDATED NVM_REQ_CANCELED NVM_REQ_REDUNDANCY_FAILED NVM_REQ_RESTORED_FROM_ROM |
|
输 入 输 出 参 数 |
无 |
||
输 出 参 数 |
无 |
||
返 回 值 |
Std_ReturnType: E_OK: 回调函数已被成功处理 E_NOT_OK:回 调函数没有被成功处理 |
||
功 能 概 述 |
块回调通知上层一个异 步单个块请求已经完成 |
NvM_MultiBlockCallbackFunction函数定义¶
函 数 名 称 |
NvM_MultiB lockCallbackFunction |
||
函 数 原 型 |
void NvM_MultiBlockCa llbackFunction(uint8 ServiceId, N vM_RequestResultType JobResult) |
||
服 务 编 号 |
无 |
||
同 步 / 异 步 |
同步 |
||
是 否 可 重 入 |
否 |
||
输 入 参 数 |
BlockReque st:多个块的请求类型 |
值 域 : |
NVM_INIT_READ_BLOCK, NVM_INIT_RESTORE_BLOCK_DEFAULTS, NVM_INIT_READ_ALL_BLOCK, NVM_INIT_FIRST_INIT_ALL |
J obResult:以前处理的 多个块请求的任务结果 |
值 域 : |
NVM_REQ_OK NVM_REQ_NOT_OK NVM_REQ_PENDING NVM_REQ_INTEGRITY_FAILED NVM_REQ_BLOCK_SKIPPED NVM_REQ_NV_INVALIDATED NVM_REQ_CANCELED NVM_REQ_REDUNDANCY_FAILED NVM_REQ_RESTORED_FROM_ROM |
|
输 入 输 出 参 数 |
无 |
||
输 出 参 数 |
无 |
||
返 回 值 |
Std_ReturnType: E_OK: 回调函数已被成功处理 E_NOT_OK:回 调函数没有被成功处理 |
||
功 能 概 述 |
通知上层异步多 块请求已经完成的回调 |
InitBlockCallbackFunction函数定义¶
函 数名称 |
InitBlockCa llbackFunction |
||
函 数原型 |
Std_ReturnType InitBloc kCallbackFunct ion(NvM_InitBl ockRequestType Ini tBlockRequest) |
||
服 务编号 |
无 |
||
同 步/异步 |
同步 |
||
是否 可重入 |
否 |
||
输 入参数 |
InitBl ockRequest:初 始块的请求类型 |
值 域 : |
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块复制到N vM模块的镜像,需要调用特定块的回调例程 |
NvM_ReadRamBlockFromNvm函数定义¶
函数名称 |
NvM_ReadRamBlockFromNvm |
||
函数原型 |
Std_ReturnType NvM_ReadRamBlockFromNvm(const void* NvMBuffer) |
||
服务编号 |
无 |
||
同步/异步 |
同步 |
||
是 否可重入 |
否 |
||
输入参数 |
NvMBuffer:可以从中读取数据的缓冲区的地址 |
值 域: |
无 |
输入 输出参数 |
无 |
||
输出参数 |
无 |
||
返回值 |
Std_ReturnType: E_OK:回调函数已被成功处理 E_NOT_OK:回调函数没有被成功处理 |
||
功能概述 |
为了让将数据从NvM模块的镜 像复制到RAM块,需要调用特定块的回调例程。 |
SWC服务组件封装¶
以下类型和接口可以封装至SWC生成完整的服务组件,可以与应用通过端口连接,没有列出的部分NvM底层暂时不支持。
实现数据类型封装¶
类型名及定义引用 |
生成条件 |
NvM_RequestResultType |
无 |
NvM_BlockIdType |
无 |
NvM_InitBlockRequestType |
无 |
NvM_BlockRequestType |
无 |
CS接口封装¶
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} |
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} |
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} |
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(); 3. InitBlockCallbackFncDef = nvBlockDescriptor.subElt(“NvMIn itBlockCallback/NvMInitBlockCallbackFnc”).isDefined(); |
端口类型: |
Required Port |
从属端口: |
PNIB_{Block} |
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(); 3. SingleBlockCallbackFncDef = nvBlockDescriptor.subElt(“NvMSingle BlockCallback/NvMSingleBlockCallbackFnc”).isDefined(); |
端口类型: |
Required Port |
从属端口: |
PNJF_{Block} |
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} |
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} |
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} |
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} |
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} |
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} |
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} |
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} |
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} |
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} |
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} |
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¶
图 NvMCommon容器配置图
表 NvMCommon属性描述
UI名称 |
描述 |
|||
NvMAp iConfigClass |
取值范围 |
NVM _API_CONFIG_CLASS _1/NVM_API_CONFI G_CLASS_2/NVM_AP I_CONFIG_CLASS_3 |
默认取值 |
无 |
参数描述 |
预处理器开关,使 能一些API的调用 |
|||
依赖关系 |
无 |
|||
N vMBswMMultiB lockJobStatu sInformation |
取值范围 |
True/False |
默认取值 |
True |
参数描述 |
是否通知BswM多 块作业的当前状态 |
|||
依赖关系 |
无 |
|||
NvMComp iledConfigId |
取值范围 |
0 … 65535 |
默认取值 |
0 |
参数描述 |
关于NV内 存布局的配置ID。 |
|||
依赖关系 |
无 |
|||
NvMC rcNumOfBytes |
取值范围 |
1 … 65535 |
默认取值 |
无 |
参数描述 |
如果为 至少一个NVRAM块 配置CRC,则此参 数定义在请求处理 的一个周期内应处 理的最大字节数, CRC计算的长度。 |
|||
依赖关系 |
无 |
|||
NvMDatasetS electionBits |
取值范围 |
0 … 8 |
默认取值 |
无 |
参数描述 |
在内存硬件 抽象接口中定义最 低有效位的数目, 用于寻址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 |
取值范围 |
0 … 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 |
参数描述 |
版本获取函数开关 |
|||
依赖关系 |
无 |
NvMBlockDescriptor¶
图 NvMBlockDescriptor容器配置图
表 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块的优先级 |
|||
依赖关系 |
只有在 配置页面NvMApiC onfigClass不选择 Class1并且NvMJob Prioritization打 勾的情况下才可配 |
|||
NvMBlockMa nagementType |
取值范围 |
NVM_BL OCK_DATASET/NVM BLOCK_NATIVE/NVM _BLOCK_REDUNDANT |
默认取值 |
NVM_BLOCK _REDUNDANT |
参数描述 |
块类型 |
|||
依赖关系 |
无 |
|||
N vMBlockUseAu toValidation |
取值范围 |
true/false |
默认取值 |
False |
参数描述 |
定义 RAM块在关闭阶段 是否应自动验证。 True:使 用自动验证机制, false:其他情况 |
|||
依赖关系 |
无 |
|||
NvMBlockUs eCompression |
取值范围 |
true/false |
默认取值 |
False |
参数描述 |
定义数据在 写入前是否压缩。 True:需要压缩, f alse:不需要压缩 |
|||
依赖关系 |
无 |
|||
Nv MBlockUseCrc |
取值范围 |
true/false |
默认取值 |
False |
参数描述 |
NVRAM块的CRC使能 开关,即在RAM和 NV内存中保留用于 CRC的内存空间。 true:此NV RAM块将使用CRC。 false:此NV RAM块不使用CRC。 |
|||
依赖关系 |
NvMWriteBlo ckOnce使能是此项 不可配置并且使能 |
|||
NvM BlockUseCRCC ompMechanism |
取值范围 |
true/false |
默认取值 |
False |
参数描述 |
是否 在写期间将RAM块 的CRC与上次成功 读写作业期间计算 的CRC进行比较。 True :使用比较机制, false:其他情况 |
|||
依赖关系 |
无 |
|||
NvM BlockUsePort |
取值范围 |
true/false |
默认取值 |
False |
参数描述 |
是否使用 RTE中PORT接口。 True:使用, false:不使用 |
|||
依赖关系 |
无 |
|||
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 使能情况下可配置 |
|||
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 |
默认取值 |
无 |
参数描述 |
设备号,自 动生成,不可配置 |
|||
依赖关系 |
无 |
|||
NvMRa mBlockDataBu fferAutoFill |
取值范围 |
true/false |
默认取值 |
True |
参数描述 |
自动计算ram地址 |
|||
依赖关系 |
无 |
|||
NvMRamBloc kDataAddress |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
Ram地址, 可以通过配置项进 行选择为自动计算 |
|||
依赖关系 |
NvMRamB lockDataBufferAu toFill使能时,会 根据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 |
|||
NvMSe lectBlockFor FirstInitAll |
取值范围 |
true/false |
默认取值 |
False |
参数描述 |
N VRAM块是否会被Nv M_FirstInitAll处 理。此配置参数只 影响那些配置为具 有永久RAM块或配 置为使用显式同步 机制的NVRAM块。 true: NVRAM块由NvM _FirstInitAll处理 false: NVRAM块不被NvM _FirstInitAll处理 |
|||
依赖关系 |
无 |
|||
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是否配置 |
|||
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 |
NvMInitBlockCallback¶
图 NvMInitBlockCallback容器配置图
表 NvMInitBlockCallback属性描述
UI名称 |
描述 |
|||
NvMInitB lockCallback |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
块特定回调程 序的入口地址,如 果没有ROM数据可 用来初始化NVRAM 块,该回调程序将 被调用。如果没有 配置,则不需要调 用特定的回调例程 来初始化带有默认 数据的NVRAM块。 |
|||
依赖关系 |
无 |
NvMSingleBlockCallback¶
图 NvMSingleBlockCallback容器配置图
表 NvMSingleBlockCallback属性描述
UI名称 |
描述 |
|||
NvMSingleB lockCallback |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
块特定回调函数 ,该回调函数将在 每个异步单个块请 求终止时被调用。 |
|||
依赖关系 |
无 |
NvMTargetBlockReference¶
图 NvMTargetBlockReference容器配置图
表 NvMTargetBlockReference属性描述
UI名称 |
描述 |
|||
NvMN ameOfEaBlock |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
EA块关联 |
|||
依赖关系 |
无 |
|||
NvMNa meOfFeeBlock |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
FEE块关联 |
|||
依赖关系 |
无 |
NvmDemEventParameterRefs¶
图 NvmDemEventParameterRefs容器配置图
表 NvmDemEventParameterRefs属性描述
UI名称 |
描述 |
|||
NV M_E_HARDWARE |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
硬件故障发 生的事件DEM关联 |
|||
依赖关系 |
无 |
|||
NVM_E_INTE GRITY_FAILED |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
API 请求完整性失败发 生的事件DEM关联 |
|||
依赖关系 |
无 |
|||
NVM_E_LOSS_O F_REDUNDANCY |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
冗余丢失发 生的事件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关联 |
|||
依赖关系 |
无 |