210 lines
5.2 KiB
C
210 lines
5.2 KiB
C
|
/***********************************************************************************
|
|||
|
* @Copyright (c) :(C)2013, Qindao ieslab Co., Ltd
|
|||
|
* @FileName :new_gsm_EEPROM_processor.c
|
|||
|
* @Author :Intelligent gas team
|
|||
|
* @Version :V1.0
|
|||
|
* @Date :2013-11-29
|
|||
|
* @Description :the function of the entity of system processor
|
|||
|
************************************************************************************/
|
|||
|
#ifndef __EEPROM_APP_H
|
|||
|
#define __EEPROM_APP_H
|
|||
|
|
|||
|
/*--------------------------------Including-------------------------------------------*/
|
|||
|
#include "UWater_eeprom_driver.h"
|
|||
|
#include "eeprom_app.h"
|
|||
|
/*------------------------------ Variable Define -------------------------------------*/
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C" {
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD>տ<EFBFBD>ʲ<EFBFBD><CAB2>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>EEPROM<4F>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7> <20><><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><CEBC><EFBFBD>NB<4E><42><EFBFBD><EFBFBD>EEPROM<4F>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//#define EEP_ADDR_SYS_BASE 0x0000
|
|||
|
////#define EEP_ADDR_SOE_BASE 0x0800
|
|||
|
//#define EEP_ADDR_MONTH_FROZEN_BASE 0x1000 //10<31><30><EFBFBD>¶<EFBFBD><C2B6><EFBFBD>10*12*EACH_DATA_SIZE<5A><45>1200<30><30>0x0480
|
|||
|
//#define EEP_ADDR_DAY_FROZEN_BASE 0x1800 //365*EACH_DATA_SIZE<5A><45>3650<35><30>0x0E42 0x1800+0x0E42=0x2642
|
|||
|
//#define EEP_ADDR_HOUR_FROZEN_BASE 0x3000 //62<36><32><EFBFBD><EFBFBD>Сʱ<D0A1><CAB1><EFBFBD>ᣬ62*24* EACH_DATA_SIZE<5A><45>14880<38><30>0x3A20 0x3000+0x3A20= 0x6A20
|
|||
|
//#define EEP_ADDR_SYS_BACKUP_BASE 0x7000
|
|||
|
|
|||
|
//#define EEP_ADDR_ACCUMUL_BASE 0x7800
|
|||
|
//#define EEP_ADDR_ACCUMUL_BACKUP_BASE 0x7900
|
|||
|
//#define EE_S_FAIL 0
|
|||
|
//#define EE_S_SUCCESS 1
|
|||
|
//#define EE_S_OPERATING 2
|
|||
|
//#define EE_S_ADD_ERR 4
|
|||
|
|
|||
|
#define EE_S_NO_ERR 0x00
|
|||
|
#define EE_S_MAIN_BACKUP_BOTH_ERR 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CRC<52><43><EFBFBD><EFBFBD>
|
|||
|
#define EE_S_MAIN_ERR 0x02 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CRC<52><43><EFBFBD><EFBFBD>
|
|||
|
#define EE_S_TIMEOUT_ERR 0x04 //EEPROM<4F><4D>ʱ
|
|||
|
|
|||
|
#define EE_WR_TIMEOUT 52 //<2F><>λΪ100ms<6D><73><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>Ϊ100ms<6D><73><EFBFBD><EFBFBD>EE_WR_TIMEOUT<55><54>
|
|||
|
#define EE_Write_Retry_Max_Time 3
|
|||
|
#define WRITEOPERTAION 0x55
|
|||
|
#define READOPERTAION 0xAA
|
|||
|
#define Bit_2Bits 0x01 //2λС<CEBB><D0A1><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>ֽڿ<D6BD><DABF>Ա<EFBFBD>ʾ
|
|||
|
#define Bit_3Bits 0x02 //3λС<CEBB><D0A1><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD>ֽڿ<D6BD><DABF>Ա<EFBFBD>ʾ
|
|||
|
#define Demical_Bit Bit_3Bits //С<><D0A1>λλ<CEBB><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32>3
|
|||
|
#define NODATA 0xFF
|
|||
|
#define EEADDERR 0x00
|
|||
|
#define EESYSDATAADDOK 0x01
|
|||
|
#define EEOTHERDATAADDOK 0x02
|
|||
|
typedef enum
|
|||
|
{
|
|||
|
cst_EE_S_S0=0,
|
|||
|
cst_EE_S_S1,
|
|||
|
cst_EE_S_S2,
|
|||
|
cst_EE_S_S3,
|
|||
|
cst_EE_S_S4,
|
|||
|
cst_EE_S_S5,
|
|||
|
cst_EE_S_S6,
|
|||
|
cst_EE_S_S7,
|
|||
|
cst_EE_S_S8,
|
|||
|
cst_EE_S_S9,
|
|||
|
cst_EE_S_S10,
|
|||
|
cst_EE_S_S11,
|
|||
|
cst_EE_S_S12,
|
|||
|
cst_EE_S_S13,
|
|||
|
cst_EE_S_S14,
|
|||
|
cst_EE_S_S15,
|
|||
|
cst_EE_S_S16,
|
|||
|
cst_EE_S_S17,
|
|||
|
cst_EE_S_S18,
|
|||
|
cst_EE_S_S19,
|
|||
|
cst_EE_S_S20,
|
|||
|
cst_EE_S_S21
|
|||
|
}cst_EE_S_STEP_NAME;
|
|||
|
typedef enum
|
|||
|
{
|
|||
|
cst_EE_A_S0=0,
|
|||
|
cst_EE_A_S1,
|
|||
|
cst_EE_A_S2,
|
|||
|
cst_EE_A_S3,
|
|||
|
cst_EE_A_S4,
|
|||
|
cst_EE_A_S5,
|
|||
|
cst_EE_A_S6,
|
|||
|
cst_EE_A_S7,
|
|||
|
cst_EE_A_S8,
|
|||
|
cst_EE_A_S9,
|
|||
|
cst_EE_A_S10,
|
|||
|
cst_EE_A_S11,
|
|||
|
cst_EE_A_S12,
|
|||
|
cst_EE_A_S13,
|
|||
|
cst_EE_A_S14,
|
|||
|
cst_EE_A_S15,
|
|||
|
cst_EE_A_S16,
|
|||
|
cst_EE_A_S17,
|
|||
|
cst_EE_A_S18,
|
|||
|
cst_EE_A_S19,
|
|||
|
cst_EE_A_S20,
|
|||
|
cst_EE_A_S21
|
|||
|
}cst_EE_A_STEP_NAME;//EEPROM<4F><4D><EFBFBD><EFBFBD><EFBFBD>ۻ<EFBFBD><DBBB><EFBFBD>С<EFBFBD><D0A1>λ<EFBFBD><CEBB>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
typedef enum
|
|||
|
{
|
|||
|
cst_EE_TOTAL_S0,
|
|||
|
cst_EE_TOTAL_S1,
|
|||
|
cst_EE_TOTAL_S2,
|
|||
|
cst_EE_TOTAL_S3,
|
|||
|
cst_EE_TOTAL_S4,
|
|||
|
}cst_EE_TOTAL_STEP_NAME;//EEPROM<4F><4D>ʼ<EFBFBD><CABC>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
|
|||
|
|
|||
|
typedef enum
|
|||
|
{
|
|||
|
IMPORTANT_DATA_OP_S0 = 0,
|
|||
|
IMPORTANT_DATA_OP_S1,
|
|||
|
IMPORTANT_DATA_OP_S2,
|
|||
|
IMPORTANT_DATA_OP_S3,
|
|||
|
IMPORTANT_DATA_OP_S4,
|
|||
|
IMPORTANT_DATA_OP_S5,
|
|||
|
IMPORTANT_DATA_OP_S6,
|
|||
|
IMPORTANT_DATA_OP_S7,
|
|||
|
IMPORTANT_DATA_OP_S8,
|
|||
|
IMPORTANT_DATA_OP_S9,
|
|||
|
IMPORTANT_DATA_OP_S20,
|
|||
|
IMPORTANT_DATA_OP_S21
|
|||
|
}IMPORTANT_DATA_OP;
|
|||
|
|
|||
|
enum
|
|||
|
{
|
|||
|
FIRST_POWER_ON_SAVE_S0 = 0,
|
|||
|
FIRST_POWER_ON_SAVE_S1,
|
|||
|
FIRST_POWER_ON_SAVE_S2,
|
|||
|
FIRST_POWER_ON_SAVE_S3
|
|||
|
};
|
|||
|
|
|||
|
typedef enum
|
|||
|
{
|
|||
|
EE_INIT_STATE_S0=0,
|
|||
|
EE_INIT_STATE_S1,
|
|||
|
EE_INIT_STATE_S2,
|
|||
|
EE_INIT_STATE_S3,
|
|||
|
EE_INIT_STATE_S4,
|
|||
|
EE_INIT_STATE_S5,
|
|||
|
EE_INIT_STATE_S20
|
|||
|
}TYPE_EE_INIT_STATE;
|
|||
|
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
u8 data[EEPageSize-2];
|
|||
|
u16 CRCvalue;
|
|||
|
}EE_DATA_STRUCT;
|
|||
|
typedef union
|
|||
|
{
|
|||
|
EE_DATA_STRUCT EE_Sysdata_Struct;
|
|||
|
u8 buf[EEPageSize];
|
|||
|
}EE_DATA_UNION;
|
|||
|
|
|||
|
void ee_sys_data_init (void);
|
|||
|
u8 ee_write_sys_data_all(void);
|
|||
|
u8 ee_read_sys_data_all(void);
|
|||
|
void ee_read_soe_data(void);
|
|||
|
void ee_read_hour_frozen_data(void);
|
|||
|
void ee_read_day_frozen_data(void);
|
|||
|
void ee_read_month_frozen_data(void);
|
|||
|
void ee_write_soe_data(void);
|
|||
|
void ee_write_hour_frozen_data(void);
|
|||
|
void ee_write_day_frozen_data(void);
|
|||
|
void ee_write_month_frozen_data(void);
|
|||
|
void ee_s_clear_err_msg(void);
|
|||
|
u8 ee_s_get_err_msg(void);
|
|||
|
|
|||
|
void ee_wr_sysdata_machine(void);
|
|||
|
u8 ee_sys_check_complete(void);
|
|||
|
u8 ee_sys_if_idle(void);
|
|||
|
u8 ee_sys_if_sleep(void);
|
|||
|
void ee_write_accumul_Decimals(u16* accumul_Decimals_Pointer);
|
|||
|
void ee_read_accumul_Decimals(u16* accumul_Decimals_Pointer);
|
|||
|
void ee_wr_accumul_machine(void);
|
|||
|
u8 ee_accumul_check_complete(void);
|
|||
|
u8 ee_accumul_if_idle(void);
|
|||
|
u8 ee_accumul_if_sleep(void);
|
|||
|
void EeSysMachine(void);
|
|||
|
u16 ee_addr_compute(u8 *data_addr);
|
|||
|
|
|||
|
u8 EeReadImportantDataIfIdle(void);
|
|||
|
u8 EeWriteImportantDataIfIdle(void);
|
|||
|
u8 EeEraseImportantDataIfIdle(void);//<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void StartEeEraseImportantData(void);
|
|||
|
void StartEeReadImportantData(void);
|
|||
|
void StartEeWriteImportantData(void);
|
|||
|
void set_important_data_rd_state (void);
|
|||
|
u8 get_important_data_rd_state (void);
|
|||
|
void EeReadImportantDataMachine(void);
|
|||
|
void LoadEepromImportantData(void);
|
|||
|
void RAMBackupRefresh(void);
|
|||
|
void set_reset_souce (u16 reset_souce);
|
|||
|
u16 get_reset_souce (void);
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif //#ifdef __cplusplus
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
|