From b39a40b0191e0a8b155db74e885ff66e17b91896 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Thu, 06 Jun 2024 19:25:15 +0800
Subject: [PATCH] 继续完善
---
Function/STORAGE/system_flash_mem_manage.c | 61 ++++++++++++++++++++++++++++++
1 files changed, 61 insertions(+), 0 deletions(-)
diff --git a/Function/STORAGE/system_flash_mem_manage.c b/Function/STORAGE/system_flash_mem_manage.c
index 5e1ad20..79e14eb 100644
--- a/Function/STORAGE/system_flash_mem_manage.c
+++ b/Function/STORAGE/system_flash_mem_manage.c
@@ -1,6 +1,67 @@
#include "system_flash_mem_manage.h"
+#include "off_chip_flash.h"
+#include "system_general_para.h"
+//flash����д��Ͷ�ȡ���,ֻ֧��1024���ֽڵ�д�����ȡ���
+ErrorStatus FlashWriteAndReadCheck(uint8_t * write_data,uint32_t addr,uint16_t length)
+{
+ uint8_t buf_l[1024];
+
+ if(length >1024)
+ return FAIL;
+
+
+ Out_Flash_MultipleWrite(write_data,addr,length);
+
+ Out_Flash_MultipleRead(buf_l,addr,length);
+
+ return ucharcmp(write_data,buf_l,length);
+}
+
+
+//flash���ݶ��д�룬д�����ʱ�����д
+ErrorStatus FlashMultipleWriteAndReadCheck(uint8_t * write_data,uint32_t addrA,uint16_t length)
+{
+ ErrorStatus return_flag = PASS;
+ if(FlashWriteAndReadCheck(write_data,addrA,length)==FAIL)
+ {
+ if(FlashWriteAndReadCheck(write_data,addrA,length)==FAIL)
+ {
+ return_flag = FAIL;
+ }
+ }
+
+ return return_flag;
+}
+
+
+
+/*flash��־������ַ�ж�,�������̫�࣬����ѭ���ȽϱȽϷ�ʱ�䣬��Ҫ����!!!!!!!!!
+*input��OpAddr:������ַ�� StartAddr����ʼ��ַ length��������־���� MaxNum����־�������
+*return������FAIL��ʾ��ַ����ȷ
+*/
+ErrorStatus FlashLogAddrCheck(uint32_t OpAddr,uint32_t StartAddr,uint16_t length,uint16_t MaxNum)
+{
+ uint32_t count_i = 0;
+ uint32_t next_addr = StartAddr;
+ if((MaxNum ==0)||(OpAddr>=OUT_FLASH_ALL_SIZE)||(StartAddr>=OUT_FLASH_ALL_SIZE)||(length >1024))
+ return FAIL;
+
+ while(count_i<MaxNum){
+
+ if(OpAddr == next_addr)
+ return PASS;
+ else
+ next_addr += length;
+
+ if(++count_i > 0xFFFF){
+ break;
+ }
+ }
+
+ return FAIL;
+}
--
Gitblit v1.9.3