Index: format/app_mouse.format
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/format/app_mouse.format	(revision 426)
+++ /1306ac/branch/mouse/branch/mouse_public/format/app_mouse.format	(working copy)
@@ -401,6 +401,16 @@
 1 mem_mouse_ice_sdio_for_sensor_angle
 1 mem_mouse_logo_enable_gpio0
 
+//uart start 
+1 mem_device_uart_tx_gpio
+1 mem_device_uart_rx_gpio
+2 mem_device_uart_rx_buffer
+2 mem_device_uart_rx_buffer_end
+2 mem_device_uart_tx_buffer
+2 mem_device_uart_tx_buffer_end
+2 mem_device_uart_baud_rate
+//uart end
+
 )
 
 
Index: output/eeprom.dat
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/output/eeprom.dat	(revision 426)
+++ /1306ac/branch/mouse/branch/mouse_public/output/eeprom.dat	(working copy)
@@ -1423,7 +1423,7 @@
 ff
 ff
 ff
-ff
+00
 aa
 55
 01
@@ -1700,16 +1700,17 @@
 00
 aa
 55
-01
+02
 00
 11
 49
 01
+01
 55
 aa
 aa
 55
-09
-a0
-9d
-83
+0c
+9f
+28
+5e
Index: output/memmap.format
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/output/memmap.format	(revision 426)
+++ /1306ac/branch/mouse/branch/mouse_public/output/memmap.format	(working copy)
@@ -1686,6 +1686,13 @@
 0x490d mem_mouse_24g_addr_temp
 0x4911 mem_mouse_ice_sdio_for_sensor_angle
 0x4912 mem_mouse_logo_enable_gpio0
+0x4913 mem_device_uart_tx_gpio
+0x4914 mem_device_uart_rx_gpio
+0x4915 mem_device_uart_rx_buffer
+0x4917 mem_device_uart_rx_buffer_end
+0x4919 mem_device_uart_tx_buffer
+0x491b mem_device_uart_tx_buffer_end
+0x491d mem_device_uart_baud_rate
 0x443c mem_shutter_bluetooth_type
 0x443d mem_shutter_config_eeprom_offset_addr
 0x443f mem_shutter_config_eeprom_start_flag
Index: program/patch.prog
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/program/patch.prog	(revision 426)
+++ /1306ac/branch/mouse/branch/mouse_public/program/patch.prog	(working copy)
@@ -1,6 +1,6 @@
 
-//define G24_NEW_REVISION
 define SENSOR_ANGLE_ICE_SDIO
+//define UART_LOG
 
 	bbit1 8,pf_patch_ext
 ifdef SENSOR_ANGLE_ICE_SDIO
@@ -19,9 +19,6 @@
 	branch assert
 	
 pf_patch_ext:
-ifdef G24_NEW_REVISION
-	beq patch2b_1,p_g24_transmit_no_interrupt
-endif
 	beq patch2c_1,p_g24_lpm_wait
 	rtneq patch3f_7
 	branch assert
@@ -30,6 +27,9 @@
 
 p_app_init:
 p_mouse_init:
+ifdef UART_LOG
+	call p_device_hardware_init
+endif
 	jam 0x73,core_spid_ctrl
 	call enable_authrom
 	call p_mouse_setting_config
@@ -125,11 +125,7 @@
 endif
 	
 p_mouse_cb_fuction:
-ifdef G24_NEW_REVISION
-	setarg p_mouse_24g_short_sleep
-else
 	setarg mouse_24g_short_sleep
-endif	
 	store 2,mem_cb_24g_transmit_short_sleep
 	setarg p_mouse_24g_long_sleep
 	store 2,mem_cb_24g_transmit_long_sleep
@@ -154,170 +150,6 @@
 	jam 0,mem_mouse_24g_long_sleep_flag
 	ncall p_mouse_24g_short_sleep_clear_wake,blank	
 	branch mouse_24g_package_data+4
