Index: fw/core/board_config.h
===================================================================
--- /YC3121_SDK/fw/core/board_config.h	(revision 732)
+++ /YC3121_SDK/fw/core/board_config.h	(working copy)
@@ -43,6 +43,7 @@
 #define UART1_RX_PIN        GPIO_Pin_15
 
 //BEEP驱动IO
+#define BEEP_PWM   0
 #define BEEP_PORT  GPIOA
 #define BEEP_PIN   GPIO_Pin_11
 
@@ -98,7 +99,7 @@
 #define GPIO_GROUP_Line_5 GPIOC
 #define Line_5 GPIO_Pin_11
 
-//TFT屏幕驱动配置
+//LCD屏幕驱动配置
 #define LCD_SPI     SPI0
 #define LCDSDA_PIN  GPIO_Pin_1
 #define LCDSDA_PORT GPIOB
Index: fw/makefile
===================================================================
--- /YC3121_SDK/fw/makefile	(revision 732)
+++ /YC3121_SDK/fw/makefile	(working copy)
@@ -77,7 +77,7 @@
 		  -I sdk/yc_usb
 
 
-CFLAG =  -mthumb -mcpu=cortex-m0 -c -g -Os $(INC_DIR) $(DEF) -fno-toplevel-reorder
+CFLAG =  -mthumb -mcpu=cortex-m0 -c -g -Os $(INC_DIR) $(DEF) -fno-toplevel-reorder -ffunction-sections -fdata-sections
 LDFLAG = -T output/ld.script -Map=output/memmap -lc -lm -lgcc -L "$(DIR)/lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m"  -L "$(DIR)/arm-none-eabi/lib/thumb/v6-m"
 
 define ldscript = 
Index: fw/sdk/yc_st7789.h
===================================================================
--- /YC3121_SDK/fw/sdk/yc_st7789.h	(revision 732)
+++ /YC3121_SDK/fw/sdk/yc_st7789.h	(working copy)
@@ -83,5 +83,6 @@
 void St7789_tft_DrawRectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);
 void St7789_tft_RectangleFill(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);
 void St7789_tft_DrawCircle(uint16_t y0, uint16_t x0, uint8_t r, uint16_t c);
+void st7789_tft_clear(uint16_t Color);
 
 #endif
Index: fw/sdk/yc_st7789.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_st7789.c	(revision 732)
+++ /YC3121_SDK/fw/sdk/yc_st7789.c	(working copy)
@@ -17,10 +17,11 @@
     SPI_InitStruct.CPOL = SPI_CPOL_Low;
     SPI_InitStruct.Mode =  SPI_Mode_Master;
     SPI_InitStruct.RW_Delay = 1;
-
+    #if (BOARD_VER == EPOS_BOARD_V1_0)
     GPIO_Config(St7789TFT_InitStruct->IO_TFT_SCL_Port, St7789TFT_InitStruct->IO_TFT_SCL_PIN, SPID1_SCK);
     GPIO_Config(St7789TFT_InitStruct->IO_TFT_CS_Port, St7789TFT_InitStruct->IO_TFT_CS_PIN, SPID1_NCS);
     GPIO_Config(St7789TFT_InitStruct->IO_TFT_SDA_Port, St7789TFT_InitStruct->IO_TFT_SDA_PIN, SPID1_MOSI);
+    #endif
     SPI_Init(St7789TFT_InitStruct->SPIx, &SPI_InitStruct);
 }
 
@@ -33,8 +34,10 @@
 **************************************************************/
 static void st7789_tft_write_reg(uint8_t reg)
 {
+    #if (BOARD_VER == EPOS_BOARD_V1_0)
     GPIO_Config(ST7789_TFT_A0_PORT, ST7789_TFT_A0_PIN, OUTPUT_LOW);
     SPI_SendData(ST7789VTFTSPI, reg);
+    #endif
 }
 
 /**************************************************************
@@ -46,8 +49,10 @@
 **************************************************************/
 static void st7789_tft_write_data(uint8_t data)
 {
+    #if (BOARD_VER == EPOS_BOARD_V1_0)
     GPIO_Config(ST7789_TFT_A0_PORT, ST7789_TFT_A0_PIN, OUTPUT_HIGH);
     SPI_SendData(ST7789VTFTSPI, data);
+    #endif
 }
 
 /**************************************************************
@@ -60,8 +65,10 @@
 **************************************************************/
 static void st7789_tft_write_buff(uint8_t *buff, int len)
 {
+    #if (BOARD_VER == EPOS_BOARD_V1_0)
     GPIO_Config(ST7789_TFT_A0_PORT, ST7789_TFT_A0_PIN, OUTPUT_HIGH);
     SPI_SendBuff(ST7789VTFTSPI, buff, len);
+    #endif
 }
 
 /**************************************************************
@@ -306,9 +313,11 @@
 
 void ST7789_TFT_Init(void)
 {
+    #if (BOARD_VER == EPOS_BOARD_V1_0)
     GPIO_Config(ST7789_TFT_RST_PORT, ST7789_TFT_RST_PIN, OUTPUT_LOW);
     delay_ms(20);
     GPIO_Config(ST7789_TFT_RST_PORT, ST7789_TFT_RST_PIN, OUTPUT_HIGH);
+    #endif
     delay_ms(20);
 
     //--------------------------------------Display Setting------------------------------------------//
@@ -437,8 +446,9 @@
     /* Display On */
     st7789_tft_clear(WHITE);
     st7789_tft_write_reg(0x29);
