Index: format/app_dongle.format
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/format/app_dongle.format	(revision 4966)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/format/app_dongle.format	(working copy)
@@ -66,6 +66,7 @@
 1 mem_dg_rep_ms_ack_data_flag
 65 mem_dg_rep_ms_ack_data
 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
 65 mem_dg_ms_protocol_data
@@ -75,11 +76,11 @@
 
 (
 //data type
-2 PROTOCOL_BIT
-3 AUDIO_BIT
+3 HEART_BIT
 4 HTTP_BIT
-5 HEART_BIT
-6 BATTERY_BIT
+5 AUDIO_BIT
+6 SPEC_PRO_BIT
+7 NOR_PRO_BIT
 )
 
 (
@@ -111,9 +112,8 @@
 0x010c DEVICE_INFO_REP
 
 //report id
-0xA0 REPORT_ID_AUDIO_DATA_IN
-0xA1 REPORT_ID_DATA_IN
-0xA2 REPORT_ID_DATA_OUT
+0xC0 REPORT_ID_PRO_DATA
+0xCC REPORT_ID_AUDIO_DATA
 )
 
 //otp address offset
Index: output/eeprom.dat
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/eeprom.dat	(revision 4966)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-3e
+52
 11
 c2
 84
@@ -1526,8 +1526,8 @@
 65
 da
 20
-4a
-c8
+4b
+08
 20
 40
 7d
@@ -1646,8 +1646,8 @@
 fb
 da
 20
-4a
-c8
+4b
+08
 20
 40
 7d
@@ -1686,8 +1686,8 @@
 0d
 da
 20
-4a
-c8
+4b
+08
 20
 40
 7d
@@ -1697,8 +1697,8 @@
 00
 00
 70
-4a
-c7
+4b
+07
 00
 c0
 18
@@ -1715,7 +1715,7 @@
 6f
 e0
 ca
-05
+45
 20
 7a
 00
@@ -1727,7 +1727,7 @@
 d8
 c0
 4a
-06
+46
 20
 40
 01
@@ -1735,7 +1735,7 @@
 d8
 a0
 4a
-05
+45
 df
 20
 00
@@ -1747,7 +1747,7 @@
 6f
 e0
 ca
-86
+c6
 20
 7a
 00
@@ -1759,7 +1759,7 @@
 d8
 c0
 4a
-87
+c7
 20
 40
 01
@@ -1767,7 +1767,7 @@
 d8
 a0
 4a
-86
+c6
 20
 20
 01
@@ -3007,7 +3007,7 @@
 58
 00
 04
-3e
+43
 67
 e1
 45
@@ -3881,11 +3881,15 @@
 c9
 28
 c2
-81
+83
 03
 f0
 c2
-81
+83
+83
+f0
+c2
+82
 84
 0f
 c2
@@ -3893,12 +3897,8 @@
 04
 0e
 c2
-82
+81
 84
-27
-c2
-83
-04
 2c
 6f
 e0
@@ -3949,11 +3949,15 @@
 c9
 28
 c2
-81
+83
 03
 f0
 c2
-81
+83
+83
+f0
+c2
+82
 84
 0f
 c2
@@ -3961,12 +3965,8 @@
 04
 0e
 c2
-82
+81
 84
-27
-c2
-83
-04
 2c
 20
 60
@@ -4059,7 +4059,7 @@
 da
 20
 4a
-46
+86
 20
 40
 7d
@@ -4083,19 +4083,19 @@
 d8
 a0
 4a
-46
+86
 20
 40
 7c
 da
 70
 4a
-86
+c6
 40
 70
 4a
-87
-a1
+c7
+c0
 6f
 20
 c5
@@ -4107,11 +4107,11 @@
 d8
 c0
 4a
-46
+86
 d8
 a0
 4a
-88
+c8
 20
 40
 7c
@@ -4119,7 +4119,7 @@
 6f
 e1
 4a
-89
+c9
 1f
 e6
 7d
@@ -4129,17 +4129,17 @@
 84
 09
 70
-4a
-c7
+4b
+07
 31
 20
 20
 04
-35
+3a
 68
 49
 4a
-93
+d3
 6f
 e1
 49
@@ -4147,7 +4147,7 @@
 67
 e1
 4a
-93
+d3
 60
 49
 00
@@ -4168,10 +4168,30 @@
 20
 f3
 ff
-da
-40
+d8
+c0
 49
 29
+d8
+a0
+49
+c5
+20
+40
+7c
+da
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+da
+40
+4a
+05
 da
 20
 49
@@ -4180,10 +4200,10 @@
 40
 7d
 64
-c1
-02
-80
-00
+24
+42
+84
+1f
 6f
 20
 c5
@@ -4195,23 +4215,23 @@
 d8
 c0
 49
-29
+c5
 d8
 a0
-49
-c5
+4a
+05
+20
 20
-40
 7c
 da
 70
 4a
-05
+45
 40
 70
 4a
-06
-a1
+46
+cc
 6f
 e0
 c5
@@ -4223,7 +4243,7 @@
 67
 e0
 ca
-07
+47
 6f
 20
 c5
@@ -4239,7 +4259,7 @@
 d8
 a0
 4a
-08
+48
 20
 40
 7c
@@ -4249,13 +4269,13 @@
 03
 a6
 70
-4a
-c7
+4b
+07
 30
 20
 20
 04
-35
+3a
 6f
 e0
 c9
@@ -4299,15 +4319,15 @@
 67
 e2
 ca
-88
+c8
 70
 4a
-86
+c6
 40
 70
 4a
-87
-a1
+c7
+c0
 20
 20
 04
@@ -4322,8 +4342,8 @@
 00
 da
 20
-4a
-c8
+4b
+08
 20
 40
 7d
@@ -4334,16 +4354,16 @@
 00
 6f
 e0
-ca
-c7
+cb
+07
 67
 e0
 86
 6f
 da
 20
-4a
-c8
+4b
+08
 20
 20
 7d
@@ -4355,15 +4375,15 @@
 c0
 00
 04
-43
+48
 c0
 01
 04
-49
+4e
 c0
 01
 84
-4c
+51
 20
 20
 33
@@ -4416,8 +4436,8 @@
 20
 49
 07
-80
 91
+39
 aa
 55
 40
@@ -5042,28 +5062,8 @@
 55
 2e
 7f
-b8
-5a
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+e2
+cf
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-1b
-9f
+c1
+8c
Index: output/memmap.format
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/memmap.format	(revision 4966)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/memmap.format	(working copy)
@@ -1510,11 +1510,12 @@
 0x4983 mem_dg_rep_ms_ack_data_flag
 0x4984 mem_dg_rep_ms_ack_data
 0x49c5 mem_dg_ms_audio_data_sta
-0x4a05 mem_dg_ms_audio_data
-0x4a46 mem_dg_ms_protocol_data_sta
-0x4a86 mem_dg_ms_protocol_data
-0x4ac7 mem_usb_ep3_data
-0x4ac8 mem_usb_ep3_fifo
+0x4a05 mem_dg_ms_audio_data_last
+0x4a45 mem_dg_ms_audio_data
+0x4a86 mem_dg_ms_protocol_data_sta
+0x4ac6 mem_dg_ms_protocol_data
+0x4b07 mem_usb_ep3_data
+0x4b08 mem_usb_ep3_fifo
 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 4966)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-3e
+52
 11
 c2
 84
@@ -1535,8 +1535,8 @@
 65
 da
 20
-4a
-c8
+4b
+08
 20
 40
 7d
@@ -1655,8 +1655,8 @@
 fb
 da
 20
-4a
-c8
+4b
+08
 20
 40
 7d
@@ -1695,8 +1695,8 @@
 0d
 da
 20
-4a
-c8
+4b
+08
 20
 40
 7d
@@ -1706,8 +1706,8 @@
 00
 00
 70
-4a
-c7
+4b
+07
 00
 c0
 18
@@ -1724,7 +1724,7 @@
 6f
 e0
 ca
-05
+45
 20
 7a
 00
@@ -1736,7 +1736,7 @@
 d8
 c0
 4a
-06
+46
 20
 40
 01
@@ -1744,7 +1744,7 @@
 d8
 a0
 4a
-05
+45
 df
 20
 00
@@ -1756,7 +1756,7 @@
 6f
 e0
 ca
-86
+c6
 20
 7a
 00
@@ -1768,7 +1768,7 @@
 d8
 c0
 4a
-87
+c7
 20
 40
 01
@@ -1776,7 +1776,7 @@
 d8
 a0
 4a
-86
+c6
 20
 20
 01
@@ -3016,7 +3016,7 @@
 58
 00
 04
-3e
+43
 67
 e1
 45
@@ -3890,11 +3890,15 @@
 c9
 28
 c2
-81
+83
 03
 f0
 c2
-81
+83
+83
+f0
+c2
+82
 84
 0f
 c2
@@ -3902,12 +3906,8 @@
 04
 0e
 c2
-82
+81
 84
-27
-c2
-83
-04
 2c
 6f
 e0
@@ -3958,11 +3958,15 @@
 c9
 28
 c2
-81
+83
 03
 f0
 c2
-81
+83
+83
+f0
+c2
+82
 84
 0f
 c2
@@ -3970,12 +3974,8 @@
 04
 0e
 c2
-82
+81
 84
-27
-c2
-83
-04
 2c
 20
 60
@@ -4068,7 +4068,7 @@
 da
 20
 4a
-46
+86
 20
 40
 7d
@@ -4092,19 +4092,19 @@
 d8
 a0
 4a
-46
+86
 20
 40
 7c
 da
 70
 4a
-86
+c6
 40
 70
 4a
-87
-a1
+c7
+c0
 6f
 20
 c5
@@ -4116,11 +4116,11 @@
 d8
 c0
 4a
-46
+86
 d8
 a0
 4a
-88
+c8
 20
 40
 7c
@@ -4128,7 +4128,7 @@
 6f
 e1
 4a
-89
+c9
 1f
 e6
 7d
@@ -4138,17 +4138,17 @@
 84
 09
 70
-4a
-c7
+4b
+07
 31
 20
 20
 04
-35
+3a
 68
 49
 4a
-93
+d3
 6f
 e1
 49
@@ -4156,7 +4156,7 @@
 67
 e1
 4a
-93
+d3
 60
 49
 00
@@ -4177,10 +4177,30 @@
 20
 f3
 ff
-da
-40
+d8
+c0
 49
 29
+d8
+a0
+49
+c5
+20
+40
+7c
+da
+6f
+20
+c5
+7d
+1f
+20
+f3
+ff
+da
+40
+4a
+05
 da
 20
 49
@@ -4189,10 +4209,10 @@
 40
 7d
 64
-c1
-02
-80
-00
+24
+42
+84
+1f
 6f
 20
 c5
@@ -4204,23 +4224,23 @@
 d8
 c0
 49
-29
+c5
 d8
 a0
-49
-c5
+4a
+05
+20
 20
-40
 7c
 da
 70
 4a
-05
+45
 40
 70
 4a
-06
-a1
+46
+cc
 6f
 e0
 c5
@@ -4232,7 +4252,7 @@
 67
 e0
 ca
-07
+47
 6f
 20
 c5
@@ -4248,7 +4268,7 @@
 d8
 a0
 4a
-08
+48
 20
 40
 7c
@@ -4258,13 +4278,13 @@
 03
 a6
 70
-4a
-c7
+4b
+07
 30
 20
 20
 04
-35
+3a
 6f
 e0
 c9
@@ -4308,15 +4328,15 @@
 67
 e2
 ca
-88
+c8
 70
 4a
-86
+c6
 40
 70
 4a
-87
-a1
+c7
+c0
 20
 20
 04
@@ -4331,8 +4351,8 @@
 00
 da
 20
-4a
-c8
+4b
+08
 20
 40
 7d
@@ -4343,16 +4363,16 @@
 00
 6f
 e0
-ca
-c7
+cb
+07
 67
 e0
 86
 6f
 da
 20
-4a
-c8
+4b
+08
 20
 20
 7d
@@ -4364,15 +4384,15 @@
 c0
 00
 04
-43
+48
 c0
 01
 04
-49
+4e
 c0
 01
 84
-4c
+51
 20
 20
 33
@@ -4425,8 +4445,8 @@
 20
 49
 07
-80
 91
+39
 aa
 55
 40
@@ -5051,6 +5071,6 @@
 55
 2e
 7f
-b8
-5a
+e2
+cf
 f0
Index: output/program.lis
===================================================================
--- /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/output/program.lis	(revision 4966)
+++ /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 da204ac8 arg mem_usb_ep3_fifo ,rega 
+017c da204b08 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 da204ac8 arg mem_usb_ep3_fifo ,rega 
+019a da204b08 arg mem_usb_ep3_fifo ,rega 
 019b 20407da3 call fifo_is_empty 
 019c 207a0000 rtn blank 
 019d 6ff08c25 fetch 1 ,core_usb_txbusy 
