#ifndef _EEPROM_24CXX_REMAP_H_ #define _EEPROM_24CXX_REMAP_H_ #include "r_typedefs.h" #include "RTE_GPIO.h" #include "EEPROM_24Cxx.h" #define EEPPROM_HIREL_DATA_NUM 3 #define EEPPROM_EXTLIFE_DATA_NUM 0 #define EEPPROM_DATA_BUFFER_SIZE 64 #define EEPPROM_DEVICE_ADDR 0 #define EEPPROM_TOTAL_ROW_NUM (EEPROM_TOTAL_PAGE_NUM / 4) #define EEPPROM_HIREL_DATA_MAX_LEN (EEPROM_PAGE_SIZE / 2) #define EEPPROM_EXTLIFE_DATA_ROW_OFFSEET EEPPROM_HIREL_DATA_NUM #define EEPPROM_EXTLIFE_DATA_MAX_LEN (EEPROM_PAGE_SIZE - 4) #define EEPPROM_DATA_ROW_OFFSEET (EEPPROM_HIREL_DATA_NUM + EEPPROM_EXTLIFE_DATA_NUM * 3) #define EEPPROM_DATA_TOTAL_PAGE_NUM ((EEPPROM_TOTAL_ROW_NUM - EEPPROM_DATA_ROW_OFFSEET) * 4) #define EEPPROM_DATA_MAX_ADDR (EEPROM_PAGE_SIZE * EEPPROM_DATA_TOTAL_PAGE_NUM - 1) #define EEPROM_HIREL_DATA_TYPE 0 #define EEPROM_EXTLIFE_DATA_TYPE 1 #define EEPROM_NORMAL_DATA_TYPE 2 typedef enum { EEPROM_DATA_OK = 0, EEPROM_DATA_PARTIAL_LOST, EEPROM_DATA_LOST, EEPROM_DATA_ADDR_ERR, EEPROM_DATA_LEN_ERR, EEPROM_DATA_RW_FAIL, EEPROM_MEMORY_BUSY, EEPROM_MEMORY_ABSENT, }EEPROMAccessStatusEnum; #if (EEPPROM_DATA_BUFFER_SIZE < EEPROM_PAGE_SIZE) typedef struct { uint8_t Type; uint8_t Data[EEPROM_PAGE_SIZE]; uint16_t DataLen; uint8_t Row; uint8_t Col; uint8_t Offset; uint8_t Retry; uint8_t WrLen; uint16_t WrCnt; uint8_t Busy; EEPROMAccessStatusEnum Result; }EEPROMDataWrCtrlStruct; #else typedef struct { uint8_t Type; uint8_t Data[EEPPROM_DATA_BUFFER_SIZE]; uint16_t DataLen; uint8_t Row; uint8_t Col; uint8_t Offset; uint8_t Retry; uint8_t WrLen; uint16_t WrCnt; uint8_t Busy; EEPROMAccessStatusEnum Result; }EEPROMDataWrCtrlStruct; #endif EEPROMAccessStatusEnum EEPROM_Data_Write(uint8_t Type, uint16_t Addr, uint8_t *pData, uint8_t Len); EEPROMAccessStatusEnum EEPROM_Get_Data_Write_Status(void); EEPROMAccessStatusEnum EEPROM_Startup_Data_Read(uint8_t Type, uint16_t Addr, uint8_t *pData, uint8_t Len); void EEPROM_Access_Service(void); EEPROMAccessStatusEnum EEPROM_HiRel_Data_Write(uint16_t Addr, uint8_t *pData, uint8_t Len); EEPROMAccessStatusEnum EEPROM_Startup_HiRel_Data_Read(uint16_t Addr, uint8_t *pData, uint8_t Len); EEPROMAccessStatusEnum EEPROM_Startup_HiRel_Page_Read(uint8_t Row, uint8_t Col, uint8_t *pData, uint8_t Len); uint8_t EEPROM_HiRel_Data_Check(uint8_t *pData, uint8_t Len); void EEPROM_HiRel_Data_Write_Service(void); EEPROMAccessStatusEnum EEPROM_Normal_Data_Write(uint16_t Addr, uint8_t *pData, uint16_t Len); EEPROMAccessStatusEnum EEPROM_Startup_Normal_Data_Read(uint16_t Addr, uint8_t *pData, uint8_t Len); void EEPROM_Normal_Data_Write_Service(void); void EEPROM_Copy_Data(uint8_t *pDstData, uint8_t *pSrcData, uint8_t Len); uint8_t EEPROM_Compare_Data(uint8_t *pDstData, uint8_t *pSrcData, uint8_t Len); #endif