-
-    GPIO_Config(ST7789_TFT_BL_PORT, ST7789_TFT_BL_PIN, OUTPUT_HIGH);
+    #if (BOARD_VER == EPOS_BOARD_V1_0)
+    GPIO_Config(ST7789_TFT_BL_PORT, ST7789_TFT_BL_PIN, ST7789_TFT_BL_HIGH_LIGHT?OUTPUT_HIGH:OUTPUT_LOW);
+    #endif
 }
 
 /**************************************************************
Index: fw/sdk/yc_usb/libraries/harward_Der/Usb_dcd_init.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_usb/libraries/harward_Der/Usb_dcd_init.c	(revision 732)
+++ /YC3121_SDK/fw/sdk/yc_usb/libraries/harward_Der/Usb_dcd_init.c	(working copy)
@@ -35,7 +35,7 @@
 /* Interrupt Handlers */
 static uint32_t DCD_HandleInEP_ISR(USB_OTG_CORE_HANDLE *pdev, uint16_t ep_intr);
 static uint32_t DCD_HandleOutEP_ISR(USB_OTG_CORE_HANDLE *pdev, uint16_t ep_intr);
-uint32_t DCD_HandleUsbReset_ISR();
+static uint32_t DCD_HandleUsbReset_ISR();
 
 void _delay_(uint32_t t)
 {
Index: fw/sdk/yc_usb/scpu_usb_CDC_Device_Demo/usb_conf.h
===================================================================
--- /YC3121_SDK/fw/sdk/yc_usb/scpu_usb_CDC_Device_Demo/usb_conf.h	(revision 732)
+++ /YC3121_SDK/fw/sdk/yc_usb/scpu_usb_CDC_Device_Demo/usb_conf.h	(working copy)
@@ -226,8 +226,9 @@
     #endif /* __CC_ARM */  
   #endif /* __GNUC__ */ 
 #else
-  #define __ALIGN_BEGIN         __align(4) 
-  #define __ALIGN_END   
+  //#define __ALIGN_BEGIN         __align(4) 
+  #define __ALIGN_END    __attribute__ ((aligned (4)))
+  #define __ALIGN_BEGIN 
 #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
 
 /* __packed keyword used to decrease the data type alignment to 1-byte */
@@ -236,7 +237,7 @@
 #elif defined (__ICCARM__)     /* IAR Compiler */
   #define __packed    __packed
 #elif defined   ( __GNUC__ )   /* GNU Compiler */                        
-  #define __packed    __attribute__ ((__packed__))
+//  #define __packed    __attribute__ ((__packed__))
 #elif defined   (__TASKING__)  /* TASKING Compiler */
   #define __packed    __unaligned
 #endif /* __CC_ARM */
Index: fw/sdk/yc_usb/scpu_usb_CDC_Device_Demo/usbd_cdc_vcp.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_usb/scpu_usb_CDC_Device_Demo/usbd_cdc_vcp.c	(revision 732)
+++ /YC3121_SDK/fw/sdk/yc_usb/scpu_usb_CDC_Device_Demo/usbd_cdc_vcp.c	(working copy)
@@ -518,7 +518,7 @@
   * @param  None.
   * @retval None.
   */
-#ifdef 0
+#if 0
 void EVAL_COM_IRQHandler(void)
 {
     UART_TypeDef * UARTx = UART1;
Index: fw/sdk/yc_usb/scpu_usb_CDC_Device_Demo/usbd_usr.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_usb/scpu_usb_CDC_Device_Demo/usbd_usr.c	(revision 732)
+++ /YC3121_SDK/fw/sdk/yc_usb/scpu_usb_CDC_Device_Demo/usbd_usr.c	(working copy)
@@ -207,7 +207,7 @@
 */
 void USBD_USR_DeviceConnected (void)
 {
-    printf("> USB Device Connected.\n");
+    MyPrintf("> USB Device Connected.\n");
 }
 
 
@@ -219,7 +219,7 @@
 */
 void USBD_USR_DeviceDisconnected (void)
 {
-    printf("> USB Device Disconnected.\n");
+    MyPrintf("> USB Device Disconnected.\n");
 }
 
 /**
@@ -230,7 +230,7 @@
 */
 void USBD_USR_DeviceSuspended(void)
 {
-    printf("\n> USB Device in Suspend Mode.\n");
+    MyPrintf("\n> USB Device in Suspend Mode.\n");
     /* Users can do their application actions here for the USB-Reset */
 }
 
@@ -243,7 +243,7 @@
 */
 void USBD_USR_DeviceResumed(void)
 {
-    printf("\n> USB Device in Idle Mode.\n");
+    MyPrintf("\n> USB Device in Idle Mode.\n");
     /* Users can do their application actions here for the USB-Reset */
 }
 
