Index: core/board_config.h
===================================================================
--- /YC3121_SDK/fw/core/board_config.h	(revision 799)
+++ /YC3121_SDK/fw/core/board_config.h	(working copy)
@@ -202,16 +202,65 @@
 #define ST7789_TFT_BL_PORT  GPIOA
 #define ST7789_TFT_BL_HIGH_LIGHT	1
 
-//camera io
-#define CAMERA_SDA	28
-#define CAMERA_SCL	29
-#define CAMERA_RST	32
-#define CAMERA_PD   31//power down
-#define CAMERA_MCLK	35
-#define CAMERA_PCLK	34
-#define CAMERA_DATA	30
-#define CAMERA_CS   42
+/*QRdecode tft */
+//tft camera io
+#define QR_CAMERA_FREQ       24
+#define QR_CAMERA_SDA        28
+#define QR_CAMERA_SCL        29
+#define QR_CAMERA_RST        32
+#define QR_CAMERA_PD         31//power down
+#define QR_CAMERA_MCLK       35
+#define QR_CAMERA_PCLK       34
+#define QR_CAMERA_DATA       30
+#define QR_CAMERA_CS         42
 
-#endif
+//tft io
+#define QR_TFT_RST             (11)                  /*rst pin*/
+#define QR_TFT_CS              ( 5)                   /*cs pin*/
+#define QR_TFT_CLK             (40)                  /*clk pin*/
+#define QR_TFT_MOSI            (39)                  /*mosi pin*/
+#define QR_TFT_A0              (10)                  /*a0 pin*/
+#define QR_TFT_BL              (12 | (1 << 7))       /*bl pin*/
+#define QR_TFT_START_COLUMN    ( (320 - 236) / 2 )   /*display center*/   
+
+//key io
+#define QR_KEY_T_MATRIX        ( 0)                  /*key mode :0: T matrix key,1:matrix key*/
+#define QR_KEY_LINE_NUM        ( 6)                  /*Value range 0~10*/
+#define QR_KEY_COL_NUM         ( 0)                  /*Value range (T matrix key: 0)*/
+#define QR_KEY_CANCEL_POSTION  ( (5 << 4) | 6 )      /*Exit key*/
+#define QR_KEY_LINE_1          ( 9)                  /*GPIO pin*/
+#define QR_KEY_LINE_2          (15)                  /*GPIO pin*/
+#define QR_KEY_LINE_3          (14)                  /*GPIO pin*/
+#define QR_KEY_LINE_4          ( 8)                  /*GPIO pin*/
+#define QR_KEY_LINE_5          ( 7)                  /*GPIO pin*/
+#define QR_KEY_LINE_6          ( 6)                  /*GPIO pin*/
+
+/*QRdecode lcd */
+//lcd io
+#define QR_LCD_RST             (14) 
+#define QR_LCD_CS              (15)
+#define QR_LCD_CLK             (10) 
+#define QR_LCD_MOSI            ( 3)
+#define QR_LCD_A0              (11) 
+#define QR_LCD_BL              (39 | (1 << 7))
+#define QR_LCD_SPI_BOUDSPEED   (0xFF)  
+#define QR_LCD_BLANK_LINE_NUM  ( 0)                   /*Value range 0~7*/
+#define QR_LCD_COLUMN_NUM      (64)                   /*Value range 0~7*/
+#define QR_LCD_START_COLUMN    ((128 - 64)/2)
+
+//lcd camera io
+
+#define QR_LCD_CAMERA_FREQ       (24)
+#define QR_LCD_CAMERA_SDA        (17)
+#define QR_LCD_CAMERA_SCL        (16)
+#define QR_LCD_CAMERA_RST        (41)
+#define QR_LCD_CAMERA_PD         ( 5)//power down
+#define QR_LCD_CAMERA_MCLK       (40)
+#define QR_LCD_CAMERA_PCLK       (38)
+#define QR_LCD_CAMERA_DATA       ( 2)
+#define QR_LCD_CAMERA_CS         (42)
+
+
+#endif  
 
 #endif
Index: core/type.h
===================================================================
--- /YC3121_SDK/fw/core/type.h	(revision 799)
+++ /YC3121_SDK/fw/core/type.h	(working copy)
@@ -9,7 +9,7 @@
 #ifndef __TYPE_H__
 #define __TYPE_H__
 
-#if defined ( __CC_ARM  )
+#if defined (__CC_ARM) || defined ( __ICCARM__ )
 typedef unsigned char      uint8_t;
 typedef unsigned short     uint16_t;
 typedef unsigned int       uint32_t;
@@ -27,13 +27,30 @@
 typedef unsigned short     word;
 #endif
 
+/** 
+  * @brief  __NOINLINE definition
+  */ 
+#if defined ( __CC_ARM   ) || defined   (  __GNUC__  )
+/* ARM & GNUCompiler 
+   ---------------- 
+*/
+#define __NOINLINE   noinline
+
+#elif defined ( __ICCARM__ )
+/* ICCARM Compiler
+   ---------------
+*/
+#define __NOINLINE _Pragma("optimize = no_inline")
+
+#endif
+
 #ifndef Boolean
