Index: ModuleDemo/NFC/YC5018/prj/GCC/makefile
===================================================================
--- /YC3121_demo/ModuleDemo/NFC/YC5018/prj/GCC/makefile	(revision 791)
+++ /YC3121_demo/ModuleDemo/NFC/YC5018/prj/GCC/makefile	(working copy)
@@ -17,13 +17,16 @@
 
 all : output/out.hex
 
- 
+
 CORE_OBJS =  $(LIB_PATH)/startup/flash_start_gcc \
              $(LIB_PATH)/core/system \
              $(LIB_PATH)/core/misc \
              $(LIB_PATH)/core/bt_code \
              $(LIB_PATH)/sdk/yc_gpio \
              $(LIB_PATH)/sdk/yc_uart \
+             $(LIB_PATH)/sdk/yc_lpm \
+             $(LIB_PATH)/sdk/yc_otp \
+             $(LIB_PATH)/sdk/yc_sysctrl \
              $(LIB_PATH)/sdk/yc_spi \
              $(LIB_PATH)/sdk/yc_systick \
              $(LIB_PATH)/sdk/yc_timer \
@@ -31,8 +34,8 @@
              $(LIB_PATH)/sdk/yc_bt \
              $(LIB_PATH)/sdk/yc_nfc/yc_nfc_common \
              $(LIB_PATH)/sdk/yc_nfc/yc_emv_contactless_l1
-             
-USER_OBJS = $(USER_PATH)/main 
+
+USER_OBJS = $(USER_PATH)/main
 
 
 OBJS = $(CORE_OBJS) $(USER_OBJS)
@@ -46,9 +49,9 @@
 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 = 
-/* Linker script to configure memory regions. 
- * Need modifying for a specific board. 
+define ldscript =
+/* Linker script to configure memory regions.
+ * Need modifying for a specific board.
  *   FLASH.ORIGIN: starting address of flash
  *   FLASH.LENGTH: length of flash
  *   RAM.ORIGIN: starting address of RAM bank 0
@@ -64,7 +67,7 @@
  * with other linker script that defines memory regions FLASH and RAM.
  * It references following symbols, which must be defined in code:
  *   Reset_Handler : Entry of reset handler
- * 
+ *
  * It defines following symbols, which code can use without definition:
  *   __exidx_start
  *   __exidx_end
@@ -120,15 +123,15 @@
 
 		KEEP(*(.eh_frame*))
 	} > FLASH
-	
-	
 
-	.ARM.extab : 
+
+
+	.ARM.extab :
 	{
 		*(.ARM.extab* .gnu.linkonce.armextab.*)
 	} > FLASH
 
-	
+
 	.ARM.exidx :
 	{
 		*(.ARM.exidx* .gnu.linkonce.armexidx.*)
@@ -138,7 +141,7 @@
 	__exidx_start = .;
 
 	__etext = .;
-		
+
 	.data : AT (__etext)
 	{
 		__data_start__ = .;
@@ -182,7 +185,7 @@
 		. = ALIGN(4);
 		__bss_end__ = .;
 	} > RAM
-	
+
 	.heap (COPY):
 	{
 		__end__ = .;
@@ -204,7 +207,7 @@
 	__StackTop = ORIGIN(RAM) + LENGTH(RAM);
 	__StackLimit = __StackTop - SIZEOF(.stack_dummy);
 	PROVIDE(__stack = __StackTop);
-	
+
 	/* Check if data + heap + stack exceeds RAM limit */
 	ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
 }
Index: ModuleDemo/NFC/YC5018/prj/MDK/YC3121_Keil.uvoptx
===================================================================
--- /YC3121_demo/ModuleDemo/NFC/YC5018/prj/MDK/YC3121_Keil.uvoptx	(revision 791)
+++ /YC3121_demo/ModuleDemo/NFC/YC5018/prj/MDK/YC3121_Keil.uvoptx	(working copy)
@@ -353,6 +353,42 @@
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
+    <File>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>12</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\..\..\Librarier\sdk\yc_lpm.c</PathWithFileName>
+      <FilenameWithoutPath>yc_lpm.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>13</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\..\..\Librarier\sdk\yc_otp.c</PathWithFileName>
+      <FilenameWithoutPath>yc_otp.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>14</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\..\..\Librarier\sdk\yc_sysctrl.c</PathWithFileName>
+      <FilenameWithoutPath>yc_sysctrl.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
   </Group>
 
   <Group>
