forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-06 b39a40b0191e0a8b155db74e885ff66e17b91896
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#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