-typedef enum {FALSE = 0, TRUE = 1} Boolean;
+typedef enum {FALSE = 0, TRUE =1} Boolean;
 #define IS_BOOLEAN(bool) ((bool == FALSE) || (bool == TRUE))
 #endif
 
 #ifndef FunctionalState
-typedef enum {DISABLE = 0, ENABLE = 1} FunctionalState;
+typedef enum {DISABLE = 0, ENABLE =1} FunctionalState;
 #define IS_FUNCTIONAL_STATE(state) ((state== DISABLE) || (state == ENABLE))
 #endif
 
Index: sdk/yc_ipc.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_ipc.c	(revision 799)
+++ /YC3121_SDK/fw/sdk/yc_ipc.c	(working copy)
@@ -157,7 +157,7 @@
     }
 }
 
-static void noinline _dma_start(int ch, const void *src, int srclen, void *dest, int dstlen)
+static void __NOINLINE _dma_start(int ch, const void *src, int srclen, void *dest, int dstlen)
 {
     DMA_SRC_ADDR(ch)  = (int)src;
     DMA_DEST_ADDR(ch) = (int)dest;
@@ -165,7 +165,7 @@
     DMA_START(ch)     = 0x80;
 }
 
-void noinline _dma_wait(int ch)
+void __NOINLINE _dma_wait(int ch)
 {
     while (!(DMA_STATUS(ch) & 1));
 }
Index: sdk/yc_qr/YC_QRDecode_TypeDef.h
===================================================================
--- /YC3121_SDK/fw/sdk/yc_qr/YC_QRDecode_TypeDef.h	(revision 799)
+++ /YC3121_SDK/fw/sdk/yc_qr/YC_QRDecode_TypeDef.h	(working copy)
@@ -21,21 +21,26 @@
     unsigned char line10;
 } keyboard_config_CB;
 
+typedef enum {UNKNOW =0,GC6153 = 1, BF3A02 = 2, BF30A2 = 3} camera_type_ENUM;
+typedef enum {CAMERA_LCD = 0, CAMERA_TFT = 1} camera_disp_ENUM;
+
 typedef struct _lcd_config_CB_
 {
-    Boolean is_tft;
     Boolean is_init_lcd;
+	camera_disp_ENUM display_type;
     unsigned char lcd_pin_rst;
     unsigned char lcd_pin_cs;
     unsigned char lcd_pin_clk;
     unsigned char lcd_pin_mosi;
     unsigned char lcd_pin_a0;
     unsigned char lcd_pin_bl;     //bit7=1:  high light          =0:  low  light
+	unsigned char blank_line_number;  //Its implementation begins to count
+    unsigned char column_number;    //display column size
+    unsigned char start_column; // disstart cloumn 
+    Boolean is_turn_right; // picture turn right 90
+    unsigned char spi_baudspeed;//use spi SPI_BaudSpeed define
 } lcd_config_CB;
 
-typedef enum {UNKNOW =0,GC6153 = 1, BF3A02 = 2, BF30A2 = 3} camera_type_ENUM;
-typedef enum {CAMERA_LCD = 0, CAMERA_TFT = 1} camera_disp_ENUM;
-
 typedef struct _camera_setpara_CB_
 {
     unsigned char camera_setpara_num;
@@ -77,7 +82,9 @@
 QR_CANCEL_KEY= -6,
 QR_CANCEL_TIMEOUT= -7,
 QR_BT_CONNECT_FAIL= -8,
-QR_FLASH_PARA_FAIL=-9,
+QR_FLASH_PARA_FAIL= -9,
+QR_BT_RECEIVE_FAIL= -10,
+QR_SPI_RECV_DATA_FAIL= -11,
 }yc_qr_return_type_ENUM;
 
 
Index: sdk/yc_qr/YC_QRDecode_lib.a
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: sdk/yc_qr/YC_QRDecode_lib.lib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: sdk/yc_qr/YC_QRDecode_lib_IAR.a
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: sdk/yc_qr/YC_QRDecode_lib_IAR.a
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: sdk/yc_sysctrl.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_sysctrl.c	(revision 799)
+++ /YC3121_SDK/fw/sdk/yc_sysctrl.c	(working copy)
@@ -19,7 +19,7 @@
     *LPM_SLEEP = 0x5a;
 }
 
-void noinline HCLKConfig_Div_None(uint32_t HCLK_Div)
+void __NOINLINE HCLKConfig_Div_None(uint32_t HCLK_Div)
 {
     QSPI_CTRL  |= (0x80);
     int temp = (SYSCTRL_HCLK_CON & (~SYSCTRL_HCLK_COFG_REGBIT)) | HCLK_Div;