-	
-	
-ifdef G24_NEW_REVISION		
-p_mouse_24g_short_sleep:
-	fetch 1,mem_mouse_sleep_deal_type
-	branch g24_short_sleep,blank
-	call g24_lpm_wait
-	nrtn user
-	fetch 1,mem_24g_device_led_status
-	nrtn blank
-	fetch 1,mem_mouse_24g_sleep_miss
-	jam 0,mem_mouse_24g_sleep_miss
-	sub pdata,0,null
-	nbranch p_mouse_24g_short_sleep_last_miss,zero
-	fetcht 2,mem_24g_retransmit
-	sub temp,0,null
-	branch p_mouse_24g_short_sleep_default,zero
-
-	fetch 4,mem_mouse_24g_tx_time_last_delt
-	branch p_mouse_24g_short_sleep_default,blank
-p_mouse_24g_short_sleep_last_miss:	
-	fetcht 4,mem_mouse_24g_sleep_miss_temp
-	isolate1 31,temp
-	branch p_mouse_24g_sub_miss_temp,true
-	fetch 4,mem_mouse_24g_tx_time_last_delt
-	iadd temp,pdata	
-p_mouse_24g_short_sleep_notify:
-	fetcht 4,mem_mouse_24g_tsniff
-	isub temp,temp
-	storet 4,mem_mouse_24g_sleep_miss_temp
-	nbranch p_mouse_24g_short_sleep_long,positive
-	fetch 3,mem_24g_short_sleep_set
-	isub temp,pdata
-	nbranch mouse_24g_short_sleep_2,positive
-	arg 0x600,temp
-	isub temp,null
-	nbranch mouse_24g_short_sleep_2,positive
-p_mouse_24g_short_sleep2:
-//	call clk2lpo
-//	storet 4,mem_sleep_counter
-//p_lpm_short_sleep:
-//	fetch 1,mem_fcomp_div
-//	beq XTAL_16M,p_lpm_short_sleep_skip_pll_set
-//	setarg 0
-//	store 3,core_clkpll_ctrl0// close pll
-//p_lpm_short_sleep_skip_pll_set:
-//	jam 250,mem_mouse_24g_tx_time_offset
-//	branch lpm_sleep
-	jam 250,mem_mouse_24g_tx_time_offset
-	branch mouse_24g_short_sleep3
-
-
-
-p_mouse_24g_short_sleep_default:
-	call mouse_24g_miss_temp_clear
-	fetch 3,mem_24g_short_sleep_set
-	branch p_mouse_24g_short_sleep2
-
-p_mouse_24g_short_sleep_long:
-	sub temp,0,temp
-	fetch 3,mem_24g_short_sleep_set
-	iadd temp,pdata
-	branch p_mouse_24g_short_sleep2
-
-p_mouse_24g_sub_miss_temp:
-	arg -1,pdata
-	isub temp,regext
-	fetch 4,mem_mouse_24g_tx_time_last_delt
-	isub regext,pdata
-	branch p_mouse_24g_short_sleep_notify
-
-
-p_g24_transmit_no_interrupt:
-	call g24_txdata_prep
-	nbranch p_g24_nodata_transmit,user
-p_g24_transmit_start:
-	call p_g24_transmit_process
-	branch g24_transmit_start+1
-
-p_g24_nodata_transmit:
-	fetch 1,mem_24g_abort_pac
-	call p_g24_send_abort_packet,blank
-	branch g24_nodata_transmit+2
-p_g24_send_abort_packet:
-	jam TYPE_MS,mem_24g_data_type
-	jam 1,mem_24g_abort_pac
-	call g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_txbuf
-	setarg 0
-	store 7,mem_24g_txbuf+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_txbuf+8
-	jam 12,mem_24g_datalen
-	fetch 1,mem_24g_data_type
-	set1 bit_abort,pdata
-	store 1,mem_24g_data_type
-	call g24_transmit_prep
-	branch p_g24_transmit_start
-
-p_g24_transmit_process:
-	setarg 0
-	store 1,mem_24g_retry
-	store 2,mem_24g_retransmit
-p_g24_transmit_loop:
-	call g24_transmit_receive_ack
-//	fetch 1,mem_24g_no_ack	//tx noack
-//	beq no_ack_24g,g24_transmit_no_ack
-	nbranch p_g24_retransmit,sync
-	nbranch p_g24_retransmit,user3
-	call g24_ackpayload_parse	
-	call p_mouse_24g_transmit_callback
-	branch g24_transmit_no_ack
-
-p_mouse_24g_transmit_callback:
-	call p_mouse_24g_send_time_check
-	branch mouse_wakeup_24g
-
-p_g24_retransmit:
-	fetch 1,mem_mouse_need_soft_reset
-	nrtn blank
-	call mouse_select_device_by_pb_button
-p_g24_retransmit0:	
-	fetch 1,mem_24g_abort_pac
-	nrtn blank
-	fetch 2,mem_24g_txfail_cnt
-	increase 1,pdata
-	store 2,mem_24g_txfail_cnt	
-	fetch 1,mem_24g_txfail_cnt+1
-	bbit1 4,g24_tx_attempt_fail
-	call g24_transmit_hop_process
-	fetch 2,mem_24g_retransmit
-	increase 1,pdata
-	store 2,mem_24g_retransmit	
-	branch p_g24_transmit_loop
-
-p_mouse_24g_send_time_check:
-	fetch 1,mem_mouse_sleep_deal_type
-	rtn blank
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,mouse_24g_send_timer_first
-	fetch 1,mem_mouse_24g_tx_count
-	branch mouse_24g_send_timer_first,blank
-	copy clkn,pdata
-	fetcht 6,mem_mouse_24g_tx_time_last
-	store 6,mem_mouse_24g_tx_time_last
-	call clk_diff_rt
-	store 4,mem_mouse_24g_tx_time_last_delt
-
-	fetch 1,mem_mouse_24g_sleep_miss
-	nrtn blank
-	fetch 2,mem_24g_retransmit
-	nrtn blank
-	fetch 4,mem_mouse_24g_sleep_miss_temp
-	nrtn blank
-	fetch 4,mem_mouse_24g_tx_time_last_delt
-	fetcht 4,mem_mouse_24g_tsniff
-	lshift temp,temp
-	isub temp,null
-	branch mouse_24g_send_time_long_wake,positive
-	jam 210,mem_mouse_24g_tx_time_offset	//rom bugfix:increase -40,temp
-	call mouse_24g_send_time_check_1
-	jam 250,mem_mouse_24g_tx_time_offset
-	rtn
-endif
 
 p_le_enable_phy_by_pdata:
 	copy temp,pdata
@@ -572,6 +404,114 @@
 	store 4,mem_mouse_24g_addr
 	rtn
 
+ifdef UART_LOG
+p_device_hardware_init:
+	fetch 1,core_uart_ctrl
+	set0 BIT_UART_CONTROL_ENABLE,pdata
+	store 1,core_uart_ctrl
+	fetch 8,mem_device_uart_rx_buffer
+	call uarta_init_dma_mem
+
+	fetch uart_baud_len,mem_device_uart_baud_rate
+	call uarta_init_baud_rate
+	call uart_clock_select_main_freq_crystal
+	fetch 1,mem_device_uart_tx_gpio
+	arg gpcfg_uart_txd,temp
+	call gpio_config_function_int
+	fetch 1,mem_device_uart_rx_gpio
+
+	arg gpcfg_uart_rxd|gpcfg_pullup,temp
+	call gpio_config_function_int
+	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
+	storet 1,core_uart_ctrl
+	rtn
+
+p_24g_addr_print:
+	arg 4,loopcnt
+	arg mem_mouse_24g_addr,regc
+	call log_bytes
+	branch log_end
+
+//input: 1 byte hex @pdata  
+//output: 4 byte  '0','x', ASCII,ASCII, @pdata
+hex2ascii:
+	rshift4 pdata,rega  //high 4bit in rega
+	and_into 0x0f,pdata
+	call hex2ascii_half_byte
+	copy pdata,regb
+	copy rega,pdata
+	call hex2ascii_half_byte
+	lshift8 regb,regb
+	iadd regb,pdata
+//	lshift16 pdata,pdata
+//	arg 0x7830,regb   //0x
+//	iadd regb,pdata
+	rtn
+
+//input: 1 byte hex @pdata  
+//output: 4 byte  '0','x', ASCII,ASCII, @pdata
+hex2ascii_half_byte:
+	arg 0xa,temp
+	isub temp,temp
+	nbranch hex2ascii_half_byte_numberic,positive
+	setarg 0x41  // A
+	iadd temp,pdata
+	rtn
+hex2ascii_half_byte_numberic:
+	arg 0x30,temp
+	iadd temp,pdata
+	rtn
+
+//input: loopcnt--length,regc--data ptr	
+log_bytes:
+	copy loopcnt,pdata
+	branch log_len0,blank
+log_bytes_loop:
+	ifetch 1,regc
+	increase 1,regc
+	call log_byte
+	call log_space
+	loop log_bytes_loop
+uart_wait:
+	fetch 1,core_uart_status
+	bbit1 uart_status_tx_busy,uart_wait
+//	nop 12000
+	rtn
 
