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