@@ -520,33 +520,33 @@
 01a1 c4018000 rtnbit0 3 
 01a2 793ffe03 set0 3 ,pdata 
 01a3 67e0890d store 1 ,mem_usb_tx_enable 
-01a4 da204ac8 arg mem_usb_ep3_fifo ,rega 
+01a4 da204b08 arg mem_usb_ep3_fifo ,rega 
 01a5 20407d97 call fifo_out 
 01a6 207a0000 rtn blank 
-01a7 704ac700 jam 0 ,mem_usb_ep3_data 
+01a7 704b0700 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 
 
 p_usb_tx_audio_data:
-01ab 6fe0ca05 fetch 1 ,mem_dg_ms_audio_data 
+01ab 6fe0ca45 fetch 1 ,mem_dg_ms_audio_data 
 01ac 207a0000 rtn blank 
 01ad 1fe27200 copy pdata ,loopcnt 
-01ae d8c04a06 arg mem_dg_ms_audio_data + 1 ,contr 
+01ae d8c04a46 arg mem_dg_ms_audio_data + 1 ,contr 
 01af 204001ba call p_usb_tx_ep3 
-01b0 d8a04a05 arg mem_dg_ms_audio_data ,contw 
+01b0 d8a04a45 arg mem_dg_ms_audio_data ,contw 
 
 p_usb_tx_buff_realease:
 01b1 df200041 arg 65 ,loopcnt 
 01b2 20207ca1 branch clear_mem 
 
 p_usb_tx_protocol_data:
-01b3 6fe0ca86 fetch 1 ,mem_dg_ms_protocol_data 
+01b3 6fe0cac6 fetch 1 ,mem_dg_ms_protocol_data 
 01b4 207a0000 rtn blank 
 01b5 1fe27200 copy pdata ,loopcnt 
-01b6 d8c04a87 arg mem_dg_ms_protocol_data + 1 ,contr 
+01b6 d8c04ac7 arg mem_dg_ms_protocol_data + 1 ,contr 
 01b7 204001ba call p_usb_tx_ep3 
-01b8 d8a04a86 arg mem_dg_ms_protocol_data ,contw 
+01b8 d8a04ac6 arg mem_dg_ms_protocol_data ,contw 
 01b9 202001b1 branch p_usb_tx_buff_realease 
 
 p_usb_tx_ep3:
@@ -962,7 +962,7 @@
 02eb 67e145e0 store 2 ,mem_cb_24g_receive_process 
 02ec 580003c8 setarg p_dongle_g24_mouse 
 02ed 67e145e4 store 2 ,mem_cb_24g_data_device1 
-02ee 5800043e setarg p_dongle_g24_kb 
+02ee 58000443 setarg p_dongle_g24_kb 
 02ef 67e145e6 store 2 ,mem_cb_24g_data_device2 
 02f0 580002f5 setarg p_dongle_ackpayload_prep 
 02f1 67e145e2 store 2 ,mem_cb_24g_ackpayload 
@@ -1257,11 +1257,11 @@
 
 p_dongle_g24_mouse:
 03c8 6fe0c928 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-03c9 c28103f0 bbit1 protocol_bit ,p_dongle_receive_ms_protocol_data 
-03ca c281840f bbit1 audio_bit ,p_dongle_receive_ms_audio_data 
-03cb c282040e bbit1 http_bit ,p_dongle_receive_ms_http_data 
-03cc c2828427 bbit1 heart_bit ,p_dongle_receive_ms_heart_data 
-03cd c283042c bbit1 battery_bit ,p_dongle_receive_ms_battery_data 
+03c9 c28303f0 bbit1 spec_pro_bit ,p_dongle_receive_ms_protocol_data 
+03ca c28383f0 bbit1 nor_pro_bit ,p_dongle_receive_ms_protocol_data 
+03cb c282840f bbit1 audio_bit ,p_dongle_receive_ms_audio_data 
+03cc c282040e bbit1 http_bit ,p_dongle_receive_ms_http_data 
+03cd c281842c bbit1 heart_bit ,p_dongle_receive_ms_heart_data 
 
 p_dongle_g24_mouse_next:
 03ce 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
