Add a GCC project to the the XMC1000 demo directory.
parent
f9e024d7ea
commit
245ff12be8
@ -0,0 +1,135 @@
|
|||||||
|
<?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.atollic.truestudio.exe.debug.2093031755">
|
||||||
|
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.atollic.truestudio.exe.debug.2093031755" 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.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GLDErrorParser" 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" cleanCommand="rm -rf" description="" id="com.atollic.truestudio.exe.debug.2093031755" name="Debug" parent="com.atollic.truestudio.exe.debug">
|
||||||
|
<folderInfo id="com.atollic.truestudio.exe.debug.2093031755." name="/" resourcePath="">
|
||||||
|
<toolChain id="com.atollic.truestudio.exe.debug.toolchain.695580378" name="Atollic ARM Tools" superClass="com.atollic.truestudio.exe.debug.toolchain">
|
||||||
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.atollic.truestudio.exe.debug.toolchain.platform.2131771238" isAbstract="false" name="Debug platform" superClass="com.atollic.truestudio.exe.debug.toolchain.platform"/>
|
||||||
|
<builder buildPath="${workspace_loc:/RTOSDemo/Debug}" id="com.atollic.truestudio.mbs.builder1.1523343795" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="com.atollic.truestudio.mbs.builder1">
|
||||||
|
<outputEntries>
|
||||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug"/>
|
||||||
|
</outputEntries>
|
||||||
|
</builder>
|
||||||
|
<tool id="com.atollic.truestudio.exe.debug.toolchain.as.97785284" name="Assembler" superClass="com.atollic.truestudio.exe.debug.toolchain.as">
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpucore.859341639" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" value="None" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.endianess.460598916" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.mcpu.1991364094" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" value="XMC1200-T038F0200" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.instr_set.1178677075" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpu.1312129520" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/>
|
||||||
|
<option id="com.atollic.truestudio.as.symbols.defined.824610384" name="Defined symbols" superClass="com.atollic.truestudio.as.symbols.defined" valueType="definedSymbols">
|
||||||
|
<listOptionValue builtIn="false" value="XMC1200"/>
|
||||||
|
</option>
|
||||||
|
<option id="com.atollic.truestudio.as.general.incpath.1440953599" name="Include path" superClass="com.atollic.truestudio.as.general.incpath" valueType="includePath">
|
||||||
|
<listOptionValue builtIn="false" value="C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/CORTEX_M0_Infineon_Boot_Kits_IAR_Keil/Libraries/Device/Infineon/XMC1200_series/Include"/>
|
||||||
|
<listOptionValue builtIn="false" value="C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/CORTEX_M0_Infineon_Boot_Kits_IAR_Keil/Libraries/CMSIS/Include"/>
|
||||||
|
<listOptionValue builtIn="false" value="C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/CORTEX_M0_Infineon_Boot_Kits_IAR_Keil/src"/>
|
||||||
|
</option>
|
||||||
|
<inputType id="com.atollic.truestudio.as.input.1065597400" name="Input" superClass="com.atollic.truestudio.as.input"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="com.atollic.truestudio.exe.debug.toolchain.gcc.37591077" name="C Compiler" superClass="com.atollic.truestudio.exe.debug.toolchain.gcc">
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.mcpu.1203399414" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" value="XMC1200-T038F0200" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.instr_set.505304009" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.interwork.1573626780" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpu.640300337" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpucore.1302488824" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" value="None" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.gcc.symbols.defined.213458231" name="Defined symbols" superClass="com.atollic.truestudio.gcc.symbols.defined" valueType="definedSymbols">
|
||||||
|
<listOptionValue builtIn="false" value="XMC1200"/>
|
||||||
|
</option>
|
||||||
|
<option id="com.atollic.truestudio.gcc.directories.select.50847705" name="Include path" superClass="com.atollic.truestudio.gcc.directories.select" valueType="includePath">
|
||||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}""/>
|
||||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/CMSIS}""/>
|
||||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Common_Demo_Source/include}""/>
|
||||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Atollic_Specific}""/>
|
||||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/FreeRTOS_Source/include}""/>
|
||||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/FreeRTOS_Source/ARM_CM0}""/>
|
||||||
|
</option>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.endianess.1238437628" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess"/>
|
||||||
|
<option id="com.atollic.truestudio.gcc.optimization.prep_garbage.1914199267" name="Prepare dead code removal" superClass="com.atollic.truestudio.gcc.optimization.prep_garbage" value="true" valueType="boolean"/>
|
||||||
|
<option id="com.atollic.truestudio.gcc.optimization.prep_data.989109200" name="Prepare dead data removal" superClass="com.atollic.truestudio.gcc.optimization.prep_data" value="true" valueType="boolean"/>
|
||||||
|
<inputType id="com.atollic.truestudio.gcc.input.1008000819" superClass="com.atollic.truestudio.gcc.input"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="com.atollic.truestudio.exe.debug.toolchain.ld.298485676" name="C Linker" superClass="com.atollic.truestudio.exe.debug.toolchain.ld">
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpucore.370646558" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" value="None" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.endianess.775626288" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.mcpu.822857371" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" value="XMC1200-T038F0200" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.instr_set.1027082086" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpu.2097263765" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/>
|
||||||
|
<option id="com.atollic.truestudio.ld.general.clib.1499111687" name="Runtime Library:" superClass="com.atollic.truestudio.ld.general.clib" value="com.atollic.truestudio.ld.general.clib.small" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.ld.general.scriptfile.1390912393" name="Linker script" superClass="com.atollic.truestudio.ld.general.scriptfile" value="../Atollic_Specific/xmc1000_flash.ld" valueType="string"/>
|
||||||
|
<option id="com.atollic.truestudio.ld.optimization.do_garbage.1726089101" name="Dead code removal" superClass="com.atollic.truestudio.ld.optimization.do_garbage" value="true" valueType="boolean"/>
|
||||||
|
<inputType id="com.atollic.truestudio.ld.input.715750125" name="Input" superClass="com.atollic.truestudio.ld.input">
|
||||||
|
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||||
|
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||||
|
</inputType>
|
||||||
|
</tool>
|
||||||
|
<tool id="com.atollic.truestudio.exe.debug.toolchain.gpp.1902950101" name="C++ Compiler" superClass="com.atollic.truestudio.exe.debug.toolchain.gpp">
|
||||||
|
<option id="com.atollic.truestudio.gpp.symbols.defined.579464539" name="Defined symbols" superClass="com.atollic.truestudio.gpp.symbols.defined" valueType="definedSymbols">
|
||||||
|
<listOptionValue builtIn="false" value="XMC1200"/>
|
||||||
|
</option>
|
||||||
|
<option id="com.atollic.truestudio.gpp.directories.select.837492116" name="Include path" superClass="com.atollic.truestudio.gpp.directories.select" valueType="includePath">
|
||||||
|
<listOptionValue builtIn="false" value="../Libraries/Device/Infineon/XMC1200_series/Include"/>
|
||||||
|
<listOptionValue builtIn="false" value="../Libraries/CMSIS/Include"/>
|
||||||
|
<listOptionValue builtIn="false" value="../src"/>
|
||||||
|
</option>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.endianess.1746048697" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.mcpu.1737655603" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" value="XMC1200-T038F0200" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.instr_set.2050062206" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpucore.1899868679" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" value="None" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpu.142457111" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/>
|
||||||
|
<option id="com.atollic.truestudio.gpp.optimization.prep_garbage.810923636" name="Prepare dead code removal" superClass="com.atollic.truestudio.gpp.optimization.prep_garbage" value="true" valueType="boolean"/>
|
||||||
|
<option id="com.atollic.truestudio.gpp.optimization.prep_data.717306270" name="Prepare dead data removal" superClass="com.atollic.truestudio.gpp.optimization.prep_data" value="true" valueType="boolean"/>
|
||||||
|
<option id="com.atollic.truestudio.gpp.optimization.fno_rtti.1460543604" name="Disable RTTI" superClass="com.atollic.truestudio.gpp.optimization.fno_rtti"/>
|
||||||
|
<option id="com.atollic.truestudio.gpp.optimization.fno_exceptions.350384352" name="Disable exception handling" superClass="com.atollic.truestudio.gpp.optimization.fno_exceptions"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="com.atollic.truestudio.exe.debug.toolchain.ldcc.447187775" name="C++ Linker" superClass="com.atollic.truestudio.exe.debug.toolchain.ldcc">
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.endianess.1650031295" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.mcpu.1471501166" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" value="XMC1200-T038F0200" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.instr_set.408817938" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpucore.1060198968" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" value="None" valueType="enumerated"/>
|
||||||
|
<option id="com.atollic.truestudio.common_options.target.fpu.270724373" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/>
|
||||||
|
<option id="com.atollic.truestudio.ld.general.cclib.2106093589" name="Runtime Library:" superClass="com.atollic.truestudio.ld.general.cclib"/>
|
||||||
|
<option id="com.atollic.truestudio.ldcc.optimization.do_garbage.643141574" name="Dead code removal" superClass="com.atollic.truestudio.ldcc.optimization.do_garbage" value="true" valueType="boolean"/>
|
||||||
|
<option id="com.atollic.truestudio.ldcc.general.scriptfile.865762444" name="Linker script" superClass="com.atollic.truestudio.ldcc.general.scriptfile" value="..\xmc1000_flash.ld" valueType="string"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="com.atollic.truestudio.exe.debug.toolchain.secoutput.31389710" name="Other" superClass="com.atollic.truestudio.exe.debug.toolchain.secoutput"/>
|
||||||
|
</toolChain>
|
||||||
|
</folderInfo>
|
||||||
|
<fileInfo id="com.atollic.truestudio.exe.debug.2093031755.1258798340" name="main-full.c" rcbsApplicability="disable" resourcePath="main-full.c" toolsToInvoke="com.atollic.truestudio.exe.debug.toolchain.gcc.37591077.227330701">
|
||||||
|
<tool id="com.atollic.truestudio.exe.debug.toolchain.gcc.37591077.227330701" name="C Compiler" superClass="com.atollic.truestudio.exe.debug.toolchain.gcc.37591077"/>
|
||||||
|
</fileInfo>
|
||||||
|
<sourceEntries>
|
||||||
|
<entry excluding="Keil_Specific|IAR_Specific" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||||
|
</sourceEntries>
|
||||||
|
</configuration>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||||
|
</cconfiguration>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
|
<project id="RTOSDemo.com.atollic.truestudio.exe.1513105543" name="Executable" projectType="com.atollic.truestudio.exe"/>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||||
|
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||||
|
<configuration configurationName="Debug">
|
||||||
|
<resource resourceType="PROJECT" workspacePath="/RTOSDemo"/>
|
||||||
|
</configuration>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="scannerConfiguration">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
|
<scannerConfigBuildInfo instanceId="com.atollic.truestudio.exe.debug.2093031755;com.atollic.truestudio.exe.debug.2093031755.;com.atollic.truestudio.exe.debug.toolchain.gcc.37591077;com.atollic.truestudio.gcc.input.1008000819">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.atollic.truestudio.mbs.ARMToolsPerProjectProfileC"/>
|
||||||
|
</scannerConfigBuildInfo>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||||
|
</cproject>
|
@ -0,0 +1,104 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>RTOSDemo</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||||
|
<triggers>full,incremental,</triggers>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||||
|
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||||
|
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||||
|
</natures>
|
||||||
|
<linkedResources>
|
||||||
|
<link>
|
||||||
|
<name>Common_Demo_Source</name>
|
||||||
|
<type>2</type>
|
||||||
|
<locationURI>virtual:/virtual</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>FreeRTOS_Source</name>
|
||||||
|
<type>2</type>
|
||||||
|
<locationURI>virtual:/virtual</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>Common_Demo_Source/blocktim.c</name>
|
||||||
|
<type>1</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Demo/Common/Minimal/blocktim.c</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>Common_Demo_Source/countsem.c</name>
|
||||||
|
<type>1</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Demo/Common/Minimal/countsem.c</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>Common_Demo_Source/dynamic.c</name>
|
||||||
|
<type>1</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Demo/Common/Minimal/dynamic.c</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>Common_Demo_Source/include</name>
|
||||||
|
<type>2</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Demo/Common/include</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>Common_Demo_Source/recmutex.c</name>
|
||||||
|
<type>1</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Demo/Common/Minimal/recmutex.c</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>FreeRTOS_Source/ARM_CM0</name>
|
||||||
|
<type>2</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Source/portable/GCC/ARM_CM0</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>FreeRTOS_Source/heap_4.c</name>
|
||||||
|
<type>1</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Source/portable/MemMang/heap_4.c</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>FreeRTOS_Source/include</name>
|
||||||
|
<type>2</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Source/include</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>FreeRTOS_Source/list.c</name>
|
||||||
|
<type>1</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Source/list.c</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>FreeRTOS_Source/queue.c</name>
|
||||||
|
<type>1</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Source/queue.c</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>FreeRTOS_Source/tasks.c</name>
|
||||||
|
<type>1</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Source/tasks.c</locationURI>
|
||||||
|
</link>
|
||||||
|
<link>
|
||||||
|
<name>FreeRTOS_Source/timers.c</name>
|
||||||
|
<type>1</type>
|
||||||
|
<locationURI>FREERTOS_BASE/Source/timers.c</locationURI>
|
||||||
|
</link>
|
||||||
|
</linkedResources>
|
||||||
|
<variableList>
|
||||||
|
<variable>
|
||||||
|
<name>FREERTOS_BASE</name>
|
||||||
|
<value>$%7BPARENT-2-PROJECT_LOC%7D</value>
|
||||||
|
</variable>
|
||||||
|
</variableList>
|
||||||
|
</projectDescription>
|
@ -0,0 +1,11 @@
|
|||||||
|
BOARD=XMC1200_Boot_Kit
|
||||||
|
CODE_LOCATION=FLASH
|
||||||
|
ENDIAN=Little-endian
|
||||||
|
MCU=XMC1200-T038F0200
|
||||||
|
MCU_VENDOR=Infineon
|
||||||
|
MODEL=Pro
|
||||||
|
PROBE=SEGGER J-LINK
|
||||||
|
PROJECT_FORMAT_VERSION=2
|
||||||
|
TARGET=ARM\u00AE
|
||||||
|
VERSION=4.1.0
|
||||||
|
eclipse.preferences.version=1
|
@ -0,0 +1,11 @@
|
|||||||
|
eclipse.preferences.version=1
|
||||||
|
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.2093031755/CPATH/delimiter=;
|
||||||
|
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.2093031755/CPATH/operation=remove
|
||||||
|
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.2093031755/C_INCLUDE_PATH/delimiter=;
|
||||||
|
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.2093031755/C_INCLUDE_PATH/operation=remove
|
||||||
|
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.2093031755/append=true
|
||||||
|
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.2093031755/appendContributed=true
|
||||||
|
environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.2093031755/LIBRARY_PATH/delimiter=;
|
||||||
|
environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.2093031755/LIBRARY_PATH/operation=remove
|
||||||
|
environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.2093031755/append=true
|
||||||
|
environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.2093031755/appendContributed=true
|
@ -0,0 +1,232 @@
|
|||||||
|
/*
|
||||||
|
FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.
|
||||||
|
|
||||||
|
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* FreeRTOS provides completely free yet professionally developed, *
|
||||||
|
* robust, strictly quality controlled, supported, and cross *
|
||||||
|
* platform software that has become a de facto standard. *
|
||||||
|
* *
|
||||||
|
* Help yourself get started quickly and support the FreeRTOS *
|
||||||
|
* project by purchasing a FreeRTOS tutorial book, reference *
|
||||||
|
* manual, or both from: http://www.FreeRTOS.org/Documentation *
|
||||||
|
* *
|
||||||
|
* Thank you! *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
|
FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU General Public License (version 2) as published by the
|
||||||
|
Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
|
||||||
|
|
||||||
|
>>! NOTE: The modification to the GPL is included to allow you to distribute
|
||||||
|
>>! a combined work that includes FreeRTOS without being obliged to provide
|
||||||
|
>>! the source code for proprietary components outside of the FreeRTOS
|
||||||
|
>>! kernel.
|
||||||
|
|
||||||
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. Full license text is available from the following
|
||||||
|
link: http://www.freertos.org/a00114.html
|
||||||
|
|
||||||
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* Having a problem? Start by reading the FAQ "My application does *
|
||||||
|
* not run, what could be wrong?" *
|
||||||
|
* *
|
||||||
|
* http://www.FreeRTOS.org/FAQHelp.html *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, books, training, latest versions,
|
||||||
|
license and Real Time Engineers Ltd. contact details.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
||||||
|
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
|
||||||
|
compatible FAT file system, and our tiny thread aware UDP/IP stack.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
|
||||||
|
Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS
|
||||||
|
licenses offer ticketed support, indemnification and middleware.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
|
||||||
|
engineered and independently SIL3 certified version for use in safety and
|
||||||
|
mission critical applications that require provable dependability.
|
||||||
|
|
||||||
|
1 tab == 4 spaces!
|
||||||
|
*/
|
||||||
|
|
||||||
|
void vRegTest1Task( void ) __attribute__((naked));
|
||||||
|
void vRegTest2Task( void ) __attribute__((naked));
|
||||||
|
|
||||||
|
void vRegTest1Task( void )
|
||||||
|
{
|
||||||
|
__asm volatile
|
||||||
|
(
|
||||||
|
".extern ulRegTest1LoopCounter \n"
|
||||||
|
" \n"
|
||||||
|
" /* Fill the core registers with known values. */ \n"
|
||||||
|
" movs r1, #101 \n"
|
||||||
|
" movs r2, #102 \n"
|
||||||
|
" movs r3, #103 \n"
|
||||||
|
" movs r4, #104 \n"
|
||||||
|
" movs r5, #105 \n"
|
||||||
|
" movs r6, #106 \n"
|
||||||
|
" movs r7, #107 \n"
|
||||||
|
" movs r0, #108 \n"
|
||||||
|
" mov r8, r0 \n"
|
||||||
|
" movs r0, #109 \n"
|
||||||
|
" mov r9, r0 \n"
|
||||||
|
" movs r0, #110 \n"
|
||||||
|
" mov r10, r0 \n"
|
||||||
|
" movs r0, #111 \n"
|
||||||
|
" mov r11, r0 \n"
|
||||||
|
" movs r0, #112 \n"
|
||||||
|
" mov r12, r0 \n"
|
||||||
|
" movs r0, #100 \n"
|
||||||
|
" \n"
|
||||||
|
"reg1_loop: \n"
|
||||||
|
" \n"
|
||||||
|
" cmp r0, #100 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" cmp r1, #101 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" cmp r2, #102 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" cmp r3, #103 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" cmp r4, #104 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" cmp r5, #105 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" cmp r6, #106 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" cmp r7, #107 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" movs r0, #108 \n"
|
||||||
|
" cmp r8, r0 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" movs r0, #109 \n"
|
||||||
|
" cmp r9, r0 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" movs r0, #110 \n"
|
||||||
|
" cmp r10, r0 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" movs r0, #111 \n"
|
||||||
|
" cmp r11, r0 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" movs r0, #112 \n"
|
||||||
|
" cmp r12, r0 \n"
|
||||||
|
" bne reg1_error_loop \n"
|
||||||
|
" \n"
|
||||||
|
" /* Everything passed, increment the loop counter. */ \n"
|
||||||
|
" push { r1 } \n"
|
||||||
|
" ldr r0, =ulRegTest1LoopCounter \n"
|
||||||
|
" ldr r1, [r0] \n"
|
||||||
|
" add r1, r1, #1 \n"
|
||||||
|
" str r1, [r0] \n"
|
||||||
|
" pop { r1 } \n"
|
||||||
|
" \n"
|
||||||
|
" /* Start again. */ \n"
|
||||||
|
" movs r0, #100 \n"
|
||||||
|
" b reg1_loop \n"
|
||||||
|
" \n"
|
||||||
|
"reg1_error_loop: \n"
|
||||||
|
" /* If this line is hit then there was an error in a core register value. \n"
|
||||||
|
" The loop ensures the loop counter stops incrementing. */ \n"
|
||||||
|
" b reg1_error_loop \n"
|
||||||
|
" nop \n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
void vRegTest2Task( void )
|
||||||
|
{
|
||||||
|
__asm volatile
|
||||||
|
(
|
||||||
|
".extern ulRegTest2LoopCounter \n"
|
||||||
|
" \n"
|
||||||
|
" /* Fill the core registers with known values. */ \n"
|
||||||
|
" movs r1, #1 \n"
|
||||||
|
" movs r2, #2 \n"
|
||||||
|
" movs r3, #3 \n"
|
||||||
|
" movs r4, #4 \n"
|
||||||
|
" movs r5, #5 \n"
|
||||||
|
" movs r6, #6 \n"
|
||||||
|
" movs r7, #7 \n"
|
||||||
|
" movs r0, #8 \n"
|
||||||
|
" movs r8, r0 \n"
|
||||||
|
" movs r0, #9 \n"
|
||||||
|
" mov r9, r0 \n"
|
||||||
|
" movs r0, #10 \n"
|
||||||
|
" mov r10, r0 \n"
|
||||||
|
" movs r0, #11 \n"
|
||||||
|
" mov r11, r0 \n"
|
||||||
|
" movs r0, #12 \n"
|
||||||
|
" mov r12, r0 \n"
|
||||||
|
" movs r0, #10 \n"
|
||||||
|
" \n"
|
||||||
|
"reg2_loop: \n"
|
||||||
|
" \n"
|
||||||
|
" cmp r0, #10 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" cmp r1, #1 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" cmp r2, #2 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" cmp r3, #3 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" cmp r4, #4 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" cmp r5, #5 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" cmp r6, #6 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" cmp r7, #7 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" movs r0, #8 \n"
|
||||||
|
" cmp r8, r0 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" movs r0, #9 \n"
|
||||||
|
" cmp r9, r0 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" movs r0, #10 \n"
|
||||||
|
" cmp r10, r0 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" movs r0, #11 \n"
|
||||||
|
" cmp r11, r0 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" movs r0, #12 \n"
|
||||||
|
" cmp r12, r0 \n"
|
||||||
|
" bne reg2_error_loop \n"
|
||||||
|
" \n"
|
||||||
|
" /* Everything passed, increment the loop counter. */ \n"
|
||||||
|
" push { r1 } \n"
|
||||||
|
" ldr r0, =ulRegTest2LoopCounter \n"
|
||||||
|
" ldr r1, [r0] \n"
|
||||||
|
" add r1, r1, #1 \n"
|
||||||
|
" str r1, [r0] \n"
|
||||||
|
" pop { r1 } \n"
|
||||||
|
" \n"
|
||||||
|
" /* Start again. */ \n"
|
||||||
|
" movs r0, #10 \n"
|
||||||
|
" b reg2_loop \n"
|
||||||
|
" \n"
|
||||||
|
"reg2_error_loop: \n"
|
||||||
|
" /* If this line is hit then there was an error in a core register value. \n"
|
||||||
|
" The loop ensures the loop counter stops incrementing. */ \n"
|
||||||
|
" b reg2_error_loop \n"
|
||||||
|
" nop \n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,608 @@
|
|||||||
|
/**
|
||||||
|
*****************************************************************************
|
||||||
|
**
|
||||||
|
** File : startup_XMC1200.s
|
||||||
|
**
|
||||||
|
** Abstract : This assembler file contains interrupt vector and
|
||||||
|
** startup code for ARM.
|
||||||
|
**
|
||||||
|
** Functions : Reset_Handler
|
||||||
|
** Default_Handler
|
||||||
|
** XMCVeneer code
|
||||||
|
**
|
||||||
|
** Target : Infineon $(DEVICE) Device
|
||||||
|
**
|
||||||
|
** Environment : Atollic TrueSTUDIO(R)
|
||||||
|
**
|
||||||
|
** Distribution: The file is distributed “as is,” without any warranty
|
||||||
|
** of any kind.
|
||||||
|
**
|
||||||
|
** (c)Copyright Atollic AB.
|
||||||
|
** You may use this file as-is or modify it according to the needs of your
|
||||||
|
** project. This file may only be built (assembled or compiled and linked)
|
||||||
|
** using the Atollic TrueSTUDIO(R) product. The use of this file together
|
||||||
|
** with other tools than Atollic TrueSTUDIO(R) is not permitted.
|
||||||
|
**
|
||||||
|
*****************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef DAVE_CE
|
||||||
|
#include <Device_Data.h>
|
||||||
|
#else
|
||||||
|
#define CLKVAL1_SSW 0x80000000
|
||||||
|
#define CLKVAL2_SSW 0x80000000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
.syntax unified
|
||||||
|
.cpu cortex-m0
|
||||||
|
.fpu softvfp
|
||||||
|
.thumb
|
||||||
|
|
||||||
|
.global Reset_Handler
|
||||||
|
.global InterruptVector
|
||||||
|
.global Default_Handler
|
||||||
|
|
||||||
|
/* Linker script definitions */
|
||||||
|
/* start address for the initialization values of the .data section */
|
||||||
|
.word _sidata
|
||||||
|
/* start address for the .data section */
|
||||||
|
.word _sdata
|
||||||
|
/* end address for the .data section */
|
||||||
|
.word _edata
|
||||||
|
/* start address for the .bss section */
|
||||||
|
.word _sbss
|
||||||
|
/* end address for the .bss section */
|
||||||
|
.word _ebss
|
||||||
|
|
||||||
|
.word VeneerLoadAddr
|
||||||
|
.word VeneerStart
|
||||||
|
.word VeneerSize
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
**===========================================================================
|
||||||
|
** Program - Reset_Handler
|
||||||
|
** Abstract: This code gets called after reset.
|
||||||
|
**===========================================================================
|
||||||
|
*/
|
||||||
|
.section .text.Reset_Handler,"ax", %progbits
|
||||||
|
.type Reset_Handler, %function
|
||||||
|
Reset_Handler:
|
||||||
|
/* Set stack pointer */
|
||||||
|
ldr r0, =_estack
|
||||||
|
mov sp, r0
|
||||||
|
|
||||||
|
/* Branch to SystemInit function */
|
||||||
|
bl SystemInit
|
||||||
|
|
||||||
|
/* Copy data initialization values */
|
||||||
|
ldr r1,=_sidata
|
||||||
|
ldr r2,=_sdata
|
||||||
|
ldr r3,=_edata
|
||||||
|
b cmpdata
|
||||||
|
CopyLoop:
|
||||||
|
ldr r0, [r1]
|
||||||
|
str r0, [r2]
|
||||||
|
adds r1, r1, #4
|
||||||
|
adds r2, r2, #4
|
||||||
|
cmpdata:
|
||||||
|
cmp r2, r3
|
||||||
|
blt CopyLoop
|
||||||
|
|
||||||
|
/* Clear BSS section */
|
||||||
|
movs r0, #0
|
||||||
|
ldr r2,=_sbss
|
||||||
|
ldr r3,=_ebss
|
||||||
|
b cmpbss
|
||||||
|
ClearLoop:
|
||||||
|
str r0, [r2]
|
||||||
|
adds r2, r2, #4
|
||||||
|
cmpbss:
|
||||||
|
cmp r2, r3
|
||||||
|
blt ClearLoop
|
||||||
|
|
||||||
|
/* VENEER COPY */
|
||||||
|
/* R0 = Start address, R1 = Destination address, R2 = Size */
|
||||||
|
ldr r0, =VeneerLoadAddr
|
||||||
|
ldr r1, =VeneerStart
|
||||||
|
ldr r2, =VeneerSize
|
||||||
|
|
||||||
|
STARTVENEERCOPY:
|
||||||
|
/* R2 contains byte count. Change it to word count. It is ensured in the
|
||||||
|
linker script that the length is always word aligned.
|
||||||
|
*/
|
||||||
|
lsrs r2,r2,#2 /* Divide by 4 to obtain word count */
|
||||||
|
beq SKIPVENEERCOPY
|
||||||
|
|
||||||
|
/* The proverbial loop from the schooldays */
|
||||||
|
VENEERCOPYLOOP:
|
||||||
|
ldr r3,[R0]
|
||||||
|
str r3,[R1]
|
||||||
|
subs r2,#1
|
||||||
|
beq SKIPVENEERCOPY
|
||||||
|
adds r0,#4
|
||||||
|
adds r1,#4
|
||||||
|
b VENEERCOPYLOOP
|
||||||
|
|
||||||
|
SKIPVENEERCOPY:
|
||||||
|
/* Update System Clock */
|
||||||
|
ldr r0,=SystemCoreClockUpdate
|
||||||
|
blx r0
|
||||||
|
|
||||||
|
/* Call static constructors */
|
||||||
|
bl __libc_init_array
|
||||||
|
|
||||||
|
/* Branch to main */
|
||||||
|
bl main
|
||||||
|
|
||||||
|
/* If main returns, branch to Default_Handler. */
|
||||||
|
b Default_Handler
|
||||||
|
|
||||||
|
.size Reset_Handler, .-Reset_Handler
|
||||||
|
|
||||||
|
/**
|
||||||
|
**===========================================================================
|
||||||
|
** Program - Default_Handler
|
||||||
|
** Abstract: This code gets called when the processor receives an
|
||||||
|
** unexpected interrupt.
|
||||||
|
**===========================================================================
|
||||||
|
*/
|
||||||
|
.section .text.Default_Handler,"ax", %progbits
|
||||||
|
Default_Handler:
|
||||||
|
b Default_Handler
|
||||||
|
|
||||||
|
.size Default_Handler, .-Default_Handler
|
||||||
|
|
||||||
|
/**
|
||||||
|
**===========================================================================
|
||||||
|
** Interrupt vector table
|
||||||
|
**===========================================================================
|
||||||
|
*/
|
||||||
|
.section .isr_vector,"a", %progbits
|
||||||
|
.globl InterruptVector
|
||||||
|
.type InterruptVector, %object
|
||||||
|
|
||||||
|
InterruptVector:
|
||||||
|
.word _estack /* 0 - Stack pointer */
|
||||||
|
.word Reset_Handler /* 1 - Reset */
|
||||||
|
.word NMI_Handler /* 2 - NMI */
|
||||||
|
.word HardFault_Handler /* 3 - Hard fault */
|
||||||
|
.word CLKVAL1_SSW /* Clock configuration value */
|
||||||
|
.word CLKVAL2_SSW /* Clock gating configuration */
|
||||||
|
|
||||||
|
.size InterruptVector, . - InterruptVector
|
||||||
|
|
||||||
|
/**
|
||||||
|
**===========================================================================
|
||||||
|
** Weak interrupt handlers redirected to Default_Handler. These can be
|
||||||
|
** overridden in user code.
|
||||||
|
**===========================================================================
|
||||||
|
*/
|
||||||
|
.weak NMI_Handler
|
||||||
|
.thumb_set NMI_Handler, Default_Handler
|
||||||
|
|
||||||
|
.weak HardFault_Handler
|
||||||
|
.thumb_set HardFault_Handler, Default_Handler
|
||||||
|
|
||||||
|
.weak SVC_Handler
|
||||||
|
.thumb_set SVC_Handler, Default_Handler
|
||||||
|
|
||||||
|
.weak PendSV_Handler
|
||||||
|
.thumb_set PendSV_Handler, Default_Handler
|
||||||
|
|
||||||
|
.weak SysTick_Handler
|
||||||
|
.thumb_set SysTick_Handler, Default_Handler
|
||||||
|
|
||||||
|
/* ============= START OF INTERRUPT HANDLER DEFINITION ====================== */
|
||||||
|
|
||||||
|
/* IRQ Handlers */
|
||||||
|
.weak SCU_0_IRQHandler
|
||||||
|
.type SCU_0_IRQHandler, %function
|
||||||
|
SCU_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size SCU_0_IRQHandler, . - SCU_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak SCU_1_IRQHandler
|
||||||
|
.type SCU_1_IRQHandler, %function
|
||||||
|
SCU_1_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size SCU_1_IRQHandler, . - SCU_1_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak SCU_2_IRQHandler
|
||||||
|
.type SCU_2_IRQHandler, %function
|
||||||
|
SCU_2_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size SCU_2_IRQHandler, . - SCU_2_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak ERU0_0_IRQHandler
|
||||||
|
.type ERU0_0_IRQHandler, %function
|
||||||
|
ERU0_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size ERU0_0_IRQHandler, . - ERU0_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak ERU0_1_IRQHandler
|
||||||
|
.type ERU0_1_IRQHandler, %function
|
||||||
|
ERU0_1_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size ERU0_1_IRQHandler, . - ERU0_1_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak ERU0_2_IRQHandler
|
||||||
|
.type ERU0_2_IRQHandler, %function
|
||||||
|
ERU0_2_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size ERU0_2_IRQHandler, . - ERU0_2_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak ERU0_3_IRQHandler
|
||||||
|
.type ERU0_3_IRQHandler, %function
|
||||||
|
ERU0_3_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size ERU0_3_IRQHandler, . - ERU0_3_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak MATH0_0_IRQHandler
|
||||||
|
.type MATH0_0_IRQHandler, %function
|
||||||
|
MATH0_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size MATH0_0_IRQHandler, . - MATH0_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak VADC0_C0_0_IRQHandler
|
||||||
|
.type VADC0_C0_0_IRQHandler , %function
|
||||||
|
VADC0_C0_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size VADC0_C0_0_IRQHandler , . - VADC0_C0_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak VADC0_C0_1_IRQHandler
|
||||||
|
.type VADC0_C0_1_IRQHandler , %function
|
||||||
|
VADC0_C0_1_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size VADC0_C0_1_IRQHandler , . - VADC0_C0_1_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak VADC0_G0_0_IRQHandler
|
||||||
|
.type VADC0_G0_0_IRQHandler, %function
|
||||||
|
VADC0_G0_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size VADC0_G0_0_IRQHandler, . - VADC0_G0_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak VADC0_G0_1_IRQHandler
|
||||||
|
.type VADC0_G0_1_IRQHandler, %function
|
||||||
|
VADC0_G0_1_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size VADC0_G0_1_IRQHandler, . - VADC0_G0_1_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak VADC0_G1_0_IRQHandler
|
||||||
|
.type VADC0_G1_0_IRQHandler, %function
|
||||||
|
VADC0_G1_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size VADC0_G1_0_IRQHandler, . - VADC0_G1_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak VADC0_G1_1_IRQHandler
|
||||||
|
.type VADC0_G1_1_IRQHandler, %function
|
||||||
|
VADC0_G1_1_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size VADC0_G1_1_IRQHandler, . - VADC0_G1_1_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak CCU40_0_IRQHandler
|
||||||
|
.type CCU40_0_IRQHandler, %function
|
||||||
|
CCU40_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size CCU40_0_IRQHandler, . - CCU40_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak CCU40_1_IRQHandler
|
||||||
|
.type CCU40_1_IRQHandler, %function
|
||||||
|
|
||||||
|
CCU40_1_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size CCU40_1_IRQHandler, . - CCU40_1_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak CCU40_2_IRQHandler
|
||||||
|
.type CCU40_2_IRQHandler, %function
|
||||||
|
CCU40_2_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size CCU40_2_IRQHandler, . - CCU40_2_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak CCU40_3_IRQHandler
|
||||||
|
.type CCU40_3_IRQHandler, %function
|
||||||
|
CCU40_3_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size CCU40_3_IRQHandler, . - CCU40_3_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak CCU80_0_IRQHandler
|
||||||
|
.type CCU80_0_IRQHandler, %function
|
||||||
|
CCU80_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size CCU80_0_IRQHandler, . - CCU80_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak CCU80_1_IRQHandler
|
||||||
|
.type CCU80_1_IRQHandler, %function
|
||||||
|
CCU80_1_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size CCU80_1_IRQHandler, . - CCU80_1_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak POSIF0_0_IRQHandler
|
||||||
|
.type POSIF0_0_IRQHandler, %function
|
||||||
|
|
||||||
|
POSIF0_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size POSIF0_0_IRQHandler, . - POSIF0_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak POSIF0_1_IRQHandler
|
||||||
|
.type POSIF0_1_IRQHandler, %function
|
||||||
|
POSIF0_1_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size POSIF0_1_IRQHandler, . - POSIF0_1_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak USIC0_0_IRQHandler
|
||||||
|
.type USIC0_0_IRQHandler, %function
|
||||||
|
USIC0_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size USIC0_0_IRQHandler, . - USIC0_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak USIC0_1_IRQHandler
|
||||||
|
.type USIC0_1_IRQHandler, %function
|
||||||
|
USIC0_1_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size USIC0_1_IRQHandler, . - USIC0_1_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak USIC0_2_IRQHandler
|
||||||
|
.type USIC0_2_IRQHandler, %function
|
||||||
|
USIC0_2_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size USIC0_2_IRQHandler, . - USIC0_2_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak USIC0_3_IRQHandler
|
||||||
|
.type USIC0_3_IRQHandler, %function
|
||||||
|
USIC0_3_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size USIC0_3_IRQHandler, . - USIC0_3_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak USIC0_4_IRQHandler
|
||||||
|
.type USIC0_4_IRQHandler, %function
|
||||||
|
USIC0_4_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size USIC0_4_IRQHandler, . - USIC0_4_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak USIC0_5_IRQHandler
|
||||||
|
.type USIC0_5_IRQHandler, %function
|
||||||
|
USIC0_5_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size USIC0_5_IRQHandler, . - USIC0_5_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak LEDTS0_0_IRQHandler
|
||||||
|
.type LEDTS0_0_IRQHandler, %function
|
||||||
|
LEDTS0_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size LEDTS0_0_IRQHandler, . - LEDTS0_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak LEDTS1_0_IRQHandler
|
||||||
|
.type LEDTS1_0_IRQHandler, %function
|
||||||
|
LEDTS1_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size LEDTS1_0_IRQHandler, . - LEDTS1_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
.weak BCCU0_0_IRQHandler
|
||||||
|
.type BCCU0_0_IRQHandler, %function
|
||||||
|
BCCU0_0_IRQHandler:
|
||||||
|
B .
|
||||||
|
.size BCCU0_0_IRQHandler, . - BCCU0_0_IRQHandler
|
||||||
|
/* ======================================================================== */
|
||||||
|
/* ======================================================================== */
|
||||||
|
|
||||||
|
/* ==================VENEERS VENEERS VENEERS VENEERS VENEERS=============== */
|
||||||
|
.section ".XmcVeneerCode","ax",%progbits
|
||||||
|
.globl HardFault_Veneer
|
||||||
|
HardFault_Veneer:
|
||||||
|
LDR R0, =HardFault_Handler
|
||||||
|
MOV PC,R0
|
||||||
|
.long 0
|
||||||
|
.long 0
|
||||||
|
.long 0
|
||||||
|
.long 0
|
||||||
|
.long 0
|
||||||
|
.long 0
|
||||||
|
.long 0
|
||||||
|
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SVC_Veneer
|
||||||
|
SVC_Veneer:
|
||||||
|
LDR R0, =SVC_Handler
|
||||||
|
MOV PC,R0
|
||||||
|
.long 0
|
||||||
|
.long 0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl PendSV_Veneer
|
||||||
|
PendSV_Veneer:
|
||||||
|
LDR R0, =PendSV_Handler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SysTick_Veneer
|
||||||
|
SysTick_Veneer:
|
||||||
|
LDR R0, =SysTick_Handler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SCU_0_Veneer
|
||||||
|
SCU_0_Veneer:
|
||||||
|
LDR R0, =SCU_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SCU_1_Veneer
|
||||||
|
SCU_1_Veneer:
|
||||||
|
LDR R0, =SCU_1_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SCU_2_Veneer
|
||||||
|
SCU_2_Veneer:
|
||||||
|
LDR R0, =SCU_2_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SCU_3_Veneer
|
||||||
|
SCU_3_Veneer:
|
||||||
|
LDR R0, =ERU0_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SCU_4_Veneer
|
||||||
|
SCU_4_Veneer:
|
||||||
|
LDR R0, =ERU0_1_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SCU_5_Veneer
|
||||||
|
SCU_5_Veneer:
|
||||||
|
LDR R0, =ERU0_2_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SCU_6_Veneer
|
||||||
|
SCU_6_Veneer:
|
||||||
|
LDR R0, =ERU0_3_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl SCU_7_Veneer
|
||||||
|
SCU_7_Veneer:
|
||||||
|
LDR R0, =MATH0_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
.long 0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl VADC0_C0_0_Veneer
|
||||||
|
VADC0_C0_0_Veneer:
|
||||||
|
LDR R0, =VADC0_C0_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl VADC0_C0_1_Veneer
|
||||||
|
VADC0_C0_1_Veneer:
|
||||||
|
LDR R0, =VADC0_C0_1_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl VADC0_G0_0_Veneer
|
||||||
|
VADC0_G0_0_Veneer:
|
||||||
|
LDR R0, =VADC0_G0_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl VADC0_G0_1_Veneer
|
||||||
|
VADC0_G0_1_Veneer:
|
||||||
|
LDR R0, =VADC0_G0_1_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl VADC0_G1_0_Veneer
|
||||||
|
VADC0_G1_0_Veneer:
|
||||||
|
LDR R0, =VADC0_G1_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl VADC0_G1_1_Veneer
|
||||||
|
VADC0_G1_1_Veneer:
|
||||||
|
LDR R0, =VADC0_G1_1_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl CCU40_0_Veneer
|
||||||
|
CCU40_0_Veneer:
|
||||||
|
LDR R0, =CCU40_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl CCU40_1_Veneer
|
||||||
|
CCU40_1_Veneer:
|
||||||
|
LDR R0, =CCU40_1_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl CCU40_2_Veneer
|
||||||
|
CCU40_2_Veneer:
|
||||||
|
LDR R0, =CCU40_2_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl CCU40_3_Veneer
|
||||||
|
CCU40_3_Veneer:
|
||||||
|
LDR R0, =CCU40_3_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl CCU80_0_Veneer
|
||||||
|
CCU80_0_Veneer:
|
||||||
|
LDR R0, =CCU80_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl CCU80_1_Veneer
|
||||||
|
CCU80_1_Veneer:
|
||||||
|
LDR R0, =CCU80_1_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl POSIF0_0_Veneer
|
||||||
|
POSIF0_0_Veneer:
|
||||||
|
LDR R0, =POSIF0_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl POSIF0_1_Veneer
|
||||||
|
POSIF0_1_Veneer:
|
||||||
|
LDR R0, =POSIF0_1_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl USIC0_0_Veneer
|
||||||
|
USIC0_0_Veneer:
|
||||||
|
LDR R0, =USIC0_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl USIC0_1_Veneer
|
||||||
|
USIC0_1_Veneer:
|
||||||
|
LDR R0, =USIC0_1_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl USIC0_2_Veneer
|
||||||
|
USIC0_2_Veneer:
|
||||||
|
LDR R0, =USIC0_2_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl USIC0_3_Veneer
|
||||||
|
USIC0_3_Veneer:
|
||||||
|
LDR R0, =USIC0_3_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl USIC0_4_Veneer
|
||||||
|
USIC0_4_Veneer:
|
||||||
|
LDR R0, =USIC0_4_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl USIC0_5_Veneer
|
||||||
|
USIC0_5_Veneer:
|
||||||
|
LDR R0, =USIC0_5_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl LEDTS0_0_Veneer
|
||||||
|
LEDTS0_0_Veneer:
|
||||||
|
LDR R0, =LEDTS0_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl LEDTS1_0_Veneer
|
||||||
|
LEDTS1_0_Veneer:
|
||||||
|
LDR R0, =LEDTS1_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
/* ======================================================================== */
|
||||||
|
.globl BCCU0_0_Veneer
|
||||||
|
BCCU0_0_Veneer:
|
||||||
|
LDR R0, =BCCU0_0_IRQHandler
|
||||||
|
MOV PC,R0
|
||||||
|
|
||||||
|
/* ======================================================================== */
|
||||||
|
|
||||||
|
/* ===== Decision function queried by CMSIS startup for Clock tree setup === */
|
||||||
|
/* In the absence of DAVE code engine, CMSIS SystemInit() must perform clock
|
||||||
|
tree setup.
|
||||||
|
|
||||||
|
This decision routine defined here will always return TRUE.
|
||||||
|
|
||||||
|
When overridden by a definition defined in DAVE code engine, this routine
|
||||||
|
returns FALSE indicating that the code engine has performed the clock setup
|
||||||
|
*/
|
||||||
|
.section ".XmcStartup"
|
||||||
|
.weak AllowClkInitByStartup
|
||||||
|
.type AllowClkInitByStartup, %function
|
||||||
|
AllowClkInitByStartup:
|
||||||
|
MOVS R0,#1
|
||||||
|
BX LR
|
||||||
|
.size AllowClkInitByStartup, . - AllowClkInitByStartup
|
||||||
|
|
||||||
|
/* ====== Definition of the default weak SystemInit_DAVE3 function =========
|
||||||
|
If DAVE3 requires an extended SystemInit it will create its own version of
|
||||||
|
SystemInit_DAVE3 which overrides this weak definition. Example includes
|
||||||
|
setting up of external memory interfaces.
|
||||||
|
*/
|
||||||
|
.weak SystemInit_DAVE3
|
||||||
|
.type SystemInit_DAVE3, %function
|
||||||
|
SystemInit_DAVE3:
|
||||||
|
NOP
|
||||||
|
BX LR
|
||||||
|
.size SystemInit_DAVE3, . - SystemInit_DAVE3
|
||||||
|
|
||||||
|
.end
|
@ -0,0 +1,190 @@
|
|||||||
|
/*
|
||||||
|
*****************************************************************************
|
||||||
|
**
|
||||||
|
** File : xmc1000_flash.ld
|
||||||
|
**
|
||||||
|
** Abstract : Linker script for XMC1200-T038F0200 Device with
|
||||||
|
** 200KByte FLASH, 16KByte RAM
|
||||||
|
**
|
||||||
|
** Set heap size, stack size and stack location according
|
||||||
|
** to application requirements.
|
||||||
|
**
|
||||||
|
** Target : Infineon XMC1000 Microcontrollers
|
||||||
|
**
|
||||||
|
** Environment : Atollic TrueSTUDIO(R)
|
||||||
|
**
|
||||||
|
** Distribution: The file is distributed “as is,” without any warranty
|
||||||
|
** of any kind.
|
||||||
|
**
|
||||||
|
** (c)Copyright Atollic AB.
|
||||||
|
** You may use this file as-is or modify it according to the needs of your
|
||||||
|
** project. This file may only be built (assembled or compiled and linked)
|
||||||
|
** using the Atollic TrueSTUDIO(R) product. The use of this file together
|
||||||
|
** with other tools than Atollic TrueSTUDIO(R) is not permitted.
|
||||||
|
**
|
||||||
|
*****************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Entry Point */
|
||||||
|
ENTRY(Reset_Handler)
|
||||||
|
|
||||||
|
/* Highest address of the user mode stack */
|
||||||
|
_estack = 0x20004000; /* end of 16K RAM */
|
||||||
|
|
||||||
|
/* Generate a link error if heap and stack don't fit into RAM */
|
||||||
|
_Min_Heap_Size = 0; /* required amount of heap */
|
||||||
|
_Min_Stack_Size = 0x80; /* required amount of stack */
|
||||||
|
|
||||||
|
/* Specify the memory areas */
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
FLASH (rx) : ORIGIN = 0x10001000, LENGTH = 200K
|
||||||
|
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K
|
||||||
|
MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Define output sections */
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* The startup code goes first into FLASH */
|
||||||
|
.isr_vector :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
KEEP(*(.isr_vector)) /* Startup code */
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
/* The program code and other data goes into FLASH */
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
*(.text) /* .text sections (code) */
|
||||||
|
*(.text*) /* .text* sections (code) */
|
||||||
|
*(.XmcStartup);
|
||||||
|
*(.glue_7) /* glue arm to thumb code */
|
||||||
|
*(.glue_7t) /* glue thumb to arm code */
|
||||||
|
*(.eh_frame)
|
||||||
|
|
||||||
|
KEEP (*(.init))
|
||||||
|
KEEP (*(.fini))
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
_etext = .; /* define a global symbols at end of code */
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
/* Constant data goes into FLASH */
|
||||||
|
.rodata :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
*(.rodata) /* .rodata sections (constants, strings, etc.) */
|
||||||
|
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
|
||||||
|
.ARM : {
|
||||||
|
__exidx_start = .;
|
||||||
|
*(.ARM.exidx*)
|
||||||
|
__exidx_end = .;
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
.preinit_array :
|
||||||
|
{
|
||||||
|
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||||
|
KEEP (*(.preinit_array*))
|
||||||
|
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||||
|
} >FLASH
|
||||||
|
.init_array :
|
||||||
|
{
|
||||||
|
PROVIDE_HIDDEN (__init_array_start = .);
|
||||||
|
KEEP (*(SORT(.init_array.*)))
|
||||||
|
KEEP (*(.init_array*))
|
||||||
|
PROVIDE_HIDDEN (__init_array_end = .);
|
||||||
|
} >FLASH
|
||||||
|
.fini_array :
|
||||||
|
{
|
||||||
|
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||||
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
|
KEEP (*(.fini_array*))
|
||||||
|
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
eROData = . ;
|
||||||
|
|
||||||
|
/* Initialize XMC Veneer interrupt code */
|
||||||
|
VeneerLoadAddr = ABSOLUTE(eROData);
|
||||||
|
.VENEER_Code ABSOLUTE(0x2000000C) :
|
||||||
|
{
|
||||||
|
VeneerStart = .;
|
||||||
|
KEEP(*(.XmcVeneerCode)) /* Keep the VeneerCode */
|
||||||
|
*(.XmcVeneerCode);
|
||||||
|
. = ALIGN(4);
|
||||||
|
VeneerEnd = .;
|
||||||
|
|
||||||
|
} >RAM AT> FLASH
|
||||||
|
|
||||||
|
VeneerSize = ABSOLUTE(VeneerEnd) - ABSOLUTE(VeneerStart);
|
||||||
|
|
||||||
|
/* used by the startup to initialize data */
|
||||||
|
_sidata = LOADADDR(.data);
|
||||||
|
|
||||||
|
/* Initialized data sections goes into RAM, load LMA copy after code */
|
||||||
|
.data :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
_sdata = .; /* create a global symbol at data start */
|
||||||
|
*(.data) /* .data sections */
|
||||||
|
*(.data*) /* .data* sections */
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
_edata = .; /* define a global symbol at data end */
|
||||||
|
} >RAM AT> FLASH
|
||||||
|
|
||||||
|
/* Uninitialized data section */
|
||||||
|
. = ALIGN(4);
|
||||||
|
.bss :
|
||||||
|
{
|
||||||
|
/* This is used by the startup in order to initialize the .bss secion */
|
||||||
|
_sbss = .; /* define a global symbol at bss start */
|
||||||
|
__bss_start__ = _sbss;
|
||||||
|
*(.bss)
|
||||||
|
*(.bss*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
_ebss = .; /* define a global symbol at bss end */
|
||||||
|
__bss_end__ = _ebss;
|
||||||
|
} >RAM
|
||||||
|
|
||||||
|
/* User_heap_stack section, used to check that there is enough RAM left */
|
||||||
|
._user_heap_stack :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
PROVIDE ( end = . );
|
||||||
|
PROVIDE ( _end = . );
|
||||||
|
. = . + _Min_Heap_Size;
|
||||||
|
. = . + _Min_Stack_Size;
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >RAM
|
||||||
|
|
||||||
|
/* MEMORY_bank1 section, code must be located here explicitly */
|
||||||
|
/* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */
|
||||||
|
.memory_b1_text :
|
||||||
|
{
|
||||||
|
*(.mb1text) /* .mb1text sections (code) */
|
||||||
|
*(.mb1text*) /* .mb1text* sections (code) */
|
||||||
|
*(.mb1rodata) /* read-only data (constants) */
|
||||||
|
*(.mb1rodata*)
|
||||||
|
} >MEMORY_B1
|
||||||
|
|
||||||
|
/* Remove information from the standard libraries */
|
||||||
|
/DISCARD/ :
|
||||||
|
{
|
||||||
|
libc.a ( * )
|
||||||
|
libm.a ( * )
|
||||||
|
libgcc.a ( * )
|
||||||
|
}
|
||||||
|
|
||||||
|
.ARM.attributes 0 : { *(.ARM.attributes) }
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
[BREAKPOINTS]
|
||||||
|
ShowInfoWin = 1
|
||||||
|
EnableFlashBP = 2
|
||||||
|
BPDuringExecution = 0
|
||||||
|
[CFI]
|
||||||
|
CFISize = 0x00
|
||||||
|
CFIAddr = 0x00
|
||||||
|
[CPU]
|
||||||
|
OverrideMemMap = 0
|
||||||
|
AllowSimulation = 1
|
||||||
|
ScriptFile=""
|
||||||
|
[FLASH]
|
||||||
|
CacheExcludeSize = 0x00
|
||||||
|
CacheExcludeAddr = 0x00
|
||||||
|
MinNumBytesFlashDL = 0
|
||||||
|
SkipProgOnCRCMatch = 1
|
||||||
|
VerifyDownload = 1
|
||||||
|
AllowCaching = 1
|
||||||
|
EnableFlashDL = 2
|
||||||
|
Override = 0
|
||||||
|
Device="UNSPECIFIED"
|
||||||
|
[GENERAL]
|
||||||
|
WorkRAMSize = 0x00
|
||||||
|
WorkRAMAddr = 0x00
|
||||||
|
RAMUsageLimit = 0x00
|
||||||
|
[SWO]
|
||||||
|
SWOLogFile=""
|
||||||
|
[MEM]
|
||||||
|
RdOverrideOrMask = 0x00
|
||||||
|
RdOverrideAndMask = 0xFFFFFFFF
|
||||||
|
RdOverrideAddr = 0xFFFFFFFF
|
||||||
|
WrOverrideOrMask = 0x00
|
||||||
|
WrOverrideAndMask = 0xFFFFFFFF
|
||||||
|
WrOverrideAddr = 0xFFFFFFFF
|
Loading…
Reference in New Issue