Index: output/flash.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/output/flash.dat	(revision 1737)
+++ /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/output/flash.dat	(working copy)
@@ -39,7 +39,7 @@
 20
 40
 03
-28
+29
 20
 40
 06
@@ -327,43 +327,43 @@
 c0
 1c
 85
-7c
+7b
 c0
 21
 85
-84
+83
 c0
 25
 05
-8a
+89
 c0
 2b
 85
-8d
+8c
 c0
 2c
 85
-8f
+8e
 c0
 31
 85
-91
+90
 c0
 33
 05
-ba
+b9
 c0
 33
 85
-d9
+d8
 c0
 35
 05
-e9
+e8
 c0
 3b
 85
-f4
+f3
 c0
 7d
 06
@@ -2911,7 +2911,7 @@
 20
 20
 03
-28
+29
 68
 00
 cc
@@ -2935,7 +2935,7 @@
 70
 11
 c6
-11
+12
 20
 20
 06
@@ -2943,7 +2943,7 @@
 20
 40
 03
-28
+29
 20
 40
 40
@@ -3151,7 +3151,7 @@
 20
 22
 83
-4a
+4b
 60
 09
 47
@@ -3191,19 +3191,23 @@
 20
 40
 03
-2a
+2b
 20
 40
 03
-41
+42
 20
 40
 03
-36
+37
 20
 40
 03
-2d
+2e
+20
+40
+02
+ff
 d8
 40
 00
@@ -3227,15 +3231,15 @@
 20
 40
 03
-36
+37
 20
 40
 03
-2d
+2e
 20
 40
 03
-51
+52
 70
 42
 12
@@ -3287,7 +3291,7 @@
 c2
 80
 03
-2d
+2e
 20
 60
 00
@@ -3367,7 +3371,7 @@
 20
 40
 03
-41
+42
 20
 20
 65
@@ -3375,7 +3379,7 @@
 20
 40
 03
-47
+48
 20
 40
 03
@@ -3409,9 +3413,9 @@
 02
 ff
 20
-00
-00
-64
+40
+69
+ac
 20
 40
 65
@@ -3429,13 +3433,9 @@
 65
 56
 20
-00
-00
-64
 20
-60
-00
-00
+69
+ac
 70
 0a
 a2
@@ -3443,7 +3443,7 @@
 20
 20
 03
-52
+53
 70
 4a
 c6
@@ -3670,12 +3670,12 @@
 9b
 20
 20
-02
-de
+03
+e2
 20
 40
 03
-28
+29
 da
 60
 4a
@@ -5608,14 +5608,10 @@
 40
 04
 f1
-70
-4a
-51
-01
 20
 40
-02
-de
+03
+e2
 20
 20
 42
@@ -5711,7 +5707,7 @@
 c2
 82
 85
-b1
+b0
 20
 40
 06
@@ -5723,7 +5719,7 @@
 24
 3a
 05
-9b
+9a
 68
 00
 84
@@ -5731,7 +5727,7 @@
 c3
 02
 05
-9f
+9e
 68
 00
 82
@@ -5739,7 +5735,7 @@
 20
 3a
 05
-9f
+9e
 20
 20
 56
@@ -5767,7 +5763,7 @@
 c0
 82
 85
-a2
+a1
 70
 47
 8e
@@ -5835,7 +5831,7 @@
 20
 40
 05
-a5
+a4
 20
 20
 06
@@ -5923,7 +5919,7 @@
 c0
 01
 85
-c9
+c8
 20
 20
 56
@@ -5935,11 +5931,11 @@
 c0
 00
 05
-cd
+cc
 c0
 00
 85
-d4
+d3
 20
 20
 5c
@@ -5999,11 +5995,11 @@
 c0
 02
 05
-dd
+dc
 c0
 03
 05
-e1
+e0
 20
 20
 56
@@ -6015,7 +6011,7 @@
 20
 40
 05
-b3
+b2
 20
 40
 7e
@@ -6031,11 +6027,11 @@
 c0
 00
 85
-e5
+e4
 c0
 02
 85
-e7
+e6
 20
 20
 5a
@@ -6067,7 +6063,7 @@
 20
 40
 05
-ef
+ee
 d8
 e0
 00
@@ -6107,7 +6103,7 @@
 20
 37
 05
-f7
+f6
 24
 36
 d8
@@ -6128,8 +6124,12 @@
 00
 c6
 c5
-c0
-81
+2f
+e0
+06
+03
+24
+20
 ab
 de
 20
@@ -6867,7 +6867,7 @@
 20
 40
 03
-28
+29
 58
 00
 1f
@@ -7316,8 +7316,8 @@
 20
 07
 1f
-05
-73
+5f
+98
 aa
 55
 08
@@ -9185,7 +9185,7 @@
 20
 20
 05
-d0
+cf
 70
 4a
 c0
@@ -9301,7 +9301,7 @@
 20
 40
 03
-51
+52
 68
 10
 80
@@ -10961,7 +10961,7 @@
 20
 40
 03
-4a
+4b
 68
 00
 c2
@@ -11397,11 +11397,15 @@
 c0
 08
 00
-0d
+0e
 c0
 08
 80
-04
+1b
+c0
+09
+00
+05
 20
 60
 00
@@ -11442,50 +11446,18 @@
 20
 7d
 f4
-78
-54
-7c
-00
-20
-40
-62
-c1
 68
 00
 80
 48
-20
-7a
-00
-00
-c2
-83
-80
-16
-c0
-01
-80
-26
-c0
-18
-80
-22
-c0
-0b
-80
-24
-20
-20
-60
-10
 c0
 42
 00
-19
+12
 c0
 41
 80
-1c
+15
 20
 20
 60
@@ -11493,7 +11465,7 @@
 20
 40
 00
-1f
+18
 68
 00
 80
@@ -11505,7 +11477,7 @@
 20
 40
 00
-1f
+18
 68
 00
 80
@@ -11526,22 +11498,6 @@
 20
 61
 24
-70
-4a
-54
-01
-20
-20
-61
-c3
-70
-4a
-5c
-04
-20
-20
-61
-a4
 18
 00
 7e
@@ -11573,7 +11529,7 @@
 c0
 17
 00
-2f
+24
 20
 20
 60
@@ -11646,6 +11602,50 @@
 00
 00
 00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
 20
 20
 00
@@ -11906,5 +11906,5 @@
 55
 00
 00
-fe
-4e
+75
+77
Index: output/program.lis
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/output/program.lis	(revision 1737)
+++ /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/output/program.lis	(working copy)
@@ -14,7 +14,7 @@
 0005 6800c685 fetch 1 ,mem_ui_button_timeout 
 0006 6000c6da store 1 ,mem_combination_ui_button_count 
 0007 2040049b call p_mouse_bt_discovery_button_up_init 
