
17 changed files with 7005 additions and 0 deletions
@ -0,0 +1,227 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> |
|||
<storageModule moduleId="org.eclipse.cdt.core.settings"> |
|||
<cconfiguration id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.728343049"> |
|||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.728343049" moduleId="org.eclipse.cdt.core.settings" name="Debug"> |
|||
<externalSettings/> |
|||
<extensions> |
|||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> |
|||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
</extensions> |
|||
</storageModule> |
|||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
|||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.728343049" name="Debug" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug"> |
|||
<folderInfo id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.728343049." name="/" resourcePath=""> |
|||
<toolChain id="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.debug.400478197" name="RISC-V Cross GCC" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.debug"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash.1025383446" name="Create flash image" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createlisting.1716732716" name="Create extended listing" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createlisting" useByScannerDiscovery="false"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.printsize.1382758251" name="Print size" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.printsize" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.level.491048255" name="Optimization Level" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.level" useByScannerDiscovery="true" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.level.none" valueType="enumerated"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.messagelength.994504285" name="Message length (-fmessage-length=0)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.messagelength" useByScannerDiscovery="true" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.signedchar.589018915" name="'char' is signed (-fsigned-char)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.signedchar" useByScannerDiscovery="true" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.functionsections.218359231" name="Function sections (-ffunction-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.functionsections" useByScannerDiscovery="true" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.datasections.926896656" name="Data sections (-fdata-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.datasections" useByScannerDiscovery="true" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.level.1072449627" name="Debug level" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.level" useByScannerDiscovery="true" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.level.max" valueType="enumerated"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.format.2085703920" name="Debug format" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.format" useByScannerDiscovery="true"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.name.383906086" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.name" useByScannerDiscovery="false" value="xPack GNU RISC-V Embedded GCC" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.prefix.1576932370" name="Prefix" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.prefix" useByScannerDiscovery="false" value="riscv-none-embed-" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.c.812416764" name="C compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.c" useByScannerDiscovery="false" value="gcc" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.cpp.714294643" name="C++ compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.cpp" useByScannerDiscovery="false" value="g++" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.ar.323340030" name="Archiver" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.ar" useByScannerDiscovery="false" value="ar" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objcopy.1947281609" name="Hex/Bin converter" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objcopy" useByScannerDiscovery="false" value="objcopy" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objdump.1724546708" name="Listing generator" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objdump" useByScannerDiscovery="false" value="objdump" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.size.1880227298" name="Size command" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.size" useByScannerDiscovery="false" value="size" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.make.1815679973" name="Build command" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.make" useByScannerDiscovery="false" value="make" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.rm.1261068934" name="Remove command" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.rm" useByScannerDiscovery="false" value="rm" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.id.1503692628" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.id" useByScannerDiscovery="false" value="2273142912" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.codemodel.1186656505" name="Code model" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.codemodel" useByScannerDiscovery="false" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.codemodel.low" valueType="enumerated"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.base.1275547413" name="Architecture" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.base" useByScannerDiscovery="false" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.arch.rv32i" valueType="enumerated"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.multiply.1840818555" name="Multiply extension (RVM)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.multiply" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.atomic.2109971404" name="Atomic extension (RVA)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.atomic" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.compressed.756159799" name="Compressed extension (RVC)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.compressed" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.abi.integer.617108302" name="Integer ABI" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.abi.integer" useByScannerDiscovery="false" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.abi.integer.ilp32" valueType="enumerated"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.other.2035224218" name="Other warning flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.other" useByScannerDiscovery="true" value="" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.allwarn.1538424584" name="Enable all common warnings (-Wall)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.allwarn" useByScannerDiscovery="true" value="true" valueType="boolean"/> |
|||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform.248155089" isAbstract="false" osList="all" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform"/> |
|||
<builder buildPath="${workspace_loc:/GD32V_DOWNSTREAM}/Debug" id="ilg.gnumcueclipse.managedbuild.cross.riscv.builder.902560381" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.builder"/> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.1745396686" name="GNU RISC-V Cross Assembler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.usepreprocessor.1443647993" name="Use preprocessor" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.include.paths.243029531" name="Include paths (-I)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.include.paths" useByScannerDiscovery="true" valueType="includePath"> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/GD32V_DOWNSTREAM/Firmware/RISCV/drivers}""/> |
|||
</option> |
|||
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.input.658912135" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.input"/> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.616007437" name="GNU RISC-V Cross C Compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler"> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.include.paths.1714081614" name="Include paths (-I)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath"> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/GD32V_DOWNSTREAM/Include}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/GD32V_DOWNSTREAM/Firmware/RISCV/stubs}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/GD32V_DOWNSTREAM/Firmware/RISCV/env_Eclipse}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/GD32V_DOWNSTREAM/Firmware/RISCV/drivers}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/GD32V_DOWNSTREAM/Firmware/GD32VF103_standard_peripheral/Include}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/GD32V_DOWNSTREAM/Firmware/GD32VF103_usbfs_driver/Include}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/GD32V_DOWNSTREAM/Firmware/GD32VF103_standard_peripheral}""/> |
|||
</option> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.defs.609467163" name="Defined symbols (-D)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols"> |
|||
<listOptionValue builtIn="false" value="USE_STDPERIPH_DRIVER"/> |
|||
<listOptionValue builtIn="false" value="GD32VF103V_EVAL"/> |
|||
<listOptionValue builtIn="false" value="USE_USB_FS"/> |
|||
</option> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.other.1233054372" name="Other compiler flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.other" useByScannerDiscovery="true" value="-fshort-wchar" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.otherwarnings.1986320347" name="Other warning flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.otherwarnings" useByScannerDiscovery="true" value="" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.std.494756384" name="Language standard" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.std" useByScannerDiscovery="true" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.std.gnu11" valueType="enumerated"/> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.include.files.332526514" name="Include files (-include)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.include.files" useByScannerDiscovery="true" valueType="includeFiles"> |
|||
<listOptionValue builtIn="false" value="sys/cdefs.h"/> |
|||
</option> |
|||
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input.753310393" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input"/> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.compiler.331065885" name="GNU RISC-V Cross C++ Compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.compiler"/> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.1500512939" name="GNU RISC-V Cross C Linker" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.gcsections.1406013079" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.gcsections" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other.881581150" name="Other linker flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other" useByScannerDiscovery="false" value="" valueType="string"/> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.scriptfile.63314848" name="Script files (-T)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.scriptfile" useByScannerDiscovery="false" valueType="stringList"> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/GD32V_DOWNSTREAM/Firmware/RISCV/env_Eclipse/GD32VF103xB.lds}""/> |
|||
</option> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostart.641891865" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostart" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnano.307643067" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnano" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys.1055996996" name="Do not use syscalls (--specs=nosys.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usescanffloat.1605124970" name="Use float with nano scanf (-u _scanf_float)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usescanffloat" useByScannerDiscovery="false" value="false" valueType="boolean"/> |
|||
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input.1045138732" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input"> |
|||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> |
|||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> |
|||
</inputType> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.linker.569827687" name="GNU RISC-V Cross C++ Linker" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.linker"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.gcsections.1258206109" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.gcsections" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.other.1362532349" name="Other linker flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.other" value="--specs=nosys.specs" valueType="string"/> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.archiver.1708670750" name="GNU RISC-V Cross Archiver" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.archiver"/> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createflash.1187869466" name="GNU RISC-V Cross Create Flash Image" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createflash"/> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createlisting.1023202173" name="GNU RISC-V Cross Create Listing" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createlisting"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.source.59042045" name="Display source (--source|-S)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.source" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.allheaders.77447319" name="Display all headers (--all-headers|-x)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.allheaders" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.demangle.619042423" name="Demangle names (--demangle|-C)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.demangle" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.linenumbers.1441358865" name="Display line numbers (--line-numbers|-l)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.linenumbers" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.wide.1476903631" name="Wide lines (--wide|-w)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.wide" value="true" valueType="boolean"/> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.printsize.195090094" name="GNU RISC-V Cross Print Size" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.printsize"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.printsize.format.580245023" name="Size format" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.printsize.format" useByScannerDiscovery="false"/> |
|||
</tool> |
|||
</toolChain> |
|||
</folderInfo> |
|||
<sourceEntries> |
|||
<entry excluding=".settings" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> |
|||
</sourceEntries> |
|||
</configuration> |
|||
</storageModule> |
|||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> |
|||
<storageModule moduleId="ilg.gnumcueclipse.managedbuild.packs"/> |
|||
<storageModule moduleId="ilg.gnuarmeclipse.managedbuild.packs"/> |
|||
</cconfiguration> |
|||
<cconfiguration id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1212712783"> |
|||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1212712783" moduleId="org.eclipse.cdt.core.settings" name="Release"> |
|||
<externalSettings/> |
|||
<extensions> |
|||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> |
|||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
</extensions> |
|||
</storageModule> |
|||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
|||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1212712783" name="Release" optionalBuildProperties="" parent="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release"> |
|||
<folderInfo id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1212712783." name="/" resourcePath=""> |
|||
<toolChain id="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.release.243672508" name="RISC-V Cross GCC" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.release"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash.1700898671" name="Create flash image" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createlisting.328584812" name="Create extended listing" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createlisting"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.printsize.272362945" name="Print size" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.printsize" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.level.1536050800" name="Optimization Level" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.level" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.level.size" valueType="enumerated"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.messagelength.39322645" name="Message length (-fmessage-length=0)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.messagelength" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.signedchar.899168086" name="'char' is signed (-fsigned-char)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.signedchar" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.functionsections.62073107" name="Function sections (-ffunction-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.functionsections" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.datasections.1098739386" name="Data sections (-fdata-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.datasections" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.level.508095950" name="Debug level" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.level"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.format.102756495" name="Debug format" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.format"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.name.740045372" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.name" value="xPack GNU RISC-V Embedded GCC" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.prefix.1822913735" name="Prefix" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.prefix" value="riscv-none-embed-" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.c.448956677" name="C compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.c" value="gcc" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.cpp.1123993921" name="C++ compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.cpp" value="g++" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.ar.1152695436" name="Archiver" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.ar" value="ar" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objcopy.1493388139" name="Hex/Bin converter" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objcopy" value="objcopy" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objdump.981420114" name="Listing generator" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objdump" value="objdump" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.size.1829669584" name="Size command" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.size" value="size" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.make.1117810088" name="Build command" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.make" value="make" valueType="string"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.rm.2140218021" name="Remove command" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.rm" value="rm" valueType="string"/> |
|||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform.2108318268" isAbstract="false" osList="all" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform"/> |
|||
<builder buildPath="${workspace_loc:/GD32V_DOWNSTREAM}/Release" id="ilg.gnumcueclipse.managedbuild.cross.riscv.builder.186440277" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.builder"/> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.518021490" name="GNU RISC-V Cross Assembler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.usepreprocessor.1673457069" name="Use preprocessor" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.usepreprocessor" value="true" valueType="boolean"/> |
|||
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.input.783307255" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.input"/> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.426963626" name="GNU RISC-V Cross C Compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler"> |
|||
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input.1491970636" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input"/> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.compiler.1538616535" name="GNU RISC-V Cross C++ Compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.compiler"/> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.758486686" name="GNU RISC-V Cross C Linker" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.gcsections.1382121408" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.gcsections" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other.1330603069" name="Other linker flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other" value="--specs=nosys.specs" valueType="string"/> |
|||
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input.259281420" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input"> |
|||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> |
|||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> |
|||
</inputType> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.linker.1855427232" name="GNU RISC-V Cross C++ Linker" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.linker"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.gcsections.946367409" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.gcsections" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.other.1299809017" name="Other linker flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.other" value="--specs=nosys.specs" valueType="string"/> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.archiver.749886662" name="GNU RISC-V Cross Archiver" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.archiver"/> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createflash.390053621" name="GNU RISC-V Cross Create Flash Image" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createflash"/> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createlisting.2099945203" name="GNU RISC-V Cross Create Listing" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createlisting"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.source.1147439475" name="Display source (--source|-S)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.source" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.allheaders.191393003" name="Display all headers (--all-headers|-x)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.allheaders" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.demangle.1795174068" name="Demangle names (--demangle|-C)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.demangle" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.linenumbers.1308205785" name="Display line numbers (--line-numbers|-l)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.linenumbers" value="true" valueType="boolean"/> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.wide.596347778" name="Wide lines (--wide|-w)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.wide" value="true" valueType="boolean"/> |
|||
</tool> |
|||
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.printsize.516476214" name="GNU RISC-V Cross Print Size" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.printsize"> |
|||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.printsize.format.1683859393" name="Size format" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.printsize.format"/> |
|||
</tool> |
|||
</toolChain> |
|||
</folderInfo> |
|||
<sourceEntries> |
|||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Source"/> |
|||
</sourceEntries> |
|||
</configuration> |
|||
</storageModule> |
|||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> |
|||
</cconfiguration> |
|||
</storageModule> |
|||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
|||
<project id="GD32V_DOWNSTREAM.ilg.gnumcueclipse.managedbuild.cross.riscv.target.elf.215691552" name="Executable" projectType="ilg.gnumcueclipse.managedbuild.cross.riscv.target.elf"/> |
|||
</storageModule> |
|||
<storageModule moduleId="scannerConfiguration"> |
|||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> |
|||
<scannerConfigBuildInfo instanceId="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1212712783;ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1212712783.;ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.426963626;ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input.1491970636"> |
|||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> |
|||
</scannerConfigBuildInfo> |
|||
<scannerConfigBuildInfo instanceId="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.728343049;ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.728343049.;ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.616007437;ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input.753310393"> |
|||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> |
|||
</scannerConfigBuildInfo> |
|||
</storageModule> |
|||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> |
|||
<storageModule moduleId="refreshScope" versionNumber="2"> |
|||
<configuration configurationName="Debug"> |
|||
<resource resourceType="PROJECT" workspacePath="/GD32V_DOWNSTREAM"/> |
|||
</configuration> |
|||
<configuration configurationName="Release"> |
|||
<resource resourceType="PROJECT" workspacePath="/GD32V_DOWNSTREAM"/> |
|||
</configuration> |
|||
</storageModule> |
|||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> |
|||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/> |
|||
</cproject> |
@ -0,0 +1,26 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<projectDescription> |
|||
<name>GD32V_DOWNSTREAM</name> |
|||
<comment></comment> |
|||
<projects> |
|||
</projects> |
|||
<buildSpec> |
|||
<buildCommand> |
|||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> |
|||
<triggers>clean,full,incremental,</triggers> |
|||
<arguments> |
|||
</arguments> |
|||
</buildCommand> |
|||
<buildCommand> |
|||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> |
|||
<triggers>full,incremental,</triggers> |
|||
<arguments> |
|||
</arguments> |
|||
</buildCommand> |
|||
</buildSpec> |
|||
<natures> |
|||
<nature>org.eclipse.cdt.core.cnature</nature> |
|||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> |
|||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> |
|||
</natures> |
|||
</projectDescription> |
@ -0,0 +1,25 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<project> |
|||
<configuration id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.728343049" name="Debug"> |
|||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> |
|||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> |
|||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> |
|||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> |
|||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-968577711971396154" id="org.eclipse.embedcdt.managedbuild.cross.riscv.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> |
|||
<language-scope id="org.eclipse.cdt.core.gcc"/> |
|||
<language-scope id="org.eclipse.cdt.core.g++"/> |
|||
</provider> |
|||
</extension> |
|||
</configuration> |
|||
<configuration id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1212712783" name="Release"> |
|||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> |
|||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> |
|||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> |
|||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> |
|||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-975472658385132917" id="org.eclipse.embedcdt.managedbuild.cross.riscv.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> |
|||
<language-scope id="org.eclipse.cdt.core.gcc"/> |
|||
<language-scope id="org.eclipse.cdt.core.g++"/> |
|||
</provider> |
|||
</extension> |
|||
</configuration> |
|||
</project> |
@ -0,0 +1,109 @@ |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.cdt.codan.checkers.errnoreturn=Warning |
|||
org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} |
|||
org.eclipse.cdt.codan.checkers.errreturnvalue=Error |
|||
org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} |
|||
org.eclipse.cdt.codan.checkers.localvarreturn=-Warning |
|||
org.eclipse.cdt.codan.checkers.localvarreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Returning the address of a local variable\\")"} |
|||
org.eclipse.cdt.codan.checkers.nocommentinside=-Error |
|||
org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} |
|||
org.eclipse.cdt.codan.checkers.nolinecomment=-Error |
|||
org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} |
|||
org.eclipse.cdt.codan.checkers.noreturn=Error |
|||
org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error |
|||
org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.BlacklistProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.BlacklistProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function or method is blacklisted\\")",blacklist\=>()} |
|||
org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")",checkMacro\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} |
|||
org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} |
|||
org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Direct float comparison\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error |
|||
org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Avoid magic numbers\\")",checkArray\=>true,checkOperatorParen\=>true,exceptions\=>(1,0,-1,2,1.0,0.0,-1.0)} |
|||
org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Multiple variable declaration\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info |
|||
org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} |
|||
org.eclipse.cdt.codan.internal.checkers.NoDiscardProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.NoDiscardProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return value not evaluated\\")",macro\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Miss copy constructor or assignment operator\\")",onlynew\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} |
|||
org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Static variable in header file\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol shadowing\\")",paramFuncParameters\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} |
|||
org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error |
|||
org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} |
@ -0,0 +1,6 @@ |
|||
doxygen/doxygen_new_line_after_brief=true |
|||
doxygen/doxygen_use_brief_tag=false |
|||
doxygen/doxygen_use_javadoc_tags=true |
|||
doxygen/doxygen_use_pre_tag=false |
|||
doxygen/doxygen_use_structural_commands=false |
|||
eclipse.preferences.version=1 |
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false |
@ -0,0 +1,11 @@ |
|||
|
|||
|
|||
#include "integer.h" |
|||
#include "fattime.h" |
|||
|
|||
|
|||
DWORD get_fattime (void) |
|||
{ |
|||
return 0; |
|||
} |
|||
|
File diff suppressed because it is too large
@ -0,0 +1,63 @@ |
|||
/*!
|
|||
\file gd32vf103_it.c |
|||
\brief main interrupt service routines |
|||
|
|||
\version 2019-06-05, V1.0.0, firmware for GD32VF103 |
|||
*/ |
|||
|
|||
/*
|
|||
Copyright (c) 2019, GigaDevice Semiconductor Inc. |
|||
|
|||
Redistribution and use in source and binary forms, with or without modification, |
|||
are permitted provided that the following conditions are met: |
|||
|
|||
1. Redistributions of source code must retain the above copyright notice, this |
|||
list of conditions and the following disclaimer. |
|||
2. Redistributions in binary form must reproduce the above copyright notice, |
|||
this list of conditions and the following disclaimer in the documentation |
|||
and/or other materials provided with the distribution. |
|||
3. Neither the name of the copyright holder nor the names of its contributors |
|||
may be used to endorse or promote products derived from this software without |
|||
specific prior written permission. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
|||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
|||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
|||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
|||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
|||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY |
|||
OF SUCH DAMAGE. |
|||
*/ |
|||
|
|||
#include "drv_usbh_int.h" |
|||
#include "drv_usb_hw.h" |
|||
#include "gd32vf103_it.h" |
|||
|
|||
extern usb_core_driver usbh_msc_core; |
|||
|
|||
extern void usb_timer_irq (void); |
|||
|
|||
/*!
|
|||
\brief this function handles USBD interrupt |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void USBFS_IRQHandler (void) |
|||
{ |
|||
usbh_isr (&usbh_msc_core); |
|||
} |
|||
|
|||
/*!
|
|||
\brief this function handles timer2 updata interrupt request. |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void TIMER2_IRQHandler(void) |
|||
{ |
|||
usb_timer_irq(); |
|||
} |
@ -0,0 +1,256 @@ |
|||
/*!
|
|||
\file gd32vf103_usb_hw.c |
|||
\brief this file implements the board support package for the USB host library |
|||
|
|||
\version 2019-06-05, V1.0.0, firmware for GD32VF103 |
|||
*/ |
|||
|
|||
/*
|
|||
Copyright (c) 2019, GigaDevice Semiconductor Inc. |
|||
|
|||
Redistribution and use in source and binary forms, with or without modification, |
|||
are permitted provided that the following conditions are met: |
|||
|
|||
1. Redistributions of source code must retain the above copyright notice, this |
|||
list of conditions and the following disclaimer. |
|||
2. Redistributions in binary form must reproduce the above copyright notice, |
|||
this list of conditions and the following disclaimer in the documentation |
|||
and/or other materials provided with the distribution. |
|||
3. Neither the name of the copyright holder nor the names of its contributors |
|||
may be used to endorse or promote products derived from this software without |
|||
specific prior written permission. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
|||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
|||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
|||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
|||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
|||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY |
|||
OF SUCH DAMAGE. |
|||
*/ |
|||
|
|||
#include "drv_usb_hw.h" |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
#include <string.h> |
|||
|
|||
#define TIM_MSEC_DELAY 0x01 |
|||
#define TIM_USEC_DELAY 0x02 |
|||
|
|||
#define HOST_POWERSW_PORT_RCC RCU_GPIOD |
|||
#define HOST_POWERSW_PORT GPIOD |
|||
#define HOST_POWERSW_VBUS GPIO_PIN_13 |
|||
|
|||
__IO uint32_t delay_time = 0; |
|||
__IO uint32_t usbfs_prescaler = 0; |
|||
__IO uint32_t timer_prescaler = 5; |
|||
|
|||
static void hwp_time_set (uint8_t unit); |
|||
static void hwp_delay (uint32_t ntime, uint8_t unit); |
|||
|
|||
/*!
|
|||
\brief configure USB clock |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void usb_rcu_config (void) |
|||
{ |
|||
uint32_t system_clock = rcu_clock_freq_get(CK_SYS); |
|||
|
|||
if (system_clock == 48000000) { |
|||
usbfs_prescaler = RCU_CKUSB_CKPLL_DIV1; |
|||
timer_prescaler = 3; |
|||
} else if (system_clock == 72000000) { |
|||
usbfs_prescaler = RCU_CKUSB_CKPLL_DIV1_5; |
|||
timer_prescaler = 5; |
|||
} else if (system_clock == 96000000) { |
|||
usbfs_prescaler = RCU_CKUSB_CKPLL_DIV2; |
|||
timer_prescaler = 7; |
|||
} else { |
|||
/* reserved */ |
|||
} |
|||
|
|||
rcu_usb_clock_config(usbfs_prescaler); |
|||
rcu_periph_clock_enable(RCU_USBFS); |
|||
} |
|||
|
|||
/*!
|
|||
\brief configure USB global interrupt |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void usb_intr_config (void) |
|||
{ |
|||
eclic_irq_enable((uint8_t)USBFS_IRQn, 1, 0); |
|||
|
|||
#ifdef USB_OTG_FS_LOW_PWR_MGMT_SUPPORT |
|||
|
|||
/* enable the power module clock */ |
|||
rcu_periph_clock_enable(RCU_PMU); |
|||
|
|||
/* USB wakeup EXTI line configuration */ |
|||
exti_interrupt_flag_clear(EXTI_18); |
|||
exti_init(EXTI_18, EXTI_INTERRUPT, EXTI_TRIG_RISING); |
|||
exti_interrupt_enable(EXTI_18); |
|||
|
|||
eclic_irq_enable((uint8_t)USBFS_WKUP_IRQn, 3U, 0U); |
|||
|
|||
#endif /* USBHS_LOW_PWR_MGMT_SUPPORT */ |
|||
} |
|||
|
|||
/*!
|
|||
\brief drives the VBUS signal through gpio |
|||
\param[in] state: VBUS states |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void usb_vbus_drive (uint8_t state) |
|||
{ |
|||
if (0 == state) |
|||
{ |
|||
/* DISABLE is needed on output of the Power Switch */ |
|||
gpio_bit_reset(HOST_POWERSW_PORT, HOST_POWERSW_VBUS); |
|||
} |
|||
else |
|||
{ |
|||
/*ENABLE the Power Switch by driving the Enable LOW */ |
|||
gpio_bit_set(HOST_POWERSW_PORT, HOST_POWERSW_VBUS); |
|||
} |
|||
} |
|||
|
|||
/*!
|
|||
\brief configures the GPIO for the VBUS |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void usb_vbus_config (void) |
|||
{ |
|||
rcu_periph_clock_enable(HOST_POWERSW_PORT_RCC); |
|||
|
|||
gpio_init(HOST_POWERSW_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, HOST_POWERSW_VBUS); |
|||
|
|||
/* by default, disable is needed on output of the power switch */ |
|||
gpio_bit_set(HOST_POWERSW_PORT, HOST_POWERSW_VBUS); |
|||
|
|||
/* Delay is need for stabilising the Vbus Low in Reset Condition,
|
|||
* when Vbus=1 and Reset-button is pressed by user |
|||
*/ |
|||
usb_mdelay (2); |
|||
} |
|||
|
|||
/*!
|
|||
\brief initializes delay unit using Timer2 |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void usb_timer_init (void) |
|||
{ |
|||
rcu_periph_clock_enable(RCU_TIMER2); |
|||
|
|||
eclic_irq_enable(TIMER2_IRQn, 2, 0); |
|||
} |
|||
|
|||
/*!
|
|||
\brief delay in micro seconds |
|||
\param[in] usec: value of delay required in micro seconds |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void usb_udelay (const uint32_t usec) |
|||
{ |
|||
hwp_delay(usec, TIM_USEC_DELAY); |
|||
} |
|||
|
|||
/*!
|
|||
\brief delay in milli seconds |
|||
\param[in] msec: value of delay required in milli seconds |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void usb_mdelay (const uint32_t msec) |
|||
{ |
|||
hwp_delay(msec, TIM_MSEC_DELAY); |
|||
} |
|||
|
|||
/*!
|
|||
\brief timer base IRQ |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void usb_timer_irq (void) |
|||
{ |
|||
if (timer_interrupt_flag_get(TIMER2, TIMER_INT_UP) != RESET){ |
|||
timer_interrupt_flag_clear(TIMER2, TIMER_INT_UP); |
|||
|
|||
if (delay_time > 0x00U){ |
|||
delay_time--; |
|||
} else { |
|||
timer_disable(TIMER2); |
|||
} |
|||
} |
|||
} |
|||
|
|||
/*!
|
|||
\brief delay routine based on TIM2 |
|||
\param[in] ntime: delay Time |
|||
\param[in] unit: delay Time unit = mili sec / micro sec |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void hwp_delay(uint32_t ntime, uint8_t unit) |
|||
{ |
|||
delay_time = ntime; |
|||
hwp_time_set(unit); |
|||
|
|||
while(delay_time != 0); |
|||
|
|||
timer_disable(TIMER2); |
|||
} |
|||
|
|||
/*!
|
|||
\brief configures TIM2 for delay routine based on TIM2 |
|||
\param[in] unit: msec /usec |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void hwp_time_set(uint8_t unit) |
|||
{ |
|||
timer_parameter_struct timer_basestructure; |
|||
|
|||
timer_disable(TIMER2); |
|||
timer_interrupt_disable(TIMER2, TIMER_INT_UP); |
|||
|
|||
if (unit == TIM_USEC_DELAY) { |
|||
timer_basestructure.period = 11; |
|||
} else if(unit == TIM_MSEC_DELAY) { |
|||
timer_basestructure.period = 11999; |
|||
} else { |
|||
/* no operation */ |
|||
} |
|||
|
|||
timer_basestructure.prescaler = timer_prescaler; |
|||
timer_basestructure.alignedmode = TIMER_COUNTER_EDGE; |
|||
timer_basestructure.counterdirection = TIMER_COUNTER_UP; |
|||
timer_basestructure.clockdivision = TIMER_CKDIV_DIV1; |
|||
timer_basestructure.repetitioncounter = 0; |
|||
|
|||
timer_init(TIMER2, &timer_basestructure); |
|||
|
|||
timer_interrupt_flag_clear(TIMER2, TIMER_INT_UP); |
|||
|
|||
timer_auto_reload_shadow_enable(TIMER2); |
|||
|
|||
/* timer2 interrupt enable */ |
|||
timer_interrupt_enable(TIMER2, TIMER_INT_UP); |
|||
|
|||
/* timer2 enable counter */ |
|||
timer_enable(TIMER2); |
|||
} |
@ -0,0 +1,87 @@ |
|||
/*!
|
|||
\file main.c |
|||
\brief this file realizes the MSC host |
|||
|
|||
\version 2019-06-05, V1.0.0, firmware for GD32VF103 |
|||
*/ |
|||
|
|||
/*
|
|||
Copyright (c) 2019, GigaDevice Semiconductor Inc. |
|||
|
|||
Redistribution and use in source and binary forms, with or without modification, |
|||
are permitted provided that the following conditions are met: |
|||
|
|||
1. Redistributions of source code must retain the above copyright notice, this |
|||
list of conditions and the following disclaimer. |
|||
2. Redistributions in binary form must reproduce the above copyright notice, |
|||
this list of conditions and the following disclaimer in the documentation |
|||
and/or other materials provided with the distribution. |
|||
3. Neither the name of the copyright holder nor the names of its contributors |
|||
may be used to endorse or promote products derived from this software without |
|||
specific prior written permission. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
|||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
|||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
|||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
|||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
|||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY |
|||
OF SUCH DAMAGE. |
|||
*/ |
|||
|
|||
#include "drv_usb_hw.h" |
|||
#include "drv_usb_core.h" |
|||
#include "usbh_usr.h" |
|||
#include "usbh_msc_core.h" |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
#include <string.h> |
|||
|
|||
|
|||
usb_core_driver usbh_msc_core; |
|||
|
|||
usbh_host usb_host = { |
|||
.class_cb = &usbh_msc_cb, |
|||
.usr_cb = &user_callback_funs, |
|||
|
|||
}; |
|||
|
|||
usbh_host hUsbHostFS; |
|||
|
|||
void Downstream_HostUserCallback(usbh_host *phost, uint8_t id){ |
|||
//dummy
|
|||
return; |
|||
} |
|||
|
|||
/**
|
|||
* @brief Main routine for HID mouse / keyboard class application |
|||
* @param None |
|||
* @retval None |
|||
*/ |
|||
int main(void) |
|||
{ |
|||
|
|||
eclic_global_interrupt_enable(); |
|||
|
|||
eclic_priority_group_set(ECLIC_PRIGROUP_LEVEL2_PRIO2); |
|||
|
|||
usb_rcu_config(); |
|||
|
|||
usb_timer_init(); |
|||
|
|||
/* configure GPIO pin used for switching VBUS power and charge pump I/O */ |
|||
// usb_vbus_config();
|
|||
|
|||
usbh_init (&usbh_msc_core, USB_CORE_ENUM_FS, &usb_host,Downstream_HostUserCallback); |
|||
|
|||
/* enable interrupts */ |
|||
usb_intr_config(); |
|||
|
|||
while (1) { |
|||
/* Host state handler */ |
|||
usbh_core_task (&usbh_msc_core, &usb_host); |
|||
} |
|||
} |
@ -0,0 +1,998 @@ |
|||
/*!
|
|||
\file system_gd32vf103.h |
|||
\brief RISC-V Device Peripheral Access Layer Source File for |
|||
GD32VF103 Device Series |
|||
|
|||
*/ |
|||
|
|||
/*
|
|||
Copyright (c) 2019, GigaDevice Semiconductor Inc. |
|||
|
|||
Redistribution and use in source and binary forms, with or without modification, |
|||
are permitted provided that the following conditions are met: |
|||
|
|||
1. Redistributions of source code must retain the above copyright notice, this |
|||
list of conditions and the following disclaimer. |
|||
2. Redistributions in binary form must reproduce the above copyright notice, |
|||
this list of conditions and the following disclaimer in the documentation |
|||
and/or other materials provided with the distribution. |
|||
3. Neither the name of the copyright holder nor the names of its contributors |
|||
may be used to endorse or promote products derived from this software without |
|||
specific prior written permission. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
|||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
|||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
|||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
|||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
|||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY |
|||
OF SUCH DAMAGE. |
|||
*/ |
|||
|
|||
/* This file refers the RISC-V standard, some adjustments are made according to GigaDevice chips */ |
|||
|
|||
#include "gd32vf103.h" |
|||
|
|||
/* system frequency define */ |
|||
#define __IRC8M (IRC8M_VALUE) /* internal 8 MHz RC oscillator frequency */ |
|||
#define __HXTAL (HXTAL_VALUE) /* high speed crystal oscillator frequency */ |
|||
#define __SYS_OSC_CLK (__IRC8M) /* main oscillator frequency */ |
|||
|
|||
/* select a system clock by uncommenting the following line */ |
|||
/* use IRC8M */ |
|||
//#define __SYSTEM_CLOCK_48M_PLL_IRC8M (uint32_t)(48000000)
|
|||
//#define __SYSTEM_CLOCK_72M_PLL_IRC8M (uint32_t)(72000000)
|
|||
//#define __SYSTEM_CLOCK_108M_PLL_IRC8M (uint32_t)(108000000)
|
|||
|
|||
/********************************************************************/ |
|||
//#define __SYSTEM_CLOCK_HXTAL (HXTAL_VALUE)
|
|||
//#define __SYSTEM_CLOCK_24M_PLL_HXTAL (uint32_t)(24000000)
|
|||
/********************************************************************/ |
|||
|
|||
//#define __SYSTEM_CLOCK_36M_PLL_HXTAL (uint32_t)(36000000)
|
|||
//#define __SYSTEM_CLOCK_48M_PLL_HXTAL (uint32_t)(48000000)
|
|||
//#define __SYSTEM_CLOCK_56M_PLL_HXTAL (uint32_t)(56000000)
|
|||
//#define __SYSTEM_CLOCK_72M_PLL_HXTAL (uint32_t)(72000000)
|
|||
#define __SYSTEM_CLOCK_96M_PLL_HXTAL (uint32_t)(96000000) |
|||
//#define __SYSTEM_CLOCK_108M_PLL_HXTAL (uint32_t)(108000000)
|
|||
|
|||
#define SEL_IRC8M 0x00U |
|||
#define SEL_HXTAL 0x01U |
|||
#define SEL_PLL 0x02U |
|||
|
|||
/* set the system clock frequency and declare the system clock configuration function */ |
|||
#ifdef __SYSTEM_CLOCK_48M_PLL_IRC8M |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_48M_PLL_IRC8M; |
|||
static void system_clock_48m_irc8m(void); |
|||
#elif defined (__SYSTEM_CLOCK_72M_PLL_IRC8M) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_72M_PLL_IRC8M; |
|||
static void system_clock_72m_irc8m(void); |
|||
#elif defined (__SYSTEM_CLOCK_108M_PLL_IRC8M) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_108M_PLL_IRC8M; |
|||
static void system_clock_108m_irc8m(void); |
|||
|
|||
#elif defined (__SYSTEM_CLOCK_HXTAL) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_HXTAL; |
|||
static void system_clock_hxtal(void); |
|||
#elif defined (__SYSTEM_CLOCK_24M_PLL_HXTAL) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_24M_PLL_HXTAL; |
|||
static void system_clock_24m_hxtal(void); |
|||
#elif defined (__SYSTEM_CLOCK_36M_PLL_HXTAL) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_36M_PLL_HXTAL; |
|||
static void system_clock_36m_hxtal(void); |
|||
#elif defined (__SYSTEM_CLOCK_48M_PLL_HXTAL) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_48M_PLL_HXTAL; |
|||
static void system_clock_48m_hxtal(void); |
|||
#elif defined (__SYSTEM_CLOCK_56M_PLL_HXTAL) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_56M_PLL_HXTAL; |
|||
static void system_clock_56m_hxtal(void); |
|||
#elif defined (__SYSTEM_CLOCK_72M_PLL_HXTAL) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_72M_PLL_HXTAL; |
|||
static void system_clock_72m_hxtal(void); |
|||
#elif defined (__SYSTEM_CLOCK_96M_PLL_HXTAL) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_96M_PLL_HXTAL; |
|||
static void system_clock_96m_hxtal(void); |
|||
#elif defined (__SYSTEM_CLOCK_108M_PLL_HXTAL) |
|||
uint32_t SystemCoreClock = __SYSTEM_CLOCK_108M_PLL_HXTAL; |
|||
static void system_clock_108m_hxtal(void); |
|||
#else |
|||
uint32_t SystemCoreClock = IRC8M_VALUE; |
|||
#endif /* __SYSTEM_CLOCK_48M_PLL_IRC8M */ |
|||
|
|||
/* configure the system clock */ |
|||
static void system_clock_config(void); |
|||
|
|||
/*!
|
|||
\brief configure the system clock |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void system_clock_config(void) |
|||
{ |
|||
#ifdef __SYSTEM_CLOCK_HXTAL |
|||
system_clock_hxtal(); |
|||
#elif defined (__SYSTEM_CLOCK_24M_PLL_HXTAL) |
|||
system_clock_24m_hxtal(); |
|||
#elif defined (__SYSTEM_CLOCK_36M_PLL_HXTAL) |
|||
system_clock_36m_hxtal(); |
|||
#elif defined (__SYSTEM_CLOCK_48M_PLL_HXTAL) |
|||
system_clock_48m_hxtal(); |
|||
#elif defined (__SYSTEM_CLOCK_56M_PLL_HXTAL) |
|||
system_clock_56m_hxtal(); |
|||
#elif defined (__SYSTEM_CLOCK_72M_PLL_HXTAL) |
|||
system_clock_72m_hxtal(); |
|||
#elif defined (__SYSTEM_CLOCK_96M_PLL_HXTAL) |
|||
system_clock_96m_hxtal(); |
|||
#elif defined (__SYSTEM_CLOCK_108M_PLL_HXTAL) |
|||
system_clock_108m_hxtal(); |
|||
|
|||
#elif defined (__SYSTEM_CLOCK_48M_PLL_IRC8M) |
|||
system_clock_48m_irc8m(); |
|||
#elif defined (__SYSTEM_CLOCK_72M_PLL_IRC8M) |
|||
system_clock_72m_irc8m(); |
|||
#elif defined (__SYSTEM_CLOCK_108M_PLL_IRC8M) |
|||
system_clock_108m_irc8m(); |
|||
#endif /* __SYSTEM_CLOCK_HXTAL */ |
|||
} |
|||
|
|||
/*!
|
|||
\brief setup the microcontroller system, initialize the system |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void SystemInit(void) |
|||
{ |
|||
/* reset the RCC clock configuration to the default reset state */ |
|||
/* enable IRC8M */ |
|||
RCU_CTL |= RCU_CTL_IRC8MEN; |
|||
|
|||
/* reset SCS, AHBPSC, APB1PSC, APB2PSC, ADCPSC, CKOUT0SEL bits */ |
|||
RCU_CFG0 &= ~(RCU_CFG0_SCS | RCU_CFG0_AHBPSC | RCU_CFG0_APB1PSC | RCU_CFG0_APB2PSC | |
|||
RCU_CFG0_ADCPSC | RCU_CFG0_ADCPSC_2 | RCU_CFG0_CKOUT0SEL); |
|||
|
|||
/* reset HXTALEN, CKMEN, PLLEN bits */ |
|||
RCU_CTL &= ~(RCU_CTL_HXTALEN | RCU_CTL_CKMEN | RCU_CTL_PLLEN); |
|||
|
|||
/* Reset HXTALBPS bit */ |
|||
RCU_CTL &= ~(RCU_CTL_HXTALBPS); |
|||
|
|||
/* reset PLLSEL, PREDV0_LSB, PLLMF, USBFSPSC bits */ |
|||
|
|||
RCU_CFG0 &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0_LSB | RCU_CFG0_PLLMF | |
|||
RCU_CFG0_USBFSPSC | RCU_CFG0_PLLMF_4); |
|||
RCU_CFG1 = 0x00000000U; |
|||
|
|||
/* Reset HXTALEN, CKMEN, PLLEN, PLL1EN and PLL2EN bits */ |
|||
RCU_CTL &= ~(RCU_CTL_PLLEN | RCU_CTL_PLL1EN | RCU_CTL_PLL2EN | RCU_CTL_CKMEN | RCU_CTL_HXTALEN); |
|||
/* disable all interrupts */ |
|||
RCU_INT = 0x00FF0000U; |
|||
|
|||
/* Configure the System clock source, PLL Multiplier, AHB/APBx prescalers and Flash settings */ |
|||
system_clock_config(); |
|||
} |
|||
|
|||
/*!
|
|||
\brief update the SystemCoreClock with current core clock retrieved from cpu registers |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
void SystemCoreClockUpdate(void) |
|||
{ |
|||
uint32_t scss; |
|||
uint32_t pllsel, predv0sel, pllmf, ck_src; |
|||
uint32_t predv0, predv1, pll1mf; |
|||
|
|||
scss = GET_BITS(RCU_CFG0, 2, 3); |
|||
|
|||
switch (scss) |
|||
{ |
|||
/* IRC8M is selected as CK_SYS */ |
|||
case SEL_IRC8M: |
|||
SystemCoreClock = IRC8M_VALUE; |
|||
break; |
|||
|
|||
/* HXTAL is selected as CK_SYS */ |
|||
case SEL_HXTAL: |
|||
SystemCoreClock = HXTAL_VALUE; |
|||
break; |
|||
|
|||
/* PLL is selected as CK_SYS */ |
|||
case SEL_PLL: |
|||
/* PLL clock source selection, HXTAL or IRC8M/2 */ |
|||
pllsel = (RCU_CFG0 & RCU_CFG0_PLLSEL); |
|||
|
|||
|
|||
if(RCU_PLLSRC_IRC8M_DIV2 == pllsel){ |
|||
/* PLL clock source is IRC8M/2 */ |
|||
ck_src = IRC8M_VALUE / 2U; |
|||
}else{ |
|||
/* PLL clock source is HXTAL */ |
|||
ck_src = HXTAL_VALUE; |
|||
|
|||
predv0sel = (RCU_CFG1 & RCU_CFG1_PREDV0SEL); |
|||
|
|||
/* source clock use PLL1 */ |
|||
if(RCU_PREDV0SRC_CKPLL1 == predv0sel){ |
|||
predv1 = ((RCU_CFG1 & RCU_CFG1_PREDV1) >> 4) + 1U; |
|||
pll1mf = ((RCU_CFG1 & RCU_CFG1_PLL1MF) >> 8) + 2U; |
|||
if(17U == pll1mf){ |
|||
pll1mf = 20U; |
|||
} |
|||
ck_src = (ck_src / predv1) * pll1mf; |
|||
} |
|||
predv0 = (RCU_CFG1 & RCU_CFG1_PREDV0) + 1U; |
|||
ck_src /= predv0; |
|||
} |
|||
|
|||
/* PLL multiplication factor */ |
|||
pllmf = GET_BITS(RCU_CFG0, 18, 21); |
|||
|
|||
if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){ |
|||
pllmf |= 0x10U; |
|||
} |
|||
|
|||
if(pllmf >= 15U){ |
|||
pllmf += 1U; |
|||
}else{ |
|||
pllmf += 2U; |
|||
} |
|||
|
|||
SystemCoreClock = ck_src * pllmf; |
|||
|
|||
if(15U == pllmf){ |
|||
/* PLL source clock multiply by 6.5 */ |
|||
SystemCoreClock = ck_src * 6U + ck_src / 2U; |
|||
} |
|||
|
|||
break; |
|||
|
|||
/* IRC8M is selected as CK_SYS */ |
|||
default: |
|||
SystemCoreClock = IRC8M_VALUE; |
|||
break; |
|||
} |
|||
} |
|||
|
|||
#ifdef __SYSTEM_CLOCK_HXTAL |
|||
/*!
|
|||
\brief configure the system clock to HXTAL |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void system_clock_hxtal(void) |
|||
{ |
|||
uint32_t timeout = 0U; |
|||
uint32_t stab_flag = 0U; |
|||
|
|||
/* enable HXTAL */ |
|||
RCU_CTL |= RCU_CTL_HXTALEN; |
|||
|
|||
/* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */ |
|||
do{ |
|||
timeout++; |
|||
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB); |
|||
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout)); |
|||
|
|||
/* if fail */ |
|||
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){ |
|||
while(1){ |
|||
} |
|||
} |
|||
|
|||
/* AHB = SYSCLK */ |
|||
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1; |
|||
/* APB2 = AHB/1 */ |
|||
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1; |
|||
/* APB1 = AHB/2 */ |
|||
RCU_CFG0 |= RCU_APB1_CKAHB_DIV2; |
|||
|
|||
/* select HXTAL as system clock */ |
|||
RCU_CFG0 &= ~RCU_CFG0_SCS; |
|||
RCU_CFG0 |= RCU_CKSYSSRC_HXTAL; |
|||
|
|||
/* wait until HXTAL is selected as system clock */ |
|||
while(0 == (RCU_CFG0 & RCU_SCSS_HXTAL)){ |
|||
} |
|||
} |
|||
|
|||
#elif defined (__SYSTEM_CLOCK_24M_PLL_HXTAL) |
|||
/*!
|
|||
\brief configure the system clock to 24M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void system_clock_24m_hxtal(void) |
|||
{ |
|||
uint32_t timeout = 0U; |
|||
uint32_t stab_flag = 0U; |
|||
|
|||
/* enable HXTAL */ |
|||
RCU_CTL |= RCU_CTL_HXTALEN; |
|||
|
|||
/* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */ |
|||
do{ |
|||
timeout++; |
|||
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB); |
|||
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout)); |
|||
|
|||
/* if fail */ |
|||
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){ |
|||
while(1){ |
|||
} |
|||
} |
|||
|
|||
/* HXTAL is stable */ |
|||
/* AHB = SYSCLK */ |
|||
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1; |
|||
/* APB2 = AHB/1 */ |
|||
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1; |
|||
/* APB1 = AHB/2 */ |
|||
RCU_CFG0 |= RCU_APB1_CKAHB_DIV2; |
|||
|
|||
/* CK_PLL = (CK_PREDIV0) * 6 = 24 MHz */ |
|||
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4); |
|||
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL6); |
|||
|
|||
if(HXTAL_VALUE==25000000){ |
|||
/* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10); |
|||
|
|||
/* enable PLL1 */ |
|||
RCU_CTL |= RCU_CTL_PLL1EN; |
|||
/* wait till PLL1 is ready */ |
|||
while((RCU_CTL & RCU_CTL_PLL1STB) == 0){ |
|||
} |
|||
|
|||
}else if(HXTAL_VALUE==8000000){ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 ); |
|||
} |
|||
|
|||
/* enable PLL */ |
|||
RCU_CTL |= RCU_CTL_PLLEN; |
|||
|
|||
/* wait until PLL is stable */ |
|||
while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){ |
|||
} |
|||
|
|||
/* select PLL as system clock */ |
|||
RCU_CFG0 &= ~RCU_CFG0_SCS; |
|||
RCU_CFG0 |= RCU_CKSYSSRC_PLL; |
|||
|
|||
/* wait until PLL is selected as system clock */ |
|||
while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){ |
|||
} |
|||
} |
|||
|
|||
#elif defined (__SYSTEM_CLOCK_36M_PLL_HXTAL) |
|||
/*!
|
|||
\brief configure the system clock to 36M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void system_clock_36m_hxtal(void) |
|||
{ |
|||
uint32_t timeout = 0U; |
|||
uint32_t stab_flag = 0U; |
|||
|
|||
/* enable HXTAL */ |
|||
RCU_CTL |= RCU_CTL_HXTALEN; |
|||
|
|||
/* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */ |
|||
do{ |
|||
timeout++; |
|||
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB); |
|||
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout)); |
|||
|
|||
/* if fail */ |
|||
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){ |
|||
while(1){ |
|||
} |
|||
} |
|||
|
|||
/* HXTAL is stable */ |
|||
/* AHB = SYSCLK */ |
|||
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1; |
|||
/* APB2 = AHB/1 */ |
|||
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1; |
|||
/* APB1 = AHB/2 */ |
|||
RCU_CFG0 |= RCU_APB1_CKAHB_DIV2; |
|||
|
|||
/* CK_PLL = (CK_PREDIV0) * 9 = 36 MHz */ |
|||
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4); |
|||
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL9); |
|||
|
|||
if(HXTAL_VALUE==25000000){ |
|||
/* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10); |
|||
|
|||
/* enable PLL1 */ |
|||
RCU_CTL |= RCU_CTL_PLL1EN; |
|||
/* wait till PLL1 is ready */ |
|||
while((RCU_CTL & RCU_CTL_PLL1STB) == 0){ |
|||
} |
|||
|
|||
}else if(HXTAL_VALUE==8000000){ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 ); |
|||
} |
|||
|
|||
/* enable PLL */ |
|||
RCU_CTL |= RCU_CTL_PLLEN; |
|||
|
|||
/* wait until PLL is stable */ |
|||
while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){ |
|||
} |
|||
|
|||
/* select PLL as system clock */ |
|||
RCU_CFG0 &= ~RCU_CFG0_SCS; |
|||
RCU_CFG0 |= RCU_CKSYSSRC_PLL; |
|||
|
|||
/* wait until PLL is selected as system clock */ |
|||
while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){ |
|||
} |
|||
} |
|||
|
|||
#elif defined (__SYSTEM_CLOCK_48M_PLL_HXTAL) |
|||
/*!
|
|||
\brief configure the system clock to 48M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void system_clock_48m_hxtal(void) |
|||
{ |
|||
uint32_t timeout = 0U; |
|||
uint32_t stab_flag = 0U; |
|||
|
|||
/* enable HXTAL */ |
|||
RCU_CTL |= RCU_CTL_HXTALEN; |
|||
|
|||
/* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */ |
|||
do{ |
|||
timeout++; |
|||
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB); |
|||
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout)); |
|||
|
|||
/* if fail */ |
|||
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){ |
|||
while(1){ |
|||
} |
|||
} |
|||
|
|||
/* HXTAL is stable */ |
|||
/* AHB = SYSCLK */ |
|||
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1; |
|||
/* APB2 = AHB/1 */ |
|||
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1; |
|||
/* APB1 = AHB/2 */ |
|||
RCU_CFG0 |= RCU_APB1_CKAHB_DIV2; |
|||
|
|||
/* CK_PLL = (CK_PREDIV0) * 12 = 48 MHz */ |
|||
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4); |
|||
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL12); |
|||
|
|||
if(HXTAL_VALUE==25000000){ |
|||
|
|||
/* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10); |
|||
|
|||
/* enable PLL1 */ |
|||
RCU_CTL |= RCU_CTL_PLL1EN; |
|||
/* wait till PLL1 is ready */ |
|||
while((RCU_CTL & RCU_CTL_PLL1STB) == 0){ |
|||
} |
|||
|
|||
}else if(HXTAL_VALUE==8000000){ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 ); |
|||
} |
|||
|
|||
|
|||
|
|||
/* enable PLL */ |
|||
RCU_CTL |= RCU_CTL_PLLEN; |
|||
|
|||
/* wait until PLL is stable */ |
|||
while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){ |
|||
} |
|||
|
|||
/* select PLL as system clock */ |
|||
RCU_CFG0 &= ~RCU_CFG0_SCS; |
|||
RCU_CFG0 |= RCU_CKSYSSRC_PLL; |
|||
|
|||
/* wait until PLL is selected as system clock */ |
|||
while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){ |
|||
} |
|||
} |
|||
|
|||
#elif defined (__SYSTEM_CLOCK_56M_PLL_HXTAL) |
|||
/*!
|
|||
\brief configure the system clock to 56M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void system_clock_56m_hxtal(void) |
|||
{ |
|||
uint32_t timeout = 0U; |
|||
uint32_t stab_flag = 0U; |
|||
|
|||
/* enable HXTAL */ |
|||
RCU_CTL |= RCU_CTL_HXTALEN; |
|||
|
|||
/* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */ |
|||
do{ |
|||
timeout++; |
|||
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB); |
|||
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout)); |
|||
|
|||
/* if fail */ |
|||
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){ |
|||
while(1){ |
|||
} |
|||
} |
|||
|
|||
/* HXTAL is stable */ |
|||
/* AHB = SYSCLK */ |
|||
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1; |
|||
/* APB2 = AHB/1 */ |
|||
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1; |
|||
/* APB1 = AHB/2 */ |
|||
RCU_CFG0 |= RCU_APB1_CKAHB_DIV2; |
|||
|
|||
/* CK_PLL = (CK_PREDIV0) * 14 = 56 MHz */ |
|||
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4); |
|||
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL14); |
|||
|
|||
if(HXTAL_VALUE==25000000){ |
|||
|
|||
/* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10); |
|||
|
|||
/* enable PLL1 */ |
|||
RCU_CTL |= RCU_CTL_PLL1EN; |
|||
/* wait till PLL1 is ready */ |
|||
while((RCU_CTL & RCU_CTL_PLL1STB) == 0){ |
|||
} |
|||
|
|||
}else if(HXTAL_VALUE==8000000){ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 ); |
|||
} |
|||
|
|||
/* enable PLL */ |
|||
RCU_CTL |= RCU_CTL_PLLEN; |
|||
|
|||
/* wait until PLL is stable */ |
|||
while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){ |
|||
} |
|||
|
|||
/* select PLL as system clock */ |
|||
RCU_CFG0 &= ~RCU_CFG0_SCS; |
|||
RCU_CFG0 |= RCU_CKSYSSRC_PLL; |
|||
|
|||
/* wait until PLL is selected as system clock */ |
|||
while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){ |
|||
} |
|||
} |
|||
|
|||
#elif defined (__SYSTEM_CLOCK_72M_PLL_HXTAL) |
|||
/*!
|
|||
\brief configure the system clock to 72M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void system_clock_72m_hxtal(void) |
|||
{ |
|||
uint32_t timeout = 0U; |
|||
uint32_t stab_flag = 0U; |
|||
|
|||
/* enable HXTAL */ |
|||
RCU_CTL |= RCU_CTL_HXTALEN; |
|||
|
|||
/* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */ |
|||
do{ |
|||
timeout++; |
|||
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB); |
|||
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout)); |
|||
|
|||
/* if fail */ |
|||
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){ |
|||
while(1){ |
|||
} |
|||
} |
|||
|
|||
/* HXTAL is stable */ |
|||
/* AHB = SYSCLK */ |
|||
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1; |
|||
/* APB2 = AHB/1 */ |
|||
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1; |
|||
/* APB1 = AHB/2 */ |
|||
RCU_CFG0 |= RCU_APB1_CKAHB_DIV2; |
|||
|
|||
/* CK_PLL = (CK_PREDIV0) * 18 = 72 MHz */ |
|||
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4); |
|||
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL18); |
|||
|
|||
|
|||
if(HXTAL_VALUE==25000000){ |
|||
|
|||
/* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10); |
|||
|
|||
/* enable PLL1 */ |
|||
RCU_CTL |= RCU_CTL_PLL1EN; |
|||
/* wait till PLL1 is ready */ |
|||
while((RCU_CTL & RCU_CTL_PLL1STB) == 0){ |
|||
} |
|||
|
|||
}else if(HXTAL_VALUE==8000000){ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 ); |
|||
} |
|||
|
|||
/* enable PLL */ |
|||
RCU_CTL |= RCU_CTL_PLLEN; |
|||
|
|||
/* wait until PLL is stable */ |
|||
while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){ |
|||
} |
|||
|
|||
/* select PLL as system clock */ |
|||
RCU_CFG0 &= ~RCU_CFG0_SCS; |
|||
RCU_CFG0 |= RCU_CKSYSSRC_PLL; |
|||
|
|||
/* wait until PLL is selected as system clock */ |
|||
while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){ |
|||
} |
|||
} |
|||
|
|||
#elif defined (__SYSTEM_CLOCK_96M_PLL_HXTAL) |
|||
/*!
|
|||
\brief configure the system clock to 96M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
static void system_clock_96m_hxtal(void) |
|||
{ |
|||
uint32_t timeout = 0U; |
|||
uint32_t stab_flag = 0U; |
|||
|
|||
/* enable HXTAL */ |
|||
RCU_CTL |= RCU_CTL_HXTALEN; |
|||
|
|||
/* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */ |
|||
do{ |
|||
timeout++; |
|||
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB); |
|||
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout)); |
|||
|
|||
/* if fail */ |
|||
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){ |
|||
while(1){ |
|||
} |
|||
} |
|||
|
|||
/* HXTAL is stable */ |
|||
/* AHB = SYSCLK */ |
|||
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1; |
|||
/* APB2 = AHB/1 */ |
|||
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1; |
|||
/* APB1 = AHB/2 */ |
|||
RCU_CFG0 |= RCU_APB1_CKAHB_DIV2; |
|||
|
|||
if(HXTAL_VALUE==25000000){ |
|||
|
|||
/* CK_PLL = (CK_PREDIV0) * 24 = 96 MHz */ |
|||
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4); |
|||
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL24); |
|||
|
|||
/* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10); |
|||
/* enable PLL1 */ |
|||
RCU_CTL |= RCU_CTL_PLL1EN; |
|||
/* wait till PLL1 is ready */ |
|||
while((RCU_CTL & RCU_CTL_PLL1STB) == 0){ |
|||
} |
|||
|
|||
}else if(HXTAL_VALUE==8000000){ |
|||
/* CK_PLL = (CK_PREDIV0) * 24 = 96 MHz */ |
|||
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4); |
|||
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL24); |
|||
|
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 ); |
|||
} |
|||
|
|||
/* enable PLL */ |
|||
RCU_CTL |= RCU_CTL_PLLEN; |
|||
|
|||
/* wait until PLL is stable */ |
|||
while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){ |
|||
} |
|||
|
|||
/* select PLL as system clock */ |
|||
RCU_CFG0 &= ~RCU_CFG0_SCS; |
|||
RCU_CFG0 |= RCU_CKSYSSRC_PLL; |
|||
|
|||
/* wait until PLL is selected as system clock */ |
|||
while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){ |
|||
} |
|||
} |
|||
|
|||
#elif defined (__SYSTEM_CLOCK_108M_PLL_HXTAL) |
|||
/*!
|
|||
\brief configure the system clock to 108M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source |
|||
\param[in] none |
|||
\param[out] none |
|||
\retval none |
|||
*/ |
|||
|
|||
static void system_clock_108m_hxtal(void) |
|||
{ |
|||
uint32_t timeout = 0U; |
|||
uint32_t stab_flag = 0U; |
|||
|
|||
/* enable HXTAL */ |
|||
RCU_CTL |= RCU_CTL_HXTALEN; |
|||
|
|||
/* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */ |
|||
do{ |
|||
timeout++; |
|||
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB); |
|||
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout)); |
|||
|
|||
/* if fail */ |
|||
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){ |
|||
while(1){ |
|||
} |
|||
} |
|||
|
|||
/* HXTAL is stable */ |
|||
/* AHB = SYSCLK */ |
|||
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1; |
|||
/* APB2 = AHB/1 */ |
|||
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1; |
|||
/* APB1 = AHB/2 */ |
|||
RCU_CFG0 |= RCU_APB1_CKAHB_DIV2; |
|||
|
|||
/* CK_PLL = (CK_PREDIV0) * 27 = 108 MHz */ |
|||
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4); |
|||
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL27); |
|||
|
|||
if(HXTAL_VALUE==25000000){ |
|||
/* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */ |
|||
RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0); |
|||
RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PREDV1_DIV5 |