Index: yc_flash.h
===================================================================
--- /YC3121_SDK/fw/sdk/yc_flash.h	(nonexistent)
+++ /YC3121_SDK/fw/sdk/yc_flash.h	(working copy)
@@ -0,0 +1,46 @@
+/*
+File Name    : yc_flash.h
+Author       : Yichip
+Version      : V1.0
+Date         : 2021/01/10
+Description  : QSPI FLASH mode operation.
+*/
+#ifndef __YC_FLASH_H__
+#define __YC_FLASH_H__
+
+#include "yc3121.h"
+#include "yc_qspi.h"
+/* Private define ------------------------------------------------------------*/
+#define QSPI_IO_0       16
+#define QSPI_IO_1       8
+#define QSPI_IO_2       9
+#define QSPI_IO_3       10
+#define QSPI_IO_SCK     11
+#define QSPI_IO_NCS     22
+#define QSPI_QUAD_MODE  QSPICFG_RETRY | QSPICFG_DECEN | QSPICFG_XIPEN | QSPICFG_MODE_EB
+#define QSPI_DUAL_MODE  QSPICFG_RETRY | QSPICFG_DECEN | QSPICFG_XIPEN | QSPICFG_MODE_3B
+/* Private typedef -----------------------------------------------------------*/
+typedef struct
+{
+    uint8_t qspi_io0;
+    uint8_t qspi_io1;
+    uint8_t qspi_io2;
+    uint8_t qspi_io3;
+    uint8_t qspi_clk;
+    uint8_t qspi_ncs;
+} QSPI_IoTypeDef;
+
+typedef struct
+{
+    uint32_t qspi_ctrl;
+    QSPI_IoTypeDef qspi_io_struct;
+} QSPI_ParamTypeDef;
+
+/**
+  * @brief  qspi qspi_flash_init sectorerase(4k)
+  * @param  qspi_param
+  * @return none
+  */
+void qspi_flash_init(QSPI_ParamTypeDef qspi_param);
+
+#endif
\ No newline at end of file
Index: yc_flash.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_flash.c	(nonexistent)
+++ /YC3121_SDK/fw/sdk/yc_flash.c	(working copy)
@@ -0,0 +1,22 @@
+#include "yc_flash.h"
+
+static void qspi_flash_iocfg(QSPI_ParamTypeDef qspi_param)
+{
+    QSPI_CTRL = qspi_param.qspi_ctrl;
+    GPIO_CONFIG(qspi_param.qspi_io_struct.qspi_io0)   = GPCFG_QSPI_IO0;
+    GPIO_CONFIG(qspi_param.qspi_io_struct.qspi_io1)   = GPCFG_QSPI_IO1;
+    GPIO_CONFIG(qspi_param.qspi_io_struct.qspi_io2)   = GPCFG_QSPI_IO2;
+    GPIO_CONFIG(qspi_param.qspi_io_struct.qspi_io3)   = GPCFG_QSPI_IO3;
+    GPIO_CONFIG(qspi_param.qspi_io_struct.qspi_clk)   = GPCFG_QSPI_SCK;
+    GPIO_CONFIG(qspi_param.qspi_io_struct.qspi_ncs)   = GPCFG_QSPI_NCS;
+    ((void(*)(uint8_t on))(0x4794 + 1))(1);
+}
+
+void qspi_flash_init(QSPI_ParamTypeDef qspi_param)
+{
+    __asm("CPSID i");
+    prefetch(qspi_flash_iocfg, qspi_flash_iocfg + 0x100);
+    qspi_flash_iocfg(qspi_param);
+    __asm("CPSIE i");
+}
+
