forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-12 f03cf3ae7a36954e64fc014e6bb7afd20c5a5247
Function/STORAGE/system_flash_mem_manage.h
@@ -13,7 +13,7 @@
*/
/*³ÌÐòÉý¼¶´æ´¢Çø*/
/*³ÌÐòÉý¼¶´æ´¢Çø£¬Áô¹»¿Õ¼ä£¬ÖÁÉÙÁô2*412*1024+ 0x1000£¬¾ßÌ嶨ÒåÔÚÉý¼¶³ÌÐò²¿·Ö*/
#define PROGRAM_UPDATE_STORAGE_START_ADDR      0
#define PROGRAM_UPDATE_STORAGE_LENGTH         (1024*1024)
@@ -53,10 +53,35 @@
#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      1*1024
#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
//µÚÈý·½ÏµÍ³´æ´¢Çø
@@ -64,4 +89,50 @@
#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);
ErrorStatus   FlashMultipleReadAndCrcCheck(uint8_t * read_data,uint32_t addrA,uint16_t length);
uint32_t   FlashLogPreviousAddrGet(uint32_t OpAddr,uint32_t StartAddr,uint16_t length,uint32_t EndAddr);
#endif