| @ -1,266 +1,191 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <?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="fr.ac6.managedbuild.config.gnu.cross.exe.debug.785246917"> | |||
| <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.785246917" moduleId="org.eclipse.cdt.core.settings" name="Debug"> | |||
| <externalSettings /> | |||
| <cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1612780670"> | |||
| <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1612780670" 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" /> | |||
| <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 artifactExtension="elf" 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="rm -rf" description="" id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.785246917" name="Debug" parent="fr.ac6.managedbuild.config.gnu.cross.exe.debug" postannouncebuildStep="Generating hex and Printing size information:" postbuildStep="arm-none-eabi-objcopy -O ihex "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.hex" && arm-none-eabi-size "${BuildArtifactFileName}""> | |||
| <folderInfo id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.785246917." name="/" resourcePath=""> | |||
| <toolChain id="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug.2013979193" name="Ac6 STM32 MCU GCC" superClass="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug"> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.prefix.382830450" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix" useByScannerDiscovery="false" value="arm-none-eabi-" valueType="string" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.mcu.66405555" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu" useByScannerDiscovery="false" value="STM32F103C8Tx" valueType="string" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.board.1729153140" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board" useByScannerDiscovery="false" value="F103C8T6_DIGI_USB" valueType="string" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.core.1083960614" name="Core" superClass="fr.ac6.managedbuild.option.gnu.cross.core" useByScannerDiscovery="false" valueType="stringList"> | |||
| <listOptionValue builtIn="false" value="ARM Cortex-M3" /> | |||
| <listOptionValue builtIn="false" value="CM3" /> | |||
| </option> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.instructionSet.1656935294" name="Instruction Set" superClass="fr.ac6.managedbuild.option.gnu.cross.instructionSet" useByScannerDiscovery="false" value="fr.ac6.managedbuild.option.gnu.cross.instructionSet.thumbII" valueType="enumerated" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.fpu.1493691602" name="Floating point hardware" superClass="fr.ac6.managedbuild.option.gnu.cross.fpu" useByScannerDiscovery="false" value="fr.ac6.managedbuild.option.gnu.cross.fpu.no" valueType="enumerated" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.floatabi.2025609880" name="Floating-point ABI" superClass="fr.ac6.managedbuild.option.gnu.cross.floatabi" useByScannerDiscovery="false" value="fr.ac6.managedbuild.option.gnu.cross.floatabi.soft" valueType="enumerated" /> | |||
| <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross.2146232636" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross" /> | |||
| <builder buildPath="${workspace_loc:/F103C8T6_DIGI_USB}/Debug" id="fr.ac6.managedbuild.builder.gnu.cross.458407908" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="fr.ac6.managedbuild.builder.gnu.cross"> | |||
| <outputEntries> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug" /> | |||
| </outputEntries> | |||
| </builder> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.736856211" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler"> | |||
| <option defaultValue="gnu.c.optimization.level.none" id="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level.1399206400" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.c.optimization.level.debug" valueType="enumerated" /> | |||
| <option id="gnu.c.compiler.option.debugging.level.806618685" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated" /> | |||
| <option id="gnu.c.compiler.option.include.paths.74273181" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||
| <listOptionValue builtIn="false" value="../Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy" /> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Core/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F1xx/Include" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Include" /> | |||
| <listOptionValue builtIn="false" value="../lwfec" /> | |||
| <configuration artifactExtension="elf" 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="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1612780670" name="Debug" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug"> | |||
| <folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1612780670." name="/" resourcePath=""> | |||
| <toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.1045242817" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.975930624" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32F103C8Tx" valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1358284564" name="CPU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.806015939" name="Core" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.264529151" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.477742252" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32F103C8Tx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F1xx_HAL_Driver/Inc | ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F1xx/Include | ../Drivers/CMSIS/Include | ../USB_DEVICE/App | ../USB_DEVICE/Target | ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc || || || USE_HAL_DRIVER | STM32F103xB || || Drivers | Core/Startup | Middlewares | Core | USB_DEVICE || || || ${workspace_loc:/${ProjName}/STM32F103C8TX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1223138390" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="72" valueType="string"/> | |||
| <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.471687747" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> | |||
| <builder buildPath="${workspace_loc:/vp-digi}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.44519105" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.741718030" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.2098557819" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g" valueType="enumerated"/> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.205188910" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols"> | |||
| <listOptionValue builtIn="false" value="DEBUG"/> | |||
| </option> | |||
| <option id="gnu.c.compiler.option.preprocessor.def.symbols.600695662" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> | |||
| <listOptionValue builtIn="false" value="USE_HAL_DRIVER" /> | |||
| <listOptionValue builtIn="false" value="ENABLE_FX25" /> | |||
| <listOptionValue builtIn="false" value="STM32F103xB" /> | |||
| </option> | |||
| <option id="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other.1107445133" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string" /> | |||
| <option id="gnu.c.compiler.option.dialect.std.2115782942" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.default" valueType="enumerated" /> | |||
| <option id="gnu.c.compiler.option.warnings.wconversion.357268975" name="Implicit conversion warnings (-Wconversion)" superClass="gnu.c.compiler.option.warnings.wconversion" useByScannerDiscovery="false" value="false" valueType="boolean" /> | |||
| <option id="gnu.c.compiler.option.warnings.extrawarn.1997689762" name="Extra warnings (-Wextra)" superClass="gnu.c.compiler.option.warnings.extrawarn" useByScannerDiscovery="false" value="true" valueType="boolean" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1385058365" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s.901665218" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s" /> | |||
| <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1109330226" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> | |||
| </tool> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.1624185890" name="MCU G++ Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler"> | |||
| <option defaultValue="gnu.cpp.optimization.level.none" id="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level.1920253922" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.cpp.optimization.level.debug" valueType="enumerated" /> | |||
| <option id="gnu.cpp.compiler.option.debugging.level.1618679064" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated" /> | |||
| <option id="gnu.cpp.compiler.option.include.paths.1699649370" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||
| <listOptionValue builtIn="false" value="../Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy" /> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Core/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F1xx/Include" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Include" /> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1565611462" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.86426830" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g" valueType="enumerated"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.120581812" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.og" valueType="enumerated"/> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.183216651" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols"> | |||
| <listOptionValue builtIn="false" value="DEBUG"/> | |||
| <listOptionValue builtIn="false" value="ENABLE_FX25"/> | |||
| <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> | |||
| <listOptionValue builtIn="false" value="STM32F103xB"/> | |||
| </option> | |||
| <option id="gnu.cpp.compiler.option.preprocessor.def.1783646902" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols"> | |||
| <listOptionValue builtIn="false" value="USE_HAL_DRIVER" /> | |||
| <listOptionValue builtIn="false" value="STM32F103xB" /> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.367640037" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath"> | |||
| <listOptionValue builtIn="false" value="../Core/Inc"/> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc"/> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy"/> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F1xx/Include"/> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/> | |||
| <listOptionValue builtIn="false" value="../lwfec"/> | |||
| <listOptionValue builtIn="false" value="../USB_DEVICE/App"/> | |||
| <listOptionValue builtIn="false" value="../USB_DEVICE/Target"/> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Core/Inc"/> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc"/> | |||
| </option> | |||
| <option id="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other.550542539" name="Other flags" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp.859963469" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s.314001530" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s" /> | |||
| <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.192410790" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/> | |||
| </tool> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.949266977" name="MCU GCC Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker"> | |||
| <option id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script.100896041" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script" useByScannerDiscovery="false" value="../STM32F103C8Tx_FLASH.ld" valueType="string" /> | |||
| <option id="gnu.c.link.option.libs.1305202629" name="Libraries (-l)" superClass="gnu.c.link.option.libs" useByScannerDiscovery="false" /> | |||
| <option id="gnu.c.link.option.paths.1292687187" name="Library search path (-L)" superClass="gnu.c.link.option.paths" useByScannerDiscovery="false" /> | |||
| <option id="gnu.c.link.option.ldflags.2131178816" name="Linker flags" superClass="gnu.c.link.option.ldflags" useByScannerDiscovery="false" value="-specs=nosys.specs -specs=nano.specs" valueType="string" /> | |||
| <option id="gnu.c.link.option.other.623842724" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" useByScannerDiscovery="false" /> | |||
| <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.751662654" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> | |||
| <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)" /> | |||
| <additionalInput kind="additionalinput" paths="$(LIBS)" /> | |||
| </inputType> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1422379434" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1452356997" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g3" valueType="enumerated"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.1653892623" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false"/> | |||
| </tool> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.1051663558" name="MCU G++ Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker"> | |||
| <option id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script.1091464382" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script" value="../STM32F103C8Tx_FLASH.ld" valueType="string" /> | |||
| <option id="gnu.cpp.link.option.libs.684453873" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" /> | |||
| <option id="gnu.cpp.link.option.paths.749089985" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" /> | |||
| <option id="gnu.cpp.link.option.flags.1490073641" name="Linker flags" superClass="gnu.cpp.link.option.flags" value="-specs=nosys.specs -specs=nano.specs" valueType="string" /> | |||
| <option id="gnu.cpp.link.option.other.2071271866" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other" useByScannerDiscovery="false" /> | |||
| <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.963815527" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | |||
| <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)" /> | |||
| <additionalInput kind="additionalinput" paths="$(LIBS)" /> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.1944912414" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.748784579" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32F103C8TX_FLASH.ld}" valueType="string"/> | |||
| <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1065528319" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input"> | |||
| <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | |||
| <additionalInput kind="additionalinput" paths="$(LIBS)"/> | |||
| </inputType> | |||
| </tool> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.archiver.1989184041" name="MCU GCC Archiver" superClass="fr.ac6.managedbuild.tool.gnu.archiver" /> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.assembler.1762903833" name="MCU GCC Assembler" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler"> | |||
| <option id="gnu.both.asm.option.include.paths.1278058431" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" useByScannerDiscovery="false" /> | |||
| <inputType id="cdt.managedbuild.tool.gnu.assembler.input.632714311" superClass="cdt.managedbuild.tool.gnu.assembler.input" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.assembler.input.1298773058" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.input" /> | |||
| </tool> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.79382105" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.1755491302" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.77353580" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.227915948" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.604289219" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.680978773" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.69904545" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.1250298663" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.1589253226" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/> | |||
| </toolChain> | |||
| </folderInfo> | |||
| <sourceEntries> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Src" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="lwfec" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="startup" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="lwfec"/> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="USB_DEVICE"/> | |||
| </sourceEntries> | |||
| </configuration> | |||
| </storageModule> | |||
| <storageModule moduleId="org.eclipse.cdt.core.externalSettings" /> | |||
| <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | |||
| </cconfiguration> | |||
| <cconfiguration id="fr.ac6.managedbuild.config.gnu.cross.exe.release.2040258153"> | |||
| <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="fr.ac6.managedbuild.config.gnu.cross.exe.release.2040258153" moduleId="org.eclipse.cdt.core.settings" name="Release"> | |||
| <externalSettings /> | |||
| <cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.215580651"> | |||
| <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.215580651" 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" /> | |||
| <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 artifactExtension="elf" 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="rm -rf" description="" id="fr.ac6.managedbuild.config.gnu.cross.exe.release.2040258153" name="Release" parent="fr.ac6.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating hex and Printing size information:" postbuildStep="arm-none-eabi-objcopy -O ihex "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.hex" && arm-none-eabi-size "${BuildArtifactFileName}""> | |||
| <folderInfo id="fr.ac6.managedbuild.config.gnu.cross.exe.release.2040258153." name="/" resourcePath=""> | |||
| <toolChain id="fr.ac6.managedbuild.toolchain.gnu.cross.exe.release.1401143845" name="Ac6 STM32 MCU GCC" superClass="fr.ac6.managedbuild.toolchain.gnu.cross.exe.release"> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.prefix.382830450" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix" useByScannerDiscovery="false" value="arm-none-eabi-" valueType="string" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.mcu.66405555" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu" useByScannerDiscovery="false" value="STM32F103C8Tx" valueType="string" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.board.1729153140" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board" useByScannerDiscovery="false" value="F103C8T6_DIGI_USB" valueType="string" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.core.1083960614" name="Core" superClass="fr.ac6.managedbuild.option.gnu.cross.core" useByScannerDiscovery="false" valueType="stringList"> | |||
| <listOptionValue builtIn="false" value="ARM Cortex-M3" /> | |||
| <listOptionValue builtIn="false" value="CM3" /> | |||
| </option> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.instructionSet.1656935294" name="Instruction Set" superClass="fr.ac6.managedbuild.option.gnu.cross.instructionSet" useByScannerDiscovery="false" value="fr.ac6.managedbuild.option.gnu.cross.instructionSet.thumbII" valueType="enumerated" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.fpu.1493691602" name="Floating point hardware" superClass="fr.ac6.managedbuild.option.gnu.cross.fpu" useByScannerDiscovery="false" value="fr.ac6.managedbuild.option.gnu.cross.fpu.no" valueType="enumerated" /> | |||
| <option id="fr.ac6.managedbuild.option.gnu.cross.floatabi.2025609880" name="Floating-point ABI" superClass="fr.ac6.managedbuild.option.gnu.cross.floatabi" useByScannerDiscovery="false" value="fr.ac6.managedbuild.option.gnu.cross.floatabi.soft" valueType="enumerated" /> | |||
| <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross.2146232636" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross" /> | |||
| <builder buildPath="${workspace_loc:/F103C8T6_DIGI_USB}/Release" id="fr.ac6.managedbuild.builder.gnu.cross.458407908" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="fr.ac6.managedbuild.builder.gnu.cross"> | |||
| <outputEntries> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release" /> | |||
| </outputEntries> | |||
| </builder> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.736856211" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler"> | |||
| <option defaultValue="gnu.c.optimization.level.none" id="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level.1399206400" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.c.optimization.level.debug" valueType="enumerated" /> | |||
| <option id="gnu.c.compiler.option.debugging.level.806618685" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated" /> | |||
| <option id="gnu.c.compiler.option.include.paths.74273181" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||
| <listOptionValue builtIn="false" value="../Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy" /> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Core/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F1xx/Include" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Include" /> | |||
| <listOptionValue builtIn="false" value="../lwfec" /> | |||
| </option> | |||
| <option id="gnu.c.compiler.option.preprocessor.def.symbols.600695662" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> | |||
| <listOptionValue builtIn="false" value="USE_HAL_DRIVER" /> | |||
| <listOptionValue builtIn="false" value="ENABLE_FX25" /> | |||
| <listOptionValue builtIn="false" value="STM32F103xB" /> | |||
| </option> | |||
| <option id="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other.1107445133" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string" /> | |||
| <option id="gnu.c.compiler.option.dialect.std.372719641" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.default" valueType="enumerated" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1385058365" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s.901665218" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s" /> | |||
| <configuration artifactExtension="elf" 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="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.215580651" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release"> | |||
| <folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.215580651." name="/" resourcePath=""> | |||
| <toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.1538168622" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.816715468" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32F103C8Tx" valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1682446466" name="CPU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.1311184237" name="Core" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1578375475" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.484573632" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32F103C8Tx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F1xx_HAL_Driver/Inc | ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F1xx/Include | ../Drivers/CMSIS/Include | ../USB_DEVICE/App | ../USB_DEVICE/Target | ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc || || || USE_HAL_DRIVER | STM32F103xB || || Drivers | Core/Startup | Middlewares | Core | USB_DEVICE || || || ${workspace_loc:/${ProjName}/STM32F103C8TX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/> | |||
| <option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.190595004" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="72" valueType="string"/> | |||
| <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1389447086" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> | |||
| <builder buildPath="${workspace_loc:/vp-digi}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1065880262" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1248680947" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.1883285028" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g0" valueType="enumerated"/> | |||
| <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1169893333" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> | |||
| </tool> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.1624185890" name="MCU G++ Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler"> | |||
| <option defaultValue="gnu.cpp.optimization.level.none" id="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level.1920253922" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.cpp.optimization.level.debug" valueType="enumerated" /> | |||
| <option id="gnu.cpp.compiler.option.debugging.level.1618679064" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.debugging.level.max" valueType="enumerated" /> | |||
| <option id="gnu.cpp.compiler.option.include.paths.1699649370" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> | |||
| <listOptionValue builtIn="false" value="../Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy" /> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Core/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F1xx/Include" /> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Include" /> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1881713941" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.2018446921" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g0" valueType="enumerated"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.325342677" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.o1" valueType="enumerated"/> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.189272266" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols"> | |||
| <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> | |||
| <listOptionValue builtIn="false" value="ENABLE_FX25"/> | |||
| <listOptionValue builtIn="false" value="STM32F103xB"/> | |||
| </option> | |||
| <option id="gnu.cpp.compiler.option.preprocessor.def.symbols.1266248233" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> | |||
| <listOptionValue builtIn="false" value="USE_HAL_DRIVER" /> | |||
| <listOptionValue builtIn="false" value="STM32F103xB" /> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.1668242635" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath"> | |||
| <listOptionValue builtIn="false" value="../Core/Inc"/> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc"/> | |||
| <listOptionValue builtIn="false" value="../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy"/> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F1xx/Include"/> | |||
| <listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/> | |||
| <listOptionValue builtIn="false" value="../lwfec"/> | |||
| <listOptionValue builtIn="false" value="../USB_DEVICE/App"/> | |||
| <listOptionValue builtIn="false" value="../USB_DEVICE/Target"/> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Core/Inc"/> | |||
| <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc"/> | |||
| </option> | |||
| <option id="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other.550542539" name="Other flags" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp.859963469" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s.314001530" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s" /> | |||
| <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1488485608" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/> | |||
| </tool> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.949266977" name="MCU GCC Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker"> | |||
| <option id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script.100896041" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script" useByScannerDiscovery="false" value="../STM32F103C8Tx_FLASH.ld" valueType="string" /> | |||
| <option id="gnu.c.link.option.libs.1305202629" name="Libraries (-l)" superClass="gnu.c.link.option.libs" useByScannerDiscovery="false" /> | |||
| <option id="gnu.c.link.option.paths.1292687187" name="Library search path (-L)" superClass="gnu.c.link.option.paths" useByScannerDiscovery="false" /> | |||
| <option id="gnu.c.link.option.ldflags.2131178816" name="Linker flags" superClass="gnu.c.link.option.ldflags" useByScannerDiscovery="false" value="-specs=nosys.specs -specs=nano.specs" valueType="string" /> | |||
| <option id="gnu.c.link.option.other.623842724" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" useByScannerDiscovery="false" /> | |||
| <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.751662654" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> | |||
| <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)" /> | |||
| <additionalInput kind="additionalinput" paths="$(LIBS)" /> | |||
| </inputType> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.20764304" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1392619818" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g0" valueType="enumerated"/> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.2144500528" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.value.os" valueType="enumerated"/> | |||
| </tool> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.1051663558" name="MCU G++ Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker"> | |||
| <option id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script.1091464382" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script" value="../STM32F103C8Tx_FLASH.ld" valueType="string" /> | |||
| <option id="gnu.cpp.link.option.libs.684453873" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" /> | |||
| <option id="gnu.cpp.link.option.paths.749089985" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" /> | |||
| <option id="gnu.cpp.link.option.ldflags.1398019047" superClass="gnu.cpp.link.option.ldflags" value="-specs=nosys.specs -specs=nano.specs" valueType="string" /> | |||
| <option id="gnu.cpp.link.option.other.2071271866" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other" useByScannerDiscovery="false" /> | |||
| <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.963815527" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> | |||
| <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)" /> | |||
| <additionalInput kind="additionalinput" paths="$(LIBS)" /> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.710785583" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker"> | |||
| <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.5047144" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32F103C8TX_FLASH.ld}" valueType="string"/> | |||
| <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1604205929" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input"> | |||
| <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | |||
| <additionalInput kind="additionalinput" paths="$(LIBS)"/> | |||
| </inputType> | |||
| </tool> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.archiver.1989184041" name="MCU GCC Archiver" superClass="fr.ac6.managedbuild.tool.gnu.archiver" /> | |||
| <tool id="fr.ac6.managedbuild.tool.gnu.cross.assembler.exe.release.1892402399" name="MCU GCC Assembler" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.exe.release"> | |||
| <option id="gnu.both.asm.option.include.paths.1278058431" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" useByScannerDiscovery="false" /> | |||
| <inputType id="cdt.managedbuild.tool.gnu.assembler.input.632714311" superClass="cdt.managedbuild.tool.gnu.assembler.input" /> | |||
| <inputType id="fr.ac6.managedbuild.tool.gnu.cross.assembler.input.1298773058" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.input" /> | |||
| </tool> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.1676562973" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.2136374951" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.350147705" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.638415429" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.1467633476" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.860103960" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.423075280" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.720522910" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/> | |||
| <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.1673148995" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/> | |||
| </toolChain> | |||
| </folderInfo> | |||
| <sourceEntries> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Src" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="lwfec" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="startup" /> | |||
| <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="lwfec"/> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/> | |||
| <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="USB_DEVICE"/> | |||
| </sourceEntries> | |||
| </configuration> | |||
| </storageModule> | |||
| <storageModule moduleId="org.eclipse.cdt.core.externalSettings" /> | |||
| <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | |||
| </cconfiguration> | |||
| </storageModule> | |||
| <storageModule moduleId="org.eclipse.cdt.core.pathentry"/> | |||
| <storageModule moduleId="cdtBuildSystem" version="4.0.0"> | |||
| <project id="F103C8T6_DIGI_USB.fr.ac6.managedbuild.target.gnu.cross.exe.1488070975" name="Executable" projectType="fr.ac6.managedbuild.target.gnu.cross.exe" /> | |||
| </storageModule> | |||
| <storageModule moduleId="scannerConfiguration"> | |||
| <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="" /> | |||
| <scannerConfigBuildInfo instanceId="fr.ac6.managedbuild.config.gnu.cross.exe.debug.785246917;fr.ac6.managedbuild.config.gnu.cross.exe.debug.785246917.;fr.ac6.managedbuild.tool.gnu.cross.c.compiler.736856211;fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1385058365"> | |||
| <autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId="" /> | |||
| </scannerConfigBuildInfo> | |||
| </storageModule> | |||
| <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders" /> | |||
| <storageModule moduleId="refreshScope" versionNumber="2"> | |||
| <configuration configurationName="Debug"> | |||
| <resource resourceType="PROJECT" workspacePath="F103C8T6_DIGI_USB" /> | |||
| </configuration> | |||
| <configuration configurationName="Release" /> | |||
| <project id="vp-digi.null.628376369" name="vp-digi"/> | |||
| </storageModule> | |||
| <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets" /> | |||
| <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> | |||
| <storageModule moduleId="scannerConfiguration"> | |||
| <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="" /> | |||
| <scannerConfigBuildInfo instanceId="fr.ac6.managedbuild.config.gnu.cross.exe.debug.785246917;fr.ac6.managedbuild.config.gnu.cross.exe.debug.785246917.;fr.ac6.managedbuild.tool.gnu.cross.c.compiler.736856211;fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1385058365"> | |||
| <autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId="" /> | |||
| <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | |||
| <scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.215580651;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.215580651.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1881713941;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1488485608"> | |||
| <autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/> | |||
| </scannerConfigBuildInfo> | |||
| <scannerConfigBuildInfo instanceId="fr.ac6.managedbuild.config.gnu.cross.exe.release.2040258153;fr.ac6.managedbuild.config.gnu.cross.exe.release.2040258153.;fr.ac6.managedbuild.tool.gnu.cross.c.compiler.736856211;fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1385058365"> | |||
| <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="" /> | |||
| <scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1612780670;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1612780670.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1565611462;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.192410790"> | |||
| <autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/> | |||
| </scannerConfigBuildInfo> | |||
| </storageModule> | |||
| <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings" /> | |||
| </cproject> | |||
| <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> | |||
| <storageModule moduleId="refreshScope"/> | |||
| </cproject> | |||
| @ -0,0 +1,176 @@ | |||
| /** | |||
| ****************************************************************************** | |||
| * @file syscalls.c | |||
| * @author Auto-generated by STM32CubeIDE | |||
| * @brief STM32CubeIDE Minimal System calls file | |||
| * | |||
| * For more information about which c-functions | |||
| * need which of these lowlevel functions | |||
| * please consult the Newlib libc-manual | |||
| ****************************************************************************** | |||
| * @attention | |||
| * | |||
| * Copyright (c) 2020-2023 STMicroelectronics. | |||
| * All rights reserved. | |||
| * | |||
| * This software is licensed under terms that can be found in the LICENSE file | |||
| * in the root directory of this software component. | |||
| * If no LICENSE file comes with this software, it is provided AS-IS. | |||
| * | |||
| ****************************************************************************** | |||
| */ | |||
| /* Includes */ | |||
| #include <sys/stat.h> | |||
| #include <stdlib.h> | |||
| #include <errno.h> | |||
| #include <stdio.h> | |||
| #include <signal.h> | |||
| #include <time.h> | |||
| #include <sys/time.h> | |||
| #include <sys/times.h> | |||
| /* Variables */ | |||
| extern int __io_putchar(int ch) __attribute__((weak)); | |||
| extern int __io_getchar(void) __attribute__((weak)); | |||
| char *__env[1] = { 0 }; | |||
| char **environ = __env; | |||
| /* Functions */ | |||
| void initialise_monitor_handles() | |||
| { | |||
| } | |||
| int _getpid(void) | |||
| { | |||
| return 1; | |||
| } | |||
| int _kill(int pid, int sig) | |||
| { | |||
| (void)pid; | |||
| (void)sig; | |||
| errno = EINVAL; | |||
| return -1; | |||
| } | |||
| void _exit (int status) | |||
| { | |||
| _kill(status, -1); | |||
| while (1) {} /* Make sure we hang here */ | |||
| } | |||
| __attribute__((weak)) int _read(int file, char *ptr, int len) | |||
| { | |||
| (void)file; | |||
| int DataIdx; | |||
| for (DataIdx = 0; DataIdx < len; DataIdx++) | |||
| { | |||
| *ptr++ = __io_getchar(); | |||
| } | |||
| return len; | |||
| } | |||
| __attribute__((weak)) int _write(int file, char *ptr, int len) | |||
| { | |||
| (void)file; | |||
| int DataIdx; | |||
| for (DataIdx = 0; DataIdx < len; DataIdx++) | |||
| { | |||
| __io_putchar(*ptr++); | |||
| } | |||
| return len; | |||
| } | |||
| int _close(int file) | |||
| { | |||
| (void)file; | |||
| return -1; | |||
| } | |||
| int _fstat(int file, struct stat *st) | |||
| { | |||
| (void)file; | |||
| st->st_mode = S_IFCHR; | |||
| return 0; | |||
| } | |||
| int _isatty(int file) | |||
| { | |||
| (void)file; | |||
| return 1; | |||
| } | |||
| int _lseek(int file, int ptr, int dir) | |||
| { | |||
| (void)file; | |||
| (void)ptr; | |||
| (void)dir; | |||
| return 0; | |||
| } | |||
| int _open(char *path, int flags, ...) | |||
| { | |||
| (void)path; | |||
| (void)flags; | |||
| /* Pretend like we always fail */ | |||
| return -1; | |||
| } | |||
| int _wait(int *status) | |||
| { | |||
| (void)status; | |||
| errno = ECHILD; | |||
| return -1; | |||
| } | |||
| int _unlink(char *name) | |||
| { | |||
| (void)name; | |||
| errno = ENOENT; | |||
| return -1; | |||
| } | |||
| int _times(struct tms *buf) | |||
| { | |||
| (void)buf; | |||
| return -1; | |||
| } | |||
| int _stat(char *file, struct stat *st) | |||
| { | |||
| (void)file; | |||
| st->st_mode = S_IFCHR; | |||
| return 0; | |||
| } | |||
| int _link(char *old, char *new) | |||
| { | |||
| (void)old; | |||
| (void)new; | |||
| errno = EMLINK; | |||
| return -1; | |||
| } | |||
| int _fork(void) | |||
| { | |||
| errno = EAGAIN; | |||
| return -1; | |||
| } | |||
| int _execve(char *name, char **argv, char **env) | |||
| { | |||
| (void)name; | |||
| (void)argv; | |||
| (void)env; | |||
| errno = ENOMEM; | |||
| return -1; | |||
| } | |||
| @ -0,0 +1,79 @@ | |||
| /** | |||
| ****************************************************************************** | |||
| * @file sysmem.c | |||
| * @author Generated by STM32CubeIDE | |||
| * @brief STM32CubeIDE System Memory calls file | |||
| * | |||
| * For more information about which C functions | |||
| * need which of these lowlevel functions | |||
| * please consult the newlib libc manual | |||
| ****************************************************************************** | |||
| * @attention | |||
| * | |||
| * Copyright (c) 2023 STMicroelectronics. | |||
| * All rights reserved. | |||
| * | |||
| * This software is licensed under terms that can be found in the LICENSE file | |||
| * in the root directory of this software component. | |||
| * If no LICENSE file comes with this software, it is provided AS-IS. | |||
| * | |||
| ****************************************************************************** | |||
| */ | |||
| /* Includes */ | |||
| #include <errno.h> | |||
| #include <stdint.h> | |||
| /** | |||
| * Pointer to the current high watermark of the heap usage | |||
| */ | |||
| static uint8_t *__sbrk_heap_end = NULL; | |||
| /** | |||
| * @brief _sbrk() allocates memory to the newlib heap and is used by malloc | |||
| * and others from the C library | |||
| * | |||
| * @verbatim | |||
| * ############################################################################ | |||
| * # .data # .bss # newlib heap # MSP stack # | |||
| * # # # # Reserved by _Min_Stack_Size # | |||
| * ############################################################################ | |||
| * ^-- RAM start ^-- _end _estack, RAM end --^ | |||
| * @endverbatim | |||
| * | |||
| * This implementation starts allocating at the '_end' linker symbol | |||
| * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack | |||
| * The implementation considers '_estack' linker symbol to be RAM end | |||
| * NOTE: If the MSP stack, at any point during execution, grows larger than the | |||
| * reserved size, please increase the '_Min_Stack_Size'. | |||
| * | |||
| * @param incr Memory size | |||
| * @return Pointer to allocated memory | |||
| */ | |||
| void *_sbrk(ptrdiff_t incr) | |||
| { | |||
| extern uint8_t _end; /* Symbol defined in the linker script */ | |||
| extern uint8_t _estack; /* Symbol defined in the linker script */ | |||
| extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */ | |||
| const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; | |||
| const uint8_t *max_heap = (uint8_t *)stack_limit; | |||
| uint8_t *prev_heap_end; | |||
| /* Initialize heap end at first call */ | |||
| if (NULL == __sbrk_heap_end) | |||
| { | |||
| __sbrk_heap_end = &_end; | |||
| } | |||
| /* Protect heap from growing into the reserved MSP stack */ | |||
| if (__sbrk_heap_end + incr > max_heap) | |||
| { | |||
| errno = ENOMEM; | |||
| return (void *)-1; | |||
| } | |||
| prev_heap_end = __sbrk_heap_end; | |||
| __sbrk_heap_end += incr; | |||
| return (void *)prev_heap_end; | |||
| } | |||
| @ -0,0 +1,6 @@ | |||
| This software component is provided to you as part of a software package and | |||
| applicable license terms are in the Package_license file. If you received this | |||
| software component outside of a package or without applicable license terms, | |||
| the terms of the Apache-2.0 license shall apply. | |||
| You may obtain a copy of the Apache-2.0 at: | |||
| https://opensource.org/licenses/Apache-2.0 | |||
| @ -0,0 +1,638 @@ | |||
| /** | |||
| ****************************************************************************** | |||
| * @file stm32f1xx_ll_cortex.h | |||
| * @author MCD Application Team | |||
| * @brief Header file of CORTEX LL module. | |||
| @verbatim | |||
| ============================================================================== | |||
| ##### How to use this driver ##### | |||
| ============================================================================== | |||
| [..] | |||
| The LL CORTEX driver contains a set of generic APIs that can be | |||
| used by user: | |||
| (+) SYSTICK configuration used by LL_mDelay and LL_Init1msTick | |||
| functions | |||
| (+) Low power mode configuration (SCB register of Cortex-MCU) | |||
| (+) MPU API to configure and enable regions | |||
| (MPU services provided only on some devices) | |||
| (+) API to access to MCU info (CPUID register) | |||
| (+) API to enable fault handler (SHCSR accesses) | |||
| @endverbatim | |||
| ****************************************************************************** | |||
| * @attention | |||
| * | |||
| * Copyright (c) 2017 STMicroelectronics. | |||
| * All rights reserved. | |||
| * | |||
| * This software is licensed under terms that can be found in the LICENSE file in | |||
| * the root directory of this software component. | |||
| * If no LICENSE file comes with this software, it is provided AS-IS. | |||
| * | |||
| ****************************************************************************** | |||
| */ | |||
| /* Define to prevent recursive inclusion -------------------------------------*/ | |||
| #ifndef __STM32F1xx_LL_CORTEX_H | |||
| #define __STM32F1xx_LL_CORTEX_H | |||
| #ifdef __cplusplus | |||
| extern "C" { | |||
| #endif | |||
| /* Includes ------------------------------------------------------------------*/ | |||
| #include "stm32f1xx.h" | |||
| /** @addtogroup STM32F1xx_LL_Driver | |||
| * @{ | |||
| */ | |||
| /** @defgroup CORTEX_LL CORTEX | |||
| * @{ | |||
| */ | |||
| /* Private types -------------------------------------------------------------*/ | |||
| /* Private variables ---------------------------------------------------------*/ | |||
| /* Private constants ---------------------------------------------------------*/ | |||
| /* Private macros ------------------------------------------------------------*/ | |||
| /* Exported types ------------------------------------------------------------*/ | |||
| /* Exported constants --------------------------------------------------------*/ | |||
| /** @defgroup CORTEX_LL_Exported_Constants CORTEX Exported Constants | |||
| * @{ | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_CLKSOURCE_HCLK SYSTICK Clock Source | |||
| * @{ | |||
| */ | |||
| #define LL_SYSTICK_CLKSOURCE_HCLK_DIV8 0x00000000U /*!< AHB clock divided by 8 selected as SysTick clock source.*/ | |||
| #define LL_SYSTICK_CLKSOURCE_HCLK SysTick_CTRL_CLKSOURCE_Msk /*!< AHB clock selected as SysTick clock source. */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_FAULT Handler Fault type | |||
| * @{ | |||
| */ | |||
| #define LL_HANDLER_FAULT_USG SCB_SHCSR_USGFAULTENA_Msk /*!< Usage fault */ | |||
| #define LL_HANDLER_FAULT_BUS SCB_SHCSR_BUSFAULTENA_Msk /*!< Bus fault */ | |||
| #define LL_HANDLER_FAULT_MEM SCB_SHCSR_MEMFAULTENA_Msk /*!< Memory management fault */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #if __MPU_PRESENT | |||
| /** @defgroup CORTEX_LL_EC_CTRL_HFNMI_PRIVDEF MPU Control | |||
| * @{ | |||
| */ | |||
| #define LL_MPU_CTRL_HFNMI_PRIVDEF_NONE 0x00000000U /*!< Disable NMI and privileged SW access */ | |||
| #define LL_MPU_CTRL_HARDFAULT_NMI MPU_CTRL_HFNMIENA_Msk /*!< Enables the operation of MPU during hard fault, NMI, and FAULTMASK handlers */ | |||
| #define LL_MPU_CTRL_PRIVILEGED_DEFAULT MPU_CTRL_PRIVDEFENA_Msk /*!< Enable privileged software access to default memory map */ | |||
| #define LL_MPU_CTRL_HFNMI_PRIVDEF (MPU_CTRL_HFNMIENA_Msk | MPU_CTRL_PRIVDEFENA_Msk) /*!< Enable NMI and privileged SW access */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_REGION MPU Region Number | |||
| * @{ | |||
| */ | |||
| #define LL_MPU_REGION_NUMBER0 0x00U /*!< REGION Number 0 */ | |||
| #define LL_MPU_REGION_NUMBER1 0x01U /*!< REGION Number 1 */ | |||
| #define LL_MPU_REGION_NUMBER2 0x02U /*!< REGION Number 2 */ | |||
| #define LL_MPU_REGION_NUMBER3 0x03U /*!< REGION Number 3 */ | |||
| #define LL_MPU_REGION_NUMBER4 0x04U /*!< REGION Number 4 */ | |||
| #define LL_MPU_REGION_NUMBER5 0x05U /*!< REGION Number 5 */ | |||
| #define LL_MPU_REGION_NUMBER6 0x06U /*!< REGION Number 6 */ | |||
| #define LL_MPU_REGION_NUMBER7 0x07U /*!< REGION Number 7 */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_REGION_SIZE MPU Region Size | |||
| * @{ | |||
| */ | |||
| #define LL_MPU_REGION_SIZE_32B (0x04U << MPU_RASR_SIZE_Pos) /*!< 32B Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_64B (0x05U << MPU_RASR_SIZE_Pos) /*!< 64B Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_128B (0x06U << MPU_RASR_SIZE_Pos) /*!< 128B Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_256B (0x07U << MPU_RASR_SIZE_Pos) /*!< 256B Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_512B (0x08U << MPU_RASR_SIZE_Pos) /*!< 512B Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_1KB (0x09U << MPU_RASR_SIZE_Pos) /*!< 1KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_2KB (0x0AU << MPU_RASR_SIZE_Pos) /*!< 2KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_4KB (0x0BU << MPU_RASR_SIZE_Pos) /*!< 4KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_8KB (0x0CU << MPU_RASR_SIZE_Pos) /*!< 8KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_16KB (0x0DU << MPU_RASR_SIZE_Pos) /*!< 16KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_32KB (0x0EU << MPU_RASR_SIZE_Pos) /*!< 32KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_64KB (0x0FU << MPU_RASR_SIZE_Pos) /*!< 64KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_128KB (0x10U << MPU_RASR_SIZE_Pos) /*!< 128KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_256KB (0x11U << MPU_RASR_SIZE_Pos) /*!< 256KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_512KB (0x12U << MPU_RASR_SIZE_Pos) /*!< 512KB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_1MB (0x13U << MPU_RASR_SIZE_Pos) /*!< 1MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_2MB (0x14U << MPU_RASR_SIZE_Pos) /*!< 2MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_4MB (0x15U << MPU_RASR_SIZE_Pos) /*!< 4MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_8MB (0x16U << MPU_RASR_SIZE_Pos) /*!< 8MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_16MB (0x17U << MPU_RASR_SIZE_Pos) /*!< 16MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_32MB (0x18U << MPU_RASR_SIZE_Pos) /*!< 32MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_64MB (0x19U << MPU_RASR_SIZE_Pos) /*!< 64MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_128MB (0x1AU << MPU_RASR_SIZE_Pos) /*!< 128MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_256MB (0x1BU << MPU_RASR_SIZE_Pos) /*!< 256MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_512MB (0x1CU << MPU_RASR_SIZE_Pos) /*!< 512MB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_1GB (0x1DU << MPU_RASR_SIZE_Pos) /*!< 1GB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_2GB (0x1EU << MPU_RASR_SIZE_Pos) /*!< 2GB Size of the MPU protection region */ | |||
| #define LL_MPU_REGION_SIZE_4GB (0x1FU << MPU_RASR_SIZE_Pos) /*!< 4GB Size of the MPU protection region */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_REGION_PRIVILEDGES MPU Region Privileges | |||
| * @{ | |||
| */ | |||
| #define LL_MPU_REGION_NO_ACCESS (0x00U << MPU_RASR_AP_Pos) /*!< No access*/ | |||
| #define LL_MPU_REGION_PRIV_RW (0x01U << MPU_RASR_AP_Pos) /*!< RW privileged (privileged access only)*/ | |||
| #define LL_MPU_REGION_PRIV_RW_URO (0x02U << MPU_RASR_AP_Pos) /*!< RW privileged - RO user (Write in a user program generates a fault) */ | |||
| #define LL_MPU_REGION_FULL_ACCESS (0x03U << MPU_RASR_AP_Pos) /*!< RW privileged & user (Full access) */ | |||
| #define LL_MPU_REGION_PRIV_RO (0x05U << MPU_RASR_AP_Pos) /*!< RO privileged (privileged read only)*/ | |||
| #define LL_MPU_REGION_PRIV_RO_URO (0x06U << MPU_RASR_AP_Pos) /*!< RO privileged & user (read only) */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_TEX MPU TEX Level | |||
| * @{ | |||
| */ | |||
| #define LL_MPU_TEX_LEVEL0 (0x00U << MPU_RASR_TEX_Pos) /*!< b000 for TEX bits */ | |||
| #define LL_MPU_TEX_LEVEL1 (0x01U << MPU_RASR_TEX_Pos) /*!< b001 for TEX bits */ | |||
| #define LL_MPU_TEX_LEVEL2 (0x02U << MPU_RASR_TEX_Pos) /*!< b010 for TEX bits */ | |||
| #define LL_MPU_TEX_LEVEL4 (0x04U << MPU_RASR_TEX_Pos) /*!< b100 for TEX bits */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_INSTRUCTION_ACCESS MPU Instruction Access | |||
| * @{ | |||
| */ | |||
| #define LL_MPU_INSTRUCTION_ACCESS_ENABLE 0x00U /*!< Instruction fetches enabled */ | |||
| #define LL_MPU_INSTRUCTION_ACCESS_DISABLE MPU_RASR_XN_Msk /*!< Instruction fetches disabled*/ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_SHAREABLE_ACCESS MPU Shareable Access | |||
| * @{ | |||
| */ | |||
| #define LL_MPU_ACCESS_SHAREABLE MPU_RASR_S_Msk /*!< Shareable memory attribute */ | |||
| #define LL_MPU_ACCESS_NOT_SHAREABLE 0x00U /*!< Not Shareable memory attribute */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_CACHEABLE_ACCESS MPU Cacheable Access | |||
| * @{ | |||
| */ | |||
| #define LL_MPU_ACCESS_CACHEABLE MPU_RASR_C_Msk /*!< Cacheable memory attribute */ | |||
| #define LL_MPU_ACCESS_NOT_CACHEABLE 0x00U /*!< Not Cacheable memory attribute */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EC_BUFFERABLE_ACCESS MPU Bufferable Access | |||
| * @{ | |||
| */ | |||
| #define LL_MPU_ACCESS_BUFFERABLE MPU_RASR_B_Msk /*!< Bufferable memory attribute */ | |||
| #define LL_MPU_ACCESS_NOT_BUFFERABLE 0x00U /*!< Not Bufferable memory attribute */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /* __MPU_PRESENT */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Exported macro ------------------------------------------------------------*/ | |||
| /* Exported functions --------------------------------------------------------*/ | |||
| /** @defgroup CORTEX_LL_Exported_Functions CORTEX Exported Functions | |||
| * @{ | |||
| */ | |||
| /** @defgroup CORTEX_LL_EF_SYSTICK SYSTICK | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief This function checks if the Systick counter flag is active or not. | |||
| * @note It can be used in timeout function on application side. | |||
| * @rmtoll STK_CTRL COUNTFLAG LL_SYSTICK_IsActiveCounterFlag | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_SYSTICK_IsActiveCounterFlag(void) | |||
| { | |||
| return ((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) == (SysTick_CTRL_COUNTFLAG_Msk)); | |||
| } | |||
| /** | |||
| * @brief Configures the SysTick clock source | |||
| * @rmtoll STK_CTRL CLKSOURCE LL_SYSTICK_SetClkSource | |||
| * @param Source This parameter can be one of the following values: | |||
| * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK_DIV8 | |||
| * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_SYSTICK_SetClkSource(uint32_t Source) | |||
| { | |||
| if (Source == LL_SYSTICK_CLKSOURCE_HCLK) | |||
| { | |||
| SET_BIT(SysTick->CTRL, LL_SYSTICK_CLKSOURCE_HCLK); | |||
| } | |||
| else | |||
| { | |||
| CLEAR_BIT(SysTick->CTRL, LL_SYSTICK_CLKSOURCE_HCLK); | |||
| } | |||
| } | |||
| /** | |||
| * @brief Get the SysTick clock source | |||
| * @rmtoll STK_CTRL CLKSOURCE LL_SYSTICK_GetClkSource | |||
| * @retval Returned value can be one of the following values: | |||
| * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK_DIV8 | |||
| * @arg @ref LL_SYSTICK_CLKSOURCE_HCLK | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_SYSTICK_GetClkSource(void) | |||
| { | |||
| return READ_BIT(SysTick->CTRL, LL_SYSTICK_CLKSOURCE_HCLK); | |||
| } | |||
| /** | |||
| * @brief Enable SysTick exception request | |||
| * @rmtoll STK_CTRL TICKINT LL_SYSTICK_EnableIT | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_SYSTICK_EnableIT(void) | |||
| { | |||
| SET_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); | |||
| } | |||
| /** | |||
| * @brief Disable SysTick exception request | |||
| * @rmtoll STK_CTRL TICKINT LL_SYSTICK_DisableIT | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_SYSTICK_DisableIT(void) | |||
| { | |||
| CLEAR_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk); | |||
| } | |||
| /** | |||
| * @brief Checks if the SYSTICK interrupt is enabled or disabled. | |||
| * @rmtoll STK_CTRL TICKINT LL_SYSTICK_IsEnabledIT | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_SYSTICK_IsEnabledIT(void) | |||
| { | |||
| return (READ_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk) == (SysTick_CTRL_TICKINT_Msk)); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EF_LOW_POWER_MODE LOW POWER MODE | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Processor uses sleep as its low power mode | |||
| * @rmtoll SCB_SCR SLEEPDEEP LL_LPM_EnableSleep | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_LPM_EnableSleep(void) | |||
| { | |||
| /* Clear SLEEPDEEP bit of Cortex System Control Register */ | |||
| CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); | |||
| } | |||
| /** | |||
| * @brief Processor uses deep sleep as its low power mode | |||
| * @rmtoll SCB_SCR SLEEPDEEP LL_LPM_EnableDeepSleep | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_LPM_EnableDeepSleep(void) | |||
| { | |||
| /* Set SLEEPDEEP bit of Cortex System Control Register */ | |||
| SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); | |||
| } | |||
| /** | |||
| * @brief Configures sleep-on-exit when returning from Handler mode to Thread mode. | |||
| * @note Setting this bit to 1 enables an interrupt-driven application to avoid returning to an | |||
| * empty main application. | |||
| * @rmtoll SCB_SCR SLEEPONEXIT LL_LPM_EnableSleepOnExit | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_LPM_EnableSleepOnExit(void) | |||
| { | |||
| /* Set SLEEPONEXIT bit of Cortex System Control Register */ | |||
| SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); | |||
| } | |||
| /** | |||
| * @brief Do not sleep when returning to Thread mode. | |||
| * @rmtoll SCB_SCR SLEEPONEXIT LL_LPM_DisableSleepOnExit | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_LPM_DisableSleepOnExit(void) | |||
| { | |||
| /* Clear SLEEPONEXIT bit of Cortex System Control Register */ | |||
| CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk)); | |||
| } | |||
| /** | |||
| * @brief Enabled events and all interrupts, including disabled interrupts, can wakeup the | |||
| * processor. | |||
| * @rmtoll SCB_SCR SEVEONPEND LL_LPM_EnableEventOnPend | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_LPM_EnableEventOnPend(void) | |||
| { | |||
| /* Set SEVEONPEND bit of Cortex System Control Register */ | |||
| SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); | |||
| } | |||
| /** | |||
| * @brief Only enabled interrupts or events can wakeup the processor, disabled interrupts are | |||
| * excluded | |||
| * @rmtoll SCB_SCR SEVEONPEND LL_LPM_DisableEventOnPend | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_LPM_DisableEventOnPend(void) | |||
| { | |||
| /* Clear SEVEONPEND bit of Cortex System Control Register */ | |||
| CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk)); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EF_HANDLER HANDLER | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Enable a fault in System handler control register (SHCSR) | |||
| * @rmtoll SCB_SHCSR MEMFAULTENA LL_HANDLER_EnableFault | |||
| * @param Fault This parameter can be a combination of the following values: | |||
| * @arg @ref LL_HANDLER_FAULT_USG | |||
| * @arg @ref LL_HANDLER_FAULT_BUS | |||
| * @arg @ref LL_HANDLER_FAULT_MEM | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_HANDLER_EnableFault(uint32_t Fault) | |||
| { | |||
| /* Enable the system handler fault */ | |||
| SET_BIT(SCB->SHCSR, Fault); | |||
| } | |||
| /** | |||
| * @brief Disable a fault in System handler control register (SHCSR) | |||
| * @rmtoll SCB_SHCSR MEMFAULTENA LL_HANDLER_DisableFault | |||
| * @param Fault This parameter can be a combination of the following values: | |||
| * @arg @ref LL_HANDLER_FAULT_USG | |||
| * @arg @ref LL_HANDLER_FAULT_BUS | |||
| * @arg @ref LL_HANDLER_FAULT_MEM | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_HANDLER_DisableFault(uint32_t Fault) | |||
| { | |||
| /* Disable the system handler fault */ | |||
| CLEAR_BIT(SCB->SHCSR, Fault); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup CORTEX_LL_EF_MCU_INFO MCU INFO | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Get Implementer code | |||
| * @rmtoll SCB_CPUID IMPLEMENTER LL_CPUID_GetImplementer | |||
| * @retval Value should be equal to 0x41 for ARM | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_CPUID_GetImplementer(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_IMPLEMENTER_Msk) >> SCB_CPUID_IMPLEMENTER_Pos); | |||
| } | |||
| /** | |||
| * @brief Get Variant number (The r value in the rnpn product revision identifier) | |||
| * @rmtoll SCB_CPUID VARIANT LL_CPUID_GetVariant | |||
| * @retval Value between 0 and 255 (0x1: revision 1, 0x2: revision 2) | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_CPUID_GetVariant(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_VARIANT_Msk) >> SCB_CPUID_VARIANT_Pos); | |||
| } | |||
| /** | |||
| * @brief Get Constant number | |||
| * @rmtoll SCB_CPUID ARCHITECTURE LL_CPUID_GetConstant | |||
| * @retval Value should be equal to 0xF for Cortex-M3 devices | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_CPUID_GetConstant(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_ARCHITECTURE_Msk) >> SCB_CPUID_ARCHITECTURE_Pos); | |||
| } | |||
| /** | |||
| * @brief Get Part number | |||
| * @rmtoll SCB_CPUID PARTNO LL_CPUID_GetParNo | |||
| * @retval Value should be equal to 0xC23 for Cortex-M3 | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_CPUID_GetParNo(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_PARTNO_Msk) >> SCB_CPUID_PARTNO_Pos); | |||
| } | |||
| /** | |||
| * @brief Get Revision number (The p value in the rnpn product revision identifier, indicates patch release) | |||
| * @rmtoll SCB_CPUID REVISION LL_CPUID_GetRevision | |||
| * @retval Value between 0 and 255 (0x0: patch 0, 0x1: patch 1) | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_CPUID_GetRevision(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(SCB->CPUID, SCB_CPUID_REVISION_Msk) >> SCB_CPUID_REVISION_Pos); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| #if __MPU_PRESENT | |||
| /** @defgroup CORTEX_LL_EF_MPU MPU | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Enable MPU with input options | |||
| * @rmtoll MPU_CTRL ENABLE LL_MPU_Enable | |||
| * @param Options This parameter can be one of the following values: | |||
| * @arg @ref LL_MPU_CTRL_HFNMI_PRIVDEF_NONE | |||
| * @arg @ref LL_MPU_CTRL_HARDFAULT_NMI | |||
| * @arg @ref LL_MPU_CTRL_PRIVILEGED_DEFAULT | |||
| * @arg @ref LL_MPU_CTRL_HFNMI_PRIVDEF | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_MPU_Enable(uint32_t Options) | |||
| { | |||
| /* Enable the MPU*/ | |||
| WRITE_REG(MPU->CTRL, (MPU_CTRL_ENABLE_Msk | Options)); | |||
| /* Ensure MPU settings take effects */ | |||
| __DSB(); | |||
| /* Sequence instruction fetches using update settings */ | |||
| __ISB(); | |||
| } | |||
| /** | |||
| * @brief Disable MPU | |||
| * @rmtoll MPU_CTRL ENABLE LL_MPU_Disable | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_MPU_Disable(void) | |||
| { | |||
| /* Make sure outstanding transfers are done */ | |||
| __DMB(); | |||
| /* Disable MPU*/ | |||
| WRITE_REG(MPU->CTRL, 0U); | |||
| } | |||
| /** | |||
| * @brief Check if MPU is enabled or not | |||
| * @rmtoll MPU_CTRL ENABLE LL_MPU_IsEnabled | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_MPU_IsEnabled(void) | |||
| { | |||
| return (READ_BIT(MPU->CTRL, MPU_CTRL_ENABLE_Msk) == (MPU_CTRL_ENABLE_Msk)); | |||
| } | |||
| /** | |||
| * @brief Enable a MPU region | |||
| * @rmtoll MPU_RASR ENABLE LL_MPU_EnableRegion | |||
| * @param Region This parameter can be one of the following values: | |||
| * @arg @ref LL_MPU_REGION_NUMBER0 | |||
| * @arg @ref LL_MPU_REGION_NUMBER1 | |||
| * @arg @ref LL_MPU_REGION_NUMBER2 | |||
| * @arg @ref LL_MPU_REGION_NUMBER3 | |||
| * @arg @ref LL_MPU_REGION_NUMBER4 | |||
| * @arg @ref LL_MPU_REGION_NUMBER5 | |||
| * @arg @ref LL_MPU_REGION_NUMBER6 | |||
| * @arg @ref LL_MPU_REGION_NUMBER7 | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_MPU_EnableRegion(uint32_t Region) | |||
| { | |||
| /* Set Region number */ | |||
| WRITE_REG(MPU->RNR, Region); | |||
| /* Enable the MPU region */ | |||
| SET_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); | |||
| } | |||
| /** | |||
| * @brief Configure and enable a region | |||
| * @rmtoll MPU_RNR REGION LL_MPU_ConfigRegion\n | |||
| * MPU_RBAR REGION LL_MPU_ConfigRegion\n | |||
| * MPU_RBAR ADDR LL_MPU_ConfigRegion\n | |||
| * MPU_RASR XN LL_MPU_ConfigRegion\n | |||
| * MPU_RASR AP LL_MPU_ConfigRegion\n | |||
| * MPU_RASR S LL_MPU_ConfigRegion\n | |||
| * MPU_RASR C LL_MPU_ConfigRegion\n | |||
| * MPU_RASR B LL_MPU_ConfigRegion\n | |||
| * MPU_RASR SIZE LL_MPU_ConfigRegion | |||
| * @param Region This parameter can be one of the following values: | |||
| * @arg @ref LL_MPU_REGION_NUMBER0 | |||
| * @arg @ref LL_MPU_REGION_NUMBER1 | |||
| * @arg @ref LL_MPU_REGION_NUMBER2 | |||
| * @arg @ref LL_MPU_REGION_NUMBER3 | |||
| * @arg @ref LL_MPU_REGION_NUMBER4 | |||
| * @arg @ref LL_MPU_REGION_NUMBER5 | |||
| * @arg @ref LL_MPU_REGION_NUMBER6 | |||
| * @arg @ref LL_MPU_REGION_NUMBER7 | |||
| * @param Address Value of region base address | |||
| * @param SubRegionDisable Sub-region disable value between Min_Data = 0x00 and Max_Data = 0xFF | |||
| * @param Attributes This parameter can be a combination of the following values: | |||
| * @arg @ref LL_MPU_REGION_SIZE_32B or @ref LL_MPU_REGION_SIZE_64B or @ref LL_MPU_REGION_SIZE_128B or @ref LL_MPU_REGION_SIZE_256B or @ref LL_MPU_REGION_SIZE_512B | |||
| * or @ref LL_MPU_REGION_SIZE_1KB or @ref LL_MPU_REGION_SIZE_2KB or @ref LL_MPU_REGION_SIZE_4KB or @ref LL_MPU_REGION_SIZE_8KB or @ref LL_MPU_REGION_SIZE_16KB | |||
| * or @ref LL_MPU_REGION_SIZE_32KB or @ref LL_MPU_REGION_SIZE_64KB or @ref LL_MPU_REGION_SIZE_128KB or @ref LL_MPU_REGION_SIZE_256KB or @ref LL_MPU_REGION_SIZE_512KB | |||
| * or @ref LL_MPU_REGION_SIZE_1MB or @ref LL_MPU_REGION_SIZE_2MB or @ref LL_MPU_REGION_SIZE_4MB or @ref LL_MPU_REGION_SIZE_8MB or @ref LL_MPU_REGION_SIZE_16MB | |||
| * or @ref LL_MPU_REGION_SIZE_32MB or @ref LL_MPU_REGION_SIZE_64MB or @ref LL_MPU_REGION_SIZE_128MB or @ref LL_MPU_REGION_SIZE_256MB or @ref LL_MPU_REGION_SIZE_512MB | |||
| * or @ref LL_MPU_REGION_SIZE_1GB or @ref LL_MPU_REGION_SIZE_2GB or @ref LL_MPU_REGION_SIZE_4GB | |||
| * @arg @ref LL_MPU_REGION_NO_ACCESS or @ref LL_MPU_REGION_PRIV_RW or @ref LL_MPU_REGION_PRIV_RW_URO or @ref LL_MPU_REGION_FULL_ACCESS | |||
| * or @ref LL_MPU_REGION_PRIV_RO or @ref LL_MPU_REGION_PRIV_RO_URO | |||
| * @arg @ref LL_MPU_TEX_LEVEL0 or @ref LL_MPU_TEX_LEVEL1 or @ref LL_MPU_TEX_LEVEL2 or @ref LL_MPU_TEX_LEVEL4 | |||
| * @arg @ref LL_MPU_INSTRUCTION_ACCESS_ENABLE or @ref LL_MPU_INSTRUCTION_ACCESS_DISABLE | |||
| * @arg @ref LL_MPU_ACCESS_SHAREABLE or @ref LL_MPU_ACCESS_NOT_SHAREABLE | |||
| * @arg @ref LL_MPU_ACCESS_CACHEABLE or @ref LL_MPU_ACCESS_NOT_CACHEABLE | |||
| * @arg @ref LL_MPU_ACCESS_BUFFERABLE or @ref LL_MPU_ACCESS_NOT_BUFFERABLE | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_MPU_ConfigRegion(uint32_t Region, uint32_t SubRegionDisable, uint32_t Address, uint32_t Attributes) | |||
| { | |||
| /* Set Region number */ | |||
| WRITE_REG(MPU->RNR, Region); | |||
| /* Set base address */ | |||
| WRITE_REG(MPU->RBAR, (Address & 0xFFFFFFE0U)); | |||
| /* Configure MPU */ | |||
| WRITE_REG(MPU->RASR, (MPU_RASR_ENABLE_Msk | Attributes | SubRegionDisable << MPU_RASR_SRD_Pos)); | |||
| } | |||
| /** | |||
| * @brief Disable a region | |||
| * @rmtoll MPU_RNR REGION LL_MPU_DisableRegion\n | |||
| * MPU_RASR ENABLE LL_MPU_DisableRegion | |||
| * @param Region This parameter can be one of the following values: | |||
| * @arg @ref LL_MPU_REGION_NUMBER0 | |||
| * @arg @ref LL_MPU_REGION_NUMBER1 | |||
| * @arg @ref LL_MPU_REGION_NUMBER2 | |||
| * @arg @ref LL_MPU_REGION_NUMBER3 | |||
| * @arg @ref LL_MPU_REGION_NUMBER4 | |||
| * @arg @ref LL_MPU_REGION_NUMBER5 | |||
| * @arg @ref LL_MPU_REGION_NUMBER6 | |||
| * @arg @ref LL_MPU_REGION_NUMBER7 | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_MPU_DisableRegion(uint32_t Region) | |||
| { | |||
| /* Set Region number */ | |||
| WRITE_REG(MPU->RNR, Region); | |||
| /* Disable the MPU region */ | |||
| CLEAR_BIT(MPU->RASR, MPU_RASR_ENABLE_Msk); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /* __MPU_PRESENT */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #ifdef __cplusplus | |||
| } | |||
| #endif | |||
| #endif /* __STM32F1xx_LL_CORTEX_H */ | |||
| @ -0,0 +1,886 @@ | |||
| /** | |||
| ****************************************************************************** | |||
| * @file stm32f1xx_ll_exti.h | |||
| * @author MCD Application Team | |||
| * @brief Header file of EXTI LL module. | |||
| ****************************************************************************** | |||
| * @attention | |||
| * | |||
| * Copyright (c) 2016 STMicroelectronics. | |||
| * All rights reserved. | |||
| * | |||
| * This software is licensed under terms that can be found in the LICENSE file | |||
| * in the root directory of this software component. | |||
| * If no LICENSE file comes with this software, it is provided AS-IS. | |||
| * | |||
| ****************************************************************************** | |||
| */ | |||
| /* Define to prevent recursive inclusion -------------------------------------*/ | |||
| #ifndef STM32F1xx_LL_EXTI_H | |||
| #define STM32F1xx_LL_EXTI_H | |||
| #ifdef __cplusplus | |||
| extern "C" { | |||
| #endif | |||
| /* Includes ------------------------------------------------------------------*/ | |||
| #include "stm32f1xx.h" | |||
| /** @addtogroup STM32F1xx_LL_Driver | |||
| * @{ | |||
| */ | |||
| #if defined (EXTI) | |||
| /** @defgroup EXTI_LL EXTI | |||
| * @{ | |||
| */ | |||
| /* Private types -------------------------------------------------------------*/ | |||
| /* Private variables ---------------------------------------------------------*/ | |||
| /* Private constants ---------------------------------------------------------*/ | |||
| /* Private Macros ------------------------------------------------------------*/ | |||
| #if defined(USE_FULL_LL_DRIVER) | |||
| /** @defgroup EXTI_LL_Private_Macros EXTI Private Macros | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /*USE_FULL_LL_DRIVER*/ | |||
| /* Exported types ------------------------------------------------------------*/ | |||
| #if defined(USE_FULL_LL_DRIVER) | |||
| /** @defgroup EXTI_LL_ES_INIT EXTI Exported Init structure | |||
| * @{ | |||
| */ | |||
| typedef struct | |||
| { | |||
| uint32_t Line_0_31; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 0 to 31 | |||
| This parameter can be any combination of @ref EXTI_LL_EC_LINE */ | |||
| FunctionalState LineCommand; /*!< Specifies the new state of the selected EXTI lines. | |||
| This parameter can be set either to ENABLE or DISABLE */ | |||
| uint8_t Mode; /*!< Specifies the mode for the EXTI lines. | |||
| This parameter can be a value of @ref EXTI_LL_EC_MODE. */ | |||
| uint8_t Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines. | |||
| This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */ | |||
| } LL_EXTI_InitTypeDef; | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /*USE_FULL_LL_DRIVER*/ | |||
| /* Exported constants --------------------------------------------------------*/ | |||
| /** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants | |||
| * @{ | |||
| */ | |||
| /** @defgroup EXTI_LL_EC_LINE LINE | |||
| * @{ | |||
| */ | |||
| #define LL_EXTI_LINE_0 EXTI_IMR_IM0 /*!< Extended line 0 */ | |||
| #define LL_EXTI_LINE_1 EXTI_IMR_IM1 /*!< Extended line 1 */ | |||
| #define LL_EXTI_LINE_2 EXTI_IMR_IM2 /*!< Extended line 2 */ | |||
| #define LL_EXTI_LINE_3 EXTI_IMR_IM3 /*!< Extended line 3 */ | |||
| #define LL_EXTI_LINE_4 EXTI_IMR_IM4 /*!< Extended line 4 */ | |||
| #define LL_EXTI_LINE_5 EXTI_IMR_IM5 /*!< Extended line 5 */ | |||
| #define LL_EXTI_LINE_6 EXTI_IMR_IM6 /*!< Extended line 6 */ | |||
| #define LL_EXTI_LINE_7 EXTI_IMR_IM7 /*!< Extended line 7 */ | |||
| #define LL_EXTI_LINE_8 EXTI_IMR_IM8 /*!< Extended line 8 */ | |||
| #define LL_EXTI_LINE_9 EXTI_IMR_IM9 /*!< Extended line 9 */ | |||
| #define LL_EXTI_LINE_10 EXTI_IMR_IM10 /*!< Extended line 10 */ | |||
| #define LL_EXTI_LINE_11 EXTI_IMR_IM11 /*!< Extended line 11 */ | |||
| #define LL_EXTI_LINE_12 EXTI_IMR_IM12 /*!< Extended line 12 */ | |||
| #define LL_EXTI_LINE_13 EXTI_IMR_IM13 /*!< Extended line 13 */ | |||
| #define LL_EXTI_LINE_14 EXTI_IMR_IM14 /*!< Extended line 14 */ | |||
| #define LL_EXTI_LINE_15 EXTI_IMR_IM15 /*!< Extended line 15 */ | |||
| #if defined(EXTI_IMR_IM16) | |||
| #define LL_EXTI_LINE_16 EXTI_IMR_IM16 /*!< Extended line 16 */ | |||
| #endif | |||
| #define LL_EXTI_LINE_17 EXTI_IMR_IM17 /*!< Extended line 17 */ | |||
| #if defined(EXTI_IMR_IM18) | |||
| #define LL_EXTI_LINE_18 EXTI_IMR_IM18 /*!< Extended line 18 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM19) | |||
| #define LL_EXTI_LINE_19 EXTI_IMR_IM19 /*!< Extended line 19 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM20) | |||
| #define LL_EXTI_LINE_20 EXTI_IMR_IM20 /*!< Extended line 20 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM21) | |||
| #define LL_EXTI_LINE_21 EXTI_IMR_IM21 /*!< Extended line 21 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM22) | |||
| #define LL_EXTI_LINE_22 EXTI_IMR_IM22 /*!< Extended line 22 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM23) | |||
| #define LL_EXTI_LINE_23 EXTI_IMR_IM23 /*!< Extended line 23 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM24) | |||
| #define LL_EXTI_LINE_24 EXTI_IMR_IM24 /*!< Extended line 24 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM25) | |||
| #define LL_EXTI_LINE_25 EXTI_IMR_IM25 /*!< Extended line 25 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM26) | |||
| #define LL_EXTI_LINE_26 EXTI_IMR_IM26 /*!< Extended line 26 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM27) | |||
| #define LL_EXTI_LINE_27 EXTI_IMR_IM27 /*!< Extended line 27 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM28) | |||
| #define LL_EXTI_LINE_28 EXTI_IMR_IM28 /*!< Extended line 28 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM29) | |||
| #define LL_EXTI_LINE_29 EXTI_IMR_IM29 /*!< Extended line 29 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM30) | |||
| #define LL_EXTI_LINE_30 EXTI_IMR_IM30 /*!< Extended line 30 */ | |||
| #endif | |||
| #if defined(EXTI_IMR_IM31) | |||
| #define LL_EXTI_LINE_31 EXTI_IMR_IM31 /*!< Extended line 31 */ | |||
| #endif | |||
| #define LL_EXTI_LINE_ALL_0_31 EXTI_IMR_IM /*!< All Extended line not reserved*/ | |||
| #define LL_EXTI_LINE_ALL (0xFFFFFFFFU) /*!< All Extended line */ | |||
| #if defined(USE_FULL_LL_DRIVER) | |||
| #define LL_EXTI_LINE_NONE (0x00000000U) /*!< None Extended line */ | |||
| #endif /*USE_FULL_LL_DRIVER*/ | |||
| /** | |||
| * @} | |||
| */ | |||
| #if defined(USE_FULL_LL_DRIVER) | |||
| /** @defgroup EXTI_LL_EC_MODE Mode | |||
| * @{ | |||
| */ | |||
| #define LL_EXTI_MODE_IT ((uint8_t)0x00) /*!< Interrupt Mode */ | |||
| #define LL_EXTI_MODE_EVENT ((uint8_t)0x01) /*!< Event Mode */ | |||
| #define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02) /*!< Interrupt & Event Mode */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger | |||
| * @{ | |||
| */ | |||
| #define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00) /*!< No Trigger Mode */ | |||
| #define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01) /*!< Trigger Rising Mode */ | |||
| #define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02) /*!< Trigger Falling Mode */ | |||
| #define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03) /*!< Trigger Rising & Falling Mode */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /*USE_FULL_LL_DRIVER*/ | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Exported macro ------------------------------------------------------------*/ | |||
| /** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros | |||
| * @{ | |||
| */ | |||
| /** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Write a value in EXTI register | |||
| * @param __REG__ Register to be written | |||
| * @param __VALUE__ Value to be written in the register | |||
| * @retval None | |||
| */ | |||
| #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__)) | |||
| /** | |||
| * @brief Read a value in EXTI register | |||
| * @param __REG__ Register to be read | |||
| * @retval Register value | |||
| */ | |||
| #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__) | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Exported functions --------------------------------------------------------*/ | |||
| /** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions | |||
| * @{ | |||
| */ | |||
| /** @defgroup EXTI_LL_EF_IT_Management IT_Management | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31 | |||
| * @note The reset value for the direct or internal lines (see RM) | |||
| * is set to 1 in order to enable the interrupt by default. | |||
| * Bits are set automatically at Power on. | |||
| * @rmtoll IMR IMx LL_EXTI_EnableIT_0_31 | |||
| * @param ExtiLine This parameter can be one of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_17 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @arg @ref LL_EXTI_LINE_ALL_0_31 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine) | |||
| { | |||
| SET_BIT(EXTI->IMR, ExtiLine); | |||
| } | |||
| /** | |||
| * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31 | |||
| * @note The reset value for the direct or internal lines (see RM) | |||
| * is set to 1 in order to enable the interrupt by default. | |||
| * Bits are set automatically at Power on. | |||
| * @rmtoll IMR IMx LL_EXTI_DisableIT_0_31 | |||
| * @param ExtiLine This parameter can be one of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_17 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @arg @ref LL_EXTI_LINE_ALL_0_31 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine) | |||
| { | |||
| CLEAR_BIT(EXTI->IMR, ExtiLine); | |||
| } | |||
| /** | |||
| * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31 | |||
| * @note The reset value for the direct or internal lines (see RM) | |||
| * is set to 1 in order to enable the interrupt by default. | |||
| * Bits are set automatically at Power on. | |||
| * @rmtoll IMR IMx LL_EXTI_IsEnabledIT_0_31 | |||
| * @param ExtiLine This parameter can be one of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_17 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @arg @ref LL_EXTI_LINE_ALL_0_31 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine) | |||
| { | |||
| return (READ_BIT(EXTI->IMR, ExtiLine) == (ExtiLine)); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup EXTI_LL_EF_Event_Management Event_Management | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Enable ExtiLine Event request for Lines in range 0 to 31 | |||
| * @rmtoll EMR EMx LL_EXTI_EnableEvent_0_31 | |||
| * @param ExtiLine This parameter can be one of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_17 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @arg @ref LL_EXTI_LINE_ALL_0_31 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine) | |||
| { | |||
| SET_BIT(EXTI->EMR, ExtiLine); | |||
| } | |||
| /** | |||
| * @brief Disable ExtiLine Event request for Lines in range 0 to 31 | |||
| * @rmtoll EMR EMx LL_EXTI_DisableEvent_0_31 | |||
| * @param ExtiLine This parameter can be one of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_17 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @arg @ref LL_EXTI_LINE_ALL_0_31 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine) | |||
| { | |||
| CLEAR_BIT(EXTI->EMR, ExtiLine); | |||
| } | |||
| /** | |||
| * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31 | |||
| * @rmtoll EMR EMx LL_EXTI_IsEnabledEvent_0_31 | |||
| * @param ExtiLine This parameter can be one of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_17 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @arg @ref LL_EXTI_LINE_ALL_0_31 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine) | |||
| { | |||
| return (READ_BIT(EXTI->EMR, ExtiLine) == (ExtiLine)); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31 | |||
| * @note The configurable wakeup lines are edge-triggered. No glitch must be | |||
| * generated on these lines. If a rising edge on a configurable interrupt | |||
| * line occurs during a write operation in the EXTI_RTSR register, the | |||
| * pending bit is not set. | |||
| * Rising and falling edge triggers can be set for | |||
| * the same interrupt line. In this case, both generate a trigger | |||
| * condition. | |||
| * @rmtoll RTSR RTx LL_EXTI_EnableRisingTrig_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine) | |||
| { | |||
| SET_BIT(EXTI->RTSR, ExtiLine); | |||
| } | |||
| /** | |||
| * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31 | |||
| * @note The configurable wakeup lines are edge-triggered. No glitch must be | |||
| * generated on these lines. If a rising edge on a configurable interrupt | |||
| * line occurs during a write operation in the EXTI_RTSR register, the | |||
| * pending bit is not set. | |||
| * Rising and falling edge triggers can be set for | |||
| * the same interrupt line. In this case, both generate a trigger | |||
| * condition. | |||
| * @rmtoll RTSR RTx LL_EXTI_DisableRisingTrig_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine) | |||
| { | |||
| CLEAR_BIT(EXTI->RTSR, ExtiLine); | |||
| } | |||
| /** | |||
| * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31 | |||
| * @rmtoll RTSR RTx LL_EXTI_IsEnabledRisingTrig_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine) | |||
| { | |||
| return (READ_BIT(EXTI->RTSR, ExtiLine) == (ExtiLine)); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31 | |||
| * @note The configurable wakeup lines are edge-triggered. No glitch must be | |||
| * generated on these lines. If a falling edge on a configurable interrupt | |||
| * line occurs during a write operation in the EXTI_FTSR register, the | |||
| * pending bit is not set. | |||
| * Rising and falling edge triggers can be set for | |||
| * the same interrupt line. In this case, both generate a trigger | |||
| * condition. | |||
| * @rmtoll FTSR FTx LL_EXTI_EnableFallingTrig_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine) | |||
| { | |||
| SET_BIT(EXTI->FTSR, ExtiLine); | |||
| } | |||
| /** | |||
| * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31 | |||
| * @note The configurable wakeup lines are edge-triggered. No glitch must be | |||
| * generated on these lines. If a Falling edge on a configurable interrupt | |||
| * line occurs during a write operation in the EXTI_FTSR register, the | |||
| * pending bit is not set. | |||
| * Rising and falling edge triggers can be set for the same interrupt line. | |||
| * In this case, both generate a trigger condition. | |||
| * @rmtoll FTSR FTx LL_EXTI_DisableFallingTrig_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine) | |||
| { | |||
| CLEAR_BIT(EXTI->FTSR, ExtiLine); | |||
| } | |||
| /** | |||
| * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31 | |||
| * @rmtoll FTSR FTx LL_EXTI_IsEnabledFallingTrig_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine) | |||
| { | |||
| return (READ_BIT(EXTI->FTSR, ExtiLine) == (ExtiLine)); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Generate a software Interrupt Event for Lines in range 0 to 31 | |||
| * @note If the interrupt is enabled on this line in the EXTI_IMR, writing a 1 to | |||
| * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR | |||
| * resulting in an interrupt request generation. | |||
| * This bit is cleared by clearing the corresponding bit in the EXTI_PR | |||
| * register (by writing a 1 into the bit) | |||
| * @rmtoll SWIER SWIx LL_EXTI_GenerateSWI_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine) | |||
| { | |||
| SET_BIT(EXTI->SWIER, ExtiLine); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup EXTI_LL_EF_Flag_Management Flag_Management | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Check if the ExtLine Flag is set or not for Lines in range 0 to 31 | |||
| * @note This bit is set when the selected edge event arrives on the interrupt | |||
| * line. This bit is cleared by writing a 1 to the bit. | |||
| * @rmtoll PR PIFx LL_EXTI_IsActiveFlag_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine) | |||
| { | |||
| return (READ_BIT(EXTI->PR, ExtiLine) == (ExtiLine)); | |||
| } | |||
| /** | |||
| * @brief Read ExtLine Combination Flag for Lines in range 0 to 31 | |||
| * @note This bit is set when the selected edge event arrives on the interrupt | |||
| * line. This bit is cleared by writing a 1 to the bit. | |||
| * @rmtoll PR PIFx LL_EXTI_ReadFlag_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval @note This bit is set when the selected edge event arrives on the interrupt | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine) | |||
| { | |||
| return (uint32_t)(READ_BIT(EXTI->PR, ExtiLine)); | |||
| } | |||
| /** | |||
| * @brief Clear ExtLine Flags for Lines in range 0 to 31 | |||
| * @note This bit is set when the selected edge event arrives on the interrupt | |||
| * line. This bit is cleared by writing a 1 to the bit. | |||
| * @rmtoll PR PIFx LL_EXTI_ClearFlag_0_31 | |||
| * @param ExtiLine This parameter can be a combination of the following values: | |||
| * @arg @ref LL_EXTI_LINE_0 | |||
| * @arg @ref LL_EXTI_LINE_1 | |||
| * @arg @ref LL_EXTI_LINE_2 | |||
| * @arg @ref LL_EXTI_LINE_3 | |||
| * @arg @ref LL_EXTI_LINE_4 | |||
| * @arg @ref LL_EXTI_LINE_5 | |||
| * @arg @ref LL_EXTI_LINE_6 | |||
| * @arg @ref LL_EXTI_LINE_7 | |||
| * @arg @ref LL_EXTI_LINE_8 | |||
| * @arg @ref LL_EXTI_LINE_9 | |||
| * @arg @ref LL_EXTI_LINE_10 | |||
| * @arg @ref LL_EXTI_LINE_11 | |||
| * @arg @ref LL_EXTI_LINE_12 | |||
| * @arg @ref LL_EXTI_LINE_13 | |||
| * @arg @ref LL_EXTI_LINE_14 | |||
| * @arg @ref LL_EXTI_LINE_15 | |||
| * @arg @ref LL_EXTI_LINE_16 | |||
| * @arg @ref LL_EXTI_LINE_18 | |||
| * @arg @ref LL_EXTI_LINE_19 | |||
| * @note Please check each device line mapping for EXTI Line availability | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine) | |||
| { | |||
| WRITE_REG(EXTI->PR, ExtiLine); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| #if defined(USE_FULL_LL_DRIVER) | |||
| /** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions | |||
| * @{ | |||
| */ | |||
| uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct); | |||
| uint32_t LL_EXTI_DeInit(void); | |||
| void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct); | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /* USE_FULL_LL_DRIVER */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /* EXTI */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #ifdef __cplusplus | |||
| } | |||
| #endif | |||
| #endif /* STM32F1xx_LL_EXTI_H */ | |||
| @ -0,0 +1,437 @@ | |||
| /** | |||
| ****************************************************************************** | |||
| * @file stm32f1xx_ll_pwr.h | |||
| * @author MCD Application Team | |||
| * @brief Header file of PWR LL module. | |||
| ****************************************************************************** | |||
| * @attention | |||
| * | |||
| * Copyright (c) 2016 STMicroelectronics. | |||
| * All rights reserved. | |||
| * | |||
| * This software is licensed under terms that can be found in the LICENSE file | |||
| * in the root directory of this software component. | |||
| * If no LICENSE file comes with this software, it is provided AS-IS. | |||
| * | |||
| ****************************************************************************** | |||
| */ | |||
| /* Define to prevent recursive inclusion -------------------------------------*/ | |||
| #ifndef __STM32F1xx_LL_PWR_H | |||
| #define __STM32F1xx_LL_PWR_H | |||
| #ifdef __cplusplus | |||
| extern "C" { | |||
| #endif | |||
| /* Includes ------------------------------------------------------------------*/ | |||
| #include "stm32f1xx.h" | |||
| /** @addtogroup STM32F1xx_LL_Driver | |||
| * @{ | |||
| */ | |||
| #if defined(PWR) | |||
| /** @defgroup PWR_LL PWR | |||
| * @{ | |||
| */ | |||
| /* Private types -------------------------------------------------------------*/ | |||
| /* Private variables ---------------------------------------------------------*/ | |||
| /* Private constants ---------------------------------------------------------*/ | |||
| /* Private macros ------------------------------------------------------------*/ | |||
| /* Exported types ------------------------------------------------------------*/ | |||
| /* Exported constants --------------------------------------------------------*/ | |||
| /** @defgroup PWR_LL_Exported_Constants PWR Exported Constants | |||
| * @{ | |||
| */ | |||
| /** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines | |||
| * @brief Flags defines which can be used with LL_PWR_WriteReg function | |||
| * @{ | |||
| */ | |||
| #define LL_PWR_CR_CSBF PWR_CR_CSBF /*!< Clear standby flag */ | |||
| #define LL_PWR_CR_CWUF PWR_CR_CWUF /*!< Clear wakeup flag */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines | |||
| * @brief Flags defines which can be used with LL_PWR_ReadReg function | |||
| * @{ | |||
| */ | |||
| #define LL_PWR_CSR_WUF PWR_CSR_WUF /*!< Wakeup flag */ | |||
| #define LL_PWR_CSR_SBF PWR_CSR_SBF /*!< Standby flag */ | |||
| #define LL_PWR_CSR_PVDO PWR_CSR_PVDO /*!< Power voltage detector output flag */ | |||
| #define LL_PWR_CSR_EWUP1 PWR_CSR_EWUP /*!< Enable WKUP pin 1 */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup PWR_LL_EC_MODE_PWR Mode Power | |||
| * @{ | |||
| */ | |||
| #define LL_PWR_MODE_STOP_MAINREGU 0x00000000U /*!< Enter Stop mode when the CPU enters deepsleep */ | |||
| #define LL_PWR_MODE_STOP_LPREGU (PWR_CR_LPDS) /*!< Enter Stop mode (with low power Regulator ON) when the CPU enters deepsleep */ | |||
| #define LL_PWR_MODE_STANDBY (PWR_CR_PDDS) /*!< Enter Standby mode when the CPU enters deepsleep */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup PWR_LL_EC_REGU_MODE_DS_MODE Regulator Mode In Deep Sleep Mode | |||
| * @{ | |||
| */ | |||
| #define LL_PWR_REGU_DSMODE_MAIN 0x00000000U /*!< Voltage Regulator in main mode during deepsleep mode */ | |||
| #define LL_PWR_REGU_DSMODE_LOW_POWER (PWR_CR_LPDS) /*!< Voltage Regulator in low-power mode during deepsleep mode */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup PWR_LL_EC_PVDLEVEL Power Voltage Detector Level | |||
| * @{ | |||
| */ | |||
| #define LL_PWR_PVDLEVEL_0 (PWR_CR_PLS_LEV0) /*!< Voltage threshold detected by PVD 2.2 V */ | |||
| #define LL_PWR_PVDLEVEL_1 (PWR_CR_PLS_LEV1) /*!< Voltage threshold detected by PVD 2.3 V */ | |||
| #define LL_PWR_PVDLEVEL_2 (PWR_CR_PLS_LEV2) /*!< Voltage threshold detected by PVD 2.4 V */ | |||
| #define LL_PWR_PVDLEVEL_3 (PWR_CR_PLS_LEV3) /*!< Voltage threshold detected by PVD 2.5 V */ | |||
| #define LL_PWR_PVDLEVEL_4 (PWR_CR_PLS_LEV4) /*!< Voltage threshold detected by PVD 2.6 V */ | |||
| #define LL_PWR_PVDLEVEL_5 (PWR_CR_PLS_LEV5) /*!< Voltage threshold detected by PVD 2.7 V */ | |||
| #define LL_PWR_PVDLEVEL_6 (PWR_CR_PLS_LEV6) /*!< Voltage threshold detected by PVD 2.8 V */ | |||
| #define LL_PWR_PVDLEVEL_7 (PWR_CR_PLS_LEV7) /*!< Voltage threshold detected by PVD 2.9 V */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup PWR_LL_EC_WAKEUP_PIN Wakeup Pins | |||
| * @{ | |||
| */ | |||
| #define LL_PWR_WAKEUP_PIN1 (PWR_CSR_EWUP) /*!< WKUP pin 1 : PA0 */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Exported macro ------------------------------------------------------------*/ | |||
| /** @defgroup PWR_LL_Exported_Macros PWR Exported Macros | |||
| * @{ | |||
| */ | |||
| /** @defgroup PWR_LL_EM_WRITE_READ Common write and read registers Macros | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Write a value in PWR register | |||
| * @param __REG__ Register to be written | |||
| * @param __VALUE__ Value to be written in the register | |||
| * @retval None | |||
| */ | |||
| #define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__)) | |||
| /** | |||
| * @brief Read a value in PWR register | |||
| * @param __REG__ Register to be read | |||
| * @retval Register value | |||
| */ | |||
| #define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__) | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Exported functions --------------------------------------------------------*/ | |||
| /** @defgroup PWR_LL_Exported_Functions PWR Exported Functions | |||
| * @{ | |||
| */ | |||
| /** @defgroup PWR_LL_EF_Configuration Configuration | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Enable access to the backup domain | |||
| * @rmtoll CR DBP LL_PWR_EnableBkUpAccess | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_EnableBkUpAccess(void) | |||
| { | |||
| SET_BIT(PWR->CR, PWR_CR_DBP); | |||
| } | |||
| /** | |||
| * @brief Disable access to the backup domain | |||
| * @rmtoll CR DBP LL_PWR_DisableBkUpAccess | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_DisableBkUpAccess(void) | |||
| { | |||
| CLEAR_BIT(PWR->CR, PWR_CR_DBP); | |||
| } | |||
| /** | |||
| * @brief Check if the backup domain is enabled | |||
| * @rmtoll CR DBP LL_PWR_IsEnabledBkUpAccess | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void) | |||
| { | |||
| return (READ_BIT(PWR->CR, PWR_CR_DBP) == (PWR_CR_DBP)); | |||
| } | |||
| /** | |||
| * @brief Set voltage Regulator mode during deep sleep mode | |||
| * @rmtoll CR LPDS LL_PWR_SetRegulModeDS | |||
| * @param RegulMode This parameter can be one of the following values: | |||
| * @arg @ref LL_PWR_REGU_DSMODE_MAIN | |||
| * @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_SetRegulModeDS(uint32_t RegulMode) | |||
| { | |||
| MODIFY_REG(PWR->CR, PWR_CR_LPDS, RegulMode); | |||
| } | |||
| /** | |||
| * @brief Get voltage Regulator mode during deep sleep mode | |||
| * @rmtoll CR LPDS LL_PWR_GetRegulModeDS | |||
| * @retval Returned value can be one of the following values: | |||
| * @arg @ref LL_PWR_REGU_DSMODE_MAIN | |||
| * @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_PWR_GetRegulModeDS(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_LPDS)); | |||
| } | |||
| /** | |||
| * @brief Set Power Down mode when CPU enters deepsleep | |||
| * @rmtoll CR PDDS LL_PWR_SetPowerMode\n | |||
| * @rmtoll CR LPDS LL_PWR_SetPowerMode | |||
| * @param PDMode This parameter can be one of the following values: | |||
| * @arg @ref LL_PWR_MODE_STOP_MAINREGU | |||
| * @arg @ref LL_PWR_MODE_STOP_LPREGU | |||
| * @arg @ref LL_PWR_MODE_STANDBY | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t PDMode) | |||
| { | |||
| MODIFY_REG(PWR->CR, (PWR_CR_PDDS| PWR_CR_LPDS), PDMode); | |||
| } | |||
| /** | |||
| * @brief Get Power Down mode when CPU enters deepsleep | |||
| * @rmtoll CR PDDS LL_PWR_GetPowerMode\n | |||
| * @rmtoll CR LPDS LL_PWR_GetPowerMode | |||
| * @retval Returned value can be one of the following values: | |||
| * @arg @ref LL_PWR_MODE_STOP_MAINREGU | |||
| * @arg @ref LL_PWR_MODE_STOP_LPREGU | |||
| * @arg @ref LL_PWR_MODE_STANDBY | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(PWR->CR, (PWR_CR_PDDS| PWR_CR_LPDS))); | |||
| } | |||
| /** | |||
| * @brief Configure the voltage threshold detected by the Power Voltage Detector | |||
| * @rmtoll CR PLS LL_PWR_SetPVDLevel | |||
| * @param PVDLevel This parameter can be one of the following values: | |||
| * @arg @ref LL_PWR_PVDLEVEL_0 | |||
| * @arg @ref LL_PWR_PVDLEVEL_1 | |||
| * @arg @ref LL_PWR_PVDLEVEL_2 | |||
| * @arg @ref LL_PWR_PVDLEVEL_3 | |||
| * @arg @ref LL_PWR_PVDLEVEL_4 | |||
| * @arg @ref LL_PWR_PVDLEVEL_5 | |||
| * @arg @ref LL_PWR_PVDLEVEL_6 | |||
| * @arg @ref LL_PWR_PVDLEVEL_7 | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel) | |||
| { | |||
| MODIFY_REG(PWR->CR, PWR_CR_PLS, PVDLevel); | |||
| } | |||
| /** | |||
| * @brief Get the voltage threshold detection | |||
| * @rmtoll CR PLS LL_PWR_GetPVDLevel | |||
| * @retval Returned value can be one of the following values: | |||
| * @arg @ref LL_PWR_PVDLEVEL_0 | |||
| * @arg @ref LL_PWR_PVDLEVEL_1 | |||
| * @arg @ref LL_PWR_PVDLEVEL_2 | |||
| * @arg @ref LL_PWR_PVDLEVEL_3 | |||
| * @arg @ref LL_PWR_PVDLEVEL_4 | |||
| * @arg @ref LL_PWR_PVDLEVEL_5 | |||
| * @arg @ref LL_PWR_PVDLEVEL_6 | |||
| * @arg @ref LL_PWR_PVDLEVEL_7 | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_PLS)); | |||
| } | |||
| /** | |||
| * @brief Enable Power Voltage Detector | |||
| * @rmtoll CR PVDE LL_PWR_EnablePVD | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_EnablePVD(void) | |||
| { | |||
| SET_BIT(PWR->CR, PWR_CR_PVDE); | |||
| } | |||
| /** | |||
| * @brief Disable Power Voltage Detector | |||
| * @rmtoll CR PVDE LL_PWR_DisablePVD | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_DisablePVD(void) | |||
| { | |||
| CLEAR_BIT(PWR->CR, PWR_CR_PVDE); | |||
| } | |||
| /** | |||
| * @brief Check if Power Voltage Detector is enabled | |||
| * @rmtoll CR PVDE LL_PWR_IsEnabledPVD | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void) | |||
| { | |||
| return (READ_BIT(PWR->CR, PWR_CR_PVDE) == (PWR_CR_PVDE)); | |||
| } | |||
| /** | |||
| * @brief Enable the WakeUp PINx functionality | |||
| * @rmtoll CSR EWUP LL_PWR_EnableWakeUpPin | |||
| * @param WakeUpPin This parameter can be one of the following values: | |||
| * @arg @ref LL_PWR_WAKEUP_PIN1 | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin) | |||
| { | |||
| SET_BIT(PWR->CSR, WakeUpPin); | |||
| } | |||
| /** | |||
| * @brief Disable the WakeUp PINx functionality | |||
| * @rmtoll CSR EWUP LL_PWR_DisableWakeUpPin | |||
| * @param WakeUpPin This parameter can be one of the following values: | |||
| * @arg @ref LL_PWR_WAKEUP_PIN1 | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin) | |||
| { | |||
| CLEAR_BIT(PWR->CSR, WakeUpPin); | |||
| } | |||
| /** | |||
| * @brief Check if the WakeUp PINx functionality is enabled | |||
| * @rmtoll CSR EWUP LL_PWR_IsEnabledWakeUpPin | |||
| * @param WakeUpPin This parameter can be one of the following values: | |||
| * @arg @ref LL_PWR_WAKEUP_PIN1 | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin) | |||
| { | |||
| return (READ_BIT(PWR->CSR, WakeUpPin) == (WakeUpPin)); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Get Wake-up Flag | |||
| * @rmtoll CSR WUF LL_PWR_IsActiveFlag_WU | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU(void) | |||
| { | |||
| return (READ_BIT(PWR->CSR, PWR_CSR_WUF) == (PWR_CSR_WUF)); | |||
| } | |||
| /** | |||
| * @brief Get Standby Flag | |||
| * @rmtoll CSR SBF LL_PWR_IsActiveFlag_SB | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void) | |||
| { | |||
| return (READ_BIT(PWR->CSR, PWR_CSR_SBF) == (PWR_CSR_SBF)); | |||
| } | |||
| /** | |||
| * @brief Indicate whether VDD voltage is below the selected PVD threshold | |||
| * @rmtoll CSR PVDO LL_PWR_IsActiveFlag_PVDO | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void) | |||
| { | |||
| return (READ_BIT(PWR->CSR, PWR_CSR_PVDO) == (PWR_CSR_PVDO)); | |||
| } | |||
| /** | |||
| * @brief Clear Standby Flag | |||
| * @rmtoll CR CSBF LL_PWR_ClearFlag_SB | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_ClearFlag_SB(void) | |||
| { | |||
| SET_BIT(PWR->CR, PWR_CR_CSBF); | |||
| } | |||
| /** | |||
| * @brief Clear Wake-up Flags | |||
| * @rmtoll CR CWUF LL_PWR_ClearFlag_WU | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_PWR_ClearFlag_WU(void) | |||
| { | |||
| SET_BIT(PWR->CR, PWR_CR_CWUF); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| #if defined(USE_FULL_LL_DRIVER) | |||
| /** @defgroup PWR_LL_EF_Init De-initialization function | |||
| * @{ | |||
| */ | |||
| ErrorStatus LL_PWR_DeInit(void); | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /* USE_FULL_LL_DRIVER */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /* defined(PWR) */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #ifdef __cplusplus | |||
| } | |||
| #endif | |||
| #endif /* __STM32F1xx_LL_PWR_H */ | |||
| @ -0,0 +1,575 @@ | |||
| /** | |||
| ****************************************************************************** | |||
| * @file stm32f1xx_ll_system.h | |||
| * @author MCD Application Team | |||
| * @brief Header file of SYSTEM LL module. | |||
| * | |||
| ****************************************************************************** | |||
| * @attention | |||
| * | |||
| * Copyright (c) 2016 STMicroelectronics. | |||
| * All rights reserved. | |||
| * | |||
| * This software is licensed under terms that can be found in the LICENSE file | |||
| * in the root directory of this software component. | |||
| * If no LICENSE file comes with this software, it is provided AS-IS. | |||
| * | |||
| ****************************************************************************** | |||
| @verbatim | |||
| ============================================================================== | |||
| ##### How to use this driver ##### | |||
| ============================================================================== | |||
| [..] | |||
| The LL SYSTEM driver contains a set of generic APIs that can be | |||
| used by user: | |||
| (+) Some of the FLASH features need to be handled in the SYSTEM file. | |||
| (+) Access to DBGCMU registers | |||
| (+) Access to SYSCFG registers | |||
| @endverbatim | |||
| ****************************************************************************** | |||
| */ | |||
| /* Define to prevent recursive inclusion -------------------------------------*/ | |||
| #ifndef __STM32F1xx_LL_SYSTEM_H | |||
| #define __STM32F1xx_LL_SYSTEM_H | |||
| #ifdef __cplusplus | |||
| extern "C" { | |||
| #endif | |||
| /* Includes ------------------------------------------------------------------*/ | |||
| #include "stm32f1xx.h" | |||
| /** @addtogroup STM32F1xx_LL_Driver | |||
| * @{ | |||
| */ | |||
| #if defined (FLASH) || defined (DBGMCU) | |||
| /** @defgroup SYSTEM_LL SYSTEM | |||
| * @{ | |||
| */ | |||
| /* Private types -------------------------------------------------------------*/ | |||
| /* Private variables ---------------------------------------------------------*/ | |||
| /* Private constants ---------------------------------------------------------*/ | |||
| /** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Private macros ------------------------------------------------------------*/ | |||
| /* Exported types ------------------------------------------------------------*/ | |||
| /* Exported constants --------------------------------------------------------*/ | |||
| /** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants | |||
| * @{ | |||
| */ | |||
| /** @defgroup SYSTEM_LL_EC_TRACE DBGMCU TRACE Pin Assignment | |||
| * @{ | |||
| */ | |||
| #define LL_DBGMCU_TRACE_NONE 0x00000000U /*!< TRACE pins not assigned (default state) */ | |||
| #define LL_DBGMCU_TRACE_ASYNCH DBGMCU_CR_TRACE_IOEN /*!< TRACE pin assignment for Asynchronous Mode */ | |||
| #define LL_DBGMCU_TRACE_SYNCH_SIZE1 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_0) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 1 */ | |||
| #define LL_DBGMCU_TRACE_SYNCH_SIZE2 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_1) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 2 */ | |||
| #define LL_DBGMCU_TRACE_SYNCH_SIZE4 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 4 */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup SYSTEM_LL_EC_APB1_GRP1_STOP_IP DBGMCU APB1 GRP1 STOP IP | |||
| * @{ | |||
| */ | |||
| #define LL_DBGMCU_APB1_GRP1_TIM2_STOP DBGMCU_CR_DBG_TIM2_STOP /*!< TIM2 counter stopped when core is halted */ | |||
| #define LL_DBGMCU_APB1_GRP1_TIM3_STOP DBGMCU_CR_DBG_TIM3_STOP /*!< TIM3 counter stopped when core is halted */ | |||
| #define LL_DBGMCU_APB1_GRP1_TIM4_STOP DBGMCU_CR_DBG_TIM4_STOP /*!< TIM4 counter stopped when core is halted */ | |||
| #if defined(DBGMCU_CR_DBG_TIM5_STOP) | |||
| #define LL_DBGMCU_APB1_GRP1_TIM5_STOP DBGMCU_CR_DBG_TIM5_STOP /*!< TIM5 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM5_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM6_STOP) | |||
| #define LL_DBGMCU_APB1_GRP1_TIM6_STOP DBGMCU_CR_DBG_TIM6_STOP /*!< TIM6 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM6_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM7_STOP) | |||
| #define LL_DBGMCU_APB1_GRP1_TIM7_STOP DBGMCU_CR_DBG_TIM7_STOP /*!< TIM7 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM7_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM12_STOP) | |||
| #define LL_DBGMCU_APB1_GRP1_TIM12_STOP DBGMCU_CR_DBG_TIM12_STOP /*!< TIM12 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM12_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM13_STOP) | |||
| #define LL_DBGMCU_APB1_GRP1_TIM13_STOP DBGMCU_CR_DBG_TIM13_STOP /*!< TIM13 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM13_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM14_STOP) | |||
| #define LL_DBGMCU_APB1_GRP1_TIM14_STOP DBGMCU_CR_DBG_TIM14_STOP /*!< TIM14 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM14_STOP */ | |||
| #define LL_DBGMCU_APB1_GRP1_WWDG_STOP DBGMCU_CR_DBG_WWDG_STOP /*!< Debug Window Watchdog stopped when Core is halted */ | |||
| #define LL_DBGMCU_APB1_GRP1_IWDG_STOP DBGMCU_CR_DBG_IWDG_STOP /*!< Debug Independent Watchdog stopped when Core is halted */ | |||
| #define LL_DBGMCU_APB1_GRP1_I2C1_STOP DBGMCU_CR_DBG_I2C1_SMBUS_TIMEOUT /*!< I2C1 SMBUS timeout mode stopped when Core is halted */ | |||
| #if defined(DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT) | |||
| #define LL_DBGMCU_APB1_GRP1_I2C2_STOP DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT /*!< I2C2 SMBUS timeout mode stopped when Core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT */ | |||
| #if defined(DBGMCU_CR_DBG_CAN1_STOP) | |||
| #define LL_DBGMCU_APB1_GRP1_CAN1_STOP DBGMCU_CR_DBG_CAN1_STOP /*!< CAN1 debug stopped when Core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_CAN1_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_CAN2_STOP) | |||
| #define LL_DBGMCU_APB1_GRP1_CAN2_STOP DBGMCU_CR_DBG_CAN2_STOP /*!< CAN2 debug stopped when Core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_CAN2_STOP */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup SYSTEM_LL_EC_APB2_GRP1_STOP_IP DBGMCU APB2 GRP1 STOP IP | |||
| * @{ | |||
| */ | |||
| #define LL_DBGMCU_APB2_GRP1_TIM1_STOP DBGMCU_CR_DBG_TIM1_STOP /*!< TIM1 counter stopped when core is halted */ | |||
| #if defined(DBGMCU_CR_DBG_TIM8_STOP) | |||
| #define LL_DBGMCU_APB2_GRP1_TIM8_STOP DBGMCU_CR_DBG_TIM8_STOP /*!< TIM8 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_CAN1_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM9_STOP) | |||
| #define LL_DBGMCU_APB2_GRP1_TIM9_STOP DBGMCU_CR_DBG_TIM9_STOP /*!< TIM9 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM9_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM10_STOP) | |||
| #define LL_DBGMCU_APB2_GRP1_TIM10_STOP DBGMCU_CR_DBG_TIM10_STOP /*!< TIM10 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM10_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM11_STOP) | |||
| #define LL_DBGMCU_APB2_GRP1_TIM11_STOP DBGMCU_CR_DBG_TIM11_STOP /*!< TIM11 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM11_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM15_STOP) | |||
| #define LL_DBGMCU_APB2_GRP1_TIM15_STOP DBGMCU_CR_DBG_TIM15_STOP /*!< TIM15 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM15_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM16_STOP) | |||
| #define LL_DBGMCU_APB2_GRP1_TIM16_STOP DBGMCU_CR_DBG_TIM16_STOP /*!< TIM16 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM16_STOP */ | |||
| #if defined(DBGMCU_CR_DBG_TIM17_STOP) | |||
| #define LL_DBGMCU_APB2_GRP1_TIM17_STOP DBGMCU_CR_DBG_TIM17_STOP /*!< TIM17 counter stopped when core is halted */ | |||
| #endif /* DBGMCU_CR_DBG_TIM17_STOP */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup SYSTEM_LL_EC_LATENCY FLASH LATENCY | |||
| * @{ | |||
| */ | |||
| #if defined(FLASH_ACR_LATENCY) | |||
| #define LL_FLASH_LATENCY_0 0x00000000U /*!< FLASH Zero Latency cycle */ | |||
| #define LL_FLASH_LATENCY_1 FLASH_ACR_LATENCY_0 /*!< FLASH One Latency cycle */ | |||
| #define LL_FLASH_LATENCY_2 FLASH_ACR_LATENCY_1 /*!< FLASH Two wait states */ | |||
| #else | |||
| #endif /* FLASH_ACR_LATENCY */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Exported macro ------------------------------------------------------------*/ | |||
| /* Exported functions --------------------------------------------------------*/ | |||
| /** @defgroup SYSTEM_LL_Exported_Functions SYSTEM Exported Functions | |||
| * @{ | |||
| */ | |||
| /** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Return the device identifier | |||
| * @note For Low Density devices, the device ID is 0x412 | |||
| * @note For Medium Density devices, the device ID is 0x410 | |||
| * @note For High Density devices, the device ID is 0x414 | |||
| * @note For XL Density devices, the device ID is 0x430 | |||
| * @note For Connectivity Line devices, the device ID is 0x418 | |||
| * @rmtoll DBGMCU_IDCODE DEV_ID LL_DBGMCU_GetDeviceID | |||
| * @retval Values between Min_Data=0x00 and Max_Data=0xFFF | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_DEV_ID)); | |||
| } | |||
| /** | |||
| * @brief Return the device revision identifier | |||
| * @note This field indicates the revision of the device. | |||
| For example, it is read as revA -> 0x1000,for Low Density devices | |||
| For example, it is read as revA -> 0x0000, revB -> 0x2000, revZ -> 0x2001, rev1,2,3,X or Y -> 0x2003,for Medium Density devices | |||
| For example, it is read as revA or 1 -> 0x1000, revZ -> 0x1001,rev1,2,3,X or Y -> 0x1003,for Medium Density devices | |||
| For example, it is read as revA or 1 -> 0x1003,for XL Density devices | |||
| For example, it is read as revA -> 0x1000, revZ -> 0x1001 for Connectivity line devices | |||
| * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID | |||
| * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_REV_ID) >> DBGMCU_IDCODE_REV_ID_Pos); | |||
| } | |||
| /** | |||
| * @brief Enable the Debug Module during SLEEP mode | |||
| * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_EnableDBGSleepMode | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_EnableDBGSleepMode(void) | |||
| { | |||
| SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); | |||
| } | |||
| /** | |||
| * @brief Disable the Debug Module during SLEEP mode | |||
| * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_DisableDBGSleepMode | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_DisableDBGSleepMode(void) | |||
| { | |||
| CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); | |||
| } | |||
| /** | |||
| * @brief Enable the Debug Module during STOP mode | |||
| * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_EnableDBGStopMode | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void) | |||
| { | |||
| SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); | |||
| } | |||
| /** | |||
| * @brief Disable the Debug Module during STOP mode | |||
| * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_DisableDBGStopMode | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void) | |||
| { | |||
| CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); | |||
| } | |||
| /** | |||
| * @brief Enable the Debug Module during STANDBY mode | |||
| * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_EnableDBGStandbyMode | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void) | |||
| { | |||
| SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); | |||
| } | |||
| /** | |||
| * @brief Disable the Debug Module during STANDBY mode | |||
| * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_DisableDBGStandbyMode | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void) | |||
| { | |||
| CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); | |||
| } | |||
| /** | |||
| * @brief Set Trace pin assignment control | |||
| * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_SetTracePinAssignment\n | |||
| * DBGMCU_CR TRACE_MODE LL_DBGMCU_SetTracePinAssignment | |||
| * @param PinAssignment This parameter can be one of the following values: | |||
| * @arg @ref LL_DBGMCU_TRACE_NONE | |||
| * @arg @ref LL_DBGMCU_TRACE_ASYNCH | |||
| * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1 | |||
| * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2 | |||
| * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4 | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_SetTracePinAssignment(uint32_t PinAssignment) | |||
| { | |||
| MODIFY_REG(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE, PinAssignment); | |||
| } | |||
| /** | |||
| * @brief Get Trace pin assignment control | |||
| * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_GetTracePinAssignment\n | |||
| * DBGMCU_CR TRACE_MODE LL_DBGMCU_GetTracePinAssignment | |||
| * @retval Returned value can be one of the following values: | |||
| * @arg @ref LL_DBGMCU_TRACE_NONE | |||
| * @arg @ref LL_DBGMCU_TRACE_ASYNCH | |||
| * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1 | |||
| * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2 | |||
| * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4 | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_DBGMCU_GetTracePinAssignment(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE)); | |||
| } | |||
| /** | |||
| * @brief Freeze APB1 peripherals (group1 peripherals) | |||
| * @rmtoll DBGMCU_CR_APB1 DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM12_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM13_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_CAN1_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_CAN2_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph | |||
| * @param Periphs This parameter can be a combination of the following values: | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM12_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_CAN1_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_CAN2_STOP (*) | |||
| * | |||
| * (*) value not defined in all devices. | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs) | |||
| { | |||
| SET_BIT(DBGMCU->CR, Periphs); | |||
| } | |||
| /** | |||
| * @brief Unfreeze APB1 peripherals (group1 peripherals) | |||
| * @rmtoll DBGMCU_CR_APB1 DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM12_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM13_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_CAN1_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n | |||
| * DBGMCU_CR_APB1 DBG_CAN2_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph | |||
| * @param Periphs This parameter can be a combination of the following values: | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM12_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_CAN1_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB1_GRP1_CAN2_STOP (*) | |||
| * | |||
| * (*) value not defined in all devices. | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs) | |||
| { | |||
| CLEAR_BIT(DBGMCU->CR, Periphs); | |||
| } | |||
| /** | |||
| * @brief Freeze APB2 peripherals | |||
| * @rmtoll DBGMCU_CR_APB2 DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM8_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM9_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM10_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM11_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM15_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph | |||
| * @param Periphs This parameter can be a combination of the following values: | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP (*) | |||
| * | |||
| * (*) value not defined in all devices. | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs) | |||
| { | |||
| SET_BIT(DBGMCU->CR, Periphs); | |||
| } | |||
| /** | |||
| * @brief Unfreeze APB2 peripherals | |||
| * @rmtoll DBGMCU_CR_APB2 DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM8_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM9_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM10_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM11_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM15_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n | |||
| * DBGMCU_CR_APB2 DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph | |||
| * @param Periphs This parameter can be a combination of the following values: | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP (*) | |||
| * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP (*) | |||
| * | |||
| * (*) value not defined in all devices. | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs) | |||
| { | |||
| CLEAR_BIT(DBGMCU->CR, Periphs); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| #if defined(FLASH_ACR_LATENCY) | |||
| /** @defgroup SYSTEM_LL_EF_FLASH FLASH | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Set FLASH Latency | |||
| * @rmtoll FLASH_ACR LATENCY LL_FLASH_SetLatency | |||
| * @param Latency This parameter can be one of the following values: | |||
| * @arg @ref LL_FLASH_LATENCY_0 | |||
| * @arg @ref LL_FLASH_LATENCY_1 | |||
| * @arg @ref LL_FLASH_LATENCY_2 | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency) | |||
| { | |||
| MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency); | |||
| } | |||
| /** | |||
| * @brief Get FLASH Latency | |||
| * @rmtoll FLASH_ACR LATENCY LL_FLASH_GetLatency | |||
| * @retval Returned value can be one of the following values: | |||
| * @arg @ref LL_FLASH_LATENCY_0 | |||
| * @arg @ref LL_FLASH_LATENCY_1 | |||
| * @arg @ref LL_FLASH_LATENCY_2 | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_FLASH_GetLatency(void) | |||
| { | |||
| return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY)); | |||
| } | |||
| /** | |||
| * @brief Enable Prefetch | |||
| * @rmtoll FLASH_ACR PRFTBE LL_FLASH_EnablePrefetch | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_FLASH_EnablePrefetch(void) | |||
| { | |||
| SET_BIT(FLASH->ACR, FLASH_ACR_PRFTBE); | |||
| } | |||
| /** | |||
| * @brief Disable Prefetch | |||
| * @rmtoll FLASH_ACR PRFTBE LL_FLASH_DisablePrefetch | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_FLASH_DisablePrefetch(void) | |||
| { | |||
| CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTBE); | |||
| } | |||
| /** | |||
| * @brief Check if Prefetch buffer is enabled | |||
| * @rmtoll FLASH_ACR PRFTBS LL_FLASH_IsPrefetchEnabled | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void) | |||
| { | |||
| return (READ_BIT(FLASH->ACR, FLASH_ACR_PRFTBS) == (FLASH_ACR_PRFTBS)); | |||
| } | |||
| #endif /* FLASH_ACR_LATENCY */ | |||
| /** | |||
| * @brief Enable Flash Half Cycle Access | |||
| * @rmtoll FLASH_ACR HLFCYA LL_FLASH_EnableHalfCycleAccess | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_FLASH_EnableHalfCycleAccess(void) | |||
| { | |||
| SET_BIT(FLASH->ACR, FLASH_ACR_HLFCYA); | |||
| } | |||
| /** | |||
| * @brief Disable Flash Half Cycle Access | |||
| * @rmtoll FLASH_ACR HLFCYA LL_FLASH_DisableHalfCycleAccess | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_FLASH_DisableHalfCycleAccess(void) | |||
| { | |||
| CLEAR_BIT(FLASH->ACR, FLASH_ACR_HLFCYA); | |||
| } | |||
| /** | |||
| * @brief Check if Flash Half Cycle Access is enabled or not | |||
| * @rmtoll FLASH_ACR HLFCYA LL_FLASH_IsHalfCycleAccessEnabled | |||
| * @retval State of bit (1 or 0). | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_FLASH_IsHalfCycleAccessEnabled(void) | |||
| { | |||
| return (READ_BIT(FLASH->ACR, FLASH_ACR_HLFCYA) == (FLASH_ACR_HLFCYA)); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #endif /* defined (FLASH) || defined (DBGMCU) */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #ifdef __cplusplus | |||
| } | |||
| #endif | |||
| #endif /* __STM32F1xx_LL_SYSTEM_H */ | |||
| @ -0,0 +1,270 @@ | |||
| /** | |||
| ****************************************************************************** | |||
| * @file stm32f1xx_ll_utils.h | |||
| * @author MCD Application Team | |||
| * @brief Header file of UTILS LL module. | |||
| ****************************************************************************** | |||
| * @attention | |||
| * | |||
| * Copyright (c) 2016 STMicroelectronics. | |||
| * All rights reserved. | |||
| * | |||
| * This software is licensed under terms that can be found in the LICENSE file | |||
| * in the root directory of this software component. | |||
| * If no LICENSE file comes with this software, it is provided AS-IS. | |||
| * | |||
| ****************************************************************************** | |||
| @verbatim | |||
| ============================================================================== | |||
| ##### How to use this driver ##### | |||
| ============================================================================== | |||
| [..] | |||
| The LL UTILS driver contains a set of generic APIs that can be | |||
| used by user: | |||
| (+) Device electronic signature | |||
| (+) Timing functions | |||
| (+) PLL configuration functions | |||
| @endverbatim | |||
| ****************************************************************************** | |||
| */ | |||
| /* Define to prevent recursive inclusion -------------------------------------*/ | |||
| #ifndef __STM32F1xx_LL_UTILS_H | |||
| #define __STM32F1xx_LL_UTILS_H | |||
| #ifdef __cplusplus | |||
| extern "C" { | |||
| #endif | |||
| /* Includes ------------------------------------------------------------------*/ | |||
| #include "stm32f1xx.h" | |||
| /** @addtogroup STM32F1xx_LL_Driver | |||
| * @{ | |||
| */ | |||
| /** @defgroup UTILS_LL UTILS | |||
| * @{ | |||
| */ | |||
| /* Private types -------------------------------------------------------------*/ | |||
| /* Private variables ---------------------------------------------------------*/ | |||
| /* Private constants ---------------------------------------------------------*/ | |||
| /** @defgroup UTILS_LL_Private_Constants UTILS Private Constants | |||
| * @{ | |||
| */ | |||
| /* Max delay can be used in LL_mDelay */ | |||
| #define LL_MAX_DELAY 0xFFFFFFFFU | |||
| /** | |||
| * @brief Unique device ID register base address | |||
| */ | |||
| #define UID_BASE_ADDRESS UID_BASE | |||
| /** | |||
| * @brief Flash size data register base address | |||
| */ | |||
| #define FLASHSIZE_BASE_ADDRESS FLASHSIZE_BASE | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Private macros ------------------------------------------------------------*/ | |||
| /** @defgroup UTILS_LL_Private_Macros UTILS Private Macros | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Exported types ------------------------------------------------------------*/ | |||
| /** @defgroup UTILS_LL_ES_INIT UTILS Exported structures | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief UTILS PLL structure definition | |||
| */ | |||
| typedef struct | |||
| { | |||
| uint32_t PLLMul; /*!< Multiplication factor for PLL VCO input clock. | |||
| This parameter can be a value of @ref RCC_LL_EC_PLL_MUL | |||
| This feature can be modified afterwards using unitary function | |||
| @ref LL_RCC_PLL_ConfigDomain_SYS(). */ | |||
| uint32_t Prediv; /*!< Division factor for HSE used as PLL clock source. | |||
| This parameter can be a value of @ref RCC_LL_EC_PREDIV_DIV | |||
| This feature can be modified afterwards using unitary function | |||
| @ref LL_RCC_PLL_ConfigDomain_SYS(). */ | |||
| } LL_UTILS_PLLInitTypeDef; | |||
| /** | |||
| * @brief UTILS System, AHB and APB buses clock configuration structure definition | |||
| */ | |||
| typedef struct | |||
| { | |||
| uint32_t AHBCLKDivider; /*!< The AHB clock (HCLK) divider. This clock is derived from the system clock (SYSCLK). | |||
| This parameter can be a value of @ref RCC_LL_EC_SYSCLK_DIV | |||
| This feature can be modified afterwards using unitary function | |||
| @ref LL_RCC_SetAHBPrescaler(). */ | |||
| uint32_t APB1CLKDivider; /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK). | |||
| This parameter can be a value of @ref RCC_LL_EC_APB1_DIV | |||
| This feature can be modified afterwards using unitary function | |||
| @ref LL_RCC_SetAPB1Prescaler(). */ | |||
| uint32_t APB2CLKDivider; /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK). | |||
| This parameter can be a value of @ref RCC_LL_EC_APB2_DIV | |||
| This feature can be modified afterwards using unitary function | |||
| @ref LL_RCC_SetAPB2Prescaler(). */ | |||
| } LL_UTILS_ClkInitTypeDef; | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Exported constants --------------------------------------------------------*/ | |||
| /** @defgroup UTILS_LL_Exported_Constants UTILS Exported Constants | |||
| * @{ | |||
| */ | |||
| /** @defgroup UTILS_EC_HSE_BYPASS HSE Bypass activation | |||
| * @{ | |||
| */ | |||
| #define LL_UTILS_HSEBYPASS_OFF 0x00000000U /*!< HSE Bypass is not enabled */ | |||
| #define LL_UTILS_HSEBYPASS_ON 0x00000001U /*!< HSE Bypass is enabled */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /* Exported macro ------------------------------------------------------------*/ | |||
| /* Exported functions --------------------------------------------------------*/ | |||
| /** @defgroup UTILS_LL_Exported_Functions UTILS Exported Functions | |||
| * @{ | |||
| */ | |||
| /** @defgroup UTILS_EF_DEVICE_ELECTRONIC_SIGNATURE DEVICE ELECTRONIC SIGNATURE | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief Get Word0 of the unique device identifier (UID based on 96 bits) | |||
| * @retval UID[31:0] | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_GetUID_Word0(void) | |||
| { | |||
| return (uint32_t)(READ_REG(*((uint32_t *)UID_BASE_ADDRESS))); | |||
| } | |||
| /** | |||
| * @brief Get Word1 of the unique device identifier (UID based on 96 bits) | |||
| * @retval UID[63:32] | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_GetUID_Word1(void) | |||
| { | |||
| return (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE_ADDRESS + 4U)))); | |||
| } | |||
| /** | |||
| * @brief Get Word2 of the unique device identifier (UID based on 96 bits) | |||
| * @retval UID[95:64] | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_GetUID_Word2(void) | |||
| { | |||
| return (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE_ADDRESS + 8U)))); | |||
| } | |||
| /** | |||
| * @brief Get Flash memory size | |||
| * @note This bitfield indicates the size of the device Flash memory expressed in | |||
| * Kbytes. As an example, 0x040 corresponds to 64 Kbytes. | |||
| * @retval FLASH_SIZE[15:0]: Flash memory size | |||
| */ | |||
| __STATIC_INLINE uint32_t LL_GetFlashSize(void) | |||
| { | |||
| return (uint16_t)(READ_REG(*((uint32_t *)FLASHSIZE_BASE_ADDRESS))); | |||
| } | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup UTILS_LL_EF_DELAY DELAY | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @brief This function configures the Cortex-M SysTick source of the time base. | |||
| * @param HCLKFrequency HCLK frequency in Hz (can be calculated thanks to RCC helper macro) | |||
| * @note When a RTOS is used, it is recommended to avoid changing the SysTick | |||
| * configuration by calling this function, for a delay use rather osDelay RTOS service. | |||
| * @param Ticks Number of ticks | |||
| * @retval None | |||
| */ | |||
| __STATIC_INLINE void LL_InitTick(uint32_t HCLKFrequency, uint32_t Ticks) | |||
| { | |||
| /* Configure the SysTick to have interrupt in 1ms time base */ | |||
| SysTick->LOAD = (uint32_t)((HCLKFrequency / Ticks) - 1UL); /* set reload register */ | |||
| SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ | |||
| SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | | |||
| SysTick_CTRL_ENABLE_Msk; /* Enable the Systick Timer */ | |||
| } | |||
| void LL_Init1msTick(uint32_t HCLKFrequency); | |||
| void LL_mDelay(uint32_t Delay); | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup UTILS_EF_SYSTEM SYSTEM | |||
| * @{ | |||
| */ | |||
| void LL_SetSystemCoreClock(uint32_t HCLKFrequency); | |||
| #if defined(FLASH_ACR_LATENCY) | |||
| ErrorStatus LL_SetFlashLatency(uint32_t Frequency); | |||
| #endif /* FLASH_ACR_LATENCY */ | |||
| ErrorStatus LL_PLL_ConfigSystemClock_HSI(LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, | |||
| LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); | |||
| ErrorStatus LL_PLL_ConfigSystemClock_HSE(uint32_t HSEFrequency, uint32_t HSEBypass, | |||
| LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); | |||
| #if defined(RCC_PLL2_SUPPORT) | |||
| ErrorStatus LL_PLL_ConfigSystemClock_PLL2(uint32_t HSEFrequency, uint32_t HSEBypass, LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, | |||
| LL_UTILS_PLLInitTypeDef *UTILS_PLL2InitStruct, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); | |||
| #endif /* RCC_PLL2_SUPPORT */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| #ifdef __cplusplus | |||
| } | |||
| #endif | |||
| #endif /* __STM32F1xx_LL_UTILS_H */ | |||
| @ -0,0 +1,6 @@ | |||
| This software component is provided to you as part of a software package and | |||
| applicable license terms are in the Package_license file. If you received this | |||
| software component outside of a package or without applicable license terms, | |||
| the terms of the BSD-3-Clause license shall apply. | |||
| You may obtain a copy of the BSD-3-Clause at: | |||
| https://opensource.org/licenses/BSD-3-Clause | |||
| @ -1,7 +0,0 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <workspace> | |||
| <project> | |||
| <path>$WS_DIR$\F103C8T6_DIGI_USB.ewp</path> | |||
| </project> | |||
| <batchBuild /> | |||
| </workspace> | |||
| @ -1,393 +0,0 @@ | |||
| ;******************** (C) COPYRIGHT 2017 STMicroelectronics ******************** | |||
| ;* File Name : startup_stm32f103xb.s | |||
| ;* Author : MCD Application Team | |||
| ;* Description : STM32F103xB Performance Line Devices vector table for | |||
| ;* EWARM toolchain. | |||
| ;* This module performs: | |||
| ;* - Set the initial SP | |||
| ;* - Configure the clock system | |||
| ;* - Set the initial PC == __iar_program_start, | |||
| ;* - Set the vector table entries with the exceptions ISR | |||
| ;* address. | |||
| ;* After Reset the Cortex-M3 processor is in Thread mode, | |||
| ;* priority is Privileged, and the Stack is set to Main. | |||
| ;******************************************************************************* | |||
| ;* @attention | |||
| ;* | |||
| ;* <h2><center>© Copyright (c) 2017 STMicroelectronics. | |||
| ;* All rights reserved.</center></h2> | |||
| ;* | |||
| ;* This software component is licensed by ST under BSD 3-Clause license, | |||
| ;* the "License"; You may not use this file except in compliance with the | |||
| ;* License. You may obtain a copy of the License at: | |||
| ;* opensource.org/licenses/BSD-3-Clause | |||
| ;* | |||
| ;******************************************************************************* | |||
| ; | |||
| ; | |||
| ; The modules in this file are included in the libraries, and may be replaced | |||
| ; by any user-defined modules that define the PUBLIC symbol _program_start or | |||
| ; a user defined start symbol. | |||
| ; To override the cstartup defined in the library, simply add your modified | |||
| ; version to the workbench project. | |||
| ; | |||
| ; The vector table is normally located at address 0. | |||
| ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. | |||
| ; The name "__vector_table" has special meaning for C-SPY: | |||
| ; it is where the SP start value is found, and the NVIC vector | |||
| ; table register (VTOR) is initialized to this address if != 0. | |||
| ; | |||
| ; Cortex-M version | |||
| ; | |||
| MODULE ?cstartup | |||
| ;; Forward declaration of sections. | |||
| SECTION CSTACK:DATA:NOROOT(3) | |||
| SECTION .intvec:CODE:NOROOT(2) | |||
| EXTERN __iar_program_start | |||
| EXTERN SystemInit | |||
| PUBLIC __vector_table | |||
| DATA | |||
| __vector_table | |||
| DCD sfe(CSTACK) | |||
| DCD Reset_Handler ; Reset Handler | |||
| DCD NMI_Handler ; NMI Handler | |||
| DCD HardFault_Handler ; Hard Fault Handler | |||
| DCD MemManage_Handler ; MPU Fault Handler | |||
| DCD BusFault_Handler ; Bus Fault Handler | |||
| DCD UsageFault_Handler ; Usage Fault Handler | |||
| DCD 0 ; Reserved | |||
| DCD 0 ; Reserved | |||
| DCD 0 ; Reserved | |||
| DCD 0 ; Reserved | |||
| DCD SVC_Handler ; SVCall Handler | |||
| DCD DebugMon_Handler ; Debug Monitor Handler | |||
| DCD 0 ; Reserved | |||
| DCD PendSV_Handler ; PendSV Handler | |||
| DCD SysTick_Handler ; SysTick Handler | |||
| ; External Interrupts | |||
| DCD WWDG_IRQHandler ; Window Watchdog | |||
| DCD PVD_IRQHandler ; PVD through EXTI Line detect | |||
| DCD TAMPER_IRQHandler ; Tamper | |||
| DCD RTC_IRQHandler ; RTC | |||
| DCD FLASH_IRQHandler ; Flash | |||
| DCD RCC_IRQHandler ; RCC | |||
| DCD EXTI0_IRQHandler ; EXTI Line 0 | |||
| DCD EXTI1_IRQHandler ; EXTI Line 1 | |||
| DCD EXTI2_IRQHandler ; EXTI Line 2 | |||
| DCD EXTI3_IRQHandler ; EXTI Line 3 | |||
| DCD EXTI4_IRQHandler ; EXTI Line 4 | |||
| DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 | |||
| DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 | |||
| DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 | |||
| DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 | |||
| DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 | |||
| DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 | |||
| DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 | |||
| DCD ADC1_2_IRQHandler ; ADC1 & ADC2 | |||
| DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX | |||
| DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 | |||
| DCD CAN1_RX1_IRQHandler ; CAN1 RX1 | |||
| DCD CAN1_SCE_IRQHandler ; CAN1 SCE | |||
| DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 | |||
| DCD TIM1_BRK_IRQHandler ; TIM1 Break | |||
| DCD TIM1_UP_IRQHandler ; TIM1 Update | |||
| DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation | |||
| DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare | |||
| DCD TIM2_IRQHandler ; TIM2 | |||
| DCD TIM3_IRQHandler ; TIM3 | |||
| DCD TIM4_IRQHandler ; TIM4 | |||
| DCD I2C1_EV_IRQHandler ; I2C1 Event | |||
| DCD I2C1_ER_IRQHandler ; I2C1 Error | |||
| DCD I2C2_EV_IRQHandler ; I2C2 Event | |||
| DCD I2C2_ER_IRQHandler ; I2C2 Error | |||
| DCD SPI1_IRQHandler ; SPI1 | |||
| DCD SPI2_IRQHandler ; SPI2 | |||
| DCD USART1_IRQHandler ; USART1 | |||
| DCD USART2_IRQHandler ; USART2 | |||
| DCD USART3_IRQHandler ; USART3 | |||
| DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 | |||
| DCD RTC_Alarm_IRQHandler ; RTC Alarm through EXTI Line | |||
| DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend | |||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
| ;; | |||
| ;; Default interrupt handlers. | |||
| ;; | |||
| THUMB | |||
| PUBWEAK Reset_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(2) | |||
| Reset_Handler | |||
| LDR R0, =SystemInit | |||
| BLX R0 | |||
| LDR R0, =__iar_program_start | |||
| BX R0 | |||
| PUBWEAK NMI_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| NMI_Handler | |||
| B NMI_Handler | |||
| PUBWEAK HardFault_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| HardFault_Handler | |||
| B HardFault_Handler | |||
| PUBWEAK MemManage_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| MemManage_Handler | |||
| B MemManage_Handler | |||
| PUBWEAK BusFault_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| BusFault_Handler | |||
| B BusFault_Handler | |||
| PUBWEAK UsageFault_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| UsageFault_Handler | |||
| B UsageFault_Handler | |||
| PUBWEAK SVC_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| SVC_Handler | |||
| B SVC_Handler | |||
| PUBWEAK DebugMon_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| DebugMon_Handler | |||
| B DebugMon_Handler | |||
| PUBWEAK PendSV_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| PendSV_Handler | |||
| B PendSV_Handler | |||
| PUBWEAK SysTick_Handler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| SysTick_Handler | |||
| B SysTick_Handler | |||
| PUBWEAK WWDG_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| WWDG_IRQHandler | |||
| B WWDG_IRQHandler | |||
| PUBWEAK PVD_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| PVD_IRQHandler | |||
| B PVD_IRQHandler | |||
| PUBWEAK TAMPER_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| TAMPER_IRQHandler | |||
| B TAMPER_IRQHandler | |||
| PUBWEAK RTC_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| RTC_IRQHandler | |||
| B RTC_IRQHandler | |||
| PUBWEAK FLASH_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| FLASH_IRQHandler | |||
| B FLASH_IRQHandler | |||
| PUBWEAK RCC_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| RCC_IRQHandler | |||
| B RCC_IRQHandler | |||
| PUBWEAK EXTI0_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| EXTI0_IRQHandler | |||
| B EXTI0_IRQHandler | |||
| PUBWEAK EXTI1_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| EXTI1_IRQHandler | |||
| B EXTI1_IRQHandler | |||
| PUBWEAK EXTI2_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| EXTI2_IRQHandler | |||
| B EXTI2_IRQHandler | |||
| PUBWEAK EXTI3_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| EXTI3_IRQHandler | |||
| B EXTI3_IRQHandler | |||
| PUBWEAK EXTI4_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| EXTI4_IRQHandler | |||
| B EXTI4_IRQHandler | |||
| PUBWEAK DMA1_Channel1_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| DMA1_Channel1_IRQHandler | |||
| B DMA1_Channel1_IRQHandler | |||
| PUBWEAK DMA1_Channel2_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| DMA1_Channel2_IRQHandler | |||
| B DMA1_Channel2_IRQHandler | |||
| PUBWEAK DMA1_Channel3_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| DMA1_Channel3_IRQHandler | |||
| B DMA1_Channel3_IRQHandler | |||
| PUBWEAK DMA1_Channel4_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| DMA1_Channel4_IRQHandler | |||
| B DMA1_Channel4_IRQHandler | |||
| PUBWEAK DMA1_Channel5_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| DMA1_Channel5_IRQHandler | |||
| B DMA1_Channel5_IRQHandler | |||
| PUBWEAK DMA1_Channel6_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| DMA1_Channel6_IRQHandler | |||
| B DMA1_Channel6_IRQHandler | |||
| PUBWEAK DMA1_Channel7_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| DMA1_Channel7_IRQHandler | |||
| B DMA1_Channel7_IRQHandler | |||
| PUBWEAK ADC1_2_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| ADC1_2_IRQHandler | |||
| B ADC1_2_IRQHandler | |||
| PUBWEAK USB_HP_CAN1_TX_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| USB_HP_CAN1_TX_IRQHandler | |||
| B USB_HP_CAN1_TX_IRQHandler | |||
| PUBWEAK USB_LP_CAN1_RX0_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| USB_LP_CAN1_RX0_IRQHandler | |||
| B USB_LP_CAN1_RX0_IRQHandler | |||
| PUBWEAK CAN1_RX1_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| CAN1_RX1_IRQHandler | |||
| B CAN1_RX1_IRQHandler | |||
| PUBWEAK CAN1_SCE_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| CAN1_SCE_IRQHandler | |||
| B CAN1_SCE_IRQHandler | |||
| PUBWEAK EXTI9_5_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| EXTI9_5_IRQHandler | |||
| B EXTI9_5_IRQHandler | |||
| PUBWEAK TIM1_BRK_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| TIM1_BRK_IRQHandler | |||
| B TIM1_BRK_IRQHandler | |||
| PUBWEAK TIM1_UP_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| TIM1_UP_IRQHandler | |||
| B TIM1_UP_IRQHandler | |||
| PUBWEAK TIM1_TRG_COM_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| TIM1_TRG_COM_IRQHandler | |||
| B TIM1_TRG_COM_IRQHandler | |||
| PUBWEAK TIM1_CC_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| TIM1_CC_IRQHandler | |||
| B TIM1_CC_IRQHandler | |||
| PUBWEAK TIM2_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| TIM2_IRQHandler | |||
| B TIM2_IRQHandler | |||
| PUBWEAK TIM3_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| TIM3_IRQHandler | |||
| B TIM3_IRQHandler | |||
| PUBWEAK TIM4_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| TIM4_IRQHandler | |||
| B TIM4_IRQHandler | |||
| PUBWEAK I2C1_EV_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| I2C1_EV_IRQHandler | |||
| B I2C1_EV_IRQHandler | |||
| PUBWEAK I2C1_ER_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| I2C1_ER_IRQHandler | |||
| B I2C1_ER_IRQHandler | |||
| PUBWEAK I2C2_EV_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| I2C2_EV_IRQHandler | |||
| B I2C2_EV_IRQHandler | |||
| PUBWEAK I2C2_ER_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| I2C2_ER_IRQHandler | |||
| B I2C2_ER_IRQHandler | |||
| PUBWEAK SPI1_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| SPI1_IRQHandler | |||
| B SPI1_IRQHandler | |||
| PUBWEAK SPI2_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| SPI2_IRQHandler | |||
| B SPI2_IRQHandler | |||
| PUBWEAK USART1_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| USART1_IRQHandler | |||
| B USART1_IRQHandler | |||
| PUBWEAK USART2_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| USART2_IRQHandler | |||
| B USART2_IRQHandler | |||
| PUBWEAK USART3_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| USART3_IRQHandler | |||
| B USART3_IRQHandler | |||
| PUBWEAK EXTI15_10_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| EXTI15_10_IRQHandler | |||
| B EXTI15_10_IRQHandler | |||
| PUBWEAK RTC_Alarm_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| RTC_Alarm_IRQHandler | |||
| B RTC_Alarm_IRQHandler | |||
| PUBWEAK USBWakeUp_IRQHandler | |||
| SECTION .text:CODE:REORDER:NOROOT(1) | |||
| USBWakeUp_IRQHandler | |||
| B USBWakeUp_IRQHandler | |||
| END | |||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | |||
| @ -1,31 +0,0 @@ | |||
| /*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
| /*-Editor annotation file-*/ | |||
| /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
| /*-Specials-*/ | |||
| define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |||
| /*-Memory Regions-*/ | |||
| define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; | |||
| define symbol __ICFEDIT_region_ROM_end__ = 0x0801FFFF; | |||
| define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |||
| define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; | |||
| /*-Sizes-*/ | |||
| define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
| define symbol __ICFEDIT_size_heap__ = 0x200; | |||
| /**** End of ICF editor section. ###ICF###*/ | |||
| define memory mem with size = 4G; | |||
| define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
| define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
| define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
| define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
| initialize by copy { readwrite }; | |||
| do not initialize { section .noinit }; | |||
| place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
| place in ROM_region { readonly }; | |||
| place in RAM_region { readwrite, | |||
| block CSTACK, block HEAP }; | |||
| @ -1,31 +0,0 @@ | |||
| /*###ICF### Section handled by ICF editor, don't touch! ****/ | |||
| /*-Editor annotation file-*/ | |||
| /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |||
| /*-Specials-*/ | |||
| define symbol __ICFEDIT_intvec_start__ = 0x20000000; | |||
| /*-Memory Regions-*/ | |||
| define symbol __ICFEDIT_region_ROM_start__ = 0x20000000 ; | |||
| define symbol __ICFEDIT_region_ROM_end__ = 0x200013FF; | |||
| define symbol __ICFEDIT_region_RAM_start__ = 0x20001400; | |||
| define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF; | |||
| /*-Sizes-*/ | |||
| define symbol __ICFEDIT_size_cstack__ = 0x400; | |||
| define symbol __ICFEDIT_size_heap__ = 0x200; | |||
| /**** End of ICF editor section. ###ICF###*/ | |||
| define memory mem with size = 4G; | |||
| define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | |||
| define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | |||
| define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |||
| define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |||
| initialize by copy { readwrite }; | |||
| do not initialize { section .noinit }; | |||
| place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |||
| place in ROM_region { readonly }; | |||
| place in RAM_region { readwrite, | |||
| block CSTACK, block HEAP }; | |||
| @ -1,35 +0,0 @@ | |||
| # This is an F103C8T6_DIGI_USB board with a single STM32F103C8Tx chip | |||
| # | |||
| # Generated by System Workbench for STM32 | |||
| # Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s) | |||
| source [find interface/stlink.cfg] | |||
| set WORKAREASIZE 0x5000 | |||
| transport select "hla_swd" | |||
| set CHIPNAME STM32F103C8Tx | |||
| set BOARDNAME F103C8T6_DIGI_USB | |||
| # CHIPNAMES state | |||
| set CHIPNAME_CPU0_ACTIVATED 1 | |||
| # Enable debug when in low power modes | |||
| set ENABLE_LOW_POWER 1 | |||
| # Stop Watchdog counters when halt | |||
| set STOP_WATCHDOG 1 | |||
| # STlink Debug clock frequency | |||
| set CLOCK_FREQ 8000 | |||
| # use software system reset | |||
| reset_config none | |||
| set CONNECT_UNDER_RESET 0 | |||
| # BCTM CPU variables | |||
| source [find target/stm32f1x.cfg] | |||
| @ -1,35 +0,0 @@ | |||
| # This is an F103C8T6_DIGI_USB board with a single STM32F103C8Tx chip | |||
| # | |||
| # Generated by System Workbench for STM32 | |||
| # Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s) | |||
| source [find interface/stlink.cfg] | |||
| set WORKAREASIZE 0x5000 | |||
| transport select "hla_swd" | |||
| set CHIPNAME STM32F103C8Tx | |||
| set BOARDNAME F103C8T6_DIGI_USB | |||
| # CHIPNAMES state | |||
| set CHIPNAME_CPU0_ACTIVATED 1 | |||
| # Enable debug when in low power modes | |||
| set ENABLE_LOW_POWER 1 | |||
| # Stop Watchdog counters when halt | |||
| set STOP_WATCHDOG 1 | |||
| # STlink Debug clock frequency | |||
| set CLOCK_FREQ 8000 | |||
| # use software system reset | |||
| reset_config none | |||
| set CONNECT_UNDER_RESET 0 | |||
| # BCTM CPU variables | |||
| source [find target/stm32f1x.cfg] | |||
| @ -1,18 +0,0 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE targetDefinitions [ | |||
| <!ELEMENT targetDefinitions (board)> | |||
| <!ELEMENT board (name,dbgIF+,dbgDEV,mcuId)> | |||
| <!ELEMENT name (#PCDATA)> | |||
| <!ELEMENT dbgIF (#PCDATA)> | |||
| <!ELEMENT dbgDEV (#PCDATA)> | |||
| <!ELEMENT mcuId (#PCDATA)> | |||
| <!ATTLIST board id CDATA #REQUIRED> | |||
| ]> | |||
| <targetDefinitions> | |||
| <board id="F103C8T6_DIGI_USB"> | |||
| <name>F103C8T6_DIGI_USB</name> | |||
| <dbgIF>JTAG</dbgIF> | |||
| <dbgDEV>ST-Link</dbgDEV> | |||
| <mcuId>stm32f103c8tx</mcuId> | |||
| </board> | |||
| </targetDefinitions> | |||