#ifndef _SYSTEM_FLASH_MEM_MANAGE_H_
|
#define _SYSTEM_FLASH_MEM_MANAGE_H_
|
|
#include "off_chip_flash.h"
|
|
|
#define STORAGE_SPACE OUT_FLASH_ALL_SIZE
|
|
/************Íⲿflash´æ´¢¹æ»®******************
|
*1³ÌÐòÉý¼¶´æ´¢Çø£ºÁôÁ½¸ö512KB¿Õ¼ä£¬Ò»¸öÓÃÓÚ½ÓÊÕ¸üгÌÐò£¬Ò»¸öÓÃÓÚ»¹ÔгÌÐòÁÙʱ´æ´¢Çø¡£
|
*2˼ÖþÈÕÖ¾´æ´¢Çø£¬°üÀ¨Êý¾ÝÀúÊ·¼Ç¼¡¢¾¯¼Ç¼¡¢Ê¼þ¼Ç¼¡¢²ÎÊýÐ޸ļǼ£»
|
*3µÚÈý·½ÏµÍ³´æ´¢Çø£¬°üÀ¨Êý¾ÝÀúÊ·¡¢±¨¾¯¼Ç¼¡¢Ê¼þ¼Ç¼µÈ£¬¸ù¾ÝµÚÈý·½ÏµÍ³ÒªÇóÔÚ×ö¾ßÌ嶨Ò壬´Ë´¦½ö×öÁô¿Õ
|
*/
|
|
|
/*³ÌÐòÉý¼¶´æ´¢Çø*/
|
#define PROGRAM_UPDATE_STORAGE_START_ADDR 0
|
#define PROGRAM_UPDATE_STORAGE_LENGTH (1024*1024)
|
|
/*˼ÖþÈÕÖ¾´æ´¢Çø*/
|
//Êý¾ÝÀúÊ·¼Ç¼
|
#define HISTORY_RECORD_STORAGE_START_ADDR PROGRAM_UPDATE_STORAGE_START_ADDR + PROGRAM_UPDATE_STORAGE_LENGTH
|
#define HISTORY_RECORD_STORAGE_LENGTH (1024*1024)
|
//±¨¾¯¼Ç¼£¨Ô¤Áô1±¶£©
|
#define SYSTEM_ALARM_STORAGE_START_ADDR HISTORY_RECORD_STORAGE_START_ADDR + HISTORY_RECORD_STORAGE_LENGTH
|
#define SYSTEM_ALARM_STORAGE_LENGTH (30*1024)
|
//ʼþ¼Ç¼£¨Ô¤Áô2±¶£©
|
#define SYSTEM_EVENT_STORAGE_START_ADDR SYSTEM_ALARM_STORAGE_START_ADDR + SYSTEM_ALARM_STORAGE_LENGTH
|
#define SYSTEM_EVENT_STORAGE_LENGTH (20*1024)
|
//²ÎÊýÐ޸ļǼ£¨Ô¤Áô2±¶£©
|
#define SYSTEM_PARA_MODIFY_STORAGE_START_ADDR SYSTEM_EVENT_STORAGE_START_ADDR + SYSTEM_EVENT_STORAGE_LENGTH
|
#define SYSTEM_PARA_MODIFY_STORAGE_LENGTH (30*1024)
|
|
//˼ÖþÈÕÖ¾´æ´¢ÇøÏ¸·Ö
|
//Êý¾ÝÀúÊ·¼Ç¼-ԼǼ
|
#define MONTH_HISTORY_RECORD_STORAGE_START_ADDR HISTORY_RECORD_STORAGE_START_ADDR
|
#define MONTH_HISTORY_RECORD_STORAGE_ADDR_LENGTH 8*1024
|
//Êý¾ÝÀúÊ·¼Ç¼-ÈռǼ
|
#define DAY_HISTORY_RECORD_STORAGE_START_ADDR MONTH_HISTORY_RECORD_STORAGE_START_ADDR + MONTH_HISTORY_RECORD_STORAGE_ADDR_LENGTH
|
#define DAY_HISTORY_RECORD_STORAGE_ADDR_LENGTH 40*1024
|
//Êý¾ÝÀúÊ·¼Ç¼-Сʱ¼Ç¼
|
#define HOUR_HISTORY_RECORD_STORAGE_START_ADDR DAY_HISTORY_RECORD_STORAGE_START_ADDR + DAY_HISTORY_RECORD_STORAGE_ADDR_LENGTH
|
#define HOUR_HISTORY_RECORD_STORAGE_ADDR_LENGTH 230*1024
|
//Êý¾ÝÀúÊ·¼Ç¼-¼ä¸ô¶³½á¼Ç¼
|
#define INTERVAL_HISTORY_RECORD_STORAGE_START_ADDR HOUR_HISTORY_RECORD_STORAGE_START_ADDR + HOUR_HISTORY_RECORD_STORAGE_ADDR_LENGTH
|
#define INTERVAL_HISTORY_RECORD_STORAGE_ADDR_LENGTH 100*1024
|
|
//±¨¾¯¼Ç¼,ÔÝʱֻÓÐÒ»ÖÖ£¬ÏȲ»Ï¸·Ö
|
|
|
//ʼþ¼Ç¼-·§¿Ø¼Ç¼
|
#define VALVE_OPERATION_EVENT_STORAGE_START_ADDR SYSTEM_EVENT_STORAGE_START_ADDR
|
#define VALVE_OPERATION_EVENT_STORAGE_ADDR_LENGTH 4*1024
|
//ʼþ¼Ç¼-»Ö¸´³ö³§¼Ç¼
|
#define FACTORY_RESET_EVENT_STORAGE_START_ADDR VALVE_OPERATION_EVENT_STORAGE_START_ADDR + VALVE_OPERATION_EVENT_STORAGE_ADDR_LENGTH
|
#define FACTORY_RESET_EVENT_STORAGE_ADDR_LENGTH 512
|
//ʼþ¼Ç¼-Уʱ¼Ç¼
|
#define SET_TIME_EVENT_STORAGE_START_ADDR FACTORY_RESET_EVENT_STORAGE_START_ADDR + FACTORY_RESET_EVENT_STORAGE_ADDR_LENGTH
|
#define SET_TIME_EVENT_STORAGE_ADDR_LENGTH 1*1024
|
|
//²ÎÊýÐ޸ļǼ-É豸»ù´¡ÐÅÏ¢Ð޸ļǼ
|
#define BASIC_INFO_MODIFY_STORAGE_START_ADDR SYSTEM_PARA_MODIFY_STORAGE_START_ADDR
|
#define BASIC_INFO_MODIFY_STORAGE_ADDR_LENGTH 1130
|
//²ÎÊýÐ޸ļǼ-ÀÛ»ýÁ¿Ð޸ļǼ
|
#define CUMULATE_MODIFY_STORAGE_START_ADDR BASIC_INFO_MODIFY_STORAGE_START_ADDR + BASIC_INFO_MODIFY_STORAGE_ADDR_LENGTH
|
#define CUMULATE_MODIFY_STORAGE_ADDR_LENGTH 900
|
//²ÎÊýÐ޸ļǼ-Óà¶îÐÞ¸Ä
|
#define BALANCE_MODIFY_STORAGE_START_ADDR CUMULATE_MODIFY_STORAGE_START_ADDR + CUMULATE_MODIFY_STORAGE_ADDR_LENGTH
|
#define BALANCE_MODIFY_STORAGE_ADDR_LENGTH 580
|
//²ÎÊýÐ޸ļǼ-Á÷Á¿¼Æ²ÎÊýÐ޸ļǼ
|
#define FLOWMETER_PARA_MODIFY_STORAGE_START_ADDR BALANCE_MODIFY_STORAGE_START_ADDR + BALANCE_MODIFY_STORAGE_ADDR_LENGTH
|
#define FLOWMETER_PARA_MODIFY_STORAGE_ADDR_LENGTH 2260
|
//²ÎÊýÐ޸ļǼ-Óà¶î/Ìõ¼þ¹Ø·§²ÎÊýÐ޸ļǼ
|
#define CONDITIONAL_CLOSE_VALVE_CTRL_MODIFY_STORAGE_START_ADDR FLOWMETER_PARA_MODIFY_STORAGE_START_ADDR + FLOWMETER_PARA_MODIFY_STORAGE_ADDR_LENGTH
|
#define CONDITIONAL_CLOSE_VALVE_CTRL_MODIFY_STORAGE_ADDR_LENGTH 2260
|
//²ÎÊýÐ޸ļǼ-ϵͳ¹¦ÄÜÅäÖÃ×ÖÐ޸ļǼ
|
#define FUN_CTRL_MODIFY_STORAGE_START_ADDR CONDITIONAL_CLOSE_VALVE_CTRL_MODIFY_STORAGE_START_ADDR + CONDITIONAL_CLOSE_VALVE_CTRL_MODIFY_STORAGE_ADDR_LENGTH
|
#define FUN_CTRL_MODIFY_STORAGE_ADDR_LENGTH 740
|
//²ÎÊýÐ޸ļǼ-±¨¾¯¿ØÖÆ/Éϱ¨¿ØÖÆ×ÖÐ޸ļǼ
|
#define ALARM_CTRL_MODIFY_STORAGE_START_ADDR FUN_CTRL_MODIFY_STORAGE_START_ADDR + FUN_CTRL_MODIFY_STORAGE_ADDR_LENGTH
|
#define ALARM_CTRL_MODIFY_STORAGE_ADDR_LENGTH 1700
|
//²ÎÊýÐ޸ļǼ-¹Ø·§¿ØÖÆ×ÖÐ޸ļǼ
|
#define VALVE_CTRL_BYTES_MODIFY_STORAGE_START_ADDR ALARM_CTRL_MODIFY_STORAGE_START_ADDR + ALARM_CTRL_MODIFY_STORAGE_ADDR_LENGTH
|
#define VALVE_CTRL_BYTES_MODIFY_STORAGE_ADDR_LENGTH 1700
|
|
|
//µÚÈý·½ÏµÍ³´æ´¢Çø
|
#define THIRS_SYSTEM_RECORD_STORAGE_START_ADDR 3*1024*1024
|
#define THIRS_SYSTEM_RECORD_STORAGE_LENGTH (1024*1024)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//flash²Ù×÷µØÖ·Ô½½çÅжÏ
|
#define FLASH_LOG_ADDR_CHECK(__HANDLE__,__START_ADDR__,__LENGTH__,__MAX_NUM__) \
|
do{ \
|
if(FlashLogAddrCheck(__HANDLE__.log_addr_save,__START_ADDR__,__LENGTH__,__MAX_NUM__) ==FAIL){ \
|
__HANDLE__.log_addr_save = __START_ADDR__; \
|
__HANDLE__.log_count = 0; \
|
} \
|
}while(0);
|
|
|
//ÈÕÖ¾¿ØÖƲÎÊý´¦Àí
|
#define FLASH_LOG_CRTL_PARA_HANDLE(__HANDLE__,__START_ADDR__,__LENGTH__,__MAX_NUM__) \
|
do{ \
|
if( __HANDLE__.log_addr_save <(__START_ADDR__ + __LENGTH__ * (__MAX_NUM__ -1))){ \
|
__HANDLE__.log_addr_save += __LENGTH__; \
|
}else{ \
|
__HANDLE__.log_addr_save = __START_ADDR__; \
|
} \
|
if(__HANDLE__.log_count < __MAX_NUM__) \
|
__HANDLE__.log_count ++; \
|
}while(0);
|
|
ErrorStatus FlashMultipleWriteAndReadCheck(uint8_t * write_data,uint32_t addrA,uint16_t length);
|
ErrorStatus FlashLogAddrCheck(uint32_t OpAddr,uint32_t StartAddr,uint16_t length,uint16_t MaxNum);
|
|
#endif
|