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 );