Index: yc_spi.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_spi.c	(revision 725)
+++ /YC3121_SDK/fw/sdk/yc_spi.c	(working copy)
@@ -37,7 +37,7 @@
 
 void SPI_SendData(SPIx_TypeDef SPIx, uint8_t data)
 {
-    static	unsigned char pdata;
+    volatile unsigned char pdata;
     pdata = data;
     DMA_SRC_ADDR(SPIx) = (int)(&pdata);
     DMA_LEN(SPIx)      =  1 << 16;
Index: yc_usb/scpu_usb_ccid_Device_Demo/usb_main.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_usb/scpu_usb_ccid_Device_Demo/usb_main.c	(revision 725)
+++ /YC3121_SDK/fw/sdk/yc_usb/scpu_usb_ccid_Device_Demo/usb_main.c	(working copy)
@@ -45,9 +45,11 @@
 
 void usb_main(void)
 {
+	volatile uint16_t temp1=0,temp2=0,cnt=0;
 	enable_clock(CLKCLS_BT);	
 	BT_CLKPLL_EN = 0xff;
 	enable_clock(CLKCLS_USB);
+//	SYSCTRL_HCLK_CON &= (~(1 << 11));
 	SYSCTRL_HCLK_CON |= 1 << 11;
 	usb_init();
 	
@@ -72,11 +74,15 @@
 				temp2 = temp1;
 				temp1 = USB_OTG_READ_REG8(USB_SOFCNT)|( USB_OTG_READ_REG8(USB_SOFCNTHI)<<8); 
 				if((temp2 == temp1) && (temp1 !=0))
-				    cnt++;
+				{
+				  cnt++;
+				}
 				else 
+				{
 					cnt = 0;
+				}
 				
-				if(cnt ==10000)
+				if(cnt >10000)
 				{
 					MyPrintf("reset ");
 					USB_OTG_dev.dev.zero_replay_flag =0;