@@ -363,7 +399,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>12</FileNumber>
+      <FileNumber>15</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -375,7 +411,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>13</FileNumber>
+      <FileNumber>16</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -395,7 +431,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>14</FileNumber>
+      <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -407,7 +443,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>15</FileNumber>
+      <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
Index: ModuleDemo/NFC/YC5018/prj/MDK/YC3121_Keil.uvprojx
===================================================================
--- /YC3121_demo/ModuleDemo/NFC/YC5018/prj/MDK/YC3121_Keil.uvprojx	(revision 791)
+++ /YC3121_demo/ModuleDemo/NFC/YC5018/prj/MDK/YC3121_Keil.uvprojx	(working copy)
@@ -447,6 +447,21 @@
               <FileType>1</FileType>
               <FilePath>..\..\..\..\..\Librarier\sdk\yc_bt.c</FilePath>
             </File>
+            <File>
+              <FileName>yc_lpm.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\..\Librarier\sdk\yc_lpm.c</FilePath>
+            </File>
+            <File>
+              <FileName>yc_otp.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\..\Librarier\sdk\yc_otp.c</FilePath>
+            </File>
+            <File>
+              <FileName>yc_sysctrl.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\..\Librarier\sdk\yc_sysctrl.c</FilePath>
+            </File>
           </Files>
         </Group>
         <Group>
Index: ModuleDemo/POS/user/font.c
===================================================================
--- /YC3121_demo/ModuleDemo/POS/user/font.c	(revision 791)
+++ /YC3121_demo/ModuleDemo/POS/user/font.c	(working copy)
@@ -302,7 +302,7 @@
 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x20,0x00,0x00,0x02,0x10,0x00,0x00,0x04,0x0F,0xFE,0x3F,0xF8,0x00,0x01,0x40,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
 {0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/
 };
-#if 0
+
 const unsigned char gImage_Yichip[7208] = { 0X10,0X10,0X00,0X78,0X00,0X1E,0X01,0X1B,
 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
@@ -755,7 +755,7 @@
 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
 };
-#endif
+
 const unsigned char gImage_low_power[1232] = { 0X10,0X10,0X00,0X22,0X00,0X12,0X01,0X1B,
 0XFF,0XFF,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,
 0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,
@@ -1694,7 +1694,7 @@
 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X34,0X5E,0X13,0XDE,0X0B,0X9E,0XFF,0XFF,0XFF,0XFF,
 0XFF,0XFF,0X0B,0X9E,0X0B,0X9E,0X34,0X5E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0B,0X9E,
 0X13,0XDE,0X2C,0X3E,};
-#if 0
+
 const unsigned char Yichip_ch[] = {
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x03,0x20,0x00,0x06,0x30,0x3F,0xC6,0x22,0x32,0x4C,0x66,0x32,0x7C,0xC6,
 0x32,0x7C,0xCC,0x32,0x6F,0x8C,0x32,0x4F,0x18,0x32,0x4C,0x38,0x32,0x4C,0x70,0x32,0x4C,0xE0,0x32,0x4F,0xC0,0x32,0x4F,0x06,
@@ -1735,7 +1735,7 @@
 0x00,0x00,0x18,0x1C,0x1C,0x00,0x00,0x18,0x1C,0x1C,0x00,0x00,0x18,0x1C,0x1C,0x02,0x00,0x18,0x1C,0x1C,0x03,0x80,0x18,0x1C,0x1C,0x03,0x80,0x18,0x1C,0x1C,0x03,0x80,0x1F,0xFF,0xFF,0xFF,
 0x80,0x1F,0xFF,0xFF,0xFF,0x00,0x1F,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"用",3*/
 };
