inital commit
This commit is contained in:
+174
@@ -0,0 +1,174 @@
|
||||
<?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="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.43085415">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.43085415" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration 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.43085415" 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.43085415." name="/" resourcePath="">
|
||||
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.1109510031" name="MCU ARM GCC" nonInternalBuilderId="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug">
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.761450567" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32G431KBTx" valueType="string"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.794133576" 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.300595164" 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.fpu.2004136281" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv4-sp-d16" valueType="enumerated"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.978371798" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1025354302" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="NUCLEO-G431KB" valueType="string"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1162795069" 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.5 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || NUCLEO-G431KB || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Inc || || || STM32G431KBTx | STM32 | STM32G4 | NUCLEO_G431KB || || Src | Startup | Inc || || || ${workspace_loc:/${ProjName}/STM32G431KBTX_FLASH.ld} || true || NonSecure || || || || None || " valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1763507620" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
|
||||
<builder id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.741916204" managedBuildOn="false" 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.1187446961" 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.1524807124" 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.g3" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.133236771" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="DEBUG"/>
|
||||
</option>
|
||||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1390301508" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.351938269" 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.1045549308" 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.g3" valueType="enumerated"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.1760707267" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.509511855" 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="STM32G431KBTx"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
<listOptionValue builtIn="false" value="STM32G4"/>
|
||||
<listOptionValue builtIn="false" value="NUCLEO_G431KB"/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.1387214908" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath"/>
|
||||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.970430287" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
|
||||
</tool>
|
||||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1867071021" 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.1055631674" 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.472258621" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false"/>
|
||||
</tool>
|
||||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.1521271156" 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.1836885141" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32G431KBTX_FLASH.ld}" valueType="string"/>
|
||||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.367169009" 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="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.93075999" 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.1079770202" 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.2018839348" 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.823397583" 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.1990807025" 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.463680753" 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.1540545168" 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.1591029960" 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.1852199179" 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=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1504690380">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1504690380" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration 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.1504690380" 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.1504690380." name="/" resourcePath="">
|
||||
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.1787991196" 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.1074993457" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32G431KBTx" valueType="string"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.315346456" 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.859723410" 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.fpu.1534050905" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv4-sp-d16" valueType="enumerated"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.1294428036" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.522027964" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="NUCLEO-G431KB" valueType="string"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.243183032" 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.5 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || NUCLEO-G431KB || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Inc || || || STM32G431KBTx | STM32 | STM32G4 | NUCLEO_G431KB || || Src | Startup | Inc || || || ${workspace_loc:/${ProjName}/STM32G431KBTX_FLASH.ld} || true || NonSecure || || || || None || " valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.608023379" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
|
||||
<builder buildPath="${workspace_loc:/task2}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.114962068" 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.1543486940" 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.64275184" 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.1070977064" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1034471659" 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.635270561" 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.1605886567" 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.os" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1998226992" 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="STM32G431KBTx"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
<listOptionValue builtIn="false" value="STM32G4"/>
|
||||
<listOptionValue builtIn="false" value="NUCLEO_G431KB"/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.2143684907" 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="../Inc"/>
|
||||
</option>
|
||||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.338970644" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
|
||||
</tool>
|
||||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1516704411" 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.148851919" 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.1993419473" 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="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.2133680473" 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.603581359" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32G431KBTX_FLASH.ld}" valueType="string"/>
|
||||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1320086815" 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="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.1714160403" 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.1187835881" 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.1702470287" 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.286153171" 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.1277268639" 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.2101582729" 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.434611973" 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.2129058748" 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.1916448803" 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=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<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="task2.null.446352778" name="task2"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.43085415;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.43085415.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.351938269;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.970430287">
|
||||
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1504690380;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1504690380.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1034471659;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.338970644">
|
||||
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/task2"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Release">
|
||||
<resource resourceType="PROJECT" workspacePath="/task2"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>task2</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>com.st.stm32cube.ide.mcu.MCUProjectNature</nature>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature</nature>
|
||||
<nature>com.st.stm32cube.ide.mcu.MCUManagedMakefileProjectNature</nature>
|
||||
<nature>com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature</nature>
|
||||
<nature>com.st.stm32cube.ide.mcu.MCURootProjectNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,4 @@
|
||||
eclipse.preferences.version=1
|
||||
sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}}
|
||||
svd_custom_file_path=
|
||||
svd_file_path=platform\:/plugin/com.st.stm32cube.ide.mcu.productdb.debug/resources/cmsis/STMicroelectronics_CMSIS_SVD/STM32G431xx.svd
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<project>
|
||||
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.43085415" name="Debug">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
|
||||
</extension>
|
||||
</configuration>
|
||||
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1504690380" name="Release">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="422947886521367905" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
</extension>
|
||||
</configuration>
|
||||
</project>
|
||||
@@ -0,0 +1,74 @@
|
||||
com.st.stm32cube.ide.mcu.ide.oss.source.checker.libnano.problem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Float formatting support\\")"}
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false}
|
||||
org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"}
|
||||
org.eclipse.cdt.codan.checkers.localvarreturn=-Warning
|
||||
org.eclipse.cdt.codan.checkers.localvarreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Returning the address of a local variable\\")"}
|
||||
org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"}
|
||||
org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"}
|
||||
org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.BlacklistProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.BlacklistProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function or method is blacklisted\\")",blacklist\=>()}
|
||||
org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")",checkMacro\=>true}
|
||||
org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()}
|
||||
org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true}
|
||||
org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"}
|
||||
org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Direct float comparison\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Avoid magic numbers\\")",checkArray\=>true,checkOperatorParen\=>true,exceptions\=>(1,0,-1,2,1.0,0.0,-1.0)}
|
||||
org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Multiple variable declaration\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
|
||||
org.eclipse.cdt.codan.internal.checkers.NoDiscardProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.NoDiscardProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return value not evaluated\\")",macro\=>true}
|
||||
org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Miss copy constructor or assignment operator\\")",onlynew\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()}
|
||||
org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Static variable in header file\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol shadowing\\")",paramFuncParameters\=>true}
|
||||
org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true}
|
||||
org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true}
|
||||
org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")}
|
||||
org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"}
|
||||
org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error
|
||||
org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"}
|
||||
@@ -0,0 +1,6 @@
|
||||
doxygen/doxygen_new_line_after_brief=true
|
||||
doxygen/doxygen_use_brief_tag=false
|
||||
doxygen/doxygen_use_javadoc_tags=true
|
||||
doxygen/doxygen_use_pre_tag=false
|
||||
doxygen/doxygen_use_structural_commands=false
|
||||
eclipse.preferences.version=1
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
@@ -0,0 +1,764 @@
|
||||
#*****************************************************************************************
|
||||
# Project: task2 - switch triggered LEDs
|
||||
# File: G431_addr.s
|
||||
#
|
||||
# Language: ASM
|
||||
#
|
||||
# Hardware: STefi v1.1
|
||||
# Processor: STM32G431KBT6U
|
||||
#
|
||||
# Author: Manuel Lederhofer
|
||||
# Datum: 20.08.2015
|
||||
#
|
||||
# Version: 3.0
|
||||
# History:
|
||||
# 20.08.2015 ML create file
|
||||
# 07.12.2018 ML port from MKL05Z32VLC4 to STM32L476RG
|
||||
# 27.02.2019 ML change from absolute addresses to BASE + OFFSET notation and
|
||||
# add more timer modules
|
||||
# 09.03.2022 ML port from STM32F042K6T6 to STM32G431KBT6U
|
||||
#
|
||||
# Status: working
|
||||
#
|
||||
# Description:
|
||||
# Connects assembly addresses for STM32G431 MCU to symbolic register names
|
||||
# used in the datasheets.
|
||||
#
|
||||
# Notes:
|
||||
# - default MCU speed at startup is 16 MHz.
|
||||
#
|
||||
# ToDo:
|
||||
# - none -
|
||||
#*****************************************************************************************
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# MCU Bus Base Addresses
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ APB1_BASE, 0x40000000
|
||||
.equ APB2_BASE, 0x40010000
|
||||
.equ AHB1_BASE, 0x40020000
|
||||
.equ AHB2_BASE, 0x48000000
|
||||
.equ AHB3_BASE, 0xA0000000 //!!! FSMC + QSPI registers = AHB3 ?
|
||||
.equ PPB_BASE, 0xE0000000 /* Cortex M4 with FPU Internal Peripherals */
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# System Configuration Controller
|
||||
#
|
||||
# address space: 0x4001_0000 .. 0x4001_0029
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ SYSCFG_BASE, APB2_BASE
|
||||
|
||||
.equ SYSCFG_MEMRMP, SYSCFG_BASE + 0x00
|
||||
.equ SYSCFG_CFGR1, SYSCFG_BASE + 0x04
|
||||
.equ SYSCFG_EXTICR1, SYSCFG_BASE + 0x08
|
||||
.equ SYSCFG_EXTICR2, SYSCFG_BASE + 0x0C
|
||||
.equ SYSCFG_EXTICR3, SYSCFG_BASE + 0x10
|
||||
.equ SYSCFG_EXTICR4, SYSCFG_BASE + 0x14
|
||||
.equ SYSCFG_SCSR, SYSCFG_BASE + 0x18
|
||||
.equ SYSCFG_CFGR2, SYSCFG_BASE + 0x1C
|
||||
.equ SYSCFG_SWPR, SYSCFG_BASE + 0x20
|
||||
.equ SYSCFG_SKR, SYSCFG_BASE + 0x24
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# Extended Interrupts And Events Controller
|
||||
#
|
||||
# address space: 0x4001_0400 .. 0x4001_07FF
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ EXTI_BASE, APB2_BASE + 0x400
|
||||
|
||||
.equ EXTI_IMR1, EXTI_BASE + 0x00
|
||||
.equ EXTI_EMR1, EXTI_BASE + 0x04
|
||||
.equ EXTI_RTSR1, EXTI_BASE + 0x08
|
||||
.equ EXTI_FTSR1, EXTI_BASE + 0x0C
|
||||
.equ EXTI_SWIER1, EXTI_BASE + 0x10
|
||||
.equ EXTI_PR1, EXTI_BASE + 0x14
|
||||
|
||||
.equ EXTI_IMR2, EXTI_BASE + 0x20
|
||||
.equ EXTI_EMR2, EXTI_BASE + 0x24
|
||||
.equ EXTI_RTSR2, EXTI_BASE + 0x28
|
||||
.equ EXTI_FTSR2, EXTI_BASE + 0x2C
|
||||
.equ EXTI_SWIER2, EXTI_BASE + 0x30
|
||||
.equ EXTI_PR2, EXTI_BASE + 0x34
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# TIM module common configuration
|
||||
#
|
||||
# Every timer has 1 KB address space:
|
||||
#
|
||||
# TIM2 .. TIM7: 0x4000_0000 .. 0x4000_17FF (APB1)
|
||||
# TIM1: 0x4001_2C00 .. 0x4001_2FFF (APB2)
|
||||
# TIM8: 0x4001_3400 .. 0x4001_37FF (APB2)
|
||||
# TIM15 .. TIM17: 0x4001_4000 .. 0x4001_4BFF (APB2)
|
||||
# TIM20: 0x4001_5000 .. 0x4001_53FF (APB2)
|
||||
#
|
||||
# note:
|
||||
# TIM2 + TIM5 are 32 bit timers. All others have a width of 16 bit.
|
||||
# Below, the timers on one line share a common register set description.
|
||||
#
|
||||
# TIM 1, 8, 20 advances control timers
|
||||
# TIM 2, 3, 4, 5 general purpose timers (TIM2/5 = 32 bit)
|
||||
# TIM 15 general purpose timers
|
||||
# TIM 16, 17 general purpose timers
|
||||
# TIM 6, 7 basic timers
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ TIM_CR1_OFFSET, 0x00
|
||||
.equ TIM_CR2_OFFSET, 0x04
|
||||
.equ TIM_SMCR_OFFSET, 0x08
|
||||
.equ TIM_DIER_OFFSET, 0x0C
|
||||
.equ TIM_SR_OFFSET, 0x10
|
||||
.equ TIM_EGR_OFFSET, 0x14
|
||||
.equ TIM_CCMR1_OFFSET, 0x18
|
||||
.equ TIM_CCMR2_OFFSET, 0x1C
|
||||
.equ TIM_CCER_OFFSET, 0x20
|
||||
.equ TIM_CNT_OFFSET, 0x24
|
||||
.equ TIM_PSC_OFFSET, 0x28
|
||||
.equ TIM_ARR_OFFSET, 0x2C
|
||||
.equ TIM_RCR_OFFSET, 0x30
|
||||
.equ TIM_CCR1_OFFSET, 0x34
|
||||
.equ TIM_CCR2_OFFSET, 0x38
|
||||
.equ TIM_CCR3_OFFSET, 0x3C
|
||||
.equ TIM_CCR4_OFFSET, 0x40
|
||||
.equ TIM_BDTR_OFFSET, 0x44
|
||||
.equ TIM_CCR5_OFFSET, 0x48
|
||||
.equ TIM_CCR6_OFFSET, 0x4C
|
||||
.equ TIM_CCMR3_OFFSET, 0x50
|
||||
.equ TIM_DTR2_OFFSET, 0x54
|
||||
.equ TIM_ECR_OFFSET, 0x58
|
||||
.equ TIM_TISEL_OFFSET, 0x5C
|
||||
.equ TIM_AF1_OFFSET, 0x60
|
||||
.equ TIM_AF2_OFFSET, 0x64
|
||||
.equ TIM_OR1_OFFSET, 0x68
|
||||
|
||||
.equ TIM_DCR_OFFSET, 0x3DC
|
||||
.equ TIM_DMAR_OFFSET, 0x3E0
|
||||
|
||||
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
|
||||
|
||||
#--- Genral Purpose Timer - TIM2 / address space: 0x4000_0000 .. 0x4000_03FF
|
||||
|
||||
.equ TIM2_BASE, APB1_BASE
|
||||
|
||||
.equ TIM2_CR1, TIM2_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM2_CR2, TIM2_BASE + TIM_CR2_OFFSET
|
||||
.equ TIM2_SMCR, TIM2_BASE + TIM_SMCR_OFFSET
|
||||
.equ TIM2_DIER, TIM2_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM2_SR, TIM2_BASE + TIM_SR_OFFSET
|
||||
.equ TIM2_EGR, TIM2_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM2_CCMR1, TIM2_BASE + TIM_CCMR1_OFFSET
|
||||
.equ TIM2_CCMR2, TIM2_BASE + TIM_CCMR2_OFFSET
|
||||
.equ TIM2_CCER, TIM2_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM2_CNT, TIM2_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM2_PSC, TIM2_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM2_ARR, TIM2_BASE + TIM_ARR_OFFSET
|
||||
|
||||
.equ TIM2_CCR1, TIM2_BASE + TIM_CCR1_OFFSET
|
||||
.equ TIM2_CCR2, TIM2_BASE + TIM_CCR2_OFFSET
|
||||
.equ TIM2_CCR3, TIM2_BASE + TIM_CCR3_OFFSET
|
||||
.equ TIM2_CCR4, TIM2_BASE + TIM_CCR4_OFFSET
|
||||
|
||||
.equ TIM2_ECR, TIM2_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM2_TISEL, TIM2_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM2_AF1, TIM2_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM2_AF2, TIM2_BASE + TIM_ECR_OFFSET
|
||||
|
||||
.equ TIM2_DCR, TIM2_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM2_DMAR, TIM2_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#--- Genral Purpose Timer - TIM3 / address space: 0x4000_0400 .. 0x4000_07FF
|
||||
|
||||
.equ TIM3_BASE, APB1_BASE + 0x400
|
||||
|
||||
.equ TIM3_CR1, TIM3_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM3_CR2, TIM3_BASE + TIM_CR2_OFFSET
|
||||
.equ TIM3_SMCR, TIM3_BASE + TIM_SMCR_OFFSET
|
||||
.equ TIM3_DIER, TIM3_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM3_SR, TIM3_BASE + TIM_SR_OFFSET
|
||||
.equ TIM3_EGR, TIM3_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM3_CCMR1, TIM3_BASE + TIM_CCMR1_OFFSET
|
||||
.equ TIM3_CCMR2, TIM3_BASE + TIM_CCMR2_OFFSET
|
||||
.equ TIM3_CCER, TIM3_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM3_CNT, TIM3_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM3_PSC, TIM3_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM3_ARR, TIM3_BASE + TIM_ARR_OFFSET
|
||||
|
||||
.equ TIM3_CCR1, TIM3_BASE + TIM_CCR1_OFFSET
|
||||
.equ TIM3_CCR2, TIM3_BASE + TIM_CCR2_OFFSET
|
||||
.equ TIM3_CCR3, TIM3_BASE + TIM_CCR3_OFFSET
|
||||
.equ TIM3_CCR4, TIM3_BASE + TIM_CCR4_OFFSET
|
||||
|
||||
.equ TIM3_ECR, TIM3_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM3_TISEL, TIM3_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM3_AF1, TIM3_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM3_AF2, TIM3_BASE + TIM_ECR_OFFSET
|
||||
|
||||
.equ TIM3_DCR, TIM3_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM3_DMAR, TIM3_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#--- Genral Purpose Timer - TIM4 / address space: 0x4000_0800 .. 0x4000_0BFF
|
||||
|
||||
.equ TIM4_BASE, APB1_BASE + 0x800
|
||||
|
||||
.equ TIM4_CR1, TIM4_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM4_CR2, TIM4_BASE + TIM_CR2_OFFSET
|
||||
.equ TIM4_SMCR, TIM4_BASE + TIM_SMCR_OFFSET
|
||||
.equ TIM4_DIER, TIM4_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM4_SR, TIM4_BASE + TIM_SR_OFFSET
|
||||
.equ TIM4_EGR, TIM4_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM4_CCMR1, TIM4_BASE + TIM_CCMR1_OFFSET
|
||||
.equ TIM4_CCMR2, TIM4_BASE + TIM_CCMR2_OFFSET
|
||||
.equ TIM4_CCER, TIM4_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM4_CNT, TIM4_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM4_PSC, TIM4_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM4_ARR, TIM4_BASE + TIM_ARR_OFFSET
|
||||
|
||||
.equ TIM4_CCR1, TIM4_BASE + TIM_CCR1_OFFSET
|
||||
.equ TIM4_CCR2, TIM4_BASE + TIM_CCR2_OFFSET
|
||||
.equ TIM4_CCR3, TIM4_BASE + TIM_CCR3_OFFSET
|
||||
.equ TIM4_CCR4, TIM4_BASE + TIM_CCR4_OFFSET
|
||||
|
||||
.equ TIM4_ECR, TIM4_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM4_TISEL, TIM4_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM4_AF1, TIM4_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM4_AF2, TIM4_BASE + TIM_ECR_OFFSET
|
||||
|
||||
.equ TIM4_DCR, TIM4_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM4_DMAR, TIM4_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#--- Genral Purpose Timer - TIM5 / address space: 0x4000_0C00 .. 0x4000_0FFF
|
||||
|
||||
.equ TIM5_BASE, APB1_BASE + 0xC00
|
||||
|
||||
.equ TIM5_CR1, TIM5_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM5_CR2, TIM5_BASE + TIM_CR2_OFFSET
|
||||
.equ TIM5_SMCR, TIM5_BASE + TIM_SMCR_OFFSET
|
||||
.equ TIM5_DIER, TIM5_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM5_SR, TIM5_BASE + TIM_SR_OFFSET
|
||||
.equ TIM5_EGR, TIM5_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM5_CCMR1, TIM5_BASE + TIM_CCMR1_OFFSET
|
||||
.equ TIM5_CCMR2, TIM5_BASE + TIM_CCMR2_OFFSET
|
||||
.equ TIM5_CCER, TIM5_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM5_CNT, TIM5_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM5_PSC, TIM5_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM5_ARR, TIM5_BASE + TIM_ARR_OFFSET
|
||||
|
||||
.equ TIM5_CCR1, TIM5_BASE + TIM_CCR1_OFFSET
|
||||
.equ TIM5_CCR2, TIM5_BASE + TIM_CCR2_OFFSET
|
||||
.equ TIM5_CCR3, TIM5_BASE + TIM_CCR3_OFFSET
|
||||
.equ TIM5_CCR4, TIM5_BASE + TIM_CCR4_OFFSET
|
||||
|
||||
.equ TIM5_ECR, TIM5_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM5_TISEL, TIM5_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM5_AF1, TIM5_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM5_AF2, TIM5_BASE + TIM_ECR_OFFSET
|
||||
|
||||
.equ TIM5_DCR, TIM5_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM5_DMAR, TIM5_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#--- Basic Timer - TIM6 / address space: 0x4000_1000 .. 0x4000_13FF
|
||||
|
||||
.equ TIM6_BASE, APB1_BASE + 0x1000
|
||||
|
||||
.equ TIM6_CR1, TIM6_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM6_CR2, TIM6_BASE + TIM_CR2_OFFSET
|
||||
|
||||
.equ TIM6_DIER, TIM6_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM6_SR, TIM6_BASE + TIM_SR_OFFSET
|
||||
.equ TIM6_EGR, TIM6_BASE + TIM_EGR_OFFSET
|
||||
|
||||
.equ TIM6_CNT, TIM6_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM6_PSC, TIM6_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM6_ARR, TIM6_BASE + TIM_ARR_OFFSET
|
||||
|
||||
#--- Basic Timer - TIM7 / address space: 0x4000_1400 .. 0x4000_17FF
|
||||
|
||||
.equ TIM7_BASE, APB1_BASE + 0x1400
|
||||
|
||||
.equ TIM7_CR1, TIM7_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM7_CR2, TIM7_BASE + TIM_CR2_OFFSET
|
||||
|
||||
.equ TIM7_DIER, TIM7_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM7_SR, TIM7_BASE + TIM_SR_OFFSET
|
||||
.equ TIM7_EGR, TIM7_BASE + TIM_EGR_OFFSET
|
||||
|
||||
.equ TIM7_CNT, TIM7_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM7_PSC, TIM7_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM7_ARR, TIM7_BASE + TIM_ARR_OFFSET
|
||||
|
||||
#--- Advanced Control Timer - TIM1 / address space: 0x4001_2C00 .. 0x4001_2FFF
|
||||
|
||||
.equ TIM1_BASE, APB2_BASE + 0x2C00
|
||||
|
||||
.equ TIM1_CR1, TIM1_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM1_CR2, TIM1_BASE + TIM_CR2_OFFSET
|
||||
.equ TIM1_SMCR, TIM1_BASE + TIM_SMCR_OFFSET
|
||||
.equ TIM1_DIER, TIM1_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM1_SR, TIM1_BASE + TIM_SR_OFFSET
|
||||
.equ TIM1_EGR, TIM1_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM1_CCMR1, TIM1_BASE + TIM_CCMR1_OFFSET
|
||||
.equ TIM1_CCMR2, TIM1_BASE + TIM_CCMR2_OFFSET
|
||||
.equ TIM1_CCER, TIM1_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM1_CNT, TIM1_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM1_PSC, TIM1_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM1_ARR, TIM1_BASE + TIM_ARR_OFFSET
|
||||
.equ TIM1_RCR, TIM1_BASE + TIM_RCR_OFFSET
|
||||
.equ TIM1_CCR1, TIM1_BASE + TIM_CCR1_OFFSET
|
||||
.equ TIM1_CCR2, TIM1_BASE + TIM_CCR2_OFFSET
|
||||
.equ TIM1_CCR3, TIM1_BASE + TIM_CCR3_OFFSET
|
||||
.equ TIM1_CCR4, TIM1_BASE + TIM_CCR4_OFFSET
|
||||
.equ TIM1_BDTR, TIM1_BASE + TIM_BDTR_OFFSET
|
||||
.equ TIM1_CCR5, TIM1_BASE + TIM_CCR5_OFFSET
|
||||
.equ TIM1_CCR6, TIM1_BASE + TIM_CCR6_OFFSET
|
||||
.equ TIM1_CCMR3, TIM1_BASE + TIM_CCMR3_OFFSET
|
||||
.equ TIM1_DTR2, TIM1_BASE + TIM_DTR2_OFFSET
|
||||
.equ TIM1_ECR, TIM1_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM1_TISEL, TIM1_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM1_AF1, TIM1_BASE + TIM_AF1_OFFSET
|
||||
.equ TIM1_AF2, TIM1_BASE + TIM_AF2_OFFSET
|
||||
|
||||
.equ TIM1_DCR, TIM1_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM1_DMAR, TIM1_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#--- Advanced Control Timer - TIM8 / address space: 0x4001_3400 .. 0x4001_37FF
|
||||
|
||||
.equ TIM8_BASE, APB2_BASE + 0x3400
|
||||
|
||||
.equ TIM8_CR1, TIM8_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM8_CR2, TIM8_BASE + TIM_CR2_OFFSET
|
||||
.equ TIM8_SMCR, TIM8_BASE + TIM_SMCR_OFFSET
|
||||
.equ TIM8_DIER, TIM8_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM8_SR, TIM8_BASE + TIM_SR_OFFSET
|
||||
.equ TIM8_EGR, TIM8_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM8_CCMR1, TIM8_BASE + TIM_CCMR1_OFFSET
|
||||
.equ TIM8_CCMR2, TIM8_BASE + TIM_CCMR2_OFFSET
|
||||
.equ TIM8_CCER, TIM8_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM8_CNT, TIM8_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM8_PSC, TIM8_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM8_ARR, TIM8_BASE + TIM_ARR_OFFSET
|
||||
.equ TIM8_RCR, TIM8_BASE + TIM_RCR_OFFSET
|
||||
.equ TIM8_CCR1, TIM8_BASE + TIM_CCR1_OFFSET
|
||||
.equ TIM8_CCR2, TIM8_BASE + TIM_CCR2_OFFSET
|
||||
.equ TIM8_CCR3, TIM8_BASE + TIM_CCR3_OFFSET
|
||||
.equ TIM8_CCR4, TIM8_BASE + TIM_CCR4_OFFSET
|
||||
.equ TIM8_BDTR, TIM8_BASE + TIM_BDTR_OFFSET
|
||||
.equ TIM8_CCR5, TIM8_BASE + TIM_CCR5_OFFSET
|
||||
.equ TIM8_CCR6, TIM8_BASE + TIM_CCR6_OFFSET
|
||||
.equ TIM8_CCMR3, TIM8_BASE + TIM_CCMR3_OFFSET
|
||||
.equ TIM8_DTR2, TIM8_BASE + TIM_DTR2_OFFSET
|
||||
.equ TIM8_ECR, TIM8_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM8_TISEL, TIM8_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM8_AF1, TIM8_BASE + TIM_AF1_OFFSET
|
||||
.equ TIM8_AF2, TIM8_BASE + TIM_AF2_OFFSET
|
||||
|
||||
.equ TIM8_DCR, TIM8_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM8_DMAR, TIM8_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#--- Advanced Control Timer - TIM20 / address space: 0x4001_5000 .. 0x4001_53FF
|
||||
|
||||
.equ TIM20_BASE, APB2_BASE + 0x5000
|
||||
|
||||
.equ TIM20_CR1, TIM20_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM20_CR2, TIM20_BASE + TIM_CR2_OFFSET
|
||||
.equ TIM20_SMCR, TIM20_BASE + TIM_SMCR_OFFSET
|
||||
.equ TIM20_DIER, TIM20_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM20_SR, TIM20_BASE + TIM_SR_OFFSET
|
||||
.equ TIM20_EGR, TIM20_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM20_CCMR1, TIM20_BASE + TIM_CCMR1_OFFSET
|
||||
.equ TIM20_CCMR2, TIM20_BASE + TIM_CCMR2_OFFSET
|
||||
.equ TIM20_CCER, TIM20_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM20_CNT, TIM20_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM20_PSC, TIM20_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM20_ARR, TIM20_BASE + TIM_ARR_OFFSET
|
||||
.equ TIM20_RCR, TIM20_BASE + TIM_RCR_OFFSET
|
||||
.equ TIM20_CCR1, TIM20_BASE + TIM_CCR1_OFFSET
|
||||
.equ TIM20_CCR2, TIM20_BASE + TIM_CCR2_OFFSET
|
||||
.equ TIM20_CCR3, TIM20_BASE + TIM_CCR3_OFFSET
|
||||
.equ TIM20_CCR4, TIM20_BASE + TIM_CCR4_OFFSET
|
||||
.equ TIM20_BDTR, TIM20_BASE + TIM_BDTR_OFFSET
|
||||
.equ TIM20_CCR5, TIM20_BASE + TIM_CCR5_OFFSET
|
||||
.equ TIM20_CCR6, TIM20_BASE + TIM_CCR6_OFFSET
|
||||
.equ TIM20_CCMR3, TIM20_BASE + TIM_CCMR3_OFFSET
|
||||
.equ TIM20_DTR2, TIM20_BASE + TIM_DTR2_OFFSET
|
||||
.equ TIM20_ECR, TIM20_BASE + TIM_ECR_OFFSET
|
||||
.equ TIM20_TISEL, TIM20_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM20_AF1, TIM20_BASE + TIM_AF1_OFFSET
|
||||
.equ TIM20_AF2, TIM20_BASE + TIM_AF2_OFFSET
|
||||
|
||||
.equ TIM20_DCR, TIM20_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM20_DMAR, TIM20_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#--- Genral Purpose Timer - TIM15 / address space: 0x4001_4000 .. 0x4001_43FF
|
||||
|
||||
.equ TIM15_BASE, APB2_BASE + 0x4000
|
||||
|
||||
.equ TIM15_CR1, TIM15_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM15_CR2, TIM15_BASE + TIM_CR2_OFFSET
|
||||
.equ TIM15_SMCR, TIM15_BASE + TIM_SMCR_OFFSET
|
||||
.equ TIM15_DIER, TIM15_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM15_SR, TIM15_BASE + TIM_SR_OFFSET
|
||||
.equ TIM15_EGR, TIM15_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM15_CCMR1, TIM15_BASE + TIM_CCMR1_OFFSET
|
||||
|
||||
.equ TIM15_CCER, TIM15_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM15_CNT, TIM15_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM15_PSC, TIM15_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM15_ARR, TIM15_BASE + TIM_ARR_OFFSET
|
||||
.equ TIM15_RCR, TIM15_BASE + TIM_RCR_OFFSET
|
||||
.equ TIM15_CCR1, TIM15_BASE + TIM_CCR1_OFFSET
|
||||
.equ TIM15_CCR2, TIM15_BASE + TIM_CCR2_OFFSET
|
||||
|
||||
.equ TIM15_BDTR, TIM15_BASE + TIM_BDTR_OFFSET
|
||||
|
||||
.equ TIM15_DTR2, TIM15_BASE + TIM_DTR2_OFFSET
|
||||
|
||||
.equ TIM15_TISEL, TIM15_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM15_AF1, TIM15_BASE + TIM_AF1_OFFSET
|
||||
.equ TIM15_AF2, TIM15_BASE + TIM_AF2_OFFSET
|
||||
|
||||
.equ TIM15_DCR, TIM15_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM15_DMAR, TIM15_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#--- Genral Purpose Timer - TIM16 / address space: 0x4001_4400 .. 0x4001_47FF
|
||||
|
||||
.equ TIM16_BASE, APB2_BASE + 0x4400
|
||||
|
||||
.equ TIM16_CR1, TIM16_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM16_CR2, TIM16_BASE + TIM_CR2_OFFSET
|
||||
|
||||
.equ TIM16_DIER, TIM16_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM16_SR, TIM16_BASE + TIM_SR_OFFSET
|
||||
.equ TIM16_EGR, TIM16_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM16_CCMR1, TIM16_BASE + TIM_CCMR1_OFFSET
|
||||
|
||||
.equ TIM16_CCER, TIM16_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM16_CNT, TIM16_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM16_PSC, TIM16_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM16_ARR, TIM16_BASE + TIM_ARR_OFFSET
|
||||
.equ TIM16_RCR, TIM16_BASE + TIM_RCR_OFFSET
|
||||
.equ TIM16_CCR1, TIM16_BASE + TIM_CCR1_OFFSET
|
||||
|
||||
.equ TIM16_BDTR, TIM16_BASE + TIM_BDTR_OFFSET
|
||||
|
||||
.equ TIM16_DTR2, TIM16_BASE + TIM_DTR2_OFFSET
|
||||
|
||||
.equ TIM16_TISEL, TIM16_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM16_AF1, TIM16_BASE + TIM_AF1_OFFSET
|
||||
.equ TIM16_AF2, TIM16_BASE + TIM_AF2_OFFSET
|
||||
.equ TIM16_OR1, TIM16_BASE + TIM_OR1_OFFSET
|
||||
|
||||
.equ TIM16_DCR, TIM16_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM16_DMAR, TIM16_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#--- Genral Purpose Timer - TIM17 / address space: 0x4001_4800 .. 0x4001_4BFF
|
||||
|
||||
.equ TIM17_BASE, APB2_BASE + 0x4800
|
||||
|
||||
.equ TIM17_CR1, TIM17_BASE + TIM_CR1_OFFSET
|
||||
.equ TIM17_CR2, TIM17_BASE + TIM_CR2_OFFSET
|
||||
|
||||
.equ TIM17_DIER, TIM17_BASE + TIM_DIER_OFFSET
|
||||
.equ TIM17_SR, TIM17_BASE + TIM_SR_OFFSET
|
||||
.equ TIM17_EGR, TIM17_BASE + TIM_EGR_OFFSET
|
||||
.equ TIM17_CCMR1, TIM17_BASE + TIM_CCMR1_OFFSET
|
||||
|
||||
.equ TIM17_CCER, TIM17_BASE + TIM_CCER_OFFSET
|
||||
.equ TIM17_CNT, TIM17_BASE + TIM_CNT_OFFSET
|
||||
.equ TIM17_PSC, TIM17_BASE + TIM_PSC_OFFSET
|
||||
.equ TIM17_ARR, TIM17_BASE + TIM_ARR_OFFSET
|
||||
.equ TIM17_RCR, TIM17_BASE + TIM_RCR_OFFSET
|
||||
.equ TIM17_CCR1, TIM17_BASE + TIM_CCR1_OFFSET
|
||||
|
||||
.equ TIM17_BDTR, TIM17_BASE + TIM_BDTR_OFFSET
|
||||
|
||||
.equ TIM17_DTR2, TIM17_BASE + TIM_DTR2_OFFSET
|
||||
|
||||
.equ TIM17_TISEL, TIM17_BASE + TIM_TISEL_OFFSET
|
||||
.equ TIM17_AF1, TIM17_BASE + TIM_AF1_OFFSET
|
||||
.equ TIM17_AF2, TIM17_BASE + TIM_AF2_OFFSET
|
||||
.equ TIM17_OR1, TIM17_BASE + TIM_OR1_OFFSET
|
||||
|
||||
.equ TIM17_DCR, TIM17_BASE + TIM_DCR_OFFSET
|
||||
.equ TIM17_DMAR, TIM17_BASE + TIM_DMAR_OFFSET
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# Reset and Clock Control
|
||||
#
|
||||
# address space: 0x4002_1000 .. 0x4002_13FF
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ RCC_BASE, AHB1_BASE + 0x1000
|
||||
|
||||
.equ RCC_CR, RCC_BASE + 0x00
|
||||
.equ RCC_ICSCR, RCC_BASE + 0x04
|
||||
.equ RCC_CFGR, RCC_BASE + 0x08
|
||||
.equ RCC_PLLCFGR, RCC_BASE + 0x0C
|
||||
|
||||
.equ RCC_CIER, RCC_BASE + 0x18
|
||||
.equ RCC_CIFR, RCC_BASE + 0x1C
|
||||
.equ RCC_CICR, RCC_BASE + 0x20
|
||||
|
||||
.equ RCC_AHB1RSTR, RCC_BASE + 0x28
|
||||
.equ RCC_AHB2RSTR, RCC_BASE + 0x2C
|
||||
.equ RCC_AHB3RSTR, RCC_BASE + 0x30
|
||||
|
||||
.equ RCC_APB1RSTR1, RCC_BASE + 0x38
|
||||
.equ RCC_APB1RSTR2, RCC_BASE + 0x3C
|
||||
.equ RCC_APB2RSTR, RCC_BASE + 0x40
|
||||
|
||||
.equ RCC_AHB1ENR, RCC_BASE + 0x48
|
||||
.equ RCC_AHB2ENR, RCC_BASE + 0x4C
|
||||
.equ RCC_AHB3ENR, RCC_BASE + 0x50
|
||||
|
||||
.equ RCC_APB1ENR1, RCC_BASE + 0x58
|
||||
.equ RCC_APB1ENR2, RCC_BASE + 0x5C
|
||||
.equ RCC_APB2ENR, RCC_BASE + 0x60
|
||||
|
||||
.equ RCC_AHB1SMENR, RCC_BASE + 0x68
|
||||
.equ RCC_AHB2SMENR, RCC_BASE + 0x6C
|
||||
.equ RCC_AHB3SMENR, RCC_BASE + 0x70
|
||||
|
||||
.equ RCC_APB1SMENR1, RCC_BASE + 0x78
|
||||
.equ RCC_APB1SMENR2, RCC_BASE + 0x7C
|
||||
.equ RCC_APB2SMENR, RCC_BASE + 0x80
|
||||
|
||||
.equ RCC_CCIPR, RCC_BASE + 0x88
|
||||
|
||||
.equ RCC_BDCR, RCC_BASE + 0x90
|
||||
.equ RCC_CSR, RCC_BASE + 0x94
|
||||
.equ RCC_CRRCR, RCC_BASE + 0x98
|
||||
.equ RCC_CCIPR2, RCC_BASE + 0x9C
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# GPIO module common configuration
|
||||
#
|
||||
# address space: 0x4800_0000 .. 0x4800_1FFF
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ GPIO_BASE, AHB2_BASE
|
||||
|
||||
.equ GPIO_MODER_OFFSET, 0x00
|
||||
.equ GPIO_OTYPER_OFFSET, 0x04
|
||||
.equ GPIO_OSPEEDR_OFFSET, 0x08
|
||||
.equ GPIO_PUPDR_OFFSET, 0x0C
|
||||
.equ GPIO_IDR_OFFSET, 0x10
|
||||
.equ GPIO_ODR_OFFSET, 0x14
|
||||
.equ GPIO_BSRR_OFFSET, 0x18
|
||||
.equ GPIO_LCKR_OFFSET, 0x1C
|
||||
.equ GPIO_AFRL_OFFSET, 0x20
|
||||
.equ GPIO_AFRH_OFFSET, 0x24
|
||||
.equ GPIO_BRR_OFFSET, 0x28
|
||||
|
||||
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
|
||||
|
||||
#--- Port A GPIO configuration / address space: 0x4800_0000 .. 0x4800_03FF
|
||||
|
||||
.equ GPIOA_BASE, GPIO_BASE
|
||||
|
||||
.equ GPIOA_MODER, GPIOA_BASE + GPIO_MODER_OFFSET
|
||||
.equ GPIOA_OTYPER, GPIOA_BASE + GPIO_OTYPER_OFFSET
|
||||
.equ GPIOA_OSPEEDR, GPIOA_BASE + GPIO_OSPEEDR_OFFSET
|
||||
.equ GPIOA_PUPDR, GPIOA_BASE + GPIO_PUPDR_OFFSET
|
||||
.equ GPIOA_IDR, GPIOA_BASE + GPIO_IDR_OFFSET
|
||||
.equ GPIOA_ODR, GPIOA_BASE + GPIO_ODR_OFFSET
|
||||
.equ GPIOA_BSRR, GPIOA_BASE + GPIO_BSRR_OFFSET
|
||||
.equ GPIOA_LCKR, GPIOA_BASE + GPIO_LCKR_OFFSET
|
||||
.equ GPIOA_AFRL, GPIOA_BASE + GPIO_AFRL_OFFSET
|
||||
.equ GPIOA_AFRH, GPIOA_BASE + GPIO_AFRH_OFFSET
|
||||
.equ GPIOA_BRR, GPIOA_BASE + GPIO_BRR_OFFSET
|
||||
|
||||
#--- Port B GPIO configuration / address space: 0x4800_0400 .. 0x4800_07FF
|
||||
|
||||
.equ GPIOB_BASE, GPIO_BASE + 0x400
|
||||
|
||||
.equ GPIOB_MODER, GPIOB_BASE + GPIO_MODER_OFFSET
|
||||
.equ GPIOB_OTYPER, GPIOB_BASE + GPIO_OTYPER_OFFSET
|
||||
.equ GPIOB_OSPEEDR, GPIOB_BASE + GPIO_OSPEEDR_OFFSET
|
||||
.equ GPIOB_PUPDR, GPIOB_BASE + GPIO_PUPDR_OFFSET
|
||||
.equ GPIOB_IDR, GPIOB_BASE + GPIO_IDR_OFFSET
|
||||
.equ GPIOB_ODR, GPIOB_BASE + GPIO_ODR_OFFSET
|
||||
.equ GPIOB_BSRR, GPIOB_BASE + GPIO_BSRR_OFFSET
|
||||
.equ GPIOB_LCKR, GPIOB_BASE + GPIO_LCKR_OFFSET
|
||||
.equ GPIOB_AFRL, GPIOB_BASE + GPIO_AFRL_OFFSET
|
||||
.equ GPIOB_AFRH, GPIOB_BASE + GPIO_AFRH_OFFSET
|
||||
.equ GPIOB_BRR, GPIOB_BASE + GPIO_BRR_OFFSET
|
||||
|
||||
#--- Port C GPIO configuration / address space: 0x4800_0800 .. 0x4800_0BFF
|
||||
|
||||
.equ GPIOC_BASE, GPIO_BASE + 0x800
|
||||
|
||||
.equ GPIOC_MODER, GPIOC_BASE + GPIO_MODER_OFFSET
|
||||
.equ GPIOC_OTYPER, GPIOC_BASE + GPIO_OTYPER_OFFSET
|
||||
.equ GPIOC_OSPEEDR, GPIOC_BASE + GPIO_OSPEEDR_OFFSET
|
||||
.equ GPIOC_PUPDR, GPIOC_BASE + GPIO_PUPDR_OFFSET
|
||||
.equ GPIOC_IDR, GPIOC_BASE + GPIO_IDR_OFFSET
|
||||
.equ GPIOC_ODR, GPIOC_BASE + GPIO_ODR_OFFSET
|
||||
.equ GPIOC_BSRR, GPIOC_BASE + GPIO_BSRR_OFFSET
|
||||
.equ GPIOC_LCKR, GPIOC_BASE + GPIO_LCKR_OFFSET
|
||||
.equ GPIOC_AFRL, GPIOC_BASE + GPIO_AFRL_OFFSET
|
||||
.equ GPIOC_AFRH, GPIOC_BASE + GPIO_AFRH_OFFSET
|
||||
.equ GPIOC_BRR, GPIOC_BASE + GPIO_BRR_OFFSET
|
||||
|
||||
#--- Port D GPIO configuration / address space: 0x4800_0C00 .. 0x4800_0FFF
|
||||
|
||||
.equ GPIOD_BASE, GPIO_BASE + 0xC00
|
||||
|
||||
.equ GPIOD_MODER, GPIOD_BASE + GPIO_MODER_OFFSET
|
||||
.equ GPIOD_OTYPER, GPIOD_BASE + GPIO_OTYPER_OFFSET
|
||||
.equ GPIOD_OSPEEDR, GPIOD_BASE + GPIO_OSPEEDR_OFFSET
|
||||
.equ GPIOD_PUPDR, GPIOD_BASE + GPIO_PUPDR_OFFSET
|
||||
.equ GPIOD_IDR, GPIOD_BASE + GPIO_IDR_OFFSET
|
||||
.equ GPIOD_ODR, GPIOD_BASE + GPIO_ODR_OFFSET
|
||||
.equ GPIOD_BSRR, GPIOD_BASE + GPIO_BSRR_OFFSET
|
||||
.equ GPIOD_LCKR, GPIOD_BASE + GPIO_LCKR_OFFSET
|
||||
.equ GPIOD_AFRL, GPIOD_BASE + GPIO_AFRL_OFFSET
|
||||
.equ GPIOD_AFRH, GPIOD_BASE + GPIO_AFRH_OFFSET
|
||||
.equ GPIOD_BRR, GPIOD_BASE + GPIO_BRR_OFFSET
|
||||
|
||||
#--- Port E GPIO configuration / address space: 0x4800_1000 .. 0x4800_13FF
|
||||
|
||||
.equ GPIOE_BASE, GPIO_BASE + 0x1000
|
||||
|
||||
.equ GPIOE_MODER, GPIOE_BASE + GPIO_MODER_OFFSET
|
||||
.equ GPIOE_OTYPER, GPIOE_BASE + GPIO_OTYPER_OFFSET
|
||||
.equ GPIOE_OSPEEDR, GPIOE_BASE + GPIO_OSPEEDR_OFFSET
|
||||
.equ GPIOE_PUPDR, GPIOE_BASE + GPIO_PUPDR_OFFSET
|
||||
.equ GPIOE_IDR, GPIOE_BASE + GPIO_IDR_OFFSET
|
||||
.equ GPIOE_ODR, GPIOE_BASE + GPIO_ODR_OFFSET
|
||||
.equ GPIOE_BSRR, GPIOE_BASE + GPIO_BSRR_OFFSET
|
||||
.equ GPIOE_LCKR, GPIOE_BASE + GPIO_LCKR_OFFSET
|
||||
.equ GPIOE_AFRL, GPIOE_BASE + GPIO_AFRL_OFFSET
|
||||
.equ GPIOE_AFRH, GPIOE_BASE + GPIO_AFRH_OFFSET
|
||||
.equ GPIOE_BRR, GPIOE_BASE + GPIO_BRR_OFFSET
|
||||
|
||||
#--- Port F GPIO configuration / address space: 0x4800_1400 .. 0x4800_17FF
|
||||
|
||||
.equ GPIOF_BASE, GPIO_BASE + 0x1400
|
||||
|
||||
.equ GPIOF_MODER, GPIOF_BASE + GPIO_MODER_OFFSET
|
||||
.equ GPIOF_OTYPER, GPIOF_BASE + GPIO_OTYPER_OFFSET
|
||||
.equ GPIOF_OSPEEDR, GPIOF_BASE + GPIO_OSPEEDR_OFFSET
|
||||
.equ GPIOF_PUPDR, GPIOF_BASE + GPIO_PUPDR_OFFSET
|
||||
.equ GPIOF_IDR, GPIOF_BASE + GPIO_IDR_OFFSET
|
||||
.equ GPIOF_ODR, GPIOF_BASE + GPIO_ODR_OFFSET
|
||||
.equ GPIOF_BSRR, GPIOF_BASE + GPIO_BSRR_OFFSET
|
||||
.equ GPIOF_LCKR, GPIOF_BASE + GPIO_LCKR_OFFSET
|
||||
.equ GPIOF_AFRL, GPIOF_BASE + GPIO_AFRL_OFFSET
|
||||
.equ GPIOF_AFRH, GPIOF_BASE + GPIO_AFRH_OFFSET
|
||||
.equ GPIOF_BRR, GPIOF_BASE + GPIO_BRR_OFFSET
|
||||
|
||||
#--- Port G GPIO configuration / address space: 0x4800_1800 .. 0x4800_1BFF
|
||||
|
||||
.equ GPIOG_BASE, GPIO_BASE + 0x1800
|
||||
|
||||
.equ GPIOG_MODER, GPIOG_BASE + GPIO_MODER_OFFSET
|
||||
.equ GPIOG_OTYPER, GPIOG_BASE + GPIO_OTYPER_OFFSET
|
||||
.equ GPIOG_OSPEEDR, GPIOG_BASE + GPIO_OSPEEDR_OFFSET
|
||||
.equ GPIOG_PUPDR, GPIOG_BASE + GPIO_PUPDR_OFFSET
|
||||
.equ GPIOG_IDR, GPIOG_BASE + GPIO_IDR_OFFSET
|
||||
.equ GPIOG_ODR, GPIOG_BASE + GPIO_ODR_OFFSET
|
||||
.equ GPIOG_BSRR, GPIOG_BASE + GPIO_BSRR_OFFSET
|
||||
.equ GPIOG_LCKR, GPIOG_BASE + GPIO_LCKR_OFFSET
|
||||
.equ GPIOG_AFRL, GPIOG_BASE + GPIO_AFRL_OFFSET
|
||||
.equ GPIOG_AFRH, GPIOG_BASE + GPIO_AFRH_OFFSET
|
||||
.equ GPIOG_BRR, GPIOG_BASE + GPIO_BRR_OFFSET
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# System Control Space
|
||||
#
|
||||
# address space: 0xE000_E000 .. 0xE000_EFFF
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ SCS_BASE, PPB_BASE + 0xE000
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# System Timer (SysTick)
|
||||
#
|
||||
# address space: 0xE000_E010 .. 0xE000_E01F
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ STK_BASE, SCS_BASE + 10 // 0xE000_E010
|
||||
|
||||
.equ STK_CTRL, SCS_BASE + 0x00
|
||||
.equ STK_LOAD, SCS_BASE + 0x04
|
||||
.equ STK_VAL, SCS_BASE + 0x08
|
||||
.equ STK_CALIB, SCS_BASE + 0x0C
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# Nested Vector Interrupt Controller
|
||||
#
|
||||
# address space: 0xE000_E100 .. 0xE000_E4EF
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ NVIC_BASE, SCS_BASE + 0x100 // 0xE000_E100
|
||||
|
||||
.equ NVIC_ISER0, NVIC_BASE + 0x00
|
||||
.equ NVIC_ISER1, NVIC_BASE + 0x04
|
||||
.equ NVIC_ISER2, NVIC_BASE + 0x08
|
||||
.equ NVIC_ISER3, NVIC_BASE + 0x0C
|
||||
|
||||
.equ NVIC_ICER0, NVIC_BASE + 0x80
|
||||
.equ NVIC_ICER1, NVIC_BASE + 0x84
|
||||
.equ NVIC_ICER2, NVIC_BASE + 0x88
|
||||
.equ NVIC_ICER3, NVIC_BASE + 0x8C
|
||||
|
||||
.equ NVIC_ISPR0, NVIC_BASE + 0x100
|
||||
.equ NVIC_ISPR1, NVIC_BASE + 0x104
|
||||
.equ NVIC_ISPR2, NVIC_BASE + 0x108
|
||||
.equ NVIC_ISPR3, NVIC_BASE + 0x10C
|
||||
|
||||
.equ NVIC_ICPR0, NVIC_BASE + 0x180
|
||||
.equ NVIC_ICPR1, NVIC_BASE + 0x184
|
||||
.equ NVIC_ICPR2, NVIC_BASE + 0x188
|
||||
.equ NVIC_ICPR3, NVIC_BASE + 0x18C
|
||||
|
||||
.equ NVIC_IABR0, NVIC_BASE + 0x200
|
||||
.equ NVIC_IABR1, NVIC_BASE + 0x204
|
||||
.equ NVIC_IABR2, NVIC_BASE + 0x208
|
||||
.equ NVIC_IABR3, NVIC_BASE + 0x20C
|
||||
|
||||
.equ NVIC_IPR0, NVIC_BASE + 0x300
|
||||
.equ NVIC_IPR1, NVIC_BASE + 0x304
|
||||
.equ NVIC_IPR2, NVIC_BASE + 0x308
|
||||
.equ NVIC_IPR3, NVIC_BASE + 0x30C
|
||||
.equ NVIC_IPR4, NVIC_BASE + 0x310
|
||||
.equ NVIC_IPR5, NVIC_BASE + 0x314
|
||||
.equ NVIC_IPR6, NVIC_BASE + 0x318
|
||||
.equ NVIC_IPR7, NVIC_BASE + 0x31C
|
||||
.equ NVIC_IPR8, NVIC_BASE + 0x320
|
||||
.equ NVIC_IPR9, NVIC_BASE + 0x324
|
||||
.equ NVIC_IPR10, NVIC_BASE + 0x328
|
||||
.equ NVIC_IPR11, NVIC_BASE + 0x32C
|
||||
.equ NVIC_IPR12, NVIC_BASE + 0x330
|
||||
.equ NVIC_IPR13, NVIC_BASE + 0x334
|
||||
.equ NVIC_IPR14, NVIC_BASE + 0x338
|
||||
.equ NVIC_IPR15, NVIC_BASE + 0x33C
|
||||
.equ NVIC_IPR16, NVIC_BASE + 0x340
|
||||
.equ NVIC_IPR17, NVIC_BASE + 0x344
|
||||
.equ NVIC_IPR18, NVIC_BASE + 0x348
|
||||
.equ NVIC_IPR19, NVIC_BASE + 0x34C
|
||||
.equ NVIC_IPR20, NVIC_BASE + 0x350
|
||||
.equ NVIC_IPR21, NVIC_BASE + 0x354
|
||||
.equ NVIC_IPR22, NVIC_BASE + 0x358
|
||||
.equ NVIC_IPR23, NVIC_BASE + 0x35C
|
||||
.equ NVIC_IPR24, NVIC_BASE + 0x360
|
||||
.equ NVIC_IPR25, NVIC_BASE + 0x364
|
||||
|
||||
.equ STIR, NVIC_BASE + 0xE00
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
# MCU Debug Component
|
||||
#
|
||||
# address space: 0xE004_2000 .. 0xE004_2013
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.equ DBGMCU_BASE, PPB_BASE + 0x42000
|
||||
|
||||
.equ DBGMCU_IDCODE, DBGMCU_BASE + 0x00
|
||||
.equ DBGMCU_CR, DBGMCU_BASE + 0x04
|
||||
.equ DBGMCU_APB1FZR1, DBGMCU_BASE + 0x08
|
||||
.equ DBGMCU_APB1FZR2, DBGMCU_BASE + 0x0C
|
||||
.equ DBGMCU_APB2DZR, DBGMCU_BASE + 0x10
|
||||
@@ -0,0 +1,65 @@
|
||||
/* ***************************************************************************************
|
||||
* Project: task2 - switch triggered LEDs
|
||||
* File: ldscript_rom.ld
|
||||
*
|
||||
* Language: ld
|
||||
*
|
||||
* Hardware: STefi Light v1.1
|
||||
* Processor: STM32G431KBT6U
|
||||
*
|
||||
* Author: Manuel Lederhofer
|
||||
* Datum: 31.10.2014
|
||||
*
|
||||
* Version: 6.0
|
||||
* History:
|
||||
* 31.10.2014 ML create file for Kinetis tower
|
||||
* 22.07.2015 ML change MEMORY to switch from MK60N512VMD100 to MKL05Z32VLC4
|
||||
* 05.12.2018 ML port from MKL05Z32VLC4 to STM32L476RG
|
||||
* remove PROTECT area, fit MEMORY regions
|
||||
* 25.09.2019 ML change PGM memory base from 0x08002000 to 0x08000400
|
||||
* 04.09.2020 HL port from STM32L476RG to STM32F411xE
|
||||
* 29.09.2021 ML port from STM32F411xE to STM32F042K6T6
|
||||
* 09.03.2022 ML port from STM32F042K6T6 to STM32G431KBT6U
|
||||
*
|
||||
* Status: working
|
||||
*
|
||||
* Description:
|
||||
* Linker script for the STefi Light in MCT lab exercises.
|
||||
*
|
||||
* Notes:
|
||||
* The G431 incorporates three types of memory:
|
||||
* - 128K flash @ 0x08000000
|
||||
* - 32K SRAM @ SRAM1 (16K): 0x20000000, SRAM2 (6K): 0x20004000
|
||||
* - 10K CCMSRAM @ 0x10000000 || 0x20005800
|
||||
************************************************************************************** */
|
||||
|
||||
MEMORY
|
||||
{
|
||||
IVECS (R) : ORIGIN = 0x08000000, LENGTH = 0x000001D8
|
||||
PGM (RX) : ORIGIN = 0x08000400, LENGTH = 0x00000C00
|
||||
EXHANDS (RX) : ORIGIN = 0x08001000, LENGTH = 0x00000400
|
||||
RAM (RW) : ORIGIN = 0x20000000, LENGTH = 0x00001800
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.vectortable (READONLY) :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
KEEP(*(.vectortable))
|
||||
. = ALIGN(4);
|
||||
} > IVECS
|
||||
|
||||
.text (READONLY) :
|
||||
{
|
||||
*(.text)
|
||||
} > PGM
|
||||
|
||||
.exhand (READONLY) :
|
||||
{
|
||||
*(.exhand)
|
||||
} > EXHANDS
|
||||
}
|
||||
|
||||
|
||||
/* ************************************ E O F ***************************************** */
|
||||
@@ -0,0 +1,83 @@
|
||||
#'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
# Project: task2 - switch triggered LEDs
|
||||
# File: makefile
|
||||
#
|
||||
# Language: make
|
||||
#
|
||||
# Hardware: STefi Light v1.1
|
||||
# Processor: STM32G431KBT6U
|
||||
#
|
||||
# Author: Flaviu Popp-Nowak, Manuel Lederhofer
|
||||
# Datum: 00.12.2013
|
||||
#
|
||||
# Version: 5.0
|
||||
# History:
|
||||
# 18.12.2013 FPN initial version
|
||||
# 11.07.2014 ML switch to GNU ARM toolchain, add output files, nicify code
|
||||
# 21.10.2014 ML add path entries for testing with Sourcery CodeBench toolchain
|
||||
# 28.01.2015 ML changed naming of list files
|
||||
# 29.09.2015 ML changed GCCDIR to Freescale KDS toolchain
|
||||
# 27.09.2016 HL changed GCCDIR to KDS 3.2 toolchain
|
||||
# 07.12.2018 ML remove unnecessary inactive paths and variables
|
||||
# 18.12.2018 ML port from MKL05Z32VLC4 (KDS) to STM32L476RG (sw4stm)
|
||||
# 13.03.2019 ML move gcc and make path to poject properties
|
||||
# 29.09.2021 ML port from STM32L476RG/STM32F411xE to STM32F042K6T6
|
||||
# 09.03.2022 ML port from STM32F042K6T6 to STM32G431KBT6U
|
||||
#
|
||||
# Status: working
|
||||
#
|
||||
# Description:
|
||||
# Default makefile for this project.
|
||||
#
|
||||
# Notes:
|
||||
# - / -
|
||||
#'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
#--------- general config ----------------------------------------------------------------
|
||||
|
||||
TOOLPREFIX = arm-none-eabi
|
||||
|
||||
AS = $(TOOLPREFIX)-as
|
||||
LD = $(TOOLPREFIX)-ld
|
||||
SIZE = $(TOOLPREFIX)-size
|
||||
OBJDUMP = $(TOOLPREFIX)-objdump
|
||||
|
||||
RM = rm -rf
|
||||
|
||||
|
||||
#--------- specific config ---------------------------------------------------------------
|
||||
|
||||
TARGET = task2
|
||||
ARMCPU = cortex-m4
|
||||
|
||||
#GCCFLAGS = -O0 -g3 -Wall -c -fmessage-length=0 -mabi=aapcs -mthumb -msoft-float --save-temps -fverbose-asm
|
||||
#ASFLAGS = -specs=nosys.specs
|
||||
ASFLAGS = -march=armv7-m -mcpu=$(ARMCPU) -adglns -g -mthumb --warn
|
||||
LDFLAGS = -g -Map $(@:%.elf=%.map) --cref -static
|
||||
LDSCRIPT = ldscript_rom.ld
|
||||
OBJDFLAGS = -htdr -j .text -j .data -j .bss -j .vectortable -j .exhand
|
||||
|
||||
RMFILES = *.elf *.o *.lst *.map *.als
|
||||
|
||||
|
||||
#--------- machine room ------------------------------------------------------------------
|
||||
|
||||
all: $(TARGET).elf makefile $(LDSCRIPT)
|
||||
@echo Target '$@' ready
|
||||
|
||||
$(TARGET).elf: $(TARGET).o
|
||||
$(LD) -o $@ -T $(LDSCRIPT) $< $(LDFLAGS)
|
||||
$(OBJDUMP) $(OBJDFLAGS) $@ > $(@:%.elf=%.lst)
|
||||
$(SIZE) $@
|
||||
|
||||
$(TARGET).o: $(TARGET).s G431_addr.s
|
||||
$(AS) -o $@ $< $(ASFLAGS) > $(@:%.o=%.als)
|
||||
|
||||
clean:
|
||||
@-$(RM) $(wildcard $(RMFILES))
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
|
||||
#'''''''''''''''''''''''''''''''''''''' E O F '''''''''''''''''''''''''''''''''''''''''''#
|
||||
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType">
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/>
|
||||
<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{"fItems":[{"fIsFromMainTab":true,"fPath":"task2.elf","fProjectName":"task2","fPerformBuild":true,"fDownload":true,"fLoadSymbols":true}]}"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="16000000"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_external_loader" value="false"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader" value=""/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader_init" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="disable"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_check_serial_number" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value=""/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{"fVersion":1,"fItems":[{"fDisplayName":"Reset","fIsSuppressible":false,"fResetAttribute":"Software system reset","fResetStrategies":[{"fDisplayName":"Software system reset","fLaunchAttribute":"system_reset","fGdbCommands":["monitor reset\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Hardware reset","fLaunchAttribute":"hardware_reset","fGdbCommands":["monitor reset hardware\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Core reset","fLaunchAttribute":"core_reset","fGdbCommands":["monitor reset core\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"None","fLaunchAttribute":"no_reset","fGdbCommands":[],"fCmdOptions":["-g"]}],"fGdbCommandGroup":{"name":"Additional commands","commands":[]},"fStartApplication":true}]}"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="threadx"/>
|
||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverAuto" value="false"/>
|
||||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverPort" value="cortex_m0"/>
|
||||
<intAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyPort" value="60000"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.st.stm32cube.ide.mcu.debug.stlink"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
|
||||
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="init"/>
|
||||
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="init"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="task2.elf"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="task2"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.43085415"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/task2"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><memoryBlockExpressionList context="reserved-for-future-use"/>"/>
|
||||
<stringAttribute key="process_factory_id" value="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/>
|
||||
</launchConfiguration>
|
||||
+314
@@ -0,0 +1,314 @@
|
||||
#****************************************************************************************#
|
||||
# Project: task2 - ASM: Interrupts
|
||||
# File: task2.s
|
||||
#
|
||||
# Language: ASM
|
||||
#
|
||||
# Hardware: STefi Light v1.1
|
||||
# Processor: STM32G431KBT6U
|
||||
#
|
||||
# Author: Manuel Lederhofer
|
||||
# Datum: 31.10.2014
|
||||
#
|
||||
# Version: 6.0
|
||||
# History:
|
||||
# 31.10.2014 ML create file
|
||||
# 27.09.2018 ML edit comments, extend vector table
|
||||
# 18.12.2018 ML port from MKL05Z32VLC4 to STM32L476RG
|
||||
# 27.02.2019 ML move section of exception handlers to bottom of file
|
||||
# 25.09.2019 ML minor changes for a better code and comment understanding
|
||||
# 04.09.2020 HL port from STM32L476RG to STM32F411xE
|
||||
# 21.09.2020 ML tidy up, comments and formatting
|
||||
# 29.09.2021 ML port from STM32F411xE to STM32F042K6T6
|
||||
# 09.03.2022 ML port from STM32F042K6T6 to STM32G431KBT6U
|
||||
# 10.02.2025 TK remove ASM:Polling,move ASM:Interrupts to task2
|
||||
# 24.06.2025 TK remove /* ... place your code here ... */
|
||||
#
|
||||
# Status: working
|
||||
#
|
||||
# Description:
|
||||
# See the description and requirements of the requested application
|
||||
# in the lab exercise guide.
|
||||
#
|
||||
# Notes:
|
||||
# - MCU speed at startup is 16 MHz
|
||||
#
|
||||
# ToDo:
|
||||
# - Change the example code to match the description and requirements
|
||||
# of the requested application in the lab exercise guide.
|
||||
#****************************************************************************************#
|
||||
|
||||
.include "G431_addr.s"
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
.section .vectortable,"a" // vector table at begin of ROM
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.align 2
|
||||
|
||||
.word 0x20004000 // initial Stack Pointer: 0x20000000 (RAM base) + 0x4000 (16K SRAM1 length)
|
||||
.word 0x08000401 // initial Program Counter
|
||||
.word _ISR_NMI // non-masking interrupt
|
||||
.word _ISR_HARDF // hard fault interrupt
|
||||
|
||||
|
||||
|
||||
/* N.B.
|
||||
Look at the .space or the .org assembler directive to insert the address of the
|
||||
ISRs at the right place in the vector table. Verify your settings by the help of
|
||||
the list file. */
|
||||
|
||||
.word _ISR_S0
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
.text // section .text (default section for program code)
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.align 2
|
||||
.syntax unified
|
||||
.thumb
|
||||
.thumb_func
|
||||
.global init
|
||||
.type init, %function
|
||||
init:
|
||||
CPSID i // disable interrupts globally
|
||||
|
||||
MOVS r0, #0 // safely initialize the GPRs
|
||||
MOVS r1, #0
|
||||
MOVS r2, #0
|
||||
MOVS r3, #0
|
||||
MOVS r4, #0
|
||||
MOVS r5, #0
|
||||
MOVS r6, #0
|
||||
MOVS r7, #0
|
||||
MOV r8, r0
|
||||
MOV r9, r0
|
||||
MOV r10, r0
|
||||
MOV r11, r0
|
||||
MOV r12, r0
|
||||
|
||||
#--- enable port clocking
|
||||
LDR r1, =RCC_AHB2ENR // load address of RCC_AHB2ENR
|
||||
MOV r2, #0x01 // load mask for adjusting port clock gating (A: LEDs)
|
||||
LDR r0, [r1, #0] // get current value of RCC_AHB2ENR
|
||||
ORRS r0, r0, r2 // configure clock gating for ports
|
||||
STR r0, [r1, #0] // apply settings
|
||||
|
||||
#--- port init
|
||||
#- LEDs
|
||||
LDR r1, =GPIOA_MODER // load port A mode register address
|
||||
MOVS r2, #0x03 // prepare mask
|
||||
LDR r0, [r1, #0] // get current value of port A mode register
|
||||
BICS r0, r2 // delete bits
|
||||
MOVS r2, #0x01 // load configuration mask
|
||||
ORRS r0, r0, r2 // apply mask
|
||||
STR r0, [r1, #0] // apply result to port A mode register
|
||||
|
||||
#- switch LED off
|
||||
LDR r1, =GPIOA_ODR // load port A output data register
|
||||
MOVS r2, #0x01 // load mask for LED
|
||||
LDR r0, [r1, #0] // get current value of GPIOA
|
||||
ORRS r0, r0, r2 // configure pin state
|
||||
STR r0, [r1, #0] // apply settings
|
||||
|
||||
#- buttons
|
||||
|
||||
/* ... place your code here ... */
|
||||
|
||||
|
||||
#--- button interrupt config
|
||||
|
||||
#- enable clock for SYSCFG module
|
||||
|
||||
|
||||
#- connect GPIO pins of the buttons to EXTended Interrupt controller lines (EXTI)
|
||||
# in SYSCFG module (SYSCFG_* registers)
|
||||
|
||||
|
||||
|
||||
|
||||
#- configure lines in EXTI module (EXTI_* registers)
|
||||
|
||||
|
||||
|
||||
#- NVIC: set interrupt priority, clear pending bits
|
||||
# and enable interrupts for buttons (see: PM, ch. 4.3, NVIC)
|
||||
|
||||
|
||||
|
||||
CPSIE i // enable interrupts globally
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.align 2
|
||||
.syntax unified
|
||||
.thumb
|
||||
.thumb_func
|
||||
.global main
|
||||
.type main, %function
|
||||
main:
|
||||
LDR r1, =GPIOA_ODR
|
||||
EORS r0, r0, r2
|
||||
STR r0, [r1, #0]
|
||||
|
||||
BL delay
|
||||
|
||||
|
||||
B main
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.align 2
|
||||
.syntax unified
|
||||
.thumb
|
||||
.thumb_func
|
||||
.global delay
|
||||
.type delay, %function
|
||||
delay:
|
||||
MOVS r6, #0 // ...
|
||||
LDR r7, =2000000 // ...
|
||||
.L1:
|
||||
ADDS r6, r6, #1 // ...
|
||||
CMP r6, r7 // ...
|
||||
BNE .L1 // ...
|
||||
BX lr // ...
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.align 2
|
||||
.global stop
|
||||
stop:
|
||||
NOP // do nothing (NOP is here to avoid a debugger crash, only)
|
||||
B stop // if this line is reached, something went wrong
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
.lp1: // this label is only to nicify the line up in the .lst file
|
||||
.ltorg
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
.section .exhand,"ax" // section for exception handlers
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.align 2
|
||||
.syntax unified
|
||||
.thumb
|
||||
.type _ISR_NMI, %function
|
||||
_ISR_NMI:
|
||||
#--- enable clock
|
||||
LDR r1, =RCC_AHB2ENR // load address of RCC_AHB2ENR
|
||||
MOV r2, #0x01 // load mask
|
||||
LDR r0, [r1, #0] // get current value of RCC_AHB2ENR
|
||||
ORRS r0, r0, r2 // configure clock gating for port
|
||||
STR r0, [r1, #0] // apply settings
|
||||
|
||||
#--- init pins
|
||||
LDR r1, =GPIOA_MODER // load port A mode register address
|
||||
MOVS r2, #0xFF // prepare mask
|
||||
LDR r0, [r1, #0] // get current value of port A mode register
|
||||
BICS r0, r0, r2 // delete bits
|
||||
MOVS r2, #0x44 // load configuration mask
|
||||
ORRS r0, r0, r2 // configure pins
|
||||
STR r0, [r1, #0] // apply settings to port A mode register
|
||||
|
||||
#--- switch some LEDs on
|
||||
LDR r1, =GPIOA_ODR // load port A data output register address
|
||||
MOVS r2, #0x0A // load mask for blue and yellow LED
|
||||
LDR r0, [r1, #0]
|
||||
BICS r0, r0, r2
|
||||
STR r0, [r1, #0] // switch LEDs on
|
||||
|
||||
B _ISR_NMI
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.align 2
|
||||
.syntax unified
|
||||
.thumb
|
||||
.type _ISR_HARDF, %function
|
||||
_ISR_HARDF:
|
||||
#--- enable clock
|
||||
LDR r1, =RCC_AHB2ENR // load address of RCC_AHB2ENR
|
||||
MOV r2, #0x01 // load mask
|
||||
LDR r0, [r1, #0] // get current value of RCC_AHB2ENR
|
||||
ORRS r0, r0, r2 // configure clock gating for port
|
||||
STR r0, [r1, #0] // apply settings
|
||||
|
||||
#--- init pins
|
||||
LDR r1, =GPIOA_MODER // load port A mode register address
|
||||
MOVS r2, #0xFF // prepare mask
|
||||
LDR r0, [r1, #0] // get current value of port A mode register
|
||||
BICS r0, r0, r2 // delete bits
|
||||
MOVS r2, #0x11 // load configuration mask
|
||||
ORRS r0, r0, r2 // configure pins
|
||||
STR r0, [r1, #0] // apply settings to port A mode register
|
||||
|
||||
#--- switch some LEDs on
|
||||
LDR r1, =GPIOA_ODR // load port A data output register address
|
||||
MOVS r2, #0x05 // load mask for red and green LED
|
||||
LDR r0, [r1, #0]
|
||||
BICS r0, r0, r2
|
||||
STR r0, [r1, #0] // switch LEDs on
|
||||
|
||||
B _ISR_HARDF
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.align 2
|
||||
.syntax unified
|
||||
.thumb
|
||||
.type _ISR_S0, %function
|
||||
_ISR_S0:
|
||||
PUSH {lr} // save special content
|
||||
|
||||
#--- do the work
|
||||
|
||||
|
||||
#--- clear interrupt flag
|
||||
|
||||
|
||||
#--- leave ISR
|
||||
POP {r1} // get special content back
|
||||
BX r1 // go back to where we came from
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.align 2
|
||||
.syntax unified
|
||||
.thumb
|
||||
.type _ISR_S1, %function
|
||||
_ISR_S1:
|
||||
PUSH {lr} // save special content
|
||||
|
||||
#--- do the work
|
||||
|
||||
|
||||
|
||||
|
||||
#--- clear interrupt flag
|
||||
|
||||
|
||||
|
||||
#--- leave ISR
|
||||
POP {r1} // get special content back
|
||||
BX r1 // go back to where we came from
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------------------#
|
||||
.lp2: // this label is only to nicify the line up in the .lst file
|
||||
.ltorg
|
||||
#----------------------------------------------------------------------------------------#
|
||||
|
||||
.end
|
||||
|
||||
#************************************** E O F *******************************************#
|
||||
Reference in New Issue
Block a user