#include "uds_nvm.h" NvmImage_t NvmImage; int32_t nvm_write(uint8_t *pImage, const uint8_t *pData, uint32_t Len, void (*pCbFn)(uint32_t)) { uint32_t i; uint32_t addr; if (!Len || (&pImage[Len] > (uint8_t*)NVM_ADDR_END) || (pImage < (uint8_t*)NVM_ADDR_STR)) { return -1; } if (pData) { for (i = 0; i < Len; ++i) { pImage[i] = pData[i]; } } addr = pImage - (uint8_t *)&NvmImage + NVM_ADDRESS_START; UdsApi_EE_WriteBytes(pImage, addr, Len); return 0; } int32_t uds_service_nvm_write(uint8_t *pImage, const uint8_t *pData, uint32_t Len, void (*pCbFn)(uint32_t)) { int32_t result; result = nvm_write(pImage, pData, Len, pCbFn); return result; } void NVM_Init(void) { UdsApi_EE_ReadBytes((uint8_t *)&NvmImage, NVM_ADDRESS_START, NVM_SIZE); }