备注:NvM-API常用用法整理,持续更新
一、UDS 2E写DID把对应数据存入NvM,成功存储后正响应反馈
Std_ReturnType DcmDspData_did_WriteFnc(const uint8 *Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType *ErrorCode)
{
Std_ReturnType retValue = E_OK;
uint8 ucRequestStatus = 0;
if(OpStatus == DCM_INITIAL)
{
/* Fill NvM Ram Block */
nvm_ram_block.data = *data;
/* Send Write block Requset */
NvM_WriteBlock(NvMConf_NvMBlockDescriptor_NvMBlockDescriptor_Data, &nvm_ram_block);
/* Pending dispose */
*ErrorCode = 0x78;
retValue = DCM_E_PENDING;
}
else if(OpStatus == DCM_PENDING)
{
/* Pending until NvM request ok */
NvM_GetErrorStatus(NvMConf_NvMBlockDescriptor_NvMBlockDescriptor_Data, &ucRequestStatus);
if(ucRequestStatus != NVM_REQ_OK)
{
*ErrorCode = 0x78;
retValue = DCM_E_PENDING;
}
}
return retValue;
}