-0008 20400328 call p_mouse_spi_init 
+0008 20400329 call p_mouse_spi_init 
 0009 204006c8 call p_drawing_optima_init 
 000a 20400014 call p_mouse_cb_fuction 
 000b 20400025 call p_mouse_wakeup_from_power 
@@ -98,16 +98,16 @@
 004f 20202a8e branch loop 
 
 pf_patch_ext:
-0050 c01c857c beq patch27_1 ,p_le_slave_match 
-0051 c0218584 beq patch28_3 ,p_le_next_adv_channel 
-0052 c025058a beq patch29_2 ,p_le_receive_skip 
-0053 c02b858d beq patch2a_7 ,p_le_update_param 
-0054 c02c858f beq patch2b_1 ,p_le_update_channel_map 
-0055 c0318591 beq patch2c_3 ,p_le_prepare_tx 
-0056 c03305ba beq patch2c_6 ,p_le_parse 
-0057 c03385d9 beq patch2c_7 ,p_le_parse_l2cap 
-0058 c03505e9 beq patch2d_2 ,p_le_adv_not_match 
-0059 c03b85f4 beq patch2e_7 ,p_le_lpm_setmult 
+0050 c01c857b beq patch27_1 ,p_le_slave_match 
+0051 c0218583 beq patch28_3 ,p_le_next_adv_channel 
+0052 c0250589 beq patch29_2 ,p_le_receive_skip 
+0053 c02b858c beq patch2a_7 ,p_le_update_param 
+0054 c02c858e beq patch2b_1 ,p_le_update_channel_map 
+0055 c0318590 beq patch2c_3 ,p_le_prepare_tx 
+0056 c03305b9 beq patch2c_6 ,p_le_parse 
+0057 c03385d8 beq patch2c_7 ,p_le_parse_l2cap 
+0058 c03505e8 beq patch2d_2 ,p_le_adv_not_match 
+0059 c03b85f3 beq patch2e_7 ,p_le_lpm_setmult 
 005a c07d0612 beq patch3f_2 ,p_check_51cmd_once_continue 
 005b c04605ff beq patch31_4 ,p_twspi_reset 
 005c c046860b beq patch31_5 ,p_spid_init 
@@ -954,7 +954,7 @@
 02d5 20600000 rtn 
 
 p_device_wake_from_lpm:
-02d6 20200328 branch p_mouse_spi_init 
+02d6 20200329 branch p_mouse_spi_init 
 
 p_mouse_tx_power_init:
 02d7 6800cc4d fetch 1 ,mem_tx_power_temp 
@@ -966,11 +966,11 @@
 02db 20204360 branch mouse_cheak_select_device_by_switch + 1 
 
 p_mouse4_0_check_reconn_target:
-02dc 7011c611 jam zcode_11 ,mem_zcode_temp_param0 
+02dc 7011c612 jam zcode_12 ,mem_zcode_temp_param0 
 02dd 2020069b branch p_zcode_entrance 
 
 p_mouse_init_sunt:
-02de 20400328 call p_mouse_spi_init 
+02de 20400329 call p_mouse_spi_init 
 02df 204040c0 call mouse_spi_sdio_gpio_pollup 
 
 p_mouse_init_sensor:
@@ -1042,7 +1042,7 @@
 030f 68014778 fetch 2 ,mem_store_flag 
 0310 d840aa55 arg eeprom_init_flag ,temp 
 0311 98467c00 isub temp ,null 
-0312 2022834a branch p_mouse_load_flash_device_info ,zero 
+0312 2022834b branch p_mouse_load_flash_device_info ,zero 
 0313 60094778 storet 2 ,mem_store_flag 
 0314 244282da ncall p_mouse_check_select_device_by_switch ,zero 
 0315 2040441c call mouse_ble_init_address 
@@ -1054,92 +1054,92 @@
 
 p_mouse_store_flash_device_info:
 031b 2040035a call p_flash_release_deep_power_down 
-031c 2040032a call p_flash_erase_sector 
-031d 20400341 call p_mouse_information_flash_parameters 
-031e 20400336 call p_spid_write_flash 
-031f 2040032d call p_wait_flash_done 
+031c 2040032b call p_flash_erase_sector 
+031d 20400342 call p_mouse_information_flash_parameters 
+031e 20400337 call p_spid_write_flash 
+031f 2040032e call p_wait_flash_done 
 
 p_mouse_store_flash_user_data:
-0320 d8400007 arg 7 ,temp 
-0321 da204ac1 arg mem_mouse_flash_start_temp ,rega 
-0322 da40005f arg mouse_user_data_offect ,regb 
-0323 6801c700 fetch 3 ,mem_flash_base 
-0324 9a40fe00 iadd regb ,pdata 
-0325 20400336 call p_spid_write_flash 
-0326 2040032d call p_wait_flash_done 
-0327 20400351 call p_flash_deep_power_down 
+0320 204002ff call p_spid_init_flash 
+0321 d8400007 arg 7 ,temp 
+0322 da204ac1 arg mem_mouse_flash_start_temp ,rega 
+0323 da40005f arg mouse_user_data_offect ,regb 
+0324 6801c700 fetch 3 ,mem_flash_base 
+0325 9a40fe00 iadd regb ,pdata 
+0326 20400337 call p_spid_write_flash 
+0327 2040032e call p_wait_flash_done 
+0328 20400352 call p_flash_deep_power_down 
 
 p_mouse_spi_init:
-0328 70421276 jam 0x76 ,mem_spi_init_clk 
-0329 20203d36 branch mouse_spi_init 
+0329 70421276 jam 0x76 ,mem_spi_init_clk 
+032a 20203d36 branch mouse_spi_init 
 
 p_flash_erase_sector:
-032a 6801c700 fetch 3 ,mem_flash_base 
-032b 6001c232 store 3 ,mem_spi_write_addr 
-032c 2040652a call flash_erase_sector + 2 
+032b 6801c700 fetch 3 ,mem_flash_base 
+032c 6001c232 store 3 ,mem_spi_write_addr 
+032d 2040652a call flash_erase_sector + 2 
 
 p_wait_flash_done:
-032d 580186a0 setarg 100000 
-032e 20402a8f call sleep 
-032f 2040650b call spid_unlock_flash 
-0330 580001fa setarg mem_spid_rbuf 
-0331 6011008c hstore 2 ,core_spid_rxaddr 
-0332 58000005 setarg flash_read_satus 
-0333 204064f3 call spid_read_reg 
-0334 c280032d bbit1 flash_status_wip ,p_wait_flash_done 
-0335 20600000 rtn 
+032e 580186a0 setarg 100000 
+032f 20402a8f call sleep 
+0330 2040650b call spid_unlock_flash 
+0331 580001fa setarg mem_spid_rbuf 
+0332 6011008c hstore 2 ,core_spid_rxaddr 
+0333 58000005 setarg flash_read_satus 
+0334 204064f3 call spid_read_reg 
+0335 c280032e bbit1 flash_status_wip ,p_wait_flash_done 
+0336 20600000 rtn 
 
 p_spid_write_flash:
-0336 1fe22600 copy pdata ,regc 
-0337 1a227e00 copy rega ,pdata 
-0338 1fe0fffc increase -4 ,pdata 
-0339 1fe22400 copy pdata ,regb 
-033a ea420000 ifetch 4 ,regb 
-033b 60024a98 store 4 ,mem_write_flash_head_temp 
-033c 1a627e00 copy regc ,pdata 
-033d 20406552 call spid_write_flash 
-033e 68024a98 fetch 4 ,mem_write_flash_head_temp 
-033f e2420000 istore 4 ,regb 
-0340 20600000 rtn 
+0337 1fe22600 copy pdata ,regc 
+0338 1a227e00 copy rega ,pdata 
+0339 1fe0fffc increase -4 ,pdata 
+033a 1fe22400 copy pdata ,regb 
+033b ea420000 ifetch 4 ,regb 
+033c 60024a98 store 4 ,mem_write_flash_head_temp 
+033d 1a627e00 copy regc ,pdata 
+033e 20406552 call spid_write_flash 
+033f 68024a98 fetch 4 ,mem_write_flash_head_temp 
+0340 e2420000 istore 4 ,regb 
+0341 20600000 rtn 
 
 p_mouse_information_flash_parameters:
-0341 5800477f setarg mem_mouse_information_end 
-0342 d8404720 arg mem_mouse_information_start ,temp 
-0343 98460400 isub temp ,temp 
-0344 6801c700 fetch 3 ,mem_flash_base 
-0345 da204720 arg mem_mouse_information_start ,rega 
-0346 20600000 rtn 
+0342 5800477f setarg mem_mouse_information_end 
+0343 d8404720 arg mem_mouse_information_start ,temp 
+0344 98460400 isub temp ,temp 
+0345 6801c700 fetch 3 ,mem_flash_base 
+0346 da204720 arg mem_mouse_information_start ,rega 
+0347 20600000 rtn 
 
 p_mouse_read_flash:
-0347 2040035a call p_flash_release_deep_power_down 
-0348 20400341 call p_mouse_information_flash_parameters 
-0349 20206562 branch spid_read_flash 
+0348 2040035a call p_flash_release_deep_power_down 
+0349 20400342 call p_mouse_information_flash_parameters 
+034a 20206562 branch spid_read_flash 
 
 p_mouse_load_flash_device_info:
-034a 20400347 call p_mouse_read_flash 
-034b 20400364 call p_mouse_load_flash_user_data 
-034c 204002da call p_mouse_check_select_device_by_switch 
-034d 2040431a call mouse_select_reconn_device 
-034e 6802477b fetch 4 ,mem_mouse_24g_addr 
-034f 60024bbe store 4 ,mem_24g_addr 
-0350 20600000 rtn 
+034b 20400348 call p_mouse_read_flash 
+034c 20400364 call p_mouse_load_flash_user_data 
+034d 204002da call p_mouse_check_select_device_by_switch 
+034e 2040431a call mouse_select_reconn_device 
+034f 6802477b fetch 4 ,mem_mouse_24g_addr 
+0350 60024bbe store 4 ,mem_24g_addr 
+0351 20600000 rtn 
 
 p_flash_deep_power_down:
-0351 700aa2b9 jam flash_command_deep_power_down ,mem_temp 
+0352 700aa2b9 jam flash_command_deep_power_down ,mem_temp 
 
 p_spid_write_flash_cmd:
-0352 204002ff call p_spid_init_flash 
-0353 20000064 nop 100 
-0354 2040650b call spid_unlock_flash 
-0355 da204a98 arg mem_write_flash_head_temp ,rega 
-0356 68088aa2 fetcht 1 ,mem_temp 
-0357 20406556 call spid_write_flash_common 
-0358 20000064 nop 100 
-0359 20600000 rtn 
+0353 204002ff call p_spid_init_flash 
+0354 204069ac call delay_nop100 
+0355 2040650b call spid_unlock_flash 
+0356 da204a98 arg mem_write_flash_head_temp ,rega 
+0357 68088aa2 fetcht 1 ,mem_temp 
+0358 20406556 call spid_write_flash_common 
+0359 202069ac branch delay_nop100 
 
 p_flash_release_deep_power_down:
 035a 700aa2ab jam flash_command_release_deep_power_down ,mem_temp 
-035b 20200352 branch p_spid_write_flash_cmd 
+035b 20200353 branch p_spid_write_flash_cmd 
 
 p_mouse_fast_conn_disable:
 035c 704ac65a jam 0x5a ,mem_mouse_fast_conn_flag 
@@ -1222,10 +1222,10 @@
 0391 58000000 setarg 0 
 0392 6000ca93 store 1 ,mem_mouse_long_mult_flag 
 0393 6002469b store 4 ,mem_mouse_x 
-0394 202002de branch p_mouse_init_sunt 
+0394 202003e2 branch p_mouse_init_sensor_reset 
 
 p_mouse_sensor_poweron:
-0395 20400328 call p_mouse_spi_init 
+0395 20400329 call p_mouse_spi_init 
 0396 da604aef arg mem_sensor_poweron_init ,regc 
 0397 204002ed call p_sensor_wr_seq 
 0398 20200399 branch p_mouse_dpi_config 
@@ -1953,191 +1953,191 @@
 
 p_mouse_stop_discovery:
 0578 204004f1 call p_mouse_discovey_led_blink_off 
-0579 704a5101 jam 1 ,mem_mouse_init_sensor_reset_flag 
-057a 204002de call p_mouse_init_sunt 
-057b 202042cb branch mouse_stop_discovery + 1 
+0579 204003e2 call p_mouse_init_sensor_reset 
+057a 202042cb branch mouse_stop_discovery + 1 
 
 p_le_slave_match:
-057c 6800c50f fetch 1 ,mem_le_md_count 
-057d 1fe0fe01 pincrease 1 
-057e 6000c50f store 1 ,mem_le_md_count 
-057f c0065395 beq le_md_max_count ,le_slave_cont 
-0580 204055aa call le_acknowledge 
-0581 2040561e call le_prepare_tx 
-0582 2040063b call power_ctrl_start 
-0583 2020538f branch le_slave_match + 7 
+057b 6800c50f fetch 1 ,mem_le_md_count 
+057c 1fe0fe01 pincrease 1 
+057d 6000c50f store 1 ,mem_le_md_count 
+057e c0065395 beq le_md_max_count ,le_slave_cont 
+057f 204055aa call le_acknowledge 
+0580 2040561e call le_prepare_tx 
+0581 2040063b call power_ctrl_start 
+0582 2020538f branch le_slave_match + 7 
 
 p_le_next_adv_channel:
