From f03cf3ae7a36954e64fc014e6bb7afd20c5a5247 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Wed, 12 Jun 2024 17:22:08 +0800
Subject: [PATCH] 增加IAP功能,准备测试上位机升级
---
Function/STORAGE/system_flash_mem_manage.h | 75 ++++++++++++++++++++++++++++++++++++-
1 files changed, 73 insertions(+), 2 deletions(-)
diff --git a/Function/STORAGE/system_flash_mem_manage.h b/Function/STORAGE/system_flash_mem_manage.h
index 8f994ac..ffce37b 100644
--- a/Function/STORAGE/system_flash_mem_manage.h
+++ b/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
--
Gitblit v1.9.3