Index: program/patch.prog
===================================================================
--- /branch/mouse_project/LeXiang/1059_Project/S1018C_OnlyBLE_PB_LI/program/patch.prog	(revision 6184)
+++ /branch/mouse_project/LeXiang/1059_Project/S1018C_OnlyBLE_PB_LI/program/patch.prog	(working copy)
@@ -1308,12 +1308,14 @@
 p_mouse_store_flash_device_info:
 	call p_flash_release_deep_power_down
 	call p_flash_erase_sector
+	call p_flash_write_enable
 	call p_mouse_information_flash_parameters
 	call p_spid_write_flash
 	call p_wait_flash_done
 	//user flash data
 p_mouse_store_flash_user_data:
 	call p_spid_init_flash
+	call p_flash_write_enable
 	arg 7,temp
 	arg mem_mouse_flash_start_temp,rega
 	arg MOUSE_USER_DATA_OFFECT,regb
@@ -1329,16 +1331,28 @@
 p_flash_erase_sector:
 	fetch 3,mem_flash_base
 	store 3,mem_spi_write_addr
+	call p_flash_write_enable
 	call flash_erase_sector+2
 p_wait_flash_done:
 	setarg 100000
 	call sleep
-	call spid_unlock_flash
+	call p_flash_read_status
+	bbit1 FLASH_STATUS_WIP,p_wait_flash_done
+	rtn
+p_flash_read_status:
 	setarg mem_spid_rbuf
 	hstore 2,core_spid_rxaddr
+	force 1,temp
 	setarg FLASH_READ_SATUS
-	call spid_read_reg
-	bbit1 FLASH_STATUS_WIP,p_wait_flash_done
+	store 1,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	branch spid_read_regs+2
+
+p_flash_write_enable:
+	call spid_unlock_flash	
+	call p_flash_read_status
+	bbit0 FLASH_STATUS_WEL,p_flash_write_enable
 	rtn
 
 p_spid_write_flash:
