Index: fw/sdk/yc_qspi.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_qspi.c	(revision 644)
+++ /YC3121_SDK/fw/sdk/yc_qspi.c	(working copy)
@@ -234,14 +234,14 @@
  log_addr = log_addr + 0x1000000;
 
  qspi_flash_read(log_addr, back_buf, 0x10);
+ qspi_flash_sectorerase(log_addr);
+ qspi_flash_write(log_addr, back_buf, 0x10);
  
- for (i = log_addr; i < log_addr + 0x9000; i += 0x1000)
+ for (i = (log_addr+0x1000); i < log_addr + 0x9000; i += 0x1000)
  {
   qspi_flash_sectorerase(i);
  }
 
- qspi_flash_write(log_addr, back_buf, 0x10);
-
  qspi_flash_read(log_addr+0x9000, back_buf, 4096);
  qspi_flash_sectorerase(log_addr+0x9000);
  memset(back_buf,0xff,0x10);
@@ -250,11 +250,9 @@
 
 uint8_t enc_earse_flash_app_area(uint32_t addr,uint32_t len)
 {
-	uint8_t head_backup[16]={0};
-	uint8_t end_backup[0x1000]={0};
+	uint8_t temp_backup[0x1000]={0};
 	uint32_t earse_start_addr;
 	uint32_t earse_end_addr;
-	uint32_t earse_start_addr_backup;
 	int i;
 	
 	if(len<=0)
@@ -272,14 +270,25 @@
 	earse_start_addr|=0x1000000;
 	earse_end_addr|=0x1000000;
 	
-	earse_start_addr_backup=earse_start_addr;
+	//earse first sector(4k)
+	qspi_flash_read(earse_start_addr,temp_backup,0x10);//cpu 32k head backup(16byte)
+	if(qspi_flash_sectorerase(earse_start_addr)!=SUCCESS)
+	{
+		return ERROR;
+	}
+	if(qspi_flash_write(earse_start_addr,temp_backup,0x10)!=SUCCESS)//write cpu 32k head backup(16byte)
+	{
+		return ERROR;
+	}
+	earse_start_addr+=0x1000;
 	
-	qspi_flash_read(earse_start_addr,head_backup,0x10);//cpu 32k head backup(16byte)
-	qspi_flash_read(earse_end_addr-0x1000,end_backup,0x1000);//32k end page backup(0x1000)
+	//backup end
+	qspi_flash_read(earse_end_addr-0x1000,temp_backup,0x1000);//32k end page backup(0x1000)
 	for(int i=0;i<0x10;i++)//clear end_backup first 16 bytes
 	{
-		end_backup[i]=0xff;
+		temp_backup[i]=0xff;
 	}
+	
 	//earse head sector(4k)
 	for(;((earse_start_addr%0x8000)!=0);earse_start_addr+=0x1000)
 	{
@@ -307,11 +316,7 @@
 		}
 	}
 
-	if(qspi_flash_write(earse_start_addr_backup,head_backup,0x10)!=SUCCESS)//write cpu 32k head backup(16byte)
-	{
-		return ERROR;
-	}
-	if(qspi_flash_write(earse_end_addr-0x1000,end_backup,0x1000)!=SUCCESS)//write cpu 32k end page backup(0x1000)
+	if(qspi_flash_write(earse_end_addr-0x1000,temp_backup,0x1000)!=SUCCESS)//write cpu 32k end page backup(0x1000)
 	{
 		return ERROR;
 	}
Index: fw/sdk/yc_qspi.lib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