@@ -1276,11 +1276,11 @@
 03d7 d8c04930 arg mem_24g_rxdata_temp_new + 10 ,contr 
 03d8 20407cda call memcpy 
 03d9 6fe0c928 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-03da c28103f0 bbit1 protocol_bit ,p_dongle_receive_ms_protocol_data 
-03db c281840f bbit1 audio_bit ,p_dongle_receive_ms_audio_data 
-03dc c282040e bbit1 http_bit ,p_dongle_receive_ms_http_data 
-03dd c2828427 bbit1 heart_bit ,p_dongle_receive_ms_heart_data 
-03de c283042c bbit1 battery_bit ,p_dongle_receive_ms_battery_data 
+03da c28303f0 bbit1 spec_pro_bit ,p_dongle_receive_ms_protocol_data 
+03db c28383f0 bbit1 nor_pro_bit ,p_dongle_receive_ms_protocol_data 
+03dc c282840f bbit1 audio_bit ,p_dongle_receive_ms_audio_data 
+03dd c282040e bbit1 http_bit ,p_dongle_receive_ms_http_data 
+03de c281842c bbit1 heart_bit ,p_dongle_receive_ms_heart_data 
 03df 20600000 rtn 
 
 p_dongle_g24_mouse_data:
@@ -1307,33 +1307,33 @@
 03f2 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
 03f3 1f20f3ff increase -1 ,loopcnt 
 03f4 da404929 arg mem_24g_rxdata_temp_new + 3 ,regb 
-03f5 da204a46 arg mem_dg_ms_protocol_data_sta ,rega 
+03f5 da204a86 arg mem_dg_ms_protocol_data_sta ,rega 
 03f6 20407d64 call compare_loop 
 03f7 c1028000 rtneq zero 
 03f8 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
 03f9 1f20f3ff increase -1 ,loopcnt 
 03fa d8c04929 arg mem_24g_rxdata_temp_new + 3 ,contr 
-03fb d8a04a46 arg mem_dg_ms_protocol_data_sta ,contw 
+03fb d8a04a86 arg mem_dg_ms_protocol_data_sta ,contw 
 03fc 20407cda call memcpy 
-03fd 704a8640 jam 0x40 ,mem_dg_ms_protocol_data 
-03fe 704a87a1 jam report_id_data_in ,mem_dg_ms_protocol_data + 1 
+03fd 704ac640 jam 0x40 ,mem_dg_ms_protocol_data 
+03fe 704ac7c0 jam report_id_pro_data ,mem_dg_ms_protocol_data + 1 
 03ff 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
 0400 1f20f3ff increase -1 ,loopcnt 
-0401 d8c04a46 arg mem_dg_ms_protocol_data_sta ,contr 
-0402 d8a04a88 arg mem_dg_ms_protocol_data + 2 ,contw 
+0401 d8c04a86 arg mem_dg_ms_protocol_data_sta ,contr 
+0402 d8a04ac8 arg mem_dg_ms_protocol_data + 2 ,contw 
 0403 20407cda call memcpy 
-0404 6fe14a89 fetch 2 ,mem_dg_ms_protocol_data + 3 
+0404 6fe14ac9 fetch 2 ,mem_dg_ms_protocol_data + 3 
 0405 1fe67d0c sub pdata ,device_info_rep ,null 
 0406 20428409 call p_dongle_receive_ms_device_info_data ,zero 
 
 p_dongle_usb_tx_protocol_data_enable:
-0407 704ac731 jam usb_ep3_protocol ,mem_usb_ep3_data 
-0408 20200435 branch p_dongle_usb_tx_enable_ep3 
+0407 704b0731 jam usb_ep3_protocol ,mem_usb_ep3_data 
+0408 2020043a branch p_dongle_usb_tx_enable_ep3 
 
 p_dongle_receive_ms_device_info_data:
-0409 68494a93 fetcht 2 ,mem_dg_ms_protocol_data + 13 
+0409 68494ad3 fetcht 2 ,mem_dg_ms_protocol_data + 13 
 040a 6fe14981 fetch 2 ,mem_dg_version 
-040b 67e14a93 store 2 ,mem_dg_ms_protocol_data + 13 
+040b 67e14ad3 store 2 ,mem_dg_ms_protocol_data + 13 
 040c 60490005 storet 2 ,contw 
 040d 20600000 rtn 
 
@@ -1343,82 +1343,89 @@
 p_dongle_receive_ms_audio_data:
 040f 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
 0410 1f20f3ff increase -1 ,loopcnt 
