Index: NVDriver.h =================================================================== diff -u -r0b8f91f84aebe54470508381ec6381088901eeba -r8f45f16377ce0ee02824aeb15446cc427ce88c70 --- NVDriver.h (.../NVDriver.h) (revision 0b8f91f84aebe54470508381ec6381088901eeba) +++ NVDriver.h (.../NVDriver.h) (revision 8f45f16377ce0ee02824aeb15446cc427ce88c70) @@ -19,6 +19,7 @@ #define _NV_DRIVER_H #include "Common.h" +#include "DDDefs.h" /** * @defgroup NVDriver NVDriver @@ -43,6 +44,8 @@ #define BANK7_SECTOR3_START_ADDRESS 0xF020C000 ///< Bank7 sector 3 start address. #define BANK7_SECTOR3_END_ADDRESS 0xF020FFFF ///< Bank7 sector 3 end address. +#define MAX_EEPROM_WRITE_BUFFER_BYTES 16U ///< Max allowed bytes for an EEPROM write (16 bytes). + /// Non Volatile Memory operation modes enumeration. typedef enum NVM_Operation { @@ -64,13 +67,54 @@ NUM_OF_NVM_RECORD_TYPES ///< Number of NVM records jobs. } NVM_RECORD_TYPE_T; +//TODO: Fix in TD +/// DD available NV data to get +typedef enum DD_nv_commands +{ + GET_CAL_PRESSURE_SENOSRS = 0, ///< Get pressure sensors calibration data. + GET_CAL_TEMP_SENSORS, ///< Get temperature sensors calibration data. + GET_CAL_CONCENTRATE_PUMPS_RECORD, ///< Get concentrate pumps calibration record. + GET_CAL_D12_PUMP_RECORD, ///< Get D12 dialysate pump calibration record. + GET_CAL_D48_PUMP_RECORD, ///< Get D48 dialysate pump calibration record. + GET_CAL_ACID_CONCENTREATES, ///< Get acid concentrates calibration data. + GET_CAL_BICARB_CONCENTRATES, ///< Get bicarb concentrates calibration data. + GET_CAL_ACCEL_SENSORS, ///< Get accelerometers calibration data. + GET_CAL_BLOOD_LEAK_SENSOR, ///< Get blood leak sensor calibration data. + GET_SYSTEM_RECORD, ///< Get system record. + GET_SERVICE_RECORD, ///< Get service record. + GET_INSTITUTIONAL_RECORD, ///< Get institutional record. + GET_USAGE_RECORD, ///< Get usage record. + NUM_OF_NV_DD_DATA ///< Number of non-volatile data. +} NV_DATA_T; + +//TODO: Fix in TD +/// NVM self-test states enumeration. +typedef enum NVM_Self_Test_States +{ + NVM_SELF_TEST_STATE_READ_RECORDS = 0, ///< Self test read records. + NVM_SELF_TEST_STATE_CHECK_CRC, ///< Self test check CRC. + NVM_SELF_TEST_STATE_COMPLETE, ///< Self test complete. + NUM_OF_NVM_SELF_TEST_STATES ///< Total number of self-test states. +} NVM_SELF_TEST_STATE_T; + /// Process records job structure typedef struct { NVM_OPERATION_T memoryOperation; ///< Memory operation. NVM_RECORD_TYPE_T recordJob; ///< Record job (i.e sector 0). } PROCESS_RECORD_JOB_T; +//TODO: Fix in TD +/// Process records specifications structure +typedef struct +{ + U32 recordFlashAddress; ///< Jobs spec start address. + U32 sizeofRecord; ///< Jobs spec size of job. + U08* structAddressPtr; ///< Jobs structure address pointer. + U08* structCRCPtr; ///< Jobs structure CRC pointer. + DD_EVENT_ID_T nvEvent; ///< Jobs non-volatile DD event (i.e calibration, system). +} PROCESS_RECORD_SPECS_T; + // ********** public function prototypes ********** void initNVDriver( void ); Index: NVJobQ.c =================================================================== diff -u -r0b8f91f84aebe54470508381ec6381088901eeba -r8f45f16377ce0ee02824aeb15446cc427ce88c70 --- NVJobQ.c (.../NVJobQ.c) (revision 0b8f91f84aebe54470508381ec6381088901eeba) +++ NVJobQ.c (.../NVJobQ.c) (revision 8f45f16377ce0ee02824aeb15446cc427ce88c70) @@ -19,7 +19,6 @@ #include "Common.h" #include "MsgDefs.h" #include "NVJobQ.h" -#include "NVRecordsDD.h" /** * @addtogroup NVJobQ Index: NVMgmt.c =================================================================== diff -u -r0b8f91f84aebe54470508381ec6381088901eeba -r8f45f16377ce0ee02824aeb15446cc427ce88c70 --- NVMgmt.c (.../NVMgmt.c) (revision 0b8f91f84aebe54470508381ec6381088901eeba) +++ NVMgmt.c (.../NVMgmt.c) (revision 8f45f16377ce0ee02824aeb15446cc427ce88c70) @@ -15,13 +15,20 @@ * ***************************************************************************/ + + + #include // For memcpy #include "Common.h" #include "NVDriver.h" #include "NVJobQ.h" +#ifdef _DD_ #include "NVMessagingDD.h" +#endif #include "NVMgmt.h" +#ifdef _DD_ #include "NVRecordsDD.h" +#endif #include "Timers.h" /** @@ -154,7 +161,8 @@ break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_NVM_INVALID_EXEC_STATE, ( U32 )nvmExecState ); + // TODO: Fix in TD +// SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_NVM_INVALID_EXEC_STATE, ( U32 )nvmExecState ); nvmExecState = NVM_EXEC_STATE_IDLE; break; } @@ -171,8 +179,9 @@ void resetNVMPOSTState( void ) { - updateNVSelfTestResult( SELF_TEST_STATUS_IN_PROGRESS ); - updateNVSelfTestState( NVM_SELF_TEST_STATE_READ_RECORDS ); + // TODO: Fix in TD +// updateNVSelfTestResult( SELF_TEST_STATUS_IN_PROGRESS ); +// updateNVSelfTestState( NVM_SELF_TEST_STATE_READ_RECORDS ); } /*********************************************************************//** @@ -185,7 +194,9 @@ *************************************************************************/ BOOL isNewCalibrationRecordAvailable( void ) { - return getNewCalRecordAvalability(); + // TODO: Fix in TD +// return getNewCalRecordAvalability(); + return FALSE; } /*********************************************************************//** @@ -210,8 +221,9 @@ ( NULL != bufferAddress ) && ( bufferLength > 0U ) ) { - status = getNVMRecord(nvData, bufferAddress, - bufferLength, numOfSnsrs2Check, nvAlarm); + // TODO: Fix in TD +// status = getNVMRecord(nvData, bufferAddress, +// bufferLength, numOfSnsrs2Check, nvAlarm); } return status; @@ -227,7 +239,8 @@ *************************************************************************/ void execNVMProcessRecord( void ) { - execNVMPSendReceiveRecord(); + // TODO: Fix in TD +// execNVMPSendReceiveRecord(); } /*********************************************************************//** @@ -240,7 +253,10 @@ *************************************************************************/ SELF_TEST_STATUS_T execNVMSelfTest( void ) { - return execNVMRecordsSelfTest(); + // TODO: Fix in TD +// return execNVMRecordsSelfTest(); + return SELF_TEST_STATUS_IN_PROGRESS; + } /*********************************************************************//** @@ -274,7 +290,8 @@ dequeueRecordJob(); recordCurrentJob = getCurrentProcessRecordJob(); job = recordCurrentJob.recordJob; - jobSpecs = getProcessRecord( job ); + // TODO: Fix in TD +// jobSpecs = getProcessRecord( job ); // Set the record address offset to 0 since a job will just be started recordAddressOffset = 0; areQueuesNotEmpty = TRUE; @@ -308,19 +325,22 @@ break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_NVM_INVALID_OPS, ( U32 )nvmExecState ); + //TODO: Fix in TD +// SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_NVM_INVALID_OPS, ( U32 )nvmExecState ); break; } } // Update Self Test Read Records Flag if ( ( TRUE == isRecordQueueEmpty() ) && ( state == NVM_EXEC_STATE_IDLE ) ) { - updateSelfTestReadRecordsFlag( TRUE ); + // TODO: Fix in TD +// updateSelfTestReadRecordsFlag( TRUE ); } else { - updateSelfTestReadRecordsFlag( FALSE ); + // TODO: Fix in TD +// updateSelfTestReadRecordsFlag( FALSE ); } return state; @@ -367,8 +387,11 @@ BOOL timeoutStatus = didCommandTimeout( state ); PROCESS_RECORD_JOB_T recordCurrentJob = getCurrentProcessRecordJob(); NVM_RECORD_TYPE_T job = recordCurrentJob.recordJob; - PROCESS_RECORD_SPECS_T jobSpecs = getProcessRecord( job ); + // TODO: Fix in TD + PROCESS_RECORD_SPECS_T jobSpecs; +// PROCESS_RECORD_SPECS_T jobSpecs = getProcessRecord( job ); + // Check if the fapi has finished if ( TRUE == isFlashReady() ) { @@ -458,8 +481,11 @@ BOOL timeoutStatus = didCommandTimeout( state ); PROCESS_RECORD_JOB_T recordCurrentJob = getCurrentProcessRecordJob(); NVM_RECORD_TYPE_T job = recordCurrentJob.recordJob; - PROCESS_RECORD_SPECS_T jobSpecs = getProcessRecord( job ); + // TODO: Fix in TD + PROCESS_RECORD_SPECS_T jobSpecs; +// PROCESS_RECORD_SPECS_T jobSpecs = getProcessRecord( job ); + // Check if the flash is ready if ( TRUE == isFlashReady() ) { @@ -514,9 +540,10 @@ if ( TRUE == didTimeout( currentTime, COMMAND_TIME_OUT ) ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, - SW_FAULT_ID_NVM_OPS_TIMEOUT, - ( U32 )state ) + // TODO: Fix in TD +// SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, +// SW_FAULT_ID_NVM_OPS_TIMEOUT, +// ( U32 )state ); status = TRUE; } Index: NVMgmt.h =================================================================== diff -u -r0b8f91f84aebe54470508381ec6381088901eeba -r8f45f16377ce0ee02824aeb15446cc427ce88c70 --- NVMgmt.h (.../NVMgmt.h) (revision 0b8f91f84aebe54470508381ec6381088901eeba) +++ NVMgmt.h (.../NVMgmt.h) (revision 8f45f16377ce0ee02824aeb15446cc427ce88c70) @@ -20,7 +20,7 @@ #include "Common.h" #include "AlarmDefs.h" -#include "NVRecordsDD.h" +#include "NVDriver.h" /** * @defgroup NVMgmt NVMgmt