Index: format/app_dongle.format
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/format/app_dongle.format	(revision 4995)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/format/app_dongle.format	(working copy)
@@ -60,11 +60,12 @@
 64 mem_dg_ms_audio_data_sta
 64 mem_dg_ms_audio_data_last
 65 mem_dg_ms_audio_data
-//64 mem_dg_ms_protocol_data_sta
-//64 mem_dg_ms_protocol_data_last
+64 mem_dg_ms_nor_protocol_data_sta
+64 mem_dg_ms_nor_protocol_data_last
 65 mem_dg_ms_protocol_data
 1 mem_usb_ep3_data
 8 mem_usb_ep3_fifo
+0 mem_dg_device_param_end
 )
 
 (
Index: output/eeprom.dat
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/eeprom.dat	(revision 4995)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-62
+ce
 11
 c2
 84
@@ -1526,8 +1526,8 @@
 65
 da
 20
-4a
-82
+4b
+02
 20
 40
 7d
@@ -1646,8 +1646,8 @@
 fb
 da
 20
-4a
-82
+4b
+02
 20
 40
 7d
@@ -1686,8 +1686,8 @@
 0d
 da
 20
-4a
-82
+4b
+02
 20
 40
 7d
@@ -1697,8 +1697,8 @@
 00
 00
 70
-4a
-81
+4b
+01
 00
 c0
 18
@@ -1747,7 +1747,7 @@
 6f
 e0
 ca
-40
+c0
 20
 7a
 00
@@ -1759,7 +1759,7 @@
 d8
 c0
 4a
-41
+c1
 20
 40
 01
@@ -1767,7 +1767,7 @@
 d8
 a0
 4a
-40
+c0
 20
 20
 01
@@ -3107,7 +3107,7 @@
 58
 00
 04
-47
+62
 67
 e1
 45
@@ -3732,8 +3732,8 @@
 e0
 c6
 11
-c1
-80
+24
+7a
 00
 00
 6f
@@ -4012,6 +4012,10 @@
 20
 35
 a9
+70
+46
+11
+00
 6f
 e0
 c9
@@ -4019,23 +4023,23 @@
 c2
 83
 04
-11
+13
 c2
 83
 84
-11
+1d
 c2
 82
 84
-1c
+37
 c2
 82
 04
-1b
+36
 c2
 81
 84
-39
+54
 6f
 e0
 c5
@@ -4047,11 +4051,11 @@
 20
 22
 84
-01
+03
 20
 40
 04
-01
+03
 6f
 e0
 c5
@@ -4087,19 +4091,23 @@
 c2
 83
 04
-11
+13
+c2
+83
+84
+1d
 c2
 82
 84
-1c
+37
 c2
 82
 04
-1b
+36
 c2
 81
 84
-39
+54
 20
 60
 00
@@ -4170,11 +4178,11 @@
 36
 70
 4a
-40
+c0
 40
 70
 4a
-41
+c1
 c0
 6f
 20
@@ -4191,7 +4199,7 @@
 d8
 a0
 4a
-42
+c2
 20
 40
 7c
@@ -4201,13 +4209,113 @@
 03
 c8
 70
-4a
-81
+4b
+01
 31
 20
 20
 04
-3e
+59
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+d8
+c0
+49
+2b
+d8
+a0
+4a
+40
+20
+40
+7c
+da
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+da
+40
+4a
+80
+da
+20
+4a
+40
+20
+40
+7d
+64
+24
+42
+84
+2d
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+d8
+c0
+4a
+40
+d8
+a0
+4a
+80
+20
+20
+7c
+da
+70
+4a
+c0
+40
+70
+4a
+c1
+cc
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+d8
+c0
+4a
+40
+d8
+a0
+4a
+c2
+20
+40
+7c
+da
+20
+40
+03
+c8
+20
+20
+04
+1b
 20
 60
 00
@@ -4255,7 +4363,7 @@
 24
 42
 84
-2c
+47
 6f
 20
 c5
@@ -4321,13 +4429,13 @@
 03
 c8
 70
-4a
-81
+4b
+01
 30
 20
 20
 04
-3e
+59
 6f
 e0
 c7
@@ -4358,8 +4466,8 @@
 00
 da
 20
-4a
-82
+4b
+02
 20
 40
 7d
@@ -4370,16 +4478,16 @@
 00
 6f
 e0
-ca
-81
+cb
+01
 67
 e0
 86
 6f
 da
 20
-4a
-82
+4b
+02
 20
 20
 7d
@@ -4391,15 +4499,15 @@
 c0
 00
 04
-4c
+67
 c0
 01
 04
-52
+6d
 c0
 01
 84
-55
+70
 20
 20
 33
@@ -4452,8 +4560,8 @@
 20
 49
 07
-2a
-a4
+b2
+48
 aa
 55
 40
@@ -5075,116 +5183,8 @@
 55
 d8
 7e
-5a
-3b
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+de
+1f
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-0a
-96
+57
+c4
Index: output/memmap.format
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/memmap.format	(revision 4995)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/memmap.format	(working copy)
@@ -1505,9 +1505,12 @@
 0x497f mem_dg_ms_audio_data_sta
 0x49bf mem_dg_ms_audio_data_last
 0x49ff mem_dg_ms_audio_data
-0x4a40 mem_dg_ms_protocol_data
-0x4a81 mem_usb_ep3_data
-0x4a82 mem_usb_ep3_fifo
+0x4a40 mem_dg_ms_nor_protocol_data_sta
+0x4a80 mem_dg_ms_nor_protocol_data_last
+0x4ac0 mem_dg_ms_protocol_data
+0x4b01 mem_usb_ep3_data
+0x4b02 mem_usb_ep3_fifo
+0x4b0a mem_dg_device_param_end
 0x45d3 mem_rssi_hex_received
 0x45d4 mem_24g_pair_sm
 0x45d5 mem_24g_pair_no_ack
Index: output/otp.dat
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/otp.dat	(revision 4995)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-62
+ce
 11
 c2
 84
@@ -1535,8 +1535,8 @@
 65
 da
 20
-4a
-82
+4b
+02
 20
 40
 7d
@@ -1655,8 +1655,8 @@
 fb
 da
 20
-4a
-82
+4b
+02
 20
 40
 7d
@@ -1695,8 +1695,8 @@
 0d
 da
 20
-4a
-82
+4b
+02
 20
 40
 7d
@@ -1706,8 +1706,8 @@
 00
 00
 70
-4a
-81
+4b
+01
 00
 c0
 18
@@ -1756,7 +1756,7 @@
 6f
 e0
 ca
-40
+c0
 20
 7a
 00
@@ -1768,7 +1768,7 @@
 d8
 c0
 4a
-41
+c1
 20
 40
 01
@@ -1776,7 +1776,7 @@
 d8
 a0
 4a
-40
+c0
 20
 20
 01
@@ -3116,7 +3116,7 @@
 58
 00
 04
-47
+62
 67
 e1
 45
@@ -3741,8 +3741,8 @@
 e0
 c6
 11
-c1
-80
+24
+7a
 00
 00
 6f
@@ -4021,6 +4021,10 @@
 20
 35
 a9
+70
+46
+11
+00
 6f
 e0
 c9
@@ -4028,23 +4032,23 @@
 c2
 83
 04
-11
+13
 c2
 83
 84
-11
+1d
 c2
 82
 84
-1c
+37
 c2
 82
 04
-1b
+36
 c2
 81
 84
-39
+54
 6f
 e0
 c5
@@ -4056,11 +4060,11 @@
 20
 22
 84
-01
+03
 20
 40
 04
-01
+03
 6f
 e0
 c5
@@ -4096,19 +4100,23 @@
 c2
 83
 04
-11
+13
+c2
+83
+84
+1d
 c2
 82
 84
-1c
+37
 c2
 82
 04
-1b
+36
 c2
 81
 84
-39
+54
 20
 60
 00
@@ -4179,11 +4187,11 @@
 36
 70
 4a
-40
+c0
 40
 70
 4a
-41
+c1
 c0
 6f
 20
@@ -4200,7 +4208,7 @@
 d8
 a0
 4a
-42
+c2
 20
 40
 7c
@@ -4210,13 +4218,113 @@
 03
 c8
 70
-4a
-81
+4b
+01
 31
 20
 20
 04
-3e
+59
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+d8
+c0
+49
+2b
+d8
+a0
+4a
+40
+20
+40
+7c
+da
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+da
+40
+4a
+80
+da
+20
+4a
+40
+20
+40
+7d
+64
+24
+42
+84
+2d
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+d8
+c0
+4a
+40
+d8
+a0
+4a
+80
+20
+20
+7c
+da
+70
+4a
+c0
+40
+70
+4a
+c1
+cc
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+d8
+c0
+4a
+40
+d8
+a0
+4a
+c2
+20
+40
+7c
+da
+20
+40
+03
+c8
+20
+20
+04
+1b
 20
 60
 00
@@ -4264,7 +4372,7 @@
 24
 42
 84
-2c
+47
 6f
 20
 c5
@@ -4330,13 +4438,13 @@
 03
 c8
 70
-4a
-81
+4b
+01
 30
 20
 20
 04
-3e
+59
 6f
 e0
 c7
@@ -4367,8 +4475,8 @@
 00
 da
 20
-4a
-82
+4b
+02
 20
 40
 7d
@@ -4379,16 +4487,16 @@
 00
 6f
 e0
-ca
-81
+cb
+01
 67
 e0
 86
 6f
 da
 20
-4a
-82
+4b
+02
 20
 20
 7d
@@ -4400,15 +4508,15 @@
 c0
 00
 04
-4c
+67
 c0
 01
 04
-52
+6d
 c0
 01
 84
-55
+70
 20
 20
 33
@@ -4461,8 +4569,8 @@
 20
 49
 07
-2a
-a4
+b2
+48
 aa
 55
 40
@@ -5084,6 +5192,6 @@
 55
 d8
 7e
-5a
-3b
+de
+1f
 f0
Index: output/program.lis
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/program.lis	(revision 4995)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/program.lis	(working copy)
@@ -470,7 +470,7 @@
 017b 20207b65 branch usb_set_report_next 
 
 p_usb_tx_ep3_queue_buff_check:
-017c da204a82 arg mem_usb_ep3_fifo ,rega 
+017c da204b02 arg mem_usb_ep3_fifo ,rega 
 017d 20407da3 call fifo_is_empty 
 017e 207a0000 rtn blank 
 
@@ -510,7 +510,7 @@
 0199 20207bfb branch usb_tx_data_ep2 + 2 
 
 p_usb_tx_data_ep3:
-019a da204a82 arg mem_usb_ep3_fifo ,rega 
+019a da204b02 arg mem_usb_ep3_fifo ,rega 
 019b 20407da3 call fifo_is_empty 
 019c 207a0000 rtn blank 
 019d 6ff08c25 fetch 1 ,core_usb_txbusy 
@@ -520,10 +520,10 @@
 01a1 c4018000 rtnbit0 3 
 01a2 793ffe03 set0 3 ,pdata 
 01a3 67e0890d store 1 ,mem_usb_tx_enable 
-01a4 da204a82 arg mem_usb_ep3_fifo ,rega 
+01a4 da204b02 arg mem_usb_ep3_fifo ,rega 
 01a5 20407d97 call fifo_out 
 01a6 207a0000 rtn blank 
-01a7 704a8100 jam 0 ,mem_usb_ep3_data 
+01a7 704b0100 jam 0 ,mem_usb_ep3_data 
 01a8 c01801ab beq usb_ep3_audio ,p_usb_tx_audio_data 
 01a9 c01881b3 beq usb_ep3_protocol ,p_usb_tx_protocol_data 
 01aa 2020235a branch assert 
@@ -541,12 +541,12 @@
 01b2 20207ca1 branch clear_mem 
 
 p_usb_tx_protocol_data:
-01b3 6fe0ca40 fetch 1 ,mem_dg_ms_protocol_data 
+01b3 6fe0cac0 fetch 1 ,mem_dg_ms_protocol_data 
 01b4 207a0000 rtn blank 
 01b5 1fe27200 copy pdata ,loopcnt 
-01b6 d8c04a41 arg mem_dg_ms_protocol_data + 1 ,contr 
+01b6 d8c04ac1 arg mem_dg_ms_protocol_data + 1 ,contr 
 01b7 204001ba call p_usb_tx_ep3 
-01b8 d8a04a40 arg mem_dg_ms_protocol_data ,contw 
+01b8 d8a04ac0 arg mem_dg_ms_protocol_data ,contw 
 01b9 202001b1 branch p_usb_tx_buff_realease 
 
 p_usb_tx_ep3:
@@ -993,7 +993,7 @@
 0304 67e145e0 store 2 ,mem_cb_24g_receive_process 
 0305 580003ea setarg p_dongle_g24_mouse 
 0306 67e145e4 store 2 ,mem_cb_24g_data_device1 
-0307 58000447 setarg p_dongle_g24_kb 
+0307 58000462 setarg p_dongle_g24_kb 
 0308 67e145e6 store 2 ,mem_cb_24g_data_device2 
 0309 5800030e setarg p_dongle_ackpayload_prep 
 030a 67e145e2 store 2 ,mem_cb_24g_ackpayload 
@@ -1202,7 +1202,7 @@
 03a1 6fe0c610 fetch 1 ,mem_24g_pair_mode 
 03a2 247a0000 nrtn blank 
 03a3 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
-03a4 c1800000 rtnne 0 
+03a4 247a0000 nrtn blank 
 03a5 6fe0c614 fetch 1 ,mem_24g_nodata_timer_enable 
 03a6 207a0000 rtn blank 
 03a7 d8e00008 arg g24_timer_nodata ,queue 
@@ -1298,142 +1298,173 @@
 03e9 202035a9 branch g24_store_device2_addr 
 
 p_dongle_g24_mouse:
-03ea 6fe0c92a fetch 1 ,mem_24g_rxdata_temp_new + 2 
-03eb c2830411 bbit1 spec_pro_bit ,p_dongle_receive_ms_protocol_data 
-03ec c2838411 bbit1 nor_pro_bit ,p_dongle_receive_ms_protocol_data 
-03ed c282841c bbit1 audio_bit ,p_dongle_receive_ms_audio_data 
-03ee c282041b bbit1 http_bit ,p_dongle_receive_ms_http_data 
-03ef c2818439 bbit1 heart_bit ,p_dongle_receive_ms_heart_data 
+03ea 70461100 jam 0 ,mem_24g_ackpayload_enable 
+03eb 6fe0c92a fetch 1 ,mem_24g_rxdata_temp_new + 2 
+03ec c2830413 bbit1 spec_pro_bit ,p_dongle_receive_ms_spec_protocol_data 
+03ed c283841d bbit1 nor_pro_bit ,p_dongle_receive_ms_nor_protocol_data 
+03ee c2828437 bbit1 audio_bit ,p_dongle_receive_ms_audio_data 
+03ef c2820436 bbit1 http_bit ,p_dongle_receive_ms_http_data 
+03f0 c2818454 bbit1 heart_bit ,p_dongle_receive_ms_heart_data 
 
 p_dongle_g24_mouse_next:
-03f0 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-03f1 1fe67c09 sub pdata ,0x09 ,null 
-03f2 20228401 branch p_dongle_g24_mouse_data ,zero 
-03f3 20400401 call p_dongle_g24_mouse_data 
-03f4 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-03f5 1fe0fff8 add pdata ,-8 ,pdata 
-03f6 67e0c57d store 1 ,mem_24g_rxdata_length 
-03f7 1fe27200 copy pdata ,loopcnt 
-03f8 d8a0492a arg mem_24g_rxdata_temp_new + 2 ,contw 
-03f9 d8c04932 arg mem_24g_rxdata_temp_new + 10 ,contr 
-03fa 20407cda call memcpy 
-03fb 6fe0c92a fetch 1 ,mem_24g_rxdata_temp_new + 2 
-03fc c2830411 bbit1 spec_pro_bit ,p_dongle_receive_ms_protocol_data 
-03fd c282841c bbit1 audio_bit ,p_dongle_receive_ms_audio_data 
-03fe c282041b bbit1 http_bit ,p_dongle_receive_ms_http_data 
-03ff c2818439 bbit1 heart_bit ,p_dongle_receive_ms_heart_data 
-0400 20600000 rtn 
+03f1 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+03f2 1fe67c09 sub pdata ,0x09 ,null 
+03f3 20228403 branch p_dongle_g24_mouse_data ,zero 
+03f4 20400403 call p_dongle_g24_mouse_data 
+03f5 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+03f6 1fe0fff8 add pdata ,-8 ,pdata 
+03f7 67e0c57d store 1 ,mem_24g_rxdata_length 
+03f8 1fe27200 copy pdata ,loopcnt 
+03f9 d8a0492a arg mem_24g_rxdata_temp_new + 2 ,contw 
+03fa d8c04932 arg mem_24g_rxdata_temp_new + 10 ,contr 
+03fb 20407cda call memcpy 
+03fc 6fe0c92a fetch 1 ,mem_24g_rxdata_temp_new + 2 
+03fd c2830413 bbit1 spec_pro_bit ,p_dongle_receive_ms_spec_protocol_data 
+03fe c283841d bbit1 nor_pro_bit ,p_dongle_receive_ms_nor_protocol_data 
+03ff c2828437 bbit1 audio_bit ,p_dongle_receive_ms_audio_data 
+0400 c2820436 bbit1 http_bit ,p_dongle_receive_ms_http_data 
+0401 c2818454 bbit1 heart_bit ,p_dongle_receive_ms_heart_data 
+0402 20600000 rtn 
 
 p_dongle_g24_mouse_data:
-0401 58000001 setarg ms_report_id 
-0402 67e08913 store 1 ,mem_usb_mouse_data 
-0403 6fe3c92b fetch 7 ,mem_24g_rxdata_temp_new + 3 
-0404 e7e38005 istore 7 ,contw 
-0405 6fe0c92b fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0406 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+0403 58000001 setarg ms_report_id 
+0404 67e08913 store 1 ,mem_usb_mouse_data 
+0405 6fe3c92b fetch 7 ,mem_24g_rxdata_temp_new + 3 
+0406 e7e38005 istore 7 ,contw 
 0407 6fe0c92b fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0408 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+0408 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
 0409 6fe0c92b fetch 1 ,mem_24g_rxdata_temp_new + 3 
-040a 6848c97d fetcht 1 ,mem_dg_ms_rf_key_last 
-040b 67e0c97d store 1 ,mem_dg_ms_rf_key_last 
-040c 98467c00 isub temp ,null 
-040d 2422c836 nbranch dongle_usb_tx_ms_data ,zero 
-040e 6fe3492c fetch 6 ,mem_24g_rxdata_temp_new + 4 
-040f 207a0000 rtn blank 
-0410 20204836 branch dongle_usb_tx_ms_data 
-
-p_dongle_receive_ms_protocol_data:
-0411 704a4040 jam 0x40 ,mem_dg_ms_protocol_data 
-0412 704a41c0 jam report_id_pro_data ,mem_dg_ms_protocol_data + 1 
-0413 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-0414 1f20f3ff increase -1 ,loopcnt 
-0415 d8c0492b arg mem_24g_rxdata_temp_new + 3 ,contr 
-0416 d8a04a42 arg mem_dg_ms_protocol_data + 2 ,contw 
-0417 20407cda call memcpy 
-0418 204003c8 call p_g24_rx_interrupt_clear 
+040a 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+040b 6fe0c92b fetch 1 ,mem_24g_rxdata_temp_new + 3 
+040c 6848c97d fetcht 1 ,mem_dg_ms_rf_key_last 
+040d 67e0c97d store 1 ,mem_dg_ms_rf_key_last 
+040e 98467c00 isub temp ,null 
+040f 2422c836 nbranch dongle_usb_tx_ms_data ,zero 
+0410 6fe3492c fetch 6 ,mem_24g_rxdata_temp_new + 4 
+0411 207a0000 rtn blank 
+0412 20204836 branch dongle_usb_tx_ms_data 
+
+p_dongle_receive_ms_spec_protocol_data:
+0413 704ac040 jam 0x40 ,mem_dg_ms_protocol_data 
+0414 704ac1c0 jam report_id_pro_data ,mem_dg_ms_protocol_data + 1 
+0415 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0416 1f20f3ff increase -1 ,loopcnt 
+0417 d8c0492b arg mem_24g_rxdata_temp_new + 3 ,contr 
+0418 d8a04ac2 arg mem_dg_ms_protocol_data + 2 ,contw 
+0419 20407cda call memcpy 
+041a 204003c8 call p_g24_rx_interrupt_clear 
 
 p_dongle_usb_tx_protocol_data_enable:
-0419 704a8131 jam usb_ep3_protocol ,mem_usb_ep3_data 
-041a 2020043e branch p_dongle_usb_tx_enable_ep3 
+041b 704b0131 jam usb_ep3_protocol ,mem_usb_ep3_data 
+041c 20200459 branch p_dongle_usb_tx_enable_ep3 
+
+p_dongle_receive_ms_nor_protocol_data:
+041d 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+041e 1f20f3ff increase -1 ,loopcnt 
+041f d8c0492b arg mem_24g_rxdata_temp_new + 3 ,contr 
+0420 d8a04a40 arg mem_dg_ms_nor_protocol_data_sta ,contw 
+0421 20407cda call memcpy 
+0422 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0423 1f20f3ff increase -1 ,loopcnt 
+0424 da404a80 arg mem_dg_ms_nor_protocol_data_last ,regb 
+0425 da204a40 arg mem_dg_ms_nor_protocol_data_sta ,rega 
+0426 20407d64 call compare_loop 
+0427 2442842d ncall p_dongle_usb_tx_nor_pro_data ,zero 
+0428 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0429 1f20f3ff increase -1 ,loopcnt 
+042a d8c04a40 arg mem_dg_ms_nor_protocol_data_sta ,contr 
+042b d8a04a80 arg mem_dg_ms_nor_protocol_data_last ,contw 
+042c 20207cda branch memcpy 
+
+p_dongle_usb_tx_nor_pro_data:
+042d 704ac040 jam 0x40 ,mem_dg_ms_protocol_data 
+042e 704ac1cc jam report_id_audio_data ,mem_dg_ms_protocol_data + 1 
+042f 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0430 1f20f3ff increase -1 ,loopcnt 
+0431 d8c04a40 arg mem_dg_ms_nor_protocol_data_sta ,contr 
+0432 d8a04ac2 arg mem_dg_ms_protocol_data + 2 ,contw 
+0433 20407cda call memcpy 
+0434 204003c8 call p_g24_rx_interrupt_clear 
+0435 2020041b branch p_dongle_usb_tx_protocol_data_enable 
 
 p_dongle_receive_ms_http_data:
-041b 20600000 rtn 
+0436 20600000 rtn 
 
 p_dongle_receive_ms_audio_data:
-041c 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-041d 1f20f3ff increase -1 ,loopcnt 
-041e d8c0492b arg mem_24g_rxdata_temp_new + 3 ,contr 
-041f d8a0497f arg mem_dg_ms_audio_data_sta ,contw 
-0420 20407cda call memcpy 
-0421 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-0422 1f20f3ff increase -1 ,loopcnt 
-0423 da4049bf arg mem_dg_ms_audio_data_last ,regb 
-0424 da20497f arg mem_dg_ms_audio_data_sta ,rega 
-0425 20407d64 call compare_loop 
-0426 2442842c ncall p_dongle_usb_tx_audio_data ,zero 
-0427 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-0428 1f20f3ff increase -1 ,loopcnt 
-0429 d8c0497f arg mem_dg_ms_audio_data_sta ,contr 
-042a d8a049bf arg mem_dg_ms_audio_data_last ,contw 
-042b 20207cda branch memcpy 
+0437 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0438 1f20f3ff increase -1 ,loopcnt 
+0439 d8c0492b arg mem_24g_rxdata_temp_new + 3 ,contr 
+043a d8a0497f arg mem_dg_ms_audio_data_sta ,contw 
+043b 20407cda call memcpy 
+043c 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+043d 1f20f3ff increase -1 ,loopcnt 
+043e da4049bf arg mem_dg_ms_audio_data_last ,regb 
+043f da20497f arg mem_dg_ms_audio_data_sta ,rega 
+0440 20407d64 call compare_loop 
+0441 24428447 ncall p_dongle_usb_tx_audio_data ,zero 
+0442 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0443 1f20f3ff increase -1 ,loopcnt 
+0444 d8c0497f arg mem_dg_ms_audio_data_sta ,contr 
+0445 d8a049bf arg mem_dg_ms_audio_data_last ,contw 
+0446 20207cda branch memcpy 
 
 p_dongle_usb_tx_audio_data:
-042c 7049ff40 jam 0x40 ,mem_dg_ms_audio_data 
-042d 704a00cc jam report_id_audio_data ,mem_dg_ms_audio_data + 1 
-042e 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-042f 1fe0ffff increase -1 ,pdata 
-0430 67e0ca01 store 1 ,mem_dg_ms_audio_data + 2 
-0431 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-0432 1f20f3ff increase -1 ,loopcnt 
-0433 d8c0497f arg mem_dg_ms_audio_data_sta ,contr 
-0434 d8a04a02 arg mem_dg_ms_audio_data + 3 ,contw 
-0435 20407cda call memcpy 
-0436 204003c8 call p_g24_rx_interrupt_clear 
-0437 704a8130 jam usb_ep3_audio ,mem_usb_ep3_data 
-0438 2020043e branch p_dongle_usb_tx_enable_ep3 
+0447 7049ff40 jam 0x40 ,mem_dg_ms_audio_data 
+0448 704a00cc jam report_id_audio_data ,mem_dg_ms_audio_data + 1 
+0449 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+044a 1fe0ffff increase -1 ,pdata 
+044b 67e0ca01 store 1 ,mem_dg_ms_audio_data + 2 
+044c 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+044d 1f20f3ff increase -1 ,loopcnt 
+044e d8c0497f arg mem_dg_ms_audio_data_sta ,contr 
+044f d8a04a02 arg mem_dg_ms_audio_data + 3 ,contw 
+0450 20407cda call memcpy 
+0451 204003c8 call p_g24_rx_interrupt_clear 
+0452 704b0130 jam usb_ep3_audio ,mem_usb_ep3_data 
+0453 20200459 branch p_dongle_usb_tx_enable_ep3 
 
 p_dongle_receive_ms_heart_data:
-0439 6fe0c773 fetch 1 ,mem_dg_rep_ms_ack_data_flag 
-043a 207a0000 rtn blank 
-043b 70477300 jam 0 ,mem_dg_rep_ms_ack_data_flag 
-043c 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
-043d 20600000 rtn 
+0454 6fe0c773 fetch 1 ,mem_dg_rep_ms_ack_data_flag 
+0455 207a0000 rtn blank 
+0456 70477300 jam 0 ,mem_dg_rep_ms_ack_data_flag 
+0457 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
+0458 20600000 rtn 
 
 p_dongle_usb_tx_enable_ep3:
-043e 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-043f 207a0000 rtn blank 
-0440 da204a82 arg mem_usb_ep3_fifo ,rega 
-0441 20407da5 call fifo_is_full 
-0442 247a0000 nrtn blank 
-0443 6fe0ca81 fetch 1 ,mem_usb_ep3_data 
-0444 67e0866f store 1 ,mem_fifo_temp 
-0445 da204a82 arg mem_usb_ep3_fifo ,rega 
-0446 20207d8b branch fifo_in 
+0459 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+045a 207a0000 rtn blank 
+045b da204b02 arg mem_usb_ep3_fifo ,rega 
+045c 20407da5 call fifo_is_full 
+045d 247a0000 nrtn blank 
+045e 6fe0cb01 fetch 1 ,mem_usb_ep3_data 
+045f 67e0866f store 1 ,mem_fifo_temp 
+0460 da204b02 arg mem_usb_ep3_fifo ,rega 
+0461 20207d8b branch fifo_in 
 
 p_dongle_g24_kb:
-0447 6fe0c92b fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0448 c000044c beq 0 ,p_dongle_g24_kb_type0 
-0449 c0010452 beq 2 ,p_dongle_g24_kb_type2 
-044a c0018455 beq 3 ,p_dongle_g24_kb_type3 
-044b 202033be branch g24_rx_interrupt_clear 
+0462 6fe0c92b fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0463 c0000467 beq 0 ,p_dongle_g24_kb_type0 
+0464 c001046d beq 2 ,p_dongle_g24_kb_type2 
+0465 c0018470 beq 3 ,p_dongle_g24_kb_type3 
+0466 202033be branch g24_rx_interrupt_clear 
 
 p_dongle_g24_kb_type0:
-044c 6fe0c92d fetch 1 ,mem_24g_rxdata_temp_new + 5 
-044d 67e0c611 store 1 ,mem_24g_ackpayload_enable 
-044e 70492d00 jam 0 ,mem_24g_rxdata_temp_new + 5 
-044f d8a00923 arg mem_usb_kb_data ,contw 
-0450 d8c0492c arg mem_24g_rxdata_temp_new + 4 ,contr 
-0451 202048ef branch dongle_g24_kb_type0 + 5 
+0467 6fe0c92d fetch 1 ,mem_24g_rxdata_temp_new + 5 
+0468 67e0c611 store 1 ,mem_24g_ackpayload_enable 
+0469 70492d00 jam 0 ,mem_24g_rxdata_temp_new + 5 
+046a d8a00923 arg mem_usb_kb_data ,contw 
+046b d8c0492c arg mem_24g_rxdata_temp_new + 4 ,contr 
+046c 202048ef branch dongle_g24_kb_type0 + 5 
 
 p_dongle_g24_kb_type2:
-0452 d8a00943 arg mem_usb_kb_system ,contw 
-0453 d8c0492b arg mem_24g_rxdata_temp_new + 3 ,contr 
-0454 2020491f branch dongle_g24_kb_type2 + 2 
+046d d8a00943 arg mem_usb_kb_system ,contw 
+046e d8c0492b arg mem_24g_rxdata_temp_new + 3 ,contr 
+046f 2020491f branch dongle_g24_kb_type2 + 2 
 
 p_dongle_g24_kb_type3:
-0455 d8a00933 arg mem_usb_kb_multikey ,contw 
-0456 d8c0492b arg mem_24g_rxdata_temp_new + 3 ,contr 
-0457 20204907 branch dongle_g24_kb_type3 + 2 
+0470 d8a00933 arg mem_usb_kb_multikey ,contw 
+0471 d8c0492b arg mem_24g_rxdata_temp_new + 3 ,contr 
+0472 20204907 branch dongle_g24_kb_type3 + 2 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/program/patch.prog	(revision 4995)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/program/patch.prog	(working copy)
@@ -1240,7 +1240,7 @@
 	fetch 1,mem_24g_pair_mode
 	nrtn blank
 	fetch 1,mem_24g_ackpayload_enable
-	rtnne 0
+	nrtn blank
 	fetch 1,mem_24g_nodata_timer_enable
 	rtn blank
 	arg G24_TIMER_NODATA,queue
@@ -1333,9 +1333,10 @@
 //================================================dg recv ms data parase==============================================//
 
 p_dongle_g24_mouse:
+	jam 0,mem_24g_ackpayload_enable
 	fetch 1,mem_24g_rxdata_temp_new+2
-	bbit1 SPEC_PRO_BIT,p_dongle_receive_ms_protocol_data
-	bbit1 NOR_PRO_BIT,p_dongle_receive_ms_protocol_data
+	bbit1 SPEC_PRO_BIT,p_dongle_receive_ms_spec_protocol_data
+	bbit1 NOR_PRO_BIT,p_dongle_receive_ms_nor_protocol_data
 	bbit1 AUDIO_BIT,p_dongle_receive_ms_audio_data
 	bbit1 HTTP_BIT,p_dongle_receive_ms_http_data
 	bbit1 HEART_BIT,p_dongle_receive_ms_heart_data
@@ -1352,8 +1353,8 @@
 	arg mem_24g_rxdata_temp_new+10,contr
 	call memcpy
 	fetch 1,mem_24g_rxdata_temp_new+2
-	bbit1 SPEC_PRO_BIT,p_dongle_receive_ms_protocol_data
-//	bbit1 NOR_PRO_BIT,p_dongle_receive_ms_nor_protocol_data
+	bbit1 SPEC_PRO_BIT,p_dongle_receive_ms_spec_protocol_data
+	bbit1 NOR_PRO_BIT,p_dongle_receive_ms_nor_protocol_data
 	bbit1 AUDIO_BIT,p_dongle_receive_ms_audio_data
 	bbit1 HTTP_BIT,p_dongle_receive_ms_http_data
 	bbit1 HEART_BIT,p_dongle_receive_ms_heart_data
@@ -1378,8 +1379,8 @@
 	rtn blank
 	branch dongle_usb_tx_ms_data
 
-//======================receive ms protocol data==============================//
-p_dongle_receive_ms_protocol_data:
+//======================receive ms spec protocol data==============================//
+p_dongle_receive_ms_spec_protocol_data:
 	jam 0x40,mem_dg_ms_protocol_data
 	jam REPORT_ID_PRO_DATA,mem_dg_ms_protocol_data+1
 	fetchr loopcnt,1,mem_24g_rxdata_length
@@ -1391,7 +1392,37 @@
 p_dongle_usb_tx_protocol_data_enable:
 	jam USB_EP3_PROTOCOL,mem_usb_ep3_data
 	branch p_dongle_usb_tx_enable_ep3
-	
+
+//======================receive ms nor protocol data==============================//
+p_dongle_receive_ms_nor_protocol_data:
+	fetchr loopcnt,1,mem_24g_rxdata_length
+	increase -1,loopcnt
+	arg mem_24g_rxdata_temp_new+3,contr
+	arg mem_dg_ms_nor_protocol_data_sta,contw
+	call memcpy
+	fetchr loopcnt,1,mem_24g_rxdata_length
+	increase -1,loopcnt
+	arg mem_dg_ms_nor_protocol_data_last,regb
+	arg mem_dg_ms_nor_protocol_data_sta,rega
+	call compare_loop
+	ncall p_dongle_usb_tx_nor_pro_data,zero
+	fetchr loopcnt,1,mem_24g_rxdata_length
+	increase -1,loopcnt
+	arg mem_dg_ms_nor_protocol_data_sta,contr
+	arg mem_dg_ms_nor_protocol_data_last,contw
+	branch memcpy
+
+p_dongle_usb_tx_nor_pro_data:
+	jam 0x40,mem_dg_ms_protocol_data
+	jam REPORT_ID_AUDIO_DATA,mem_dg_ms_protocol_data+1
+	fetchr loopcnt,1,mem_24g_rxdata_length
+	increase -1,loopcnt
+	arg mem_dg_ms_nor_protocol_data_sta,contr
+	arg mem_dg_ms_protocol_data+2,contw
+	call memcpy
+	call p_g24_rx_interrupt_clear
+	branch p_dongle_usb_tx_protocol_data_enable
+
 p_dongle_receive_ms_http_data:
 	rtn
 