-#endif
+
 const unsigned char xiaofei_ch[] = {
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x10,0x00,0x80,0x00,0x10,0x00,0x80,0x00,0x10,0x00,0x80,0x00,0x30,0x01,0xFF,0xFF,0xF0,
 0x03,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"1",0*/
Index: ModuleDemo/QRDecode/QRDecode_demo/user/font.c
===================================================================
--- /YC3121_demo/ModuleDemo/QRDecode/QRDecode_demo/user/font.c	(revision 791)
+++ /YC3121_demo/ModuleDemo/QRDecode/QRDecode_demo/user/font.c	(working copy)
@@ -1694,7 +1694,7 @@
 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X34,0X5E,0X13,0XDE,0X0B,0X9E,0XFF,0XFF,0XFF,0XFF,
 0XFF,0XFF,0X0B,0X9E,0X0B,0X9E,0X34,0X5E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0B,0X9E,
 0X13,0XDE,0X2C,0X3E,};
-#if 0
+
 const unsigned char Yichip_ch[] = {
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x03,0x20,0x00,0x06,0x30,0x3F,0xC6,0x22,0x32,0x4C,0x66,0x32,0x7C,0xC6,
 0x32,0x7C,0xCC,0x32,0x6F,0x8C,0x32,0x4F,0x18,0x32,0x4C,0x38,0x32,0x4C,0x70,0x32,0x4C,0xE0,0x32,0x4F,0xC0,0x32,0x4F,0x06,
@@ -1735,7 +1735,7 @@
 0x00,0x00,0x18,0x1C,0x1C,0x00,0x00,0x18,0x1C,0x1C,0x00,0x00,0x18,0x1C,0x1C,0x02,0x00,0x18,0x1C,0x1C,0x03,0x80,0x18,0x1C,0x1C,0x03,0x80,0x18,0x1C,0x1C,0x03,0x80,0x1F,0xFF,0xFF,0xFF,
 0x80,0x1F,0xFF,0xFF,0xFF,0x00,0x1F,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"用",3*/
 };
-#endif
+
 const unsigned char xiaofei_ch[] = {
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x10,0x00,0x80,0x00,0x10,0x00,0x80,0x00,0x10,0x00,0x80,0x00,0x30,0x01,0xFF,0xFF,0xF0,
 0x03,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"1",0*/
Index: auto_compile_demo.bat
===================================================================
--- /YC3121_demo/auto_compile_demo.bat	(revision 791)
+++ /YC3121_demo/auto_compile_demo.bat	(working copy)
@@ -31,10 +31,6 @@
 set quit_cd_str=..\..\..\..\..
 call :compile_one_demo
 
-set prj_path=ModuleDemo\BlueTooth\DTM\prj
-set quit_cd_str=..\..\..\..\..
-call :compile_one_demo
-
 set prj_path=ModuleDemo\BPU\RTC\prj
 set quit_cd_str=..\..\..\..\..
 call :compile_one_demo
@@ -245,6 +241,10 @@
 set quit_cd_str=..\..\..\..\..
 call :compile_one_demo
 
+set prj_path=ModuleDemo\USB\USB_PRINTER\prj
+set quit_cd_str=..\..\..\..\..
+call :compile_one_demo
+
 set prj_path=ModuleDemo\WDT\WDT_Interrupt\prj
 set quit_cd_str=..\..\..\..\..
 call :compile_one_demo
@@ -253,6 +253,16 @@
 set quit_cd_str=..\..\..\..\..
 call :compile_one_demo
 
+::只有keil工程
+set prj_path=ModuleDemo\updata_app\Boot\prj
+set quit_cd_str=..\..\..\..\..
+call:keil_compile
+
+::只有keil工程
+set prj_path=ModuleDemo\updata_app\app\prj
+set quit_cd_str=..\..\..\..\..
+call:keil_compile
+
 @ echo compile all demo ok
 @ goto :end
 
@@ -284,7 +294,7 @@
     @ echo.
     @ echo %prj_path%
     @ echo keil compile ERROR!!!
-    goto :end 
+    goto :end
 )
 @ echo on
 :keil_not_compile
@@ -322,7 +332,7 @@
     @ echo.
     @ echo %prj_path%
     @ echo gcc compile ERROR!!!
-    goto :end 
+    goto :end
 )
 @ echo on
 :gcc_not_compile