+log_len0:
+	call uarta_prepare_tx
+	setarg 0x656c
+	istore 2,contwu
+	setarg 0x306e
+	istore 2,contwu
+	call uarta_send
+	branch log_end
+
+//input 1byte @pdata
+log_byte:
+	call uarta_prepare_tx
+	call hex2ascii
+//	istore 4,contu	//0x
+	istore 2,contwu
+	branch uarta_send
+
+log_space:
+	call uarta_prepare_tx
+	setarg 0x20
+	istore 1,contwu
+	branch uarta_send
+
+log_end:
+	call uarta_prepare_tx
+	setarg 0x0a0d
+	istore 2,contwu
+	branch uarta_send
+
+log_colon:
+	call uarta_prepare_tx
+	setarg 0x3a
+	istore 1,contwu
+	branch uarta_send
 
+endif
 
Index: sched/mouse_basic.dat
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/sched/mouse_basic.dat	(revision 426)
+++ /1306ac/branch/mouse/branch/mouse_public/sched/mouse_basic.dat	(working copy)
@@ -130,7 +130,7 @@
 ff  #mem_mouse_1io2led_multi_24g_gpio
 ff  #mem_mouse_1io2led_multi_bt1_gpio
 ff  #mem_mouse_1io2led_multi_bt2_gpio
-ff  #mem_mouse_logo_led_gpio
+00  #mem_mouse_logo_led_gpio
 
 
 #mouse sensor angle
@@ -140,7 +140,7 @@
 #0X03 MOUSE_3CLK_ANGLE
 
 mem_mouse_ice_sdio_for_sensor_angle:01	#00 disable, 01 enable
-mem_mouse_logo_enable_gpio0:00	#00:disable logo	01:enable,gpio=0
+mem_mouse_logo_enable_gpio0:01	#00:disable logo	01:enable,gpio=0
 
 mem_device_option:08
 mem_device_flag:00	#00--24g 01--bt
@@ -335,7 +335,15 @@
 09 00
 ff ff
 
+#log log log log log log log log log log log
 
-
+#uart config
+#mem_device_uart_tx_gpio:0c	#0c
+#mem_device_uart_rx_gpio:ff
+#mem_device_uart_baud_rate:1a 00	#921600
+#mem_device_uart_rx_buffer:00 1c
+#mem_device_uart_rx_buffer_end:ff 1f
+#mem_device_uart_tx_buffer:00 4f
+#mem_device_uart_tx_buffer_end:ff 4f
 
 