-0584 68008016 fetch 1 ,mem_le_ch_mapped 
-0585 1fe0fe01 increase 1 ,pdata 
-0586 60008016 store 1 ,mem_le_ch_mapped 
-0587 c1940000 rtnne 40 
-0588 70001625 jam 37 ,mem_le_ch_mapped 
-0589 20600000 rtn 
+0583 68008016 fetch 1 ,mem_le_ch_mapped 
+0584 1fe0fe01 increase 1 ,pdata 
+0585 60008016 store 1 ,mem_le_ch_mapped 
+0586 c1940000 rtnne 40 
+0587 70001625 jam 37 ,mem_le_ch_mapped 
+0588 20600000 rtn 
 
 p_le_receive_skip:
-058a 204029bb call save_rssi 
-058b 2040005e call p_rssi_signal 
-058c 202054a3 branch le_receive_skip + 2 
+0589 204029bb call save_rssi 
+058a 2040005e call p_rssi_signal 
+058b 202054a3 branch le_receive_skip + 2 
 
 p_le_update_param:
-058d 7011c620 jam zcode_20 ,mem_zcode_temp_param0 
-058e 2020069b branch p_zcode_entrance 
+058c 7011c620 jam zcode_20 ,mem_zcode_temp_param0 
+058d 2020069b branch p_zcode_entrance 
 
 p_le_update_channel_map:
-058f 7011c621 jam zcode_21 ,mem_zcode_temp_param0 
-0590 2020069b branch p_zcode_entrance 
+058e 7011c621 jam zcode_21 ,mem_zcode_temp_param0 
+058f 2020069b branch p_zcode_entrance 
 
 p_le_prepare_tx:
-0591 68008456 fetch 1 ,mem_le_arq 
-0592 c28285b1 bbit1 wak ,p_le_prepare_tx_wak 
-0593 2040062d call power_ctrl_pac_succ_incrs 
-0594 6800c78e fetch 1 ,mem_empty_count 
-0595 243a059b nbranch p_le_send_empyt ,blank 
-0596 6800843f fetch 1 ,mem_le_state 
-0597 c302059f bbit0 lestate_encryption ,p_le_tx_4 
-0598 680082da fetch 1 ,mem_le_rxbuf + 1 
-0599 203a059f branch p_le_tx_4 ,blank 
-059a 20205664 branch le_send_empty 
+0590 68008456 fetch 1 ,mem_le_arq 
+0591 c28285b0 bbit1 wak ,p_le_prepare_tx_wak 
+0592 2040062d call power_ctrl_pac_succ_incrs 
+0593 6800c78e fetch 1 ,mem_empty_count 
+0594 243a059a nbranch p_le_send_empyt ,blank 
+0595 6800843f fetch 1 ,mem_le_state 
+0596 c302059e bbit0 lestate_encryption ,p_le_tx_4 
+0597 680082da fetch 1 ,mem_le_rxbuf + 1 
+0598 203a059e branch p_le_tx_4 ,blank 
+0599 20205664 branch le_send_empty 
 
 p_le_send_empyt:
-059b 6800c78e fetch 1 ,mem_empty_count 
-059c 1fe0ffff increase -1 ,pdata 
-059d 6000c78e store 1 ,mem_empty_count 
-059e 20205664 branch le_send_empty 
+059a 6800c78e fetch 1 ,mem_empty_count 
+059b 1fe0ffff increase -1 ,pdata 
+059c 6000c78e store 1 ,mem_empty_count 
+059d 20205664 branch le_send_empty 
 
 p_le_tx_4:
-059f 6800c4c4 fetch 1 ,mem_le_pairing_state 
-05a0 c08285a2 bne flag_le_pairing_after_auth ,p_in_le_tx_4 
-05a1 70478e03 jam 3 ,mem_empty_count 
+059e 6800c4c4 fetch 1 ,mem_le_pairing_state 
+059f c08285a1 bne flag_le_pairing_after_auth ,p_in_le_tx_4 
+05a0 70478e03 jam 3 ,mem_empty_count 
 
 p_in_le_tx_4:
-05a2 20405892 call le_fifo_check_nearly_full 
-05a3 205a03ce call p_mouse_data_pull ,blank 
-05a4 20205622 branch le_prepare_tx + 4 
+05a1 20405892 call le_fifo_check_nearly_full 
+05a2 205a03ce call p_mouse_data_pull ,blank 
+05a3 20205622 branch le_prepare_tx + 4 
 
 p_le_check_tx_retransmit_setmd:
-05a5 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-05a6 1fe17e03 and pdata ,0x03 ,pdata 
-05a7 c1818000 rtnne 0x03 
-05a8 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
-05a9 207a0000 rtn blank 
-05aa 6800c3dd fetch 1 ,mem_le_txlen 
-05ab 207a0000 rtn blank 
-05ac 6800c3dc fetch 1 ,mem_le_txheader 
-05ad 79207e04 set1 md ,pdata 
-05ae 6000c3dc store 1 ,mem_le_txheader 
-05af 20405650 call le_set_md 
-05b0 20600000 rtn 
+05a4 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+05a5 1fe17e03 and pdata ,0x03 ,pdata 
+05a6 c1818000 rtnne 0x03 
+05a7 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
+05a8 207a0000 rtn blank 
+05a9 6800c3dd fetch 1 ,mem_le_txlen 
+05aa 207a0000 rtn blank 
+05ab 6800c3dc fetch 1 ,mem_le_txheader 
+05ac 79207e04 set1 md ,pdata 
+05ad 6000c3dc store 1 ,mem_le_txheader 
+05ae 20405650 call le_set_md 
+05af 20600000 rtn 
 
 p_le_prepare_tx_wak:
-05b1 204005a5 call p_le_check_tx_retransmit_setmd 
+05b0 204005a4 call p_le_check_tx_retransmit_setmd 
 
 p_le_power_ctrl_pac_succ_decrs:
-05b2 20200631 branch power_ctrl_pac_succ_decrs 
+05b1 20200631 branch power_ctrl_pac_succ_decrs 
 
 p_mouse_le_reconn_write_enable_timer_reinit:
-05b3 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
-05b4 207a0000 rtn blank 
-05b5 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-05b6 1fe17e03 and pdata ,0x03 ,pdata 
-05b7 c1018000 rtneq 0x03 
-05b8 7046c602 jam 2 ,mem_le_start_encrypt_timer 
-05b9 20600000 rtn 
+05b2 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
+05b3 207a0000 rtn blank 
+05b4 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+05b5 1fe17e03 and pdata ,0x03 ,pdata 
+05b6 c1018000 rtneq 0x03 
+05b7 7046c602 jam 2 ,mem_le_start_encrypt_timer 
+05b8 20600000 rtn 
 
 p_le_parse:
-05ba c6078000 rtnmark1 mark_old_packet 
-05bb 20405890 call le_fifo_check_full 
-05bc 247a0000 nrtn blank 
-05bd 680082d9 fetch 1 ,mem_le_rxbuf 
-05be 1fe17e03 and pdata ,0x3 ,pdata 
-05bf 6000c50c store 1 ,mem_le_packet_llid 
-05c0 e8c08000 ifetch 1 ,contr 
-05c1 1fe17e1f and pdata ,0x1f ,pdata 
-05c2 6000c50b store 1 ,mem_le_packet_size 
-05c3 207a0000 rtn blank 
-05c4 18c27e00 copy contr ,pdata 
-05c5 6001450d store 2 ,mem_le_payload_ptr 
-05c6 6800c50c fetch 1 ,mem_le_packet_llid 
-05c7 c00185c9 beq llid_le_ll ,p_le_parse_ll 
-05c8 2020568d branch le_parse_l2cap 
+05b9 c6078000 rtnmark1 mark_old_packet 
+05ba 20405890 call le_fifo_check_full 
+05bb 247a0000 nrtn blank 
+05bc 680082d9 fetch 1 ,mem_le_rxbuf 
+05bd 1fe17e03 and pdata ,0x3 ,pdata 
+05be 6000c50c store 1 ,mem_le_packet_llid 
+05bf e8c08000 ifetch 1 ,contr 
+05c0 1fe17e1f and pdata ,0x1f ,pdata 
+05c1 6000c50b store 1 ,mem_le_packet_size 
+05c2 207a0000 rtn blank 
+05c3 18c27e00 copy contr ,pdata 
+05c4 6001450d store 2 ,mem_le_payload_ptr 
+05c5 6800c50c fetch 1 ,mem_le_packet_llid 
+05c6 c00185c8 beq llid_le_ll ,p_le_parse_ll 
+05c7 2020568d branch le_parse_l2cap 
 
 p_le_parse_ll:
-05c9 680082db fetch 1 ,mem_le_rxbuf + 2 
-05ca c00005cd beq ll_connection_update_req ,p_le_parse_connection_update_req 
-05cb c00085d4 beq ll_channel_map_req ,p_le_parse_channel_map_req 
-05cc 20205c65 branch le_parse_ll + 1 
+05c8 680082db fetch 1 ,mem_le_rxbuf + 2 
+05c9 c00005cc beq ll_connection_update_req ,p_le_parse_connection_update_req 
+05ca c00085d3 beq ll_channel_map_req ,p_le_parse_channel_map_req 
+05cb 20205c65 branch le_parse_ll + 1 
 
 p_le_parse_connection_update_req:
-05cd 20405c7b call le_parse_connection_update_req 
-05ce 6800cab2 fetch 1 ,mem_mouse_le_updata_not_accepted_flag 
-05cf 207a0000 rtn blank 
+05cc 20405c7b call le_parse_connection_update_req 
+05cd 6800cab2 fetch 1 ,mem_mouse_le_updata_not_accepted_flag 
+05ce 207a0000 rtn blank 
 
 p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset:
-05d0 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
-05d1 6000c172 store 1 ,mem_lpm_mult 
-05d2 6000c7c5 store 1 ,mem_lpm_mult_init 
-05d3 20600000 rtn 
+05cf 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
+05d0 6000c172 store 1 ,mem_lpm_mult 
+05d1 6000c7c5 store 1 ,mem_lpm_mult_init 
+05d2 20600000 rtn 
 
 p_le_parse_channel_map_req:
-05d4 e8c28000 ifetch 5 ,contr 
-05d5 6002c3ce store 5 ,mem_le_new_map 
-05d6 e8c10000 ifetch 2 ,contr 
-05d7 6001045f store 2 ,mem_le_instant 
-05d8 20205c8a branch le_parse_channel_map_req + 7 
+05d3 e8c28000 ifetch 5 ,contr 
+05d4 6002c3ce store 5 ,mem_le_new_map 
+05d5 e8c10000 ifetch 2 ,contr 
+05d6 6001045f store 2 ,mem_le_instant 
+05d7 20205c8a branch le_parse_channel_map_req + 7 
 
 p_le_parse_l2cap:
-05d9 e8c10000 ifetch 2 ,contr 
-05da c00205dd beq le_l2cap_cid_att ,p_le_parse_att 
-05db c00305e1 beq le_l2cap_cid_smp ,p_le_parse_smp 
-05dc 20205698 branch le_parse_l2cap + 11 
+05d8 e8c10000 ifetch 2 ,contr 
+05d9 c00205dc beq le_l2cap_cid_att ,p_le_parse_att 
+05da c00305e0 beq le_l2cap_cid_smp ,p_le_parse_smp 
+05db 20205698 branch le_parse_l2cap + 11 
 
 p_le_parse_att:
-05dd 20407ea5 call store_contr 
-05de 204005b3 call p_mouse_le_reconn_write_enable_timer_reinit 
-05df 20407e9f call get_contr 
-05e0 202058ab branch le_parse_att 
+05dc 20407ea5 call store_contr 
+05dd 204005b2 call p_mouse_le_reconn_write_enable_timer_reinit 
+05de 20407e9f call get_contr 
+05df 202058ab branch le_parse_att 
 
 p_le_parse_smp:
-05e1 e8c08000 ifetch 1 ,contr 
-05e2 c00085e5 beq smp_pairing_request ,p_le_parse_smp_pairing_request 
-05e3 c00285e7 beq smp_pairing_failed ,p_le_parse_smp_pairing_failed 
-05e4 20205af5 branch le_parse_smp + 1 
+05e0 e8c08000 ifetch 1 ,contr 
+05e1 c00085e4 beq smp_pairing_request ,p_le_parse_smp_pairing_request 
+05e2 c00285e6 beq smp_pairing_failed ,p_le_parse_smp_pairing_failed 
+05e3 20205af5 branch le_parse_smp + 1 
 
 p_le_parse_smp_pairing_request:
-05e5 704abf01 jam 1 ,mem_le_send_security_request_flag 
-05e6 20205b09 branch le_parse_smp_pairing_request 
+05e4 704abf01 jam 1 ,mem_le_send_security_request_flag 
+05e5 20205b09 branch le_parse_smp_pairing_request 
 
 p_le_parse_smp_pairing_failed:
-05e7 7011c682 jam zcode_82 ,mem_zcode_temp_param0 
-05e8 2020069b branch p_zcode_entrance 
+05e6 7011c682 jam zcode_82 ,mem_zcode_temp_param0 
+05e7 2020069b branch p_zcode_entrance 
 
 p_le_adv_not_match:
-05e9 68008016 fetch 1 ,mem_le_ch_mapped 
-05ea c093d6f2 bne 39 ,le_adv_loop 
-05eb 204005ef call p_le_adv_random_delay 
-05ec d8e00000 arg le_adv_interval_timer ,queue 
-05ed 68014482 fetch 2 ,mem_le_adv_interval 
-05ee 20207f08 branch timer_init 
+05e8 68008016 fetch 1 ,mem_le_ch_mapped 
+05e9 c093d6f2 bne 39 ,le_adv_loop 
+05ea 204005ee call p_le_adv_random_delay 
+05eb d8e00000 arg le_adv_interval_timer ,queue 
+05ec 68014482 fetch 2 ,mem_le_adv_interval 
+05ed 20207f08 branch timer_init 
 
 p_le_adv_random_delay:
-05ef 180a7e00 random pdata 
-05f0 d84001ff arg 0x1ff ,temp 
-05f1 98417e00 iand temp ,pdata 
-05f2 1fe0fefa add pdata ,250 ,pdata 
-05f3 20203cbe branch delay 
+05ee 180a7e00 random pdata 
+05ef d84001ff arg 0x1ff ,temp 
+05f0 98417e00 iand temp ,pdata 
+05f1 1fe0fefa add pdata ,250 ,pdata 
+05f2 20203cbe branch delay 
 
 p_le_lpm_setmult:
-05f4 7855fc00 disable wake 
-05f5 203705f7 branch p_le_lpm_set_mult_attempt ,attempt 
-05f6 2436d806 nbranch le_lpm_lost ,match 
+05f3 7855fc00 disable wake 
+05f4 203705f6 branch p_le_lpm_set_mult_attempt ,attempt 
+05f5 2436d806 nbranch le_lpm_lost ,match 
 
 p_le_lpm_set_mult_attempt:
-05f7 20402bcb call lpm_match 
-05f8 680140c1 fetch 2 ,mem_rx_window_sniff 
-05f9 6001044d store 2 ,mem_le_receive_window 
-05fa 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-05fb c081abde bne 3 ,lpm_mult_short 
+05f6 20402bcb call lpm_match 
+05f7 680140c1 fetch 2 ,mem_rx_window_sniff 
+05f8 6001044d store 2 ,mem_le_receive_window 
+05f9 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+05fa 2fe00603 compare 3 ,pdata ,3 
+05fb 2420abde nbranch lpm_mult_short ,true 
 05fc 202057fb branch le_lpm_set_mult_attempt + 3 
 
 p_le_mouse_bb_event_connect_complete:
@@ -2397,7 +2397,7 @@
 06b0 680a4aad fetcht 4 ,mem_zcode_head 
 06b1 98467c00 isub temp ,null 
 06b2 242286ab nbranch p_zcode_read_loop ,zero 
-06b3 20400328 call p_mouse_spi_init 
+06b3 20400329 call p_mouse_spi_init 
 06b4 58001f00 setarg mem_zcode_buff 
 06b5 60014199 store 2 ,mem_patch_ptr 
 06b6 70419b40 jam zcode_code_size ,mem_patch_len 
@@ -27877,6 +27877,8 @@
 69a9 68110050 hfetch 2 ,core_clkoff 
 69aa 793ffe0d set0 clock_off_pwm ,pdata 
 69ab 60110050 hstore 2 ,core_clkoff 
+
+delay_nop100:
 69ac 20000064 nop 100 
 69ad 20600000 rtn 
 
@@ -35209,81 +35211,64 @@
 org 0x20001
 
 z_entrance1:
-20001 c008000d  beq zcode_10 ,z_send_lmp
-20002 c0088004  beq zcode_11 ,z_mouse4_0_check_reconn_target
-20003 20600000  rtn
+20001 c008000e  beq zcode_10 ,z_send_lmp_escape
+20002 c008801b  beq zcode_11 ,z_send_lmp_accepted
+20003 c0090005  beq zcode_12 ,z_mouse4_0_check_reconn_target
+20004 20600000  rtn
 
 z_mouse4_0_check_reconn_target:
-20004 704abf01  jam 1 ,mem_le_send_security_request_flag
-20005 7047a101  jam 1 ,mem_mouse_le_reconnect_flag
-20006 680146a8  fetch 2 ,mem_mouse_direct_timeout
-20007 600146ae  store 2 ,mem_mouse_direct_timer
-20008 2040045c  call p_mouse_store_eeprom_enable
-20009 20403418  call app_lpm_mult_disable
-2000a d8c04390  arg mem_le_scan_data ,contr
-2000b 20400458  call p_le_adv_data_update
-2000c 20207df4  branch check_51cmd_adv
-
-z_send_lmp:
-2000d 78547c00  disable user
-2000e 204062c1  call lmo_fifo_process
-2000f 68008048  fetch 1 ,mem_lmp_to_send
-20010 207a0000  rtn blank
-20011 c2838016  bbit1 7 ,z_send_lmp_escape
-20012 c0018026  beq lmp_accepted ,z_send_lmp_accepted
-20013 c0188022  beq lmp_setup_complete ,z_send_lmp_setup_complete
-20014 c00b8024  beq lmp_sniff_req ,z_send_lmp_sniff_req
-20015 20206010  branch send_lmp0
+20005 704abf01  jam 1 ,mem_le_send_security_request_flag
+20006 7047a101  jam 1 ,mem_mouse_le_reconnect_flag
+20007 680146a8  fetch 2 ,mem_mouse_direct_timeout
+20008 600146ae  store 2 ,mem_mouse_direct_timer
+20009 2040045c  call p_mouse_store_eeprom_enable
+2000a 20403418  call app_lpm_mult_disable
+2000b d8c04390  arg mem_le_scan_data ,contr
+2000c 20400458  call p_le_adv_data_update
+2000d 20207df4  branch check_51cmd_adv
 
 z_send_lmp_escape:
-20016 c0420019  beq lmp_ext_features_res ,z_send_lmpext_features_res
-20017 c041801c  beq lmp_ext_features_req ,z_send_lmpext_features_req
-20018 2020603f  branch send_lmp_escape
+2000e 68008048  fetch 1 ,mem_lmp_to_send
+2000f c0420012  beq lmp_ext_features_res ,z_send_lmpext_features_res
+20010 c0418015  beq lmp_ext_features_req ,z_send_lmpext_features_req
+20011 2020603f  branch send_lmp_escape
 
 z_send_lmpext_features_res:
-20019 2040001f  call z_check_ssp_enable
-2001a 68008048  fetch 1 ,mem_lmp_to_send
-2001b 20206099  branch send_lmpext_features_res
+20012 20400018  call z_check_ssp_enable
+20013 68008048  fetch 1 ,mem_lmp_to_send
+20014 20206099  branch send_lmpext_features_res
 
 z_send_lmpext_features_req:
-2001c 2040001f  call z_check_ssp_enable
-2001d 68008048  fetch 1 ,mem_lmp_to_send
-2001e 2020610d  branch send_lmpext_features_req
+20015 20400018  call z_check_ssp_enable
+20016 68008048  fetch 1 ,mem_lmp_to_send
+20017 2020610d  branch send_lmpext_features_req
 
 z_check_ssp_enable:
-2001f 6800c65a  fetch 1 ,mem_ssp_enable
-20020 203a612b  branch ssp_disable ,blank
-20021 20206124  branch ssp_enable
-
-z_send_lmp_setup_complete:
-20022 704a5401  jam 1 ,mem_bt_send_lmp_setup_complete
-20023 202061c3  branch send_lmp_setup_complete
-
-z_send_lmp_sniff_req:
-20024 704a5c04  jam 4 ,mem_mouse_bt_send_first_package_timer
-20025 202061a4  branch send_lmp_sniff_req
+20018 6800c65a  fetch 1 ,mem_ssp_enable
+20019 203a612b  branch ssp_disable ,blank
+2001a 20206124  branch ssp_enable
 
 z_send_lmp_accepted:
-20026 18007e02  force 2 ,pdata
-20027 20406298  call msg_send_lmp
-20028 68008049  fetch 1 ,mem_lmi_opcode
-20029 e0a08000  istore 1 ,contw
-2002a 6000ca4f  store 1 ,mem_lmi_opcode_temp
-2002b 204062a7  call send_lmp_follow
-2002c 6800ca4f  fetch 1 ,mem_lmi_opcode_temp
-2002d c017002f  beq lmp_max_slot_req ,z_send_lmp_accepted_max_slot_req
-2002e 20206051  branch send_lmp_accepted + 7
+2001b 18007e02  force 2 ,pdata
+2001c 20406298  call msg_send_lmp
+2001d 68008049  fetch 1 ,mem_lmi_opcode
+2001e e0a08000  istore 1 ,contw
+2001f 6000ca4f  store 1 ,mem_lmi_opcode_temp
+20020 204062a7  call send_lmp_follow
+20021 6800ca4f  fetch 1 ,mem_lmi_opcode_temp
+20022 c0170024  beq lmp_max_slot_req ,z_send_lmp_accepted_max_slot_req
+20023 20206051  branch send_lmp_accepted + 7
 
 z_send_lmp_accepted_max_slot_req:
-2002f 6800ca52  fetch 1 ,mem_bt_rcvd_switch_req_accept
-20030 207a0000  rtn blank
-20031 704a5200  jam 0 ,mem_bt_rcvd_switch_req_accept
-20032 6800ca54  fetch 1 ,mem_bt_send_lmp_setup_complete
-20033 c1810000  rtnne 2
-20034 704a5301  jam 1 ,mem_bt_send_max_slot_req_accept_after_switch
-20035 1c427e00  copy clkn_bt ,pdata
-20036 600204e9  store 4 ,mem_aurand_send_delay_time
-20037 20600000  rtn
+20024 6800ca52  fetch 1 ,mem_bt_rcvd_switch_req_accept
+20025 207a0000  rtn blank
+20026 704a5200  jam 0 ,mem_bt_rcvd_switch_req_accept
+20027 6800ca54  fetch 1 ,mem_bt_send_lmp_setup_complete
+20028 c1810000  rtnne 2
+20029 704a5301  jam 1 ,mem_bt_send_max_slot_req_accept_after_switch
+2002a 1c427e00  copy clkn_bt ,pdata
+2002b 600204e9  store 4 ,mem_aurand_send_delay_time
+2002c 20600000  rtn
 org 0x30001
 
 z_entrance2:
@@ -35381,7 +35366,7 @@
 40011 600146ae  store 2 ,mem_mouse_direct_timer
 40012 2040045c  call p_mouse_store_eeprom_enable
 40013 204043ca  call mouse_bt_discovery_button_down_disable
-40014 2040034a  call p_mouse_load_flash_device_info
+40014 2040034b  call p_mouse_load_flash_device_info
 40015 6800c210  fetch 1 ,mem_xrecord_mode
 40016 1fe67c33  sub pdata ,rec_3_mode ,null
 40017 2042801c  call z3_check_51cmd_adv ,zero
@@ -35797,7 +35782,7 @@
 
 z_mouse_le_conn_param_update_rsp_not_accepted:
 b0017 704ab201  jam 1 ,mem_mouse_le_updata_not_accepted_flag
-b0018 202005d0  branch p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset
+b0018 202005cf  branch p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset
 
 z_mouse_le_bb_disconnected:
 b0019 704ac000  jam 0 ,mem_mouse_le_bb_connected_flag
@@ -35832,7 +35817,7 @@
 b0032 6800c720  fetch 1 ,mem_device_flag
 b0033 1fe67c02  sub pdata ,mode_24g_device ,null
 b0034 2042803e  call z_mouse_select_device_button_gpio_set_suspend ,zero
-b0035 20400351  call p_flash_deep_power_down
+b0035 20400352  call p_flash_deep_power_down
 b0036 68108081  hfetch 1 ,core_gpio_sel1
 b0037 1fe17ef7  and pdata ,0xf7 ,pdata
 b0038 60108081  hstore 1 ,core_gpio_sel1
Index: output/romcode.rom
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/output/romcode.rom	(revision 1737)
+++ /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/output/romcode.rom	(working copy)
@@ -24598,8 +24598,9 @@
 70479f01
 7047a028
 20600000
-c008000d
-c0088004
+c008000e
+c008801b
+c0090005
 20600000
 704abf01
 7047a101
@@ -24610,31 +24611,19 @@
 d8c04390
 20400458
 20207df4
-78547c00
-204062c1
 68008048
-207a0000
-c2838016
-c0018026
-c0188022
-c00b8024
-20206010
-c0420019
-c041801c
+c0420012
+c0418015
 2020603f
-2040001f
+20400018
 68008048
 20206099
-2040001f
+20400018
 68008048
 2020610d
 6800c65a
 203a612b
 20206124
-704a5401
-202061c3
-704a5c04
-202061a4
 18007e02
 20406298
 68008049
@@ -24642,7 +24631,7 @@
 6000ca4f
 204062a7
 6800ca4f
-c017002f
+c0170024
 20206051
 6800ca52
 207a0000
@@ -24722,7 +24711,7 @@
 600146ae
 2040045c
 204043ca
-2040034a
+2040034b
 6800c210
 1fe67c33
 2042801c
@@ -25029,7 +25018,7 @@
 7047c401
 20600000
 704ab201
-202005d0
+202005cf
 704ac000
 58000007
 60014496
@@ -25058,7 +25047,7 @@
 6800c720
 1fe67c02
 2042803e
-20400351
+20400352
 68108081
 1fe17ef7
 60108081
@@ -25098,4 +25087,4 @@
 704a5d00
 2040031b
 202041d9
-0000bd25
+0000cf7a
Index: program/patch.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/program/patch.prog	(revision 1737)
+++ /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/program/patch.prog	(working copy)
@@ -1263,7 +1263,7 @@
 
 ifdef BLE
 p_mouse4_0_check_reconn_target:
-	jam ZCODE_11,mem_zcode_temp_param0
+	jam ZCODE_12,mem_zcode_temp_param0
 	branch p_zcode_entrance
 endif
 
@@ -1362,6 +1362,7 @@
 	call p_wait_flash_done
 	//user flash data
 p_mouse_store_flash_user_data:
+	call p_spid_init_flash
 	arg 7,temp
 	arg mem_mouse_flash_start_temp,rega
 	arg MOUSE_USER_DATA_OFFECT,regb
@@ -1429,13 +1430,12 @@
 	jam FLASH_COMMAND_DEEP_POWER_DOWN,mem_temp
 p_spid_write_flash_cmd:
 	call p_spid_init_flash
-	nop 100
+	call delay_nop100
 	call spid_unlock_flash
 	arg mem_write_flash_head_temp,rega
 	fetcht 1,mem_temp
 	call spid_write_flash_common
-	nop 100
-	rtn
+	branch delay_nop100
 
 p_flash_release_deep_power_down:
 	jam FLASH_COMMAND_RELEASE_DEEP_POWER_DOWN,mem_temp
@@ -1554,8 +1554,8 @@
 	setarg 0
 	store 1,mem_mouse_long_mult_flag
 	store 4,mem_mouse_x
-	branch p_mouse_init_sunt
-	
+	branch p_mouse_init_sensor_reset
+
 p_mouse_sensor_poweron:
 	call p_mouse_spi_init
 	arg mem_sensor_poweron_init,regc
@@ -2585,8 +2585,7 @@
 
 p_mouse_stop_discovery:
 	call p_mouse_discovey_led_blink_off
-	jam 1,mem_mouse_init_sensor_reset_flag
-	call p_mouse_init_sunt		//clear sensor data,confirm the motion pin high
+	call p_mouse_init_sensor_reset		//clear sensor data,confirm the motion pin high
 	branch mouse_stop_discovery+1
 
 ifdef BLE
@@ -2827,7 +2826,8 @@
 	fetch 2,mem_rx_window_sniff
 	store 2,mem_le_receive_window
 	fetch 1,mem_le_connect_status_flag
-	bne 3,lpm_mult_short
+	compare 3,pdata,3
+	nbranch lpm_mult_short,true
 	branch le_lpm_set_mult_attempt+3
 
 p_le_mouse_bb_event_connect_complete:
@@ -2992,9 +2992,45 @@
 	rtn
 
 p_send_lmp:
+	disable user
+	call lmo_fifo_process
+ifdef DEBUGLOG
+ifdef DEBUGLOG_SEND_LMP
+	setarg DEBUGLOG_DTYPE_SEND_LMP
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_lmi_opcode
+	store 1,mem_debuglog_dataval+1
+	fetch 1,mem_lmp_to_send
+	store 1,mem_debuglog_dataval
+	fetch 1,mem_lmp_to_send
+	store 2,mem_debuglog_dataval
+	ncall debuglog_push,blank
+endif
+endif
+	fetch 1,mem_lmp_to_send
+	rtn blank
+	bbit1 7,p_send_lmp_escape
+	beq LMP_ACCEPTED,p_send_lmp_accepted
+	beq LMP_SETUP_COMPLETE,p_send_lmp_setup_complete
+	beq LMP_SNIFF_REQ,p_send_lmp_sniff_req
+	branch send_lmp0
+
+p_send_lmp_escape:
 	jam ZCODE_10,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
+p_send_lmp_accepted:
+	jam ZCODE_11,mem_zcode_temp_param0
+	branch p_zcode_entrance
+
+p_send_lmp_setup_complete:
+	jam 1,mem_bt_send_lmp_setup_complete
+	branch send_lmp_setup_complete
+
+p_send_lmp_sniff_req:
+	jam 4,mem_mouse_bt_send_first_package_timer
+	branch send_lmp_sniff_req
+
 p_process_conn_sm:
 	call lmo_fifo_check
 	nrtn blank
Index: program/peripherals.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/program/peripherals.prog	(revision 1737)
+++ /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/program/peripherals.prog	(working copy)
@@ -2303,6 +2303,7 @@
 	hfetch 2,core_clkoff
 	set0 CLOCK_OFF_PWM,pdata
 	hstore 2,core_clkoff
+delay_nop100:	
 	nop 100
 	rtn
 
Index: program/z.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/program/z.prog	(revision 1737)
+++ /branch/mouse_project/YJX_Project/YJX_1059/SlideSwitch_BH-G600-Desktop/program/z.prog	(working copy)
@@ -85,8 +85,9 @@
 org 0x20001
 
 z_entrance1:
-	beq ZCODE_10,z_send_lmp
-	beq ZCODE_11,z_mouse4_0_check_reconn_target
+	beq ZCODE_10,z_send_lmp_escape
+	beq ZCODE_11,z_send_lmp_accepted
+	beq ZCODE_12,z_mouse4_0_check_reconn_target
 	rtn
 
 z_mouse4_0_check_reconn_target:
@@ -100,32 +101,8 @@
 	call p_le_adv_data_update
 	branch check_51cmd_adv
 
-z_send_lmp:
-	disable user
-	call lmo_fifo_process
-
-ifdef DEBUGLOG
-ifdef DEBUGLOG_SEND_LMP
-	setarg DEBUGLOG_DTYPE_SEND_LMP
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_lmi_opcode
-	store 1,mem_debuglog_dataval+1
-	fetch 1,mem_lmp_to_send
-	store 1,mem_debuglog_dataval
-	fetch 1,mem_lmp_to_send
-	store 2,mem_debuglog_dataval
-	ncall debuglog_push,blank
-endif
-endif
-	
-	fetch 1,mem_lmp_to_send
-	rtn blank
-	bbit1 7,z_send_lmp_escape
-	beq LMP_ACCEPTED,z_send_lmp_accepted
-	beq LMP_SETUP_COMPLETE,z_send_lmp_setup_complete
-	beq LMP_SNIFF_REQ, z_send_lmp_sniff_req
-	branch send_lmp0
 z_send_lmp_escape:
+	fetch 1,mem_lmp_to_send
 	beq LMP_EXT_FEATURES_RES,z_send_lmpext_features_res
 	beq LMP_EXT_FEATURES_REQ,z_send_lmpext_features_req	
 	branch send_lmp_escape
@@ -142,15 +119,6 @@
 	branch ssp_disable,blank
 	branch ssp_enable
 
-z_send_lmp_setup_complete:
-	jam 1,mem_bt_send_lmp_setup_complete
-	branch send_lmp_setup_complete
-
-z_send_lmp_sniff_req:
-	jam 4,mem_mouse_bt_send_first_package_timer
-	branch send_lmp_sniff_req
-	
-
 z_send_lmp_accepted:
 	force 2,pdata
 	call msg_send_lmp
