summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2022-02-20 20:54:15 +0800
committersakumisu <[email protected]>2022-02-20 20:54:15 +0800
commitc87abd56503ad07f9062c984728a856ae9ef0366 (patch)
tree5f9df78955d0d65145e9d6232b146acf4edf2b86
parent88a881bd8c13d8dca62e9fcd30123ba44148d337 (diff)
add es32f369 demo with musb ip
-rw-r--r--demo/es32/usb_device/ES32F369x/Inc/ald_conf.h213
-rw-r--r--demo/es32/usb_device/ES32F369x/Inc/main.h47
-rw-r--r--demo/es32/usb_device/ES32F369x/MDK-ARM/example.uvoptx513
-rw-r--r--demo/es32/usb_device/ES32F369x/MDK-ARM/example.uvprojx524
-rw-r--r--demo/es32/usb_device/ES32F369x/Src/irq.c177
-rw-r--r--demo/es32/usb_device/ES32F369x/Src/main.c164
-rw-r--r--demo/es32/usb_device/ES32F369x/copy Drivers from es32 sdk here.txt0
7 files changed, 1638 insertions, 0 deletions
diff --git a/demo/es32/usb_device/ES32F369x/Inc/ald_conf.h b/demo/es32/usb_device/ES32F369x/Inc/ald_conf.h
new file mode 100644
index 00000000..e0123e76
--- /dev/null
+++ b/demo/es32/usb_device/ES32F369x/Inc/ald_conf.h
@@ -0,0 +1,213 @@
+/**
+ *********************************************************************************
+ *
+ * @file ald_conf.h
+ * @brief Enable/Disable the peripheral module.
+ *
+ * @version V1.0
+ * @date 26 Jun 2019
+ * @author AE Team
+ * @note
+ * Change Logs:
+ * Date Author Notes
+ * 26 Jun 2019 AE Team The first version
+ *
+ * Copyright (C) Shanghai Eastsoft Microelectronics Co. Ltd. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **********************************************************************************
+ */
+
+
+#ifndef __ALD_CONF_H__
+#define __ALD_CONF_H__
+
+
+#define ALD_DMA
+#define ALD_GPIO
+#define ALD_UART
+#define ALD_I2C
+#define ALD_CMU
+#define ALD_RMU
+#define ALD_PMU
+#define ALD_WDT
+#define ALD_LCD
+#define ALD_RTC
+#define ALD_CAN
+#define ALD_FLASH
+#define ALD_ADC
+#define ALD_CRC
+#define ALD_CRYPT
+#define ALD_TIMER
+#define ALD_LPTIM
+#define ALD_PIS
+#define ALD_SPI
+#define ALD_CALC
+#define ALD_ACMP
+#define ALD_OPAMP
+#define ALD_TRNG
+#define ALD_TSENSE
+#define ALD_BKPC
+#define ALD_DAC
+#define ALD_IAP
+#define ALD_I2S
+#define ALD_ECC
+#define ALD_NAND
+#define ALD_QSPI
+#define ALD_NOR
+#define ALD_SRAM
+#define ALD_USB
+#define ALD_NOR_LCD
+#define ALD_SYSCFG
+#define ALD_RTCHW
+#if defined(ALD_NAND) || defined(ALD_NOR) || defined(ALD_SRAM)
+#define ALD_EBI
+#endif
+
+#ifdef ALD_GPIO
+ #include "ald_gpio.h"
+#endif /*ALD_GPIO */
+
+#ifdef ALD_DMA
+ #include "ald_dma.h"
+#endif /* ALD_DMA */
+
+#ifdef ALD_UART
+ #include "ald_uart.h"
+#endif /* ALD_UART */
+
+#ifdef ALD_I2C
+ #include "ald_i2c.h"
+#endif /* ALD_I2C */
+
+#ifdef ALD_CMU
+ #include "ald_cmu.h"
+#endif /* ALD_CMU */
+
+#ifdef ALD_RMU
+ #include "ald_rmu.h"
+#endif /* ALD_RMU */
+
+#ifdef ALD_PMU
+ #include "ald_pmu.h"
+#endif /* ALD_PUM */
+
+#ifdef ALD_WDT
+ #include "ald_wdt.h"
+#endif /* ALD_WDT */
+
+#ifdef ALD_RTC
+ #include "ald_rtc.h"
+#endif /* ALD_RTC */
+
+#ifdef ALD_FLASH
+ #include "ald_flash.h"
+#endif /*ALD_FLASH*/
+
+#ifdef ALD_ADC
+ #include "ald_adc.h"
+#endif /* ALD_ADC */
+
+#ifdef ALD_CRC
+ #include "ald_crc.h"
+#endif /* ALD_CRC */
+
+#ifdef ALD_CRYPT
+ #include "ald_crypt.h"
+#endif /* ALD_CRYPT */
+
+#ifdef ALD_TIMER
+ #include "ald_timer.h"
+#endif /* ALD_TIMER */
+
+#ifdef ALD_PIS
+ #include "ald_pis.h"
+#endif /* ALD_PIS */
+
+#ifdef ALD_SPI
+ #include "ald_spi.h"
+#endif /* ALD_SPI */
+
+#ifdef ALD_CALC
+ #include "ald_calc.h"
+#endif /* ALD_CALC */
+
+#ifdef ALD_ACMP
+ #include "ald_acmp.h"
+#endif /* ALD_ACMP */
+
+#ifdef ALD_TRNG
+ #include "ald_trng.h"
+#endif /* ALD_TRNG */
+
+#ifdef ALD_TSENSE
+ #include "ald_tsense.h"
+#endif /* ALD_TSENSE */
+
+#ifdef ALD_BKPC
+ #include "ald_bkpc.h"
+#endif /* ALD_BKPC */
+
+#ifdef ALD_DAC
+ #include "ald_dac.h"
+#endif /* ALD_DAC */
+
+#ifdef ALD_IAP
+ #include "ald_iap.h"
+#endif /* ALD_IAP */
+
+#ifdef ALD_CAN
+ #include "ald_can.h"
+#endif /* ALD_CAN */
+
+#ifdef ALD_QSPI
+ #include "ald_qspi.h"
+#endif /* ALD_QSPI */
+
+#ifdef ALD_USB
+ #include "ald_usb.h"
+#endif /* ALD_USB */
+
+#ifdef ALD_SRAM
+ #include "ald_sram.h"
+#endif /* ALD_SRAM */
+
+#ifdef ALD_EBI
+ #include "ald_ebi.h"
+#endif /* ALD_EBI */
+
+#ifdef ALD_NAND
+ #include "ald_nand.h"
+#endif /* ALD_NAND */
+
+#ifdef ALD_NOR_LCD
+ #include "ald_nor_lcd.h"
+#endif /* ALD_NOR_LCD */
+
+#ifdef ALD_I2S
+ #include "ald_i2s.h"
+#endif /* ALD_I2S */
+
+#ifdef ALD_SYSCFG
+ #include "ald_syscfg.h"
+#endif /* ALD_SYSCFG */
+
+#ifdef ALD_RTCHW
+ #include "ald_rtchw.h"
+#endif /* ALD_RTCHW */
+
+#define TICK_INT_PRIORITY 3
+
+#endif
diff --git a/demo/es32/usb_device/ES32F369x/Inc/main.h b/demo/es32/usb_device/ES32F369x/Inc/main.h
new file mode 100644
index 00000000..6060da8b
--- /dev/null
+++ b/demo/es32/usb_device/ES32F369x/Inc/main.h
@@ -0,0 +1,47 @@
+/**
+ *********************************************************************************
+ *
+ * @file main.h
+ * @brief Header file for DEMO
+ *
+ * @version V1.0
+ * @date 26 Jun 2019
+ * @author AE Team
+ * @note
+ * Change Logs:
+ * Date Author Notes
+ * 26 Jun 2019 AE Team The first version
+ *
+ * Copyright (C) Shanghai Eastsoft Microelectronics Co. Ltd. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **********************************************************************************
+ */
+
+#ifndef __MAIN_H__
+#define __MAIN_H__
+
+#include "ald_conf.h"
+
+typedef struct env_s {
+ uint8_t conn;
+ uint8_t update;
+ uint32_t button;
+ int32_t x_pos;
+ int32_t y_pos;
+} env_t;
+
+extern env_t env;
+#endif
diff --git a/demo/es32/usb_device/ES32F369x/MDK-ARM/example.uvoptx b/demo/es32/usb_device/ES32F369x/MDK-ARM/example.uvoptx
new file mode 100644
index 00000000..efd32625
--- /dev/null
+++ b/demo/es32/usb_device/ES32F369x/MDK-ARM/example.uvoptx
@@ -0,0 +1,513 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
+
+ <SchemaVersion>1.0</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Extensions>
+ <cExt>*.c</cExt>
+ <aExt>*.s*; *.src; *.a*</aExt>
+ <oExt>*.obj; *.o</oExt>
+ <lExt>*.lib</lExt>
+ <tExt>*.txt; *.h; *.inc; *.md</tExt>
+ <pExt>*.plm</pExt>
+ <CppX>*.cpp</CppX>
+ <nMigrate>0</nMigrate>
+ </Extensions>
+
+ <DaveTm>
+ <dwLowDateTime>0</dwLowDateTime>
+ <dwHighDateTime>0</dwHighDateTime>
+ </DaveTm>
+
+ <Target>
+ <TargetName>target</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <CLKADS>12000000</CLKADS>
+ <OPTTT>
+ <gFlags>1</gFlags>
+ <BeepAtEnd>1</BeepAtEnd>
+ <RunSim>0</RunSim>
+ <RunTarget>1</RunTarget>
+ <RunAbUc>0</RunAbUc>
+ </OPTTT>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <FlashByte>65535</FlashByte>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ </OPTHX>
+ <OPTLEX>
+ <PageWidth>79</PageWidth>
+ <PageLength>66</PageLength>
+ <TabStop>8</TabStop>
+ <ListingPath>.\</ListingPath>
+ </OPTLEX>
+ <ListingPage>
+ <CreateCListing>1</CreateCListing>
+ <CreateAListing>1</CreateAListing>
+ <CreateLListing>1</CreateLListing>
+ <CreateIListing>0</CreateIListing>
+ <AsmCond>1</AsmCond>
+ <AsmSymb>1</AsmSymb>
+ <AsmXref>0</AsmXref>
+ <CCond>1</CCond>
+ <CCode>0</CCode>
+ <CListInc>0</CListInc>
+ <CSymb>0</CSymb>
+ <LinkerCodeListing>0</LinkerCodeListing>
+ </ListingPage>
+ <OPTXL>
+ <LMap>1</LMap>
+ <LComments>1</LComments>
+ <LGenerateSymbols>1</LGenerateSymbols>
+ <LLibSym>1</LLibSym>
+ <LLines>1</LLines>
+ <LLocSym>1</LLocSym>
+ <LPubSym>1</LPubSym>
+ <LXref>0</LXref>
+ <LExpSel>0</LExpSel>
+ </OPTXL>
+ <OPTFL>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <IsCurrentTarget>1</IsCurrentTarget>
+ </OPTFL>
+ <CpuCode>255</CpuCode>
+ <DebugOpt>
+ <uSim>0</uSim>
+ <uTrg>1</uTrg>
+ <sLdApp>1</sLdApp>
+ <sGomain>1</sGomain>
+ <sRbreak>1</sRbreak>
+ <sRwatch>1</sRwatch>
+ <sRmem>1</sRmem>
+ <sRfunc>1</sRfunc>
+ <sRbox>1</sRbox>
+ <tLdApp>1</tLdApp>
+ <tGomain>1</tGomain>
+ <tRbreak>1</tRbreak>
+ <tRwatch>1</tRwatch>
+ <tRmem>1</tRmem>
+ <tRfunc>0</tRfunc>
+ <tRbox>1</tRbox>
+ <tRtrace>0</tRtrace>
+ <sRSysVw>1</sRSysVw>
+ <tRSysVw>1</tRSysVw>
+ <sRunDeb>0</sRunDeb>
+ <sLrtime>0</sLrtime>
+ <bEvRecOn>1</bEvRecOn>
+ <bSchkAxf>0</bSchkAxf>
+ <bTchkAxf>0</bTchkAxf>
+ <nTsel>6</nTsel>
+ <sDll></sDll>
+ <sDllPa></sDllPa>
+ <sDlgDll></sDlgDll>
+ <sDlgPa></sDlgPa>
+ <sIfile></sIfile>
+ <tDll></tDll>
+ <tDllPa></tDllPa>
+ <tDlgDll></tDlgDll>
+ <tDlgPa></tDlgPa>
+ <tIfile></tIfile>
+ <pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
+ </DebugOpt>
+ <TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>ST-LINKIII-KEIL_SWO</Key>
+ <Name>-U066EFF555453774987091527 -O207 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0es32f36xx.FLM -FS00 -FL080000 -FP0($$Device:ES32F3696LT$Flash\es32f36xx.FLM)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>CMSIS_AGDI</Key>
+ <Name>-X"essemi CMSIS-DAP" -U0001A000000A -O495 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0es32f36xx.FLM -FS00 -FL080000 -FP0($$Device:ES32F3696LT$Flash\es32f36xx.FLM)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>DLGUARM</Key>
+ <Name>(105=-1,-1,-1,-1,0)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2CM3</Key>
+ <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0es32f36xx -FL080000 -FS00 -FP0($$Device:ES32F3696LT$Flash\es32f36xx.FLM)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>JL2CM3</Key>
+ <Name>-U788594195 -O78 -S5 -ZTIFSpeedSel1000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO23 -FD20000000 -FC4000 -FN1 -FF0es32f36xx.FLM -FS00 -FL080000 -FP0($$Device:ES32F3696LT$Flash\es32f36xx.FLM)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>ARMRTXEVENTFLAGS</Key>
+ <Name>-L70 -Z18 -C0 -M0 -T1</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>DLGDARM</Key>
+ <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>DLGTARM</Key>
+ <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>ARMDBGFLAGS</Key>
+ <Name>-T0</Name>
+ </SetRegEntry>
+ </TargetDriverDllRegistry>
+ <Breakpoint>
+ <Bp>
+ <Number>0</Number>
+ <Type>0</Type>
+ <LineNumber>319</LineNumber>
+ <EnabledFlag>1</EnabledFlag>
+ <Address>0</Address>
+ <ByteObject>0</ByteObject>
+ <HtxType>0</HtxType>
+ <ManyObjects>0</ManyObjects>
+ <SizeOfObject>0</SizeOfObject>
+ <BreakByAccess>0</BreakByAccess>
+ <BreakIfRCount>0</BreakIfRCount>
+ <Filename>..\..\..\..\..\port\musb\usb_dc_musb.c</Filename>
+ <ExecCommand></ExecCommand>
+ <Expression></Expression>
+ </Bp>
+ <Bp>
+ <Number>1</Number>
+ <Type>0</Type>
+ <LineNumber>320</LineNumber>
+ <EnabledFlag>1</EnabledFlag>
+ <Address>0</Address>
+ <ByteObject>0</ByteObject>
+ <HtxType>0</HtxType>
+ <ManyObjects>0</ManyObjects>
+ <SizeOfObject>0</SizeOfObject>
+ <BreakByAccess>0</BreakByAccess>
+ <BreakIfRCount>0</BreakIfRCount>
+ <Filename>..\..\..\..\..\port\musb\usb_dc_musb.c</Filename>
+ <ExecCommand></ExecCommand>
+ <Expression></Expression>
+ </Bp>
+ </Breakpoint>
+ <MemoryWindow1>
+ <Mm>
+ <WinNumber>1</WinNumber>
+ <SubType>1</SubType>
+ <ItemText>0x40086510</ItemText>
+ <AccSizeX>0</AccSizeX>
+ </Mm>
+ </MemoryWindow1>
+ <MemoryWindow2>
+ <Mm>
+ <WinNumber>2</WinNumber>
+ <SubType>2</SubType>
+ <ItemText>0x40000000</ItemText>
+ <AccSizeX>0</AccSizeX>
+ </Mm>
+ </MemoryWindow2>
+ <MemoryWindow3>
+ <Mm>
+ <WinNumber>3</WinNumber>
+ <SubType>2</SubType>
+ <ItemText>0x00000000</ItemText>
+ <AccSizeX>0</AccSizeX>
+ </Mm>
+ </MemoryWindow3>
+ <MemoryWindow4>
+ <Mm>
+ <WinNumber>4</WinNumber>
+ <SubType>2</SubType>
+ <ItemText>0x5000</ItemText>
+ <AccSizeX>0</AccSizeX>
+ </Mm>
+ </MemoryWindow4>
+ <Tracepoint>
+ <THDelay>0</THDelay>
+ </Tracepoint>
+ <DebugFlag>
+ <trace>0</trace>
+ <periodic>1</periodic>
+ <aLwin>1</aLwin>
+ <aCover>0</aCover>
+ <aSer1>0</aSer1>
+ <aSer2>0</aSer2>
+ <aPa>0</aPa>
+ <viewmode>1</viewmode>
+ <vrSel>0</vrSel>
+ <aSym>0</aSym>
+ <aTbox>0</aTbox>
+ <AscS1>0</AscS1>
+ <AscS2>0</AscS2>
+ <AscS3>0</AscS3>
+ <aSer3>0</aSer3>
+ <eProf>0</eProf>
+ <aLa>0</aLa>
+ <aPa1>0</aPa1>
+ <AscS4>0</AscS4>
+ <aSer4>0</aSer4>
+ <StkLoc>0</StkLoc>
+ <TrcWin>0</TrcWin>
+ <newCpu>0</newCpu>
+ <uProt>0</uProt>
+ </DebugFlag>
+ <LintExecutable></LintExecutable>
+ <LintConfigFile></LintConfigFile>
+ <bLintAuto>0</bLintAuto>
+ <bAutoGenD>0</bAutoGenD>
+ <LntExFlags>0</LntExFlags>
+ <pMisraName></pMisraName>
+ <pszMrule></pszMrule>
+ <pSingCmds></pSingCmds>
+ <pMultCmds></pMultCmds>
+ <pMisraNamep></pMisraNamep>
+ <pszMrulep></pszMrulep>
+ <pSingCmdsp></pSingCmdsp>
+ <pMultCmdsp></pMultCmdsp>
+ </TargetOption>
+ </Target>
+
+ <Group>
+ <GroupName>startup</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>1</FileNumber>
+ <FileType>2</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\CMSIS\Device\EastSoft\ES32F36xx\Startup\keil\startup_es32f36xx.s</PathWithFileName>
+ <FilenameWithoutPath>startup_es32f36xx.s</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>ald</GroupName>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>2</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\ald_bkpc.c</PathWithFileName>
+ <FilenameWithoutPath>ald_bkpc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>3</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\ald_cmu.c</PathWithFileName>
+ <FilenameWithoutPath>ald_cmu.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>4</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\ald_dma.c</PathWithFileName>
+ <FilenameWithoutPath>ald_dma.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>5</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\ald_gpio.c</PathWithFileName>
+ <FilenameWithoutPath>ald_gpio.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>6</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\ald_pmu.c</PathWithFileName>
+ <FilenameWithoutPath>ald_pmu.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>7</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\ald_rmu.c</PathWithFileName>
+ <FilenameWithoutPath>ald_rmu.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>8</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\ald_uart.c</PathWithFileName>
+ <FilenameWithoutPath>ald_uart.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>9</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\ald_usb.c</PathWithFileName>
+ <FilenameWithoutPath>ald_usb.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>10</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\ald_iap.c</PathWithFileName>
+ <FilenameWithoutPath>ald_iap.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>11</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Drivers\ALD\ES32F36xx\Source\utils.c</PathWithFileName>
+ <FilenameWithoutPath>utils.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>app</GroupName>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>12</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Src\main.c</PathWithFileName>
+ <FilenameWithoutPath>main.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>..\Src\irq.c</PathWithFileName>
+ <FilenameWithoutPath>irq.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>..\..\..\..\cdc_acm_template.c</PathWithFileName>
+ <FilenameWithoutPath>cdc_acm_template.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>CherryUSB</GroupName>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>4</GroupNumber>
+ <FileNumber>15</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\..\..\core\usbd_core.c</PathWithFileName>
+ <FilenameWithoutPath>usbd_core.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>4</GroupNumber>
+ <FileNumber>16</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\..\..\class\cdc\usbd_cdc.c</PathWithFileName>
+ <FilenameWithoutPath>usbd_cdc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>4</GroupNumber>
+ <FileNumber>17</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\..\..\port\musb\usb_dc_musb.c</PathWithFileName>
+ <FilenameWithoutPath>usb_dc_musb.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+</ProjectOpt>
diff --git a/demo/es32/usb_device/ES32F369x/MDK-ARM/example.uvprojx b/demo/es32/usb_device/ES32F369x/MDK-ARM/example.uvprojx
new file mode 100644
index 00000000..0f57c065
--- /dev/null
+++ b/demo/es32/usb_device/ES32F369x/MDK-ARM/example.uvprojx
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
+
+ <SchemaVersion>2.1</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Targets>
+ <Target>
+ <TargetName>target</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pArmCC>6140001::V6.14.1::ARMCLANG</pArmCC>
+ <pCCUsed>6140001::V6.14.1::ARMCLANG</pCCUsed>
+ <uAC6>1</uAC6>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>ES32F3696LT</Device>
+ <Vendor>Eastsoft</Vendor>
+ <PackID>Eastsoft.ES32_DFP.1.0.10</PackID>
+ <PackURL>http://www.essemi.com/index/article/download?id=921</PackURL>
+ <Cpu>IRAM(0x20000000,0x00018000) IROM(0x00000000,0x00080000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile></StartupFile>
+ <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0es32f36xx -FS00 -FL080000 -FP0($$Device:ES32F3696LT$Flash\es32f36xx.FLM))</FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile>$$Device:ES32F3696LT$Device\Include\es32f36xx.h</RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:ES32F3696LT$SVD\es32f3xx.svd</SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>.\obj\</OutputDirectory>
+ <OutputName>out</OutputName>
+ <CreateExecutable>1</CreateExecutable>
+ <CreateLib>0</CreateLib>
+ <CreateHexFile>1</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath>.\</ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>0</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>0</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName>SARMCM3.DLL</SimDllName>
+ <SimDllArguments> -MPU</SimDllArguments>
+ <SimDlgDll>DCM.DLL</SimDlgDll>
+ <SimDlgDllArguments>-pCM3</SimDlgDllArguments>
+ <TargetDllName>SARMCM3.DLL</TargetDllName>
+ <TargetDllArguments> -MPU</TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pCM3</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4096</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2CM3.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>1</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>1</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"Cortex-M3"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>0</RvdsVP>
+ <RvdsMve>0</RvdsMve>
+ <RvdsCdeCp>0</RvdsCdeCp>
+ <hadIRAM2>0</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>1</useUlib>
+ <EndSel>0</EndSel>
+ <uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
+ <RoSelD>3</RoSelD>
+ <RwSelD>3</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>0</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x18000</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x80000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x80000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x18000</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>2</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>3</wLevel>
+ <uThumb>0</uThumb>
+ <uSurpInc>0</uSurpInc>
+ <uC99>0</uC99>
+ <uGnu>0</uGnu>
+ <useXO>0</useXO>
+ <v6Lang>3</v6Lang>
+ <v6LangP>3</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <v6Rtti>0</v6Rtti>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define>USE_ASSERT,ES32F36xx,USBD_CDC_HS</Define>
+ <Undefine></Undefine>
+ <IncludePath>..\Drivers\CMSIS\Include;..\Drivers\CMSIS\Device\EastSoft\ES32F36xx\Include;..\Drivers\ALD\ES32F36xx\Include;..\Inc;..\..\..\..\..\common;..\..\..\..\..\core;..\..\..\..\..\class\cdc</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>0</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <ClangAsOpt>4</ClangAsOpt>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>1</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange>0x00000000</TextAddressRange>
+ <DataAddressRange>0x00000000</DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile></ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc></Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>startup</GroupName>
+ <Files>
+ <File>
+ <FileName>startup_es32f36xx.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\Drivers\CMSIS\Device\EastSoft\ES32F36xx\Startup\keil\startup_es32f36xx.s</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>ald</GroupName>
+ <Files>
+ <File>
+ <FileName>ald_bkpc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\ald_bkpc.c</FilePath>
+ </File>
+ <File>
+ <FileName>ald_cmu.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\ald_cmu.c</FilePath>
+ </File>
+ <File>
+ <FileName>ald_dma.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\ald_dma.c</FilePath>
+ </File>
+ <File>
+ <FileName>ald_gpio.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\ald_gpio.c</FilePath>
+ </File>
+ <File>
+ <FileName>ald_pmu.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\ald_pmu.c</FilePath>
+ </File>
+ <File>
+ <FileName>ald_rmu.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\ald_rmu.c</FilePath>
+ </File>
+ <File>
+ <FileName>ald_uart.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\ald_uart.c</FilePath>
+ </File>
+ <File>
+ <FileName>ald_usb.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\ald_usb.c</FilePath>
+ </File>
+ <File>
+ <FileName>ald_iap.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\ald_iap.c</FilePath>
+ </File>
+ <File>
+ <FileName>utils.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Drivers\ALD\ES32F36xx\Source\utils.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>app</GroupName>
+ <Files>
+ <File>
+ <FileName>main.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Src\main.c</FilePath>
+ </File>
+ <File>
+ <FileName>irq.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Src\irq.c</FilePath>
+ </File>
+ <File>
+ <FileName>cdc_acm_template.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\..\cdc_acm_template.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>CherryUSB</GroupName>
+ <Files>
+ <File>
+ <FileName>usbd_core.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\..\..\core\usbd_core.c</FilePath>
+ </File>
+ <File>
+ <FileName>usbd_cdc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\..\..\class\cdc\usbd_cdc.c</FilePath>
+ </File>
+ <File>
+ <FileName>usb_dc_musb.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\..\..\port\musb\usb_dc_musb.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ </Groups>
+ </Target>
+ </Targets>
+
+ <RTE>
+ <apis/>
+ <components/>
+ <files>
+ <file attr="config" category="source" condition="Compiler ARMCC" name="Device\Source\ARM\startup_es32f0xx.s" version="0.0.1">
+ <instance index="0" removed="1">RTE\Device\ES32F0031XNLN\startup_es32f0xx.s</instance>
+ <component Cclass="Device" Cgroup="Startup" Cvendor="Eastsoft" Cversion="0.0.1" condition="ES32F0xx"/>
+ <package name="ES32_DFP" schemaVersion="1.4" supportContact="[email protected]" url="www.essemi.com" vendor="Eastsoft" version="0.0.1"/>
+ <targetInfos/>
+ </file>
+ <file attr="config" category="source" condition="Compiler ARMCC" name="Device\Source\ARM\startup_es32f0xx.s" version="1.0.0">
+ <instance index="0" removed="1">RTE\Device\ES32F0334LX\startup_es32f0xx.s</instance>
+ <component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="ES32F0xx"/>
+ <package name="ES32F033x_F065x_F093x_DFP" schemaVersion="1.4" supportContact="[email protected]" url="http://www.essemi.com" vendor="Keil" version="1.0.0"/>
+ <targetInfos/>
+ </file>
+ <file attr="config" category="source" condition="Compiler ARMCC" name="Device\Source\ARM\startup_es32f0xx.s" version="1.0.0">
+ <instance index="0" removed="1">RTE\Device\ES32F0356NLXN\startup_es32f0xx.s</instance>
+ <component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="ES32F0xx"/>
+ <package name="ES32F0396_F0356_F0336_DFP" schemaVersion="1.4" supportContact="[email protected]" url="http://www.essemi.com" vendor="Keil" version="1.0.0"/>
+ <targetInfos/>
+ </file>
+ <file attr="config" category="source" condition="Compiler ARMCC" name="Device\Source\ARM\startup_es32f0xx.s" version="1.0.0">
+ <instance index="0" removed="1">RTE\Device\ES32F0396XNLN\startup_es32f0xx.s</instance>
+ <component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="ES32F0xx"/>
+ <package name="ES32F0396_F0356_F0336_DFP" schemaVersion="1.4" supportContact="[email protected]" url="http://www.essemi.com" vendor="Keil" version="1.0.0"/>
+ <targetInfos/>
+ </file>
+ </files>
+ </RTE>
+
+</Project>
diff --git a/demo/es32/usb_device/ES32F369x/Src/irq.c b/demo/es32/usb_device/ES32F369x/Src/irq.c
new file mode 100644
index 00000000..3b7f32b4
--- /dev/null
+++ b/demo/es32/usb_device/ES32F369x/Src/irq.c
@@ -0,0 +1,177 @@
+/**
+ *********************************************************************************
+ *
+ * @file irq.c
+ * @brief Interrupt handler
+ *
+ * @version V1.0
+ * @date 26 Jun 2019
+ * @author AE Team
+ * @note
+ * Change Logs:
+ * Date Author Notes
+ * 26 Jun 2019 AE Team The first version
+ *
+ * Copyright (C) Shanghai Eastsoft Microelectronics Co. Ltd. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **********************************************************************************
+ */
+
+#include "main.h"
+#include "utils.h"
+#include "ald_cmu.h"
+#ifdef ALD_DMA
+#include "ald_dma.h"
+#endif
+
+
+/** @addtogroup Projects_Examples_ALD
+ * @{
+ */
+
+/** @addtogroup Examples
+ * @{
+ */
+
+/**
+ * @brief NMI IRQ handler
+ * @retval None
+ */
+void NMI_Handler(void)
+{
+ /* Added Emergency operation */
+ return;
+}
+
+/**
+ * @brief Hardfault IRQ handler
+ * @retval None
+ */
+void HardFault_Handler(void)
+{
+ /* Added debug information */
+ while (1)
+ ;
+}
+
+/**
+ * @brief MemManage IRQ handler
+ * @retval None
+ */
+void MemManage_Handler(void)
+{
+ /* Added debug information */
+ while (1)
+ ;
+}
+
+/**
+ * @brief BusFault IRQ handler
+ * @retval None
+ */
+void BusFault_Handler(void)
+{
+ /* Added debug information */
+ while (1)
+ ;
+}
+
+/**
+ * @brief UsageFault IRQ handler
+ * @retval None
+ */
+void UsageFault_Handler(void)
+{
+ /* Added debug information */
+ while (1)
+ ;
+}
+
+/**
+ * @brief Supervisor Call IRQ handler
+ * @retval None
+ */
+void SVC_Handler(void)
+{
+ /* Added system callback */
+ return;
+}
+
+/**
+ * @brief Debug Monitor IRQ handler
+ * @retval None
+ */
+void DebugMon_Handler(void)
+{
+ /* Added debug operation */
+ return;
+}
+
+/**
+ * @brief PendSV IRQ handler
+ * @retval None
+ */
+void PendSV_Handler(void)
+{
+ /* Added thread switching operation */
+ return;
+}
+
+/**
+ * @brief SysTick IRQ handler
+ * @retval None
+ */
+void SysTick_Handler(void)
+{
+ ald_inc_tick();
+ return;
+}
+
+#ifdef ALD_DMA
+/**
+ * @brief DMA IRQ#66 handler
+ * @retval None
+ */
+void DMA_Handler(void)
+{
+ ald_dma_irq_handler();
+}
+#endif
+
+
+/**
+ * @brief USB IRQ#70 handler
+ * @retval None
+ */
+//void USB_INT_Handler()
+//{
+// usb0_device_int_handler();
+//}
+
+/**
+ * @brief USB_DMA IRQ#71 handler
+ * @retval None
+ */
+//void USB_DMA_Handler()
+//{
+// usb0_dma_int_handler();
+//}
+/**
+ * @}
+ */
+/**
+ * @}
+ */
diff --git a/demo/es32/usb_device/ES32F369x/Src/main.c b/demo/es32/usb_device/ES32F369x/Src/main.c
new file mode 100644
index 00000000..eabad9c7
--- /dev/null
+++ b/demo/es32/usb_device/ES32F369x/Src/main.c
@@ -0,0 +1,164 @@
+/**
+ *********************************************************************************
+ *
+ * @file main.c
+ * @brief Main file for DEMO
+ *
+ * @version V1.0
+ * @date 26 Jun 2019
+ * @author AE Team
+ * @note
+ * Change Logs:
+ * Date Author Notes
+ * 26 Jun 2019 AE Team The first version
+ *
+ * Copyright (C) Shanghai Eastsoft Microelectronics Co. Ltd. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **********************************************************************************
+ */
+
+#include <string.h>
+#include "stdio.h"
+#include "main.h"
+#include "usbd_core.h"
+#include "usbd_cdc.h"
+ uart_handle_t h_uart = {0};
+/** @addtogroup Projects_Examples_USB
+ * @{
+ */
+int fputc(int ch, FILE *f)
+{
+ ald_uart_send(&h_uart, (uint8_t*)&ch, 1, 1000);
+ return ch;
+}
+
+/**
+ * @brief Initializate pin of USB.
+ * @retval None
+ */
+void usb_pin_init(void)
+{
+ gpio_init_t x;
+
+ /* Initialize vbus pin */
+ x.mode = GPIO_MODE_OUTPUT;
+ x.odos = GPIO_PUSH_PULL;
+ x.pupd = GPIO_PUSH_UP;
+ x.podrv = GPIO_OUT_DRIVE_6;
+ x.nodrv = GPIO_OUT_DRIVE_6;
+ x.flt = GPIO_FILTER_DISABLE;
+ x.type = GPIO_TYPE_TTL;
+ x.func = GPIO_FUNC_5;
+ ald_gpio_init(GPIOB, GPIO_PIN_15, &x);
+
+ return;
+}
+/**
+ * @brief Initializate pin of uart module.
+ * @retval None
+ */
+void uart_pin_init(void)
+{
+ gpio_init_t x;
+
+ /* Initialize tx pin */
+ x.mode = GPIO_MODE_OUTPUT;
+ x.odos = GPIO_PUSH_PULL;
+ x.pupd = GPIO_PUSH_UP;
+ x.podrv = GPIO_OUT_DRIVE_1;
+ x.nodrv = GPIO_OUT_DRIVE_0_1;
+ x.flt = GPIO_FILTER_DISABLE;
+ x.type = GPIO_TYPE_TTL;
+ x.func = GPIO_FUNC_3;
+ ald_gpio_init(GPIOB, GPIO_PIN_10, &x);
+
+ /* Initialize rx pin */
+ x.mode = GPIO_MODE_INPUT;
+ x.odos = GPIO_PUSH_PULL;
+ x.pupd = GPIO_PUSH_UP;
+ x.podrv = GPIO_OUT_DRIVE_1;
+ x.nodrv = GPIO_OUT_DRIVE_0_1;
+ x.flt = GPIO_FILTER_DISABLE;
+ x.type = GPIO_TYPE_TTL;
+ x.func = GPIO_FUNC_3;
+ ald_gpio_init(GPIOB, GPIO_PIN_11, &x);
+
+ /* Initialize uart */
+ h_uart.perh = UART0;
+ h_uart.init.baud = 115200;
+ h_uart.init.word_length = UART_WORD_LENGTH_8B;
+ h_uart.init.stop_bits = UART_STOP_BITS_1;
+ h_uart.init.parity = UART_PARITY_NONE;
+ h_uart.init.mode = UART_MODE_UART;
+ h_uart.init.fctl = UART_HW_FLOW_CTL_DISABLE;
+ h_uart.tx_cplt_cbk = NULL;
+ h_uart.rx_cplt_cbk = NULL;
+ h_uart.error_cbk = NULL;
+ ald_uart_init(&h_uart);
+
+}
+
+void usb_dc_low_level_init(void)
+{
+ ald_pmu_perh_power_config(PMU_POWER_USB, ENABLE);
+ ald_cmu_perh_clock_config(CMU_PERH_USB, ENABLE);
+ ald_cmu_perh_clock_config(CMU_PERH_GPIO, ENABLE);
+ ald_cmu_usb_clock_config(CMU_USB_CLOCK_SEL_HOSC, CMU_USB_DIV_1);
+ ald_rmu_reset_periperal(RMU_PERH_USB);
+ ald_mcu_irq_config(USB_INT_IRQn, 2, 2, ENABLE);
+ ald_mcu_irq_config(USB_DMA_IRQn, 2, 2, ENABLE);
+ usb_pin_init();
+}
+
+void delay(uint32_t delay_us)
+{
+while(delay_us--)
+{}
+}
+/**
+ * @brief Test main function
+ * @retval Status.
+ */
+int main()
+{
+ int i;
+
+ /* Initialize ALD */
+ ald_cmu_init();
+ /* Configure system clock */
+ ald_cmu_pll1_config(CMU_PLL1_INPUT_HOSC_3, CMU_PLL1_OUTPUT_48M);
+ ald_cmu_clock_config(CMU_CLOCK_PLL1, 48000000);
+ ald_cmu_perh_clock_config(CMU_PERH_ALL, ENABLE);
+
+ uart_pin_init();
+ printf("\rSystem start...\r\n");
+
+ extern void cdc_acm_init(void);
+ cdc_acm_init();
+
+ while (1) {
+ extern void cdc_acm_data_send_with_dtr_test(void);
+ cdc_acm_data_send_with_dtr_test();
+ delay(0xfffffff);
+ }
+}
+
+/**
+ * @}
+ */
+/**
+ * @}
+ */
diff --git a/demo/es32/usb_device/ES32F369x/copy Drivers from es32 sdk here.txt b/demo/es32/usb_device/ES32F369x/copy Drivers from es32 sdk here.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/demo/es32/usb_device/ES32F369x/copy Drivers from es32 sdk here.txt