*/\r
// 522 PC-Lint exception for empty functions\r
//lint -esym(522,CalcCrc)\r
+//lint -emacro(904,VALIDATE_RV,VALIDATE_NO_RV) //904 PC-Lint exception to MISRA 14.7 (validate macros).\r
\r
\r
#include "NvM.h"\r
+#include "NvM_Cbk.h"\r
#include "Rte.h" // ???\r
#if defined(USE_DEM)\r
#include "Dem.h"\r
Det_ReportError(MODULE_ID_NVM, 0, _api, _err); \\r
}\r
\r
+/*\r
#define VALIDATE_RV(_exp,_api,_err,_rv ) \\r
if( !(_exp) ) { \\r
Det_ReportError(MODULE_ID_NVM, 0, _api, _err); \\r
return _rv; \\r
}\r
+*/\r
\r
#define VALIDATE_NO_RV(_exp,_api,_err ) \\r
- if( !(_exp) ) { \\r
+ if( !(_exp) ) { \\r
Det_ReportError(MODULE_ID_NVM, 0, _api, _err); \\r
return; \\r
}\r
#define DET_REPORTERROR(_module,_instance,_api,_err)\r
#endif\r
\r
+#define BLOCK_BASE_AND_SET_TO_BLOCKNR(_blockbase, _set) ((uint16)(_blockbase << NVM_DATASET_SELECTION_BITS) | _set)\r
+\r
+\r
// State variable\r
typedef enum {\r
NVM_UNINITIALIZED = 0,\r
NVM_WRITE_ALL_PENDING\r
} NvmStateType;\r
\r
-typedef enum {\r
- MEMIF_STATE_IDLE,\r
- MEMIF_STATE_PENDING\r
-} MemIfStateType;\r
-\r
typedef enum {\r
BLOCK_STATE_IDLE,\r
BLOCK_STATE_RECALC_CRC,\r
BLOCK_STATE_POSTCALC_CRC_DONE,\r
\r
BLOCK_STATE_LOAD_FROM_NV,\r
- BLOCK_STATE_LOAD_FROM_NV_DONE,\r
- BLOCK_STATE_LOAD_FROM_NV_REDUNDANT,\r
- BLOCK_STATE_LOAD_FROM_ROM,\r
+// BLOCK_STATE_LOAD_FROM_NV_DONE,\r
+// BLOCK_STATE_LOAD_FROM_NV_REDUNDANT,\r
+// BLOCK_STATE_LOAD_FROM_ROM,\r
\r
- BLOCK_STATE_WRITE_TO_NV,\r
- BLOCK_STATE_WRITE_TO_NV_DONE\r
+ BLOCK_STATE_WRITE_TO_NV\r
+// BLOCK_STATE_WRITE_TO_NV_DONE\r
} BlockStateType;\r
\r
\r
SetMemifJobBusy();\r
MemIfJobAdmin.BlockAdmin = adminBlock;\r
MemIfJobAdmin.BlockDescriptor = blockDescriptor;\r
- returnCode = MemIf_Read(blockDescriptor->NvramDeviceId, (blockDescriptor->NvBlockBaseNumber << NVM_DATASET_SELECTION_BITS) | setNumber, blockOffset, destAddress, blockDescriptor->NvBlockLength);\r
+ returnCode = MemIf_Read(blockDescriptor->NvramDeviceId, BLOCK_BASE_AND_SET_TO_BLOCKNR(blockDescriptor->NvBlockBaseNumber, setNumber), blockOffset, destAddress, blockDescriptor->NvBlockLength);\r
if (returnCode != E_OK) {\r
AbortMemIfJob(MEMIF_JOB_FAILED);\r
}\r
AdminMultiReq.NextBlockIndex = 0;\r
\r
for (i = 0; i < NVM_NUM_OF_NVRAM_BLOCKS; i++) {\r
- if (BlockDescriptorList->SelectBlockForReadall\r
+ if ((BlockDescriptorList->SelectBlockForReadall)\r
#if (NVM_SET_RAM_BLOCK_STATUS_API == STD_ON) /** @req NVM345 */\r
- && (!AdminBlockTable->BlockValid // TODO: Check if this is to be done like this\r
- || !AdminBlockTable->BlockChanged) // TODO: Check if this is to be done like this\r
+ && ((!AdminBlockTable->BlockValid) // TODO: Check if this is to be done like this\r
+ || (!AdminBlockTable->BlockChanged)) // TODO: Check if this is to be done like this\r
#endif\r
) {\r
VALIDATE_NO_RV(BlockDescriptorList->RamBlockDataAddress != NULL, NVM_READ_ALL_ID, NVM_E_WRONG_CONFIG);\r
SetMemifJobBusy();\r
MemIfJobAdmin.BlockAdmin = adminBlock;\r
MemIfJobAdmin.BlockDescriptor = blockDescriptor;\r
- returnCode = MemIf_Write(blockDescriptor->NvramDeviceId, (blockDescriptor->NvBlockBaseNumber << NVM_DATASET_SELECTION_BITS) | setNumber, sourceAddress);\r
+ returnCode = MemIf_Write(blockDescriptor->NvramDeviceId, BLOCK_BASE_AND_SET_TO_BLOCKNR(blockDescriptor->NvBlockBaseNumber, setNumber), sourceAddress);\r
if (returnCode != E_OK) {\r
AbortMemIfJob(MEMIF_JOB_FAILED);\r
}\r
for (i = 0; i < NVM_NUM_OF_NVRAM_BLOCKS; i++) {\r
if ((BlockDescriptorList->RamBlockDataAddress != NULL)\r
#if (NVM_SET_RAM_BLOCK_STATUS_API == STD_ON) /** @req NVM344 */\r
- && AdminBlockTable->BlockValid /** @req NVM682 */\r
- && AdminBlockTable->BlockChanged /** @req NVM682 */\r
+ && (AdminBlockTable->BlockValid) /** @req NVM682 */\r
+ && (AdminBlockTable->BlockChanged) /** @req NVM682 */\r
#endif\r
- && !AdminBlockTable->BlockWriteProtected){ /** @req NVM432 *//** @req NVM433 */\r
+ && (!AdminBlockTable->BlockWriteProtected)){ /** @req NVM432 *//** @req NVM433 */\r
if (BlockDescriptorList->BlockUseCrc) {\r
AdminBlockTable->BlockState = BLOCK_STATE_RECALC_CRC; /** @req NVM253 */\r
} else {\r