-0411 da404929 arg mem_24g_rxdata_temp_new + 3 ,regb 
-0412 da2049c5 arg mem_dg_ms_audio_data_sta ,rega 
-0413 20407d64 call compare_loop 
-0414 c1028000 rtneq zero 
-0415 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-0416 1f20f3ff increase -1 ,loopcnt 
-0417 d8c04929 arg mem_24g_rxdata_temp_new + 3 ,contr 
-0418 d8a049c5 arg mem_dg_ms_audio_data_sta ,contw 
-0419 20407cda call memcpy 
-041a 704a0540 jam 0x40 ,mem_dg_ms_audio_data 
-041b 704a06a1 jam report_id_data_in ,mem_dg_ms_audio_data + 1 
-041c 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-041d 1fe0ffff increase -1 ,pdata 
-041e 67e0ca07 store 1 ,mem_dg_ms_audio_data + 2 
-041f 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-0420 1f20f3ff increase -1 ,loopcnt 
-0421 d8c049c5 arg mem_dg_ms_audio_data_sta ,contr 
-0422 d8a04a08 arg mem_dg_ms_audio_data + 3 ,contw 
-0423 20407cda call memcpy 
-0424 204003a6 call p_g24_rx_interrupt_clear 
-0425 704ac730 jam usb_ep3_audio ,mem_usb_ep3_data 
-0426 20200435 branch p_dongle_usb_tx_enable_ep3 
+0411 d8c04929 arg mem_24g_rxdata_temp_new + 3 ,contr 
+0412 d8a049c5 arg mem_dg_ms_audio_data_sta ,contw 
+0413 20407cda call memcpy 
+0414 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0415 1f20f3ff increase -1 ,loopcnt 
+0416 da404a05 arg mem_dg_ms_audio_data_last ,regb 
+0417 da2049c5 arg mem_dg_ms_audio_data_sta ,rega 
+0418 20407d64 call compare_loop 
+0419 2442841f ncall p_dongle_usb_tx_audio_data ,zero 
+041a 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+041b 1f20f3ff increase -1 ,loopcnt 
+041c d8c049c5 arg mem_dg_ms_audio_data_sta ,contr 
+041d d8a04a05 arg mem_dg_ms_audio_data_last ,contw 
+041e 20207cda branch memcpy 
+
+p_dongle_usb_tx_audio_data:
+041f 704a4540 jam 0x40 ,mem_dg_ms_audio_data 
+0420 704a46cc jam report_id_audio_data ,mem_dg_ms_audio_data + 1 
+0421 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0422 1fe0ffff increase -1 ,pdata 
+0423 67e0ca47 store 1 ,mem_dg_ms_audio_data + 2 
+0424 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0425 1f20f3ff increase -1 ,loopcnt 
+0426 d8c049c5 arg mem_dg_ms_audio_data_sta ,contr 
+0427 d8a04a48 arg mem_dg_ms_audio_data + 3 ,contw 
+0428 20407cda call memcpy 
+0429 204003a6 call p_g24_rx_interrupt_clear 
+042a 704b0730 jam usb_ep3_audio ,mem_usb_ep3_data 
+042b 2020043a branch p_dongle_usb_tx_enable_ep3 
 
 p_dongle_receive_ms_heart_data:
-0427 6fe0c983 fetch 1 ,mem_dg_rep_ms_ack_data_flag 
-0428 207a0000 rtn blank 
-0429 70498300 jam 0 ,mem_dg_rep_ms_ack_data_flag 
-042a 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
-042b 20600000 rtn 
+042c 6fe0c983 fetch 1 ,mem_dg_rep_ms_ack_data_flag 
+042d 207a0000 rtn blank 
+042e 70498300 jam 0 ,mem_dg_rep_ms_ack_data_flag 
+042f 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
+0430 20600000 rtn 
 
 p_dongle_receive_ms_battery_data:
-042c 6fe2c929 fetch 5 ,mem_24g_rxdata_temp_new + 3 
-042d 684ac97c fetcht 5 ,mem_dg_ms_battery_start 
-042e 98467c00 isub temp ,null 
-042f 24628000 nrtn zero 
-0430 67e2c97c store 5 ,mem_dg_ms_battery_start 
-0431 67e2ca88 store 5 ,mem_dg_ms_protocol_data + 2 
-0432 704a8640 jam 0x40 ,mem_dg_ms_protocol_data 
-0433 704a87a1 jam report_id_data_in ,mem_dg_ms_protocol_data + 1 
-0434 20200407 branch p_dongle_usb_tx_protocol_data_enable 
+0431 6fe2c929 fetch 5 ,mem_24g_rxdata_temp_new + 3 
+0432 684ac97c fetcht 5 ,mem_dg_ms_battery_start 
+0433 98467c00 isub temp ,null 
+0434 24628000 nrtn zero 
+0435 67e2c97c store 5 ,mem_dg_ms_battery_start 
+0436 67e2cac8 store 5 ,mem_dg_ms_protocol_data + 2 
+0437 704ac640 jam 0x40 ,mem_dg_ms_protocol_data 
+0438 704ac7c0 jam report_id_pro_data ,mem_dg_ms_protocol_data + 1 
+0439 20200407 branch p_dongle_usb_tx_protocol_data_enable 
 
 p_dongle_usb_tx_enable_ep3:
-0435 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-0436 207a0000 rtn blank 
-0437 da204ac8 arg mem_usb_ep3_fifo ,rega 
-0438 20407da5 call fifo_is_full 
-0439 247a0000 nrtn blank 
-043a 6fe0cac7 fetch 1 ,mem_usb_ep3_data 
-043b 67e0866f store 1 ,mem_fifo_temp 
-043c da204ac8 arg mem_usb_ep3_fifo ,rega 
-043d 20207d8b branch fifo_in 
+043a 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+043b 207a0000 rtn blank 
+043c da204b08 arg mem_usb_ep3_fifo ,rega 
+043d 20407da5 call fifo_is_full 
+043e 247a0000 nrtn blank 
+043f 6fe0cb07 fetch 1 ,mem_usb_ep3_data 
+0440 67e0866f store 1 ,mem_fifo_temp 
+0441 da204b08 arg mem_usb_ep3_fifo ,rega 
+0442 20207d8b branch fifo_in 
 
 p_dongle_g24_kb:
-043e 6fe0c929 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-043f c0000443 beq 0 ,p_dongle_g24_kb_type0 
-0440 c0010449 beq 2 ,p_dongle_g24_kb_type2 
-0441 c001844c beq 3 ,p_dongle_g24_kb_type3 
-0442 202033be branch g24_rx_interrupt_clear 
+0443 6fe0c929 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0444 c0000448 beq 0 ,p_dongle_g24_kb_type0 
+0445 c001044e beq 2 ,p_dongle_g24_kb_type2 
+0446 c0018451 beq 3 ,p_dongle_g24_kb_type3 
+0447 202033be branch g24_rx_interrupt_clear 
 
 p_dongle_g24_kb_type0:
-0443 6fe0c92b fetch 1 ,mem_24g_rxdata_temp_new + 5 
-0444 67e0c611 store 1 ,mem_24g_ackpayload_enable 
-0445 70492b00 jam 0 ,mem_24g_rxdata_temp_new + 5 
-0446 d8a00923 arg mem_usb_kb_data ,contw 
-0447 d8c0492a arg mem_24g_rxdata_temp_new + 4 ,contr 
-0448 202048ef branch dongle_g24_kb_type0 + 5 
+0448 6fe0c92b fetch 1 ,mem_24g_rxdata_temp_new + 5 
+0449 67e0c611 store 1 ,mem_24g_ackpayload_enable 
+044a 70492b00 jam 0 ,mem_24g_rxdata_temp_new + 5 
+044b d8a00923 arg mem_usb_kb_data ,contw 
+044c d8c0492a arg mem_24g_rxdata_temp_new + 4 ,contr 
+044d 202048ef branch dongle_g24_kb_type0 + 5 
 
 p_dongle_g24_kb_type2:
-0449 d8a00943 arg mem_usb_kb_system ,contw 
-044a d8c04929 arg mem_24g_rxdata_temp_new + 3 ,contr 
-044b 2020491f branch dongle_g24_kb_type2 + 2 
+044e d8a00943 arg mem_usb_kb_system ,contw 
+044f d8c04929 arg mem_24g_rxdata_temp_new + 3 ,contr 
+0450 2020491f branch dongle_g24_kb_type2 + 2 
 
 p_dongle_g24_kb_type3:
-044c d8a00933 arg mem_usb_kb_multikey ,contw 
-044d d8c04929 arg mem_24g_rxdata_temp_new + 3 ,contr 
-044e 20204907 branch dongle_g24_kb_type3 + 2 
+0451 d8a00933 arg mem_usb_kb_multikey ,contw 
+0452 d8c04929 arg mem_24g_rxdata_temp_new + 3 ,contr 
+0453 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 4966)
+++ /1121s/branch/dongle/1m/usb_pc/baidu_project/usb_ai_voice_baidu/program/patch.prog	(working copy)
@@ -1291,11 +1291,11 @@
 
 p_dongle_g24_mouse:
 	fetch 1,mem_24g_rxdata_temp_new+2
-	bbit1 PROTOCOL_BIT,p_dongle_receive_ms_protocol_data
+	bbit1 SPEC_PRO_BIT,p_dongle_receive_ms_protocol_data
+	bbit1 NOR_PRO_BIT,p_dongle_receive_ms_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
-	bbit1 BATTERY_BIT,p_dongle_receive_ms_battery_data
 p_dongle_g24_mouse_next:
 	fetch 1,mem_24g_rxdata_length
 	sub pdata,0x09,null
@@ -1309,11 +1309,11 @@
 	arg mem_24g_rxdata_temp_new+10,contr
 	call memcpy
 	fetch 1,mem_24g_rxdata_temp_new+2
-	bbit1 PROTOCOL_BIT,p_dongle_receive_ms_protocol_data
+	bbit1 SPEC_PRO_BIT,p_dongle_receive_ms_protocol_data
+	bbit1 NOR_PRO_BIT,p_dongle_receive_ms_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
-	bbit1 BATTERY_BIT,p_dongle_receive_ms_battery_data
 	rtn
 
 p_dongle_g24_mouse_data:
@@ -1354,7 +1354,7 @@
 	arg mem_dg_ms_protocol_data_sta,contw
 	call memcpy
 	jam 0x40,mem_dg_ms_protocol_data
-	jam REPORT_ID_DATA_IN,mem_dg_ms_protocol_data+1
+	jam REPORT_ID_PRO_DATA,mem_dg_ms_protocol_data+1
 	fetchr loopcnt,1,mem_24g_rxdata_length
 	increase -1,loopcnt
 	arg mem_dg_ms_protocol_data_sta,contr
@@ -1388,17 +1388,24 @@
 p_dongle_receive_ms_audio_data:
 	fetchr loopcnt,1,mem_24g_rxdata_length
 	increase -1,loopcnt
-	arg mem_24g_rxdata_temp_new+3,regb
+	arg mem_24g_rxdata_temp_new+3,contr
+	arg mem_dg_ms_audio_data_sta,contw
+	call memcpy
+	fetchr loopcnt,1,mem_24g_rxdata_length
+	increase -1,loopcnt
+	arg mem_dg_ms_audio_data_last,regb
 	arg mem_dg_ms_audio_data_sta,rega
 	call compare_loop
-	rtneq zero
+	ncall p_dongle_usb_tx_audio_data,zero
 	fetchr loopcnt,1,mem_24g_rxdata_length
 	increase -1,loopcnt
-	arg mem_24g_rxdata_temp_new+3,contr
-	arg mem_dg_ms_audio_data_sta,contw
-	call memcpy
+	arg mem_dg_ms_audio_data_sta,contr
+	arg mem_dg_ms_audio_data_last,contw
+	branch memcpy
+
+p_dongle_usb_tx_audio_data:
 	jam 0x40,mem_dg_ms_audio_data
-	jam REPORT_ID_DATA_IN,mem_dg_ms_audio_data+1
+	jam REPORT_ID_AUDIO_DATA,mem_dg_ms_audio_data+1
 	fetch 1,mem_24g_rxdata_length
 	increase -1,pdata
 	store 1,mem_dg_ms_audio_data+2
@@ -1430,7 +1437,7 @@
 	store 5,mem_dg_ms_battery_start
 	store 5,mem_dg_ms_protocol_data+2
 	jam 0x40,mem_dg_ms_protocol_data
-	jam REPORT_ID_DATA_IN,mem_dg_ms_protocol_data+1
+	jam REPORT_ID_PRO_DATA,mem_dg_ms_protocol_data+1
 	branch p_dongle_usb_tx_protocol_data_enable
 
 //pack data type header enter fifo
