diff options
| author | Atsushi Saitoh <lynxeyed@xj9.so-net.ne.jp> | 2012-02-04 12:38:33 +0900 |
|---|---|---|
| committer | Atsushi Saitoh <lynxeyed@xj9.so-net.ne.jp> | 2012-02-04 12:38:33 +0900 |
| commit | 90506dd1ab7a48a4e2fbe6cf7224d27828abf869 (patch) | |
| tree | 23de598d6445aba54015c9b70f2d0fbded41c044 | |
| parent | eeda1597368fb49e254629e522295759d7f9c608 (diff) | |
new release
79 files changed, 20639 insertions, 0 deletions
diff --git a/.cproject b/.cproject new file mode 100755 index 0000000..65445d6 --- /dev/null +++ b/.cproject @@ -0,0 +1,7392 @@ +<?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.crt.advproject.config.exe.debug.751132478">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.debug.751132478" 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.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="axf" artifactName="eXdusino" 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="Debug build" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.exe.debug.751132478" name="Debug" parent="com.crt.advproject.config.exe.debug" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size ${BuildArtifactFileName}; arm-none-eabi-objcopy -O ihex ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.hex ; #checksum -p ${TargetChip} -d ${BuildArtifactFileBaseName}.bin; ">
+ <folderInfo id="com.crt.advproject.config.exe.debug.751132478." name="/" resourcePath="">
+ <toolChain id="com.crt.advproject.toolchain.exe.debug.50337440" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.debug">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.debug.280821617" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.exe.debug"/>
+ <builder buildPath="${workspace_loc:/marycpp/Debug}" id="com.crt.advproject.builder.exe.debug.1984025059" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.debug"/>
+ <tool id="com.crt.advproject.cpp.exe.debug.2095578412" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.debug">
+ <option id="com.crt.advproject.cpp.arch.1721651764" name="Architecture" superClass="com.crt.advproject.cpp.arch" value="com.crt.advproject.cpp.target.cm0" valueType="enumerated"/>
+ <option id="com.crt.advproject.cpp.thumb.864140451" name="Thumb mode" superClass="com.crt.advproject.cpp.thumb" value="true" valueType="boolean"/>
+ <option id="gnu.cpp.compiler.option.preprocessor.def.1420250471" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="__NEWLIB__"/>
+ <listOptionValue builtIn="false" value="DEBUG"/>
+ <listOptionValue builtIn="false" value="__CODE_RED"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.other.other.1783462939" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fno-rtti" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.include.paths.760570879" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ </option>
+ <option id="com.crt.advproject.cpp.exe.debug.option.optimization.level.1197980051" name="Optimization Level" superClass="com.crt.advproject.cpp.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+ <inputType id="com.crt.advproject.compiler.cpp.input.493159176" superClass="com.crt.advproject.compiler.cpp.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gcc.exe.debug.2063873919" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.debug">
+ <option id="com.crt.advproject.gcc.arch.903923986" name="Architecture" superClass="com.crt.advproject.gcc.arch" value="com.crt.advproject.gcc.target.cm0" valueType="enumerated"/>
+ <option id="com.crt.advproject.gcc.thumb.1948586550" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/>
+ <option id="com.crt.advproject.gcc.hdrlib.797062249" name="Use headers for C library" superClass="com.crt.advproject.gcc.hdrlib" value="com.crt.advproject.gcc.hdrlib.newlib" valueType="enumerated"/>
+ <option id="gnu.c.compiler.option.preprocessor.def.symbols.2063599513" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="__NEWLIB__"/>
+ <listOptionValue builtIn="false" value="DEBUG"/>
+ <listOptionValue builtIn="false" value="__CODE_RED"/>
+ </option>
+ <option id="gnu.c.compiler.option.misc.other.1486522667" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/>
+ <option id="gnu.c.compiler.option.include.paths.1376678734" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ </option>
+ <option id="com.crt.advproject.gcc.exe.debug.option.optimization.level.169119179" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.debug.option.optimization.level" value="gnu.c.optimization.level.none" valueType="enumerated"/>
+ <inputType id="com.crt.advproject.compiler.input.1534655751" superClass="com.crt.advproject.compiler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gas.exe.debug.1596305701" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.debug">
+ <option id="com.crt.advproject.gas.arch.1218110907" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm0" valueType="enumerated"/>
+ <option id="com.crt.advproject.gas.thumb.1310452087" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/>
+ <option id="gnu.both.asm.option.flags.crt.1261046142" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DDEBUG -D__CODE_RED " valueType="string"/>
+ <inputType id="com.crt.advproject.assembler.input.623491287" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.link.cpp.exe.debug.1478694832" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.debug">
+ <option id="com.crt.advproject.link.cpp.arch.379101065" name="Architecture" superClass="com.crt.advproject.link.cpp.arch" value="com.crt.advproject.link.cpp.target.cm0" valueType="enumerated"/>
+ <option id="com.crt.advproject.link.cpp.thumb.616185673" name="Thumb mode" superClass="com.crt.advproject.link.cpp.thumb" value="true" valueType="boolean"/>
+ <option id="com.crt.advproject.link.cpp.script.1192663914" name="Linker script" superClass="com.crt.advproject.link.cpp.script" value=""eXodusino_Debug.ld"" valueType="string"/>
+ <option id="com.crt.advproject.link.cpp.manage.1817857812" name="Manage linker script" superClass="com.crt.advproject.link.cpp.manage" value="true" valueType="boolean"/>
+ <option id="gnu.cpp.link.option.nostdlibs.231894800" name="No startup or default libs (-nostdlib)" superClass="gnu.cpp.link.option.nostdlibs" value="true" valueType="boolean"/>
+ <option id="gnu.cpp.link.option.other.305363073" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other" valueType="stringList">
+ <listOptionValue builtIn="false" value="-Map=${BuildArtifactFileBaseName}.map"/>
+ <listOptionValue builtIn="false" value="--gc-sections"/>
+ </option>
+ <option id="com.crt.advproject.link.cpp.hdrlib.847480114" name="Use C library" superClass="com.crt.advproject.link.cpp.hdrlib" value="com.crt.advproject.cpp.link.hdrlib.newlib.nohost" valueType="enumerated"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1126671200" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool id="com.crt.advproject.link.exe.debug.144377760" name="MCU Linker" superClass="com.crt.advproject.link.exe.debug"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry excluding="src/hardware|src/cores|src/TFT_LCDshield" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+ <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.;com.crt.advproject.gcc.exe.release.1167842314;com.crt.advproject.compiler.input.1662187130">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.321042771;com.crt.advproject.cpp.exe.release.1839468604;com.crt.advproject.compiler.cpp.input.73754754">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.;com.crt.advproject.cpp.exe.release.31693954;com.crt.advproject.compiler.cpp.input.1898594698">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.321042771;com.crt.advproject.gcc.exe.release.815699871;com.crt.advproject.compiler.input.275183119">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.554387266;com.crt.advproject.cpp.exe.release.1232087530;com.crt.advproject.compiler.cpp.input.1638302385">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.928261901;com.crt.advproject.gcc.exe.release.1069426098;com.crt.advproject.compiler.input.1630081849">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.debug.751132478;com.crt.advproject.config.exe.debug.751132478.;com.crt.advproject.gas.exe.debug.1596305701;com.crt.advproject.assembler.input.623491287">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.gas.exe.release.1222937182;com.crt.advproject.assembler.input.1876249303">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.410308089;com.crt.advproject.gcc.exe.release.218379623;com.crt.advproject.compiler.input.1878356619">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.gcc.exe.release.1024765431;com.crt.advproject.compiler.input.192517022">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.27052865;com.crt.advproject.gas.exe.release.1998214468;com.crt.advproject.assembler.input.198672715">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1646487076;com.crt.advproject.gas.exe.release.1918003417;com.crt.advproject.assembler.input.1825415086">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1646487076;com.crt.advproject.cpp.exe.release.993584917;com.crt.advproject.compiler.cpp.input.1850304876">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.554387266;com.crt.advproject.gas.exe.release.916046001;com.crt.advproject.assembler.input.1723397776">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1646487076;com.crt.advproject.gcc.exe.release.2065268925;com.crt.advproject.compiler.input.778728623">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.27052865;com.crt.advproject.gcc.exe.release.589329182;com.crt.advproject.compiler.input.618579092">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.;com.crt.advproject.gas.exe.release.401793782;com.crt.advproject.assembler.input.1876249303">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.321042771;com.crt.advproject.gas.exe.release.1163102676;com.crt.advproject.assembler.input.207663482">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.410308089;com.crt.advproject.gas.exe.release.563513138;com.crt.advproject.assembler.input.1558633026">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.cpp.exe.release.868669721;com.crt.advproject.compiler.cpp.input.432481987">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.cpp.exe.release.868669721;com.crt.advproject.compiler.cpp.input.1898594698">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.410308089;com.crt.advproject.cpp.exe.release.503432643;com.crt.advproject.compiler.cpp.input.787466727">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.928261901;com.crt.advproject.cpp.exe.release.2121918169;com.crt.advproject.compiler.cpp.input.358377675">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.debug.751132478;com.crt.advproject.config.exe.debug.751132478.;com.crt.advproject.gcc.exe.debug.2063873919;com.crt.advproject.compiler.input.1534655751">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.gas.exe.release.1222937182;com.crt.advproject.assembler.input.1750068876">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.554387266;com.crt.advproject.gcc.exe.release.1180058761;com.crt.advproject.compiler.input.1433093766">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.27052865;com.crt.advproject.cpp.exe.release.2068916140;com.crt.advproject.compiler.cpp.input.2135136325">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.928261901;com.crt.advproject.gas.exe.release.1780636347;com.crt.advproject.assembler.input.35258932">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.debug.751132478;com.crt.advproject.config.exe.debug.751132478.;com.crt.advproject.cpp.exe.debug.2095578412;com.crt.advproject.compiler.cpp.input.493159176">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.gcc.exe.release.1024765431;com.crt.advproject.compiler.input.1662187130">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ </cconfiguration>
+ <cconfiguration id="com.crt.advproject.config.exe.release.1682447689">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.release.1682447689" moduleId="org.eclipse.cdt.core.settings" name="Release">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="axf" artifactName="exodusino" 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="Release build" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser" id="com.crt.advproject.config.exe.release.1682447689" name="Release" parent="com.crt.advproject.config.exe.release" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size ${BuildArtifactFileName}; arm-none-eabi-objcopy -O ihex ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.hex ; arm-none-eabi-objcopy -O binary ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.bin;# checksum -p ${TargetChip} -d ${BuildArtifactFileBaseName}.bin; " preannouncebuildStep="" prebuildStep="">
+ <folderInfo id="com.crt.advproject.config.exe.release.1682447689." name="/" resourcePath="">
+ <toolChain errorParsers="" id="com.crt.advproject.toolchain.exe.release.1562491287" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.release">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.release.168460449" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/>
+ <builder buildPath="${workspace_loc:/marycpp/Release}" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="com.crt.advproject.builder.exe.release.849243127" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.release"/>
+ <tool command="arm-none-eabi-c++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.crt.advproject.cpp.exe.release.31693954" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release">
+ <option id="com.crt.advproject.cpp.arch.883501443" name="Architecture" superClass="com.crt.advproject.cpp.arch" value="com.crt.advproject.cpp.target.cm0" valueType="enumerated"/>
+ <option id="com.crt.advproject.cpp.thumb.144571725" name="Thumb mode" superClass="com.crt.advproject.cpp.thumb" value="true" valueType="boolean"/>
+ <option id="gnu.cpp.compiler.option.preprocessor.def.48121958" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="__NEWLIB__"/>
+ <listOptionValue builtIn="false" value="__CODE_RED"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.other.other.571230673" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fno-rtti" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.optimization.flags.285477325" name="Other optimization flags" superClass="gnu.cpp.compiler.option.optimization.flags" value="" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.include.paths.938021270" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <option id="com.crt.advproject.cpp.exe.release.option.optimization.level.125398555" name="Optimization Level" superClass="com.crt.advproject.cpp.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.size" valueType="enumerated"/>
+ <option id="com.crt.advproject.cpp.exe.release.option.debugging.level.1768366140" name="Debug Level" superClass="com.crt.advproject.cpp.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
+ <option id="gnu.cpp.compiler.option.preprocessor.preprocess.458280428" name="Preprocess only (-E)" superClass="gnu.cpp.compiler.option.preprocessor.preprocess" value="false" valueType="boolean"/>
+ <option id="gnu.cpp.compiler.option.other.verbose.208146507" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" value="false" valueType="boolean"/>
+ <inputType id="com.crt.advproject.compiler.cpp.input.1898594698" superClass="com.crt.advproject.compiler.cpp.input"/>
+ </tool>
+ <tool command="arm-none-eabi-gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.crt.advproject.gcc.exe.release.1167842314" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release">
+ <option id="com.crt.advproject.gcc.arch.1750405404" name="Architecture" superClass="com.crt.advproject.gcc.arch" value="com.crt.advproject.gcc.target.cm0" valueType="enumerated"/>
+ <option id="com.crt.advproject.gcc.thumb.1963543451" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/>
+ <option id="com.crt.advproject.gcc.hdrlib.335227580" name="Use headers for C library" superClass="com.crt.advproject.gcc.hdrlib" value="com.crt.advproject.gcc.hdrlib.newlib" valueType="enumerated"/>
+ <option id="gnu.c.compiler.option.preprocessor.def.symbols.384674362" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="__NEWLIB__"/>
+ <listOptionValue builtIn="false" value="__CODE_RED"/>
+ </option>
+ <option id="gnu.c.compiler.option.misc.other.1540054655" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/>
+ <option id="gnu.c.compiler.option.optimization.flags.1586957095" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" value="" valueType="string"/>
+ <option id="gnu.c.compiler.option.include.paths.1251260720" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ </option>
+ <option id="com.crt.advproject.gcc.exe.release.option.optimization.level.2100424944" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.release.option.optimization.level" value="gnu.c.optimization.level.size" valueType="enumerated"/>
+ <option id="com.crt.advproject.gcc.exe.release.option.debugging.level.266670047" name="Debug Level" superClass="com.crt.advproject.gcc.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
+ <option id="gnu.c.compiler.option.include.files.1150810212" name="Include files (-include)" superClass="gnu.c.compiler.option.include.files"/>
+ <inputType id="com.crt.advproject.compiler.input.1662187130" superClass="com.crt.advproject.compiler.input"/>
+ </tool>
+ <tool command="arm-none-eabi-gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.gas.exe.release.401793782" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release">
+ <option id="com.crt.advproject.gas.arch.430154815" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm0" valueType="enumerated"/>
+ <option id="com.crt.advproject.gas.thumb.533791024" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/>
+ <option id="gnu.both.asm.option.flags.crt.1715284407" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DNDEBUG -D__CODE_RED " valueType="string"/>
+ <option id="gnu.both.asm.option.include.paths.718756823" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <inputType id="com.crt.advproject.assembler.input.1876249303" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
+ </tool>
+ <tool command="arm-none-eabi-c++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="com.crt.advproject.link.cpp.exe.release.550733387" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release">
+ <option id="com.crt.advproject.link.cpp.arch.1178445888" name="Architecture" superClass="com.crt.advproject.link.cpp.arch" value="com.crt.advproject.link.cpp.target.cm0" valueType="enumerated"/>
+ <option id="com.crt.advproject.link.cpp.thumb.733879454" name="Thumb mode" superClass="com.crt.advproject.link.cpp.thumb" value="true" valueType="boolean"/>
+ <option id="com.crt.advproject.link.cpp.script.983129344" name="Linker script" superClass="com.crt.advproject.link.cpp.script" value=""eXodusino.ld"" valueType="string"/>
+ <option id="com.crt.advproject.link.cpp.manage.411713431" name="Manage linker script" superClass="com.crt.advproject.link.cpp.manage" value="false" valueType="boolean"/>
+ <option id="gnu.cpp.link.option.nostdlibs.1268597042" name="No startup or default libs (-nostdlib)" superClass="gnu.cpp.link.option.nostdlibs" value="false" valueType="boolean"/>
+ <option id="gnu.cpp.link.option.other.1188216072" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other" valueType="stringList">
+ <listOptionValue builtIn="false" value="-Map=${BuildArtifactFileBaseName}.map"/>
+ <listOptionValue builtIn="false" value="--gc-sections"/>
+ </option>
+ <option id="gnu.cpp.link.option.paths.150976692" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ </option>
+ <option id="com.crt.advproject.link.cpp.hdrlib.32236071" name="Use C library" superClass="com.crt.advproject.link.cpp.hdrlib" value="com.crt.advproject.cpp.link.hdrlib.newlib.nohost" valueType="enumerated"/>
+ <option id="gnu.cpp.link.option.nostart.1655239450" name="Do not use standard start files (-nostartfiles)" superClass="gnu.cpp.link.option.nostart" value="true" valueType="boolean"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.748856345" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool id="com.crt.advproject.link.exe.release.1219703481" name="MCU Linker" superClass="com.crt.advproject.link.exe.release"/>
+ </toolChain>
+ </folderInfo>
+ <folderInfo id="com.crt.advproject.config.exe.release.1682447689.1735353218" name="/" resourcePath="src">
+ <toolChain errorParsers="" id="com.crt.advproject.toolchain.exe.release.123748871" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.release" unusedChildren="">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.release" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/>
+ <tool errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.crt.advproject.cpp.exe.release.868669721" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release.31693954">
+ <option id="gnu.cpp.compiler.option.include.paths.870160414" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <inputType id="com.crt.advproject.compiler.cpp.input.432481987" superClass="com.crt.advproject.compiler.cpp.input"/>
+ </tool>
+ <tool errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.crt.advproject.gcc.exe.release.1024765431" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release.1167842314">
+ <option id="gnu.c.compiler.option.include.paths.760332070" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <inputType id="com.crt.advproject.compiler.input.192517022" superClass="com.crt.advproject.compiler.input"/>
+ </tool>
+ <tool errorParsers="org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.gas.exe.release.1222937182" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release.401793782">
+ <inputType id="com.crt.advproject.assembler.input.1750068876" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.link.cpp.exe.release.1913042856" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release.550733387"/>
+ <tool id="com.crt.advproject.link.exe.release.1683664230" name="MCU Linker" superClass="com.crt.advproject.link.exe.release.1219703481"/>
+ </toolChain>
+ </folderInfo>
+ <folderInfo id="com.crt.advproject.config.exe.release.1682447689.928261901" name="/" resourcePath="src/FatFs">
+ <toolChain id="com.crt.advproject.toolchain.exe.release.2095132238" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.release" unusedChildren="">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.release" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/>
+ <tool id="com.crt.advproject.cpp.exe.release.2121918169" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release.868669721">
+ <option id="gnu.cpp.compiler.option.include.paths.1947588537" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <inputType id="com.crt.advproject.compiler.cpp.input.358377675" superClass="com.crt.advproject.compiler.cpp.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gcc.exe.release.1069426098" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release.1024765431">
+ <option id="gnu.c.compiler.option.include.paths.1813568798" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <inputType id="com.crt.advproject.compiler.input.1630081849" superClass="com.crt.advproject.compiler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gas.exe.release.1780636347" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release.1222937182">
+ <inputType id="com.crt.advproject.assembler.input.35258932" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.link.cpp.exe.release.1484656396" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release.1913042856"/>
+ <tool id="com.crt.advproject.link.exe.release.624829670" name="MCU Linker" superClass="com.crt.advproject.link.exe.release.1683664230"/>
+ </toolChain>
+ </folderInfo>
+ <folderInfo id="com.crt.advproject.config.exe.release.1682447689.554387266" name="/" resourcePath="src/TFTLCD">
+ <toolChain id="com.crt.advproject.toolchain.exe.release.1125912057" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.release" unusedChildren="">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.release" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/>
+ <tool id="com.crt.advproject.cpp.exe.release.1232087530" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release.868669721">
+ <option id="gnu.cpp.compiler.option.include.paths.171068813" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <inputType id="com.crt.advproject.compiler.cpp.input.1638302385" superClass="com.crt.advproject.compiler.cpp.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gcc.exe.release.1180058761" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release.1024765431">
+ <inputType id="com.crt.advproject.compiler.input.1433093766" superClass="com.crt.advproject.compiler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gas.exe.release.916046001" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release.1222937182">
+ <inputType id="com.crt.advproject.assembler.input.1723397776" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.link.cpp.exe.release.1027754309" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release.1913042856"/>
+ <tool id="com.crt.advproject.link.exe.release.1256652065" name="MCU Linker" superClass="com.crt.advproject.link.exe.release.1683664230"/>
+ </toolChain>
+ </folderInfo>
+ <folderInfo id="com.crt.advproject.config.exe.release.1682447689.27052865" name="/" resourcePath="src/core">
+ <toolChain id="com.crt.advproject.toolchain.exe.release.635940683" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.release" unusedChildren="">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.release" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/>
+ <tool id="com.crt.advproject.cpp.exe.release.2068916140" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release.868669721">
+ <option id="gnu.cpp.compiler.option.include.paths.56854794" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <inputType id="com.crt.advproject.compiler.cpp.input.2135136325" superClass="com.crt.advproject.compiler.cpp.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gcc.exe.release.589329182" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release.1024765431">
+ <option id="gnu.c.compiler.option.include.paths.336390902" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <inputType id="com.crt.advproject.compiler.input.618579092" superClass="com.crt.advproject.compiler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gas.exe.release.1998214468" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release.1222937182">
+ <inputType id="com.crt.advproject.assembler.input.198672715" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.link.cpp.exe.release.1863001514" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release.1913042856"/>
+ <tool id="com.crt.advproject.link.exe.release.515993230" name="MCU Linker" superClass="com.crt.advproject.link.exe.release.1683664230"/>
+ </toolChain>
+ </folderInfo>
+ <folderInfo id="com.crt.advproject.config.exe.release.1682447689.1646487076" name="/" resourcePath="src/XBee">
+ <toolChain id="com.crt.advproject.toolchain.exe.release.1343774542" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.release" unusedChildren="">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.release" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/>
+ <tool id="com.crt.advproject.cpp.exe.release.993584917" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release.868669721">
+ <option id="gnu.cpp.compiler.option.include.paths.1850698246" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/core}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FatFs}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/XBee}""/>
+ </option>
+ <inputType id="com.crt.advproject.compiler.cpp.input.1850304876" superClass="com.crt.advproject.compiler.cpp.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gcc.exe.release.2065268925" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release.1024765431">
+ <inputType id="com.crt.advproject.compiler.input.778728623" superClass="com.crt.advproject.compiler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.gas.exe.release.1918003417" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release.1222937182">
+ <inputType id="com.crt.advproject.assembler.input.1825415086" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
+ </tool>
+ <tool id="com.crt.advproject.link.cpp.exe.release.1717939882" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release.1913042856"/>
+ <tool id="com.crt.advproject.link.exe.release.1892448797" name="MCU Linker" superClass="com.crt.advproject.link.exe.release.1683664230"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry excluding="src/hardware|src/cores|src/TFT_LCDshield" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+ <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.;com.crt.advproject.gcc.exe.release.1167842314;com.crt.advproject.compiler.input.1662187130">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.321042771;com.crt.advproject.cpp.exe.release.1839468604;com.crt.advproject.compiler.cpp.input.73754754">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.;com.crt.advproject.cpp.exe.release.31693954;com.crt.advproject.compiler.cpp.input.1898594698">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.321042771;com.crt.advproject.gcc.exe.release.815699871;com.crt.advproject.compiler.input.275183119">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.554387266;com.crt.advproject.cpp.exe.release.1232087530;com.crt.advproject.compiler.cpp.input.1638302385">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.928261901;com.crt.advproject.gcc.exe.release.1069426098;com.crt.advproject.compiler.input.1630081849">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.debug.751132478;com.crt.advproject.config.exe.debug.751132478.;com.crt.advproject.gas.exe.debug.1596305701;com.crt.advproject.assembler.input.623491287">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.gas.exe.release.1222937182;com.crt.advproject.assembler.input.1876249303">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.410308089;com.crt.advproject.gcc.exe.release.218379623;com.crt.advproject.compiler.input.1878356619">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.gcc.exe.release.1024765431;com.crt.advproject.compiler.input.192517022">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.27052865;com.crt.advproject.gas.exe.release.1998214468;com.crt.advproject.assembler.input.198672715">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1646487076;com.crt.advproject.gas.exe.release.1918003417;com.crt.advproject.assembler.input.1825415086">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1646487076;com.crt.advproject.cpp.exe.release.993584917;com.crt.advproject.compiler.cpp.input.1850304876">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.554387266;com.crt.advproject.gas.exe.release.916046001;com.crt.advproject.assembler.input.1723397776">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1646487076;com.crt.advproject.gcc.exe.release.2065268925;com.crt.advproject.compiler.input.778728623">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.27052865;com.crt.advproject.gcc.exe.release.589329182;com.crt.advproject.compiler.input.618579092">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.;com.crt.advproject.gas.exe.release.401793782;com.crt.advproject.assembler.input.1876249303">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.321042771;com.crt.advproject.gas.exe.release.1163102676;com.crt.advproject.assembler.input.207663482">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.410308089;com.crt.advproject.gas.exe.release.563513138;com.crt.advproject.assembler.input.1558633026">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.cpp.exe.release.868669721;com.crt.advproject.compiler.cpp.input.432481987">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.cpp.exe.release.868669721;com.crt.advproject.compiler.cpp.input.1898594698">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.410308089;com.crt.advproject.cpp.exe.release.503432643;com.crt.advproject.compiler.cpp.input.787466727">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.928261901;com.crt.advproject.cpp.exe.release.2121918169;com.crt.advproject.compiler.cpp.input.358377675">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.debug.751132478;com.crt.advproject.config.exe.debug.751132478.;com.crt.advproject.gcc.exe.debug.2063873919;com.crt.advproject.compiler.input.1534655751">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.gas.exe.release.1222937182;com.crt.advproject.assembler.input.1750068876">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.554387266;com.crt.advproject.gcc.exe.release.1180058761;com.crt.advproject.compiler.input.1433093766">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.27052865;com.crt.advproject.cpp.exe.release.2068916140;com.crt.advproject.compiler.cpp.input.2135136325">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.928261901;com.crt.advproject.gas.exe.release.1780636347;com.crt.advproject.assembler.input.35258932">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.debug.751132478;com.crt.advproject.config.exe.debug.751132478.;com.crt.advproject.cpp.exe.debug.2095578412;com.crt.advproject.compiler.cpp.input.493159176">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.release.1682447689;com.crt.advproject.config.exe.release.1682447689.1735353218;com.crt.advproject.gcc.exe.release.1024765431;com.crt.advproject.compiler.input.1662187130">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="com.crt.advproject.GASManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="false" filePath=""/>
+ <parser enabled="false"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="com.crt.advproject.specsFile">
+ <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="marycpp.com.crt.advproject.projecttype.exe.1170188341" name="Executable" projectType="com.crt.advproject.projecttype.exe"/>
+ </storageModule>
+ <storageModule moduleId="com.crt.config">
+ <projectStorage><?xml version="1.0" encoding="UTF-8"?>
+<TargetConfig>
+<Properties property_0="" property_1="" property_2="" property_3="NXP" property_4="LPC1114/301" property_count="5" version="1"/>
+<infoList vendor="NXP">
+<info chip="LPC1114/301" match_id="0x0444102b,0x2540102b" name="LPC1114/301" stub="crt_emu_lpc11_13_nxp">
+<chip>
+<name>LPC1114/301</name>
+<family>LPC11xx</family>
+<vendor>NXP (formerly Philips)</vendor>
+<reset board="None" core="Real" sys="Real"/>
+<clock changeable="TRUE" freq="12MHz" is_accurate="TRUE"/>
+<memory can_program="true" id="Flash" is_ro="true" type="Flash"/>
+<memory id="RAM" type="RAM"/>
+<memory id="Periph" is_volatile="true" type="Peripheral"/>
+<memoryInstance derived_from="Flash" id="MFlash32" location="0x0" size="0x8000"/>
+<memoryInstance derived_from="RAM" id="RamLoc8" location="0x10000000" size="0x2000"/>
+<prog_flash blocksz="0x1000" location="0x0" maxprgbuff="0x400" progwithcode="TRUE" size="0x8000"/>
+<peripheralInstance derived_from="LPC11_SYSCTL" determined="infoFile" id="SYSCTL" location="0x40048000"/>
+<peripheralInstance derived_from="LPC11_13_PMU" determined="infoFile" id="PMU" location="0x40038000"/>
+<peripheralInstance derived_from="CM0_NVIC" determined="infoFile" id="NVIC" location="0xe000e000"/>
+<peripheralInstance derived_from="CM0_DCR" determined="infoFile" id="DCR" location="0xe000edf0"/>
+<peripheralInstance derived_from="LPC11_GPIO" determined="infoFile" id="GPIO0" location="0x50000000"/>
+<peripheralInstance derived_from="LPC11_GPIO" determined="infoFile" id="GPIO1" location="0x50010000"/>
+<peripheralInstance derived_from="LPC11_GPIO" determined="infoFile" id="GPIO2" location="0x50020000"/>
+<peripheralInstance derived_from="LPC11_GPIO" determined="infoFile" id="GPIO3" location="0x50030000"/>
+<peripheralInstance derived_from="LPC11_IOCON" determined="infoFile" id="IOCON" location="0x40044000"/>
+<peripheralInstance derived_from="LPC1xxx_UART_MODEM" determined="infoFile" id="UART0" location="0x40008000"/>
+<peripheralInstance derived_from="LPC11_13_I2C" determined="infoFile" id="I2C0" location="0x40000000"/>
+<peripheralInstance derived_from="LPC11_13_SSP" determined="infoFile" id="SSP0" location="0x40040000"/>
+<peripheralInstance derived_from="LPC11_13_SSP" determined="infoFile" id="SSP1" location="0x40058000"/>
+<peripheralInstance derived_from="LPC11_13_TIMER16" determined="infoFile" id="TMR160" location="0x4000c000"/>
+<peripheralInstance derived_from="LPC11_13_TIMER16" determined="infoFile" id="TMR161" location="0x40010000"/>
+<peripheralInstance derived_from="LPC11_13_TIMER32" determined="infoFile" id="TIMER0" location="0x40014000"/>
+<peripheralInstance derived_from="LPC11_13_TIMER32" determined="infoFile" id="TIMER1" location="0x40018000"/>
+<peripheralInstance derived_from="LPC11_13_WDT" determined="infoFile" id="WDT" location="0x40004000"/>
+<peripheralInstance derived_from="LPC11_13_ADC" determined="infoFile" id="ADC" location="0x4001c000"/>
+</chip>
+<processor>
+<name gcc_name="cortex-m0">Cortex-M0</name>
+<family>Cortex-M</family>
+</processor>
+<link href="nxp_lpc11_13_peripheral.xme" show="embed" type="simple"/>
+</info>
+</infoList>
+</TargetConfig></projectStorage>
+ </storageModule>
+</cproject>
diff --git a/.project b/.project new file mode 100755 index 0000000..0ed2458 --- /dev/null +++ b/.project @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>maryduino</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>make</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${workspace_loc:/marycpp/Release}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+ <value>clean</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+</projectDescription>
diff --git a/Release/Bootloader.axf b/Release/Bootloader.axf Binary files differnew file mode 100755 index 0000000..85450c3 --- /dev/null +++ b/Release/Bootloader.axf diff --git a/Release/Bootloader.hex b/Release/Bootloader.hex new file mode 100755 index 0000000..e02c0ac --- /dev/null +++ b/Release/Bootloader.hex @@ -0,0 +1,126 @@ +:10000000D01F001085010000110400001D04000035
+:1000100000000000000000000000000000000000E0
+:1000200000000000000000000000000029040000A3
+:100030000000000000000000350400004104000042
+:100040004D0400004D0400004D0400004D0400006C
+:100050004D0400004D0400004D0400004D0400005C
+:100060004D0400004D0400004D0400004D0400004C
+:100070004D0400004D0400004D0400005904000030
+:1000800065040000710400007D0400008904000084
+:1000900095040000A1040000AD040000B9040000B4
+:1000A000C5040000D1040000DD040000E9040000E4
+:1000B000F5040000010500000D0500001905000011
+:1000C00000B5031C89B00C20994208D33222019359
+:1000D00002916846009205A9024B9847059809B01D
+:1000E00000BDC046F11FFF1F00B589B03323009348
+:1000F000084B0291FA21019089001868039200F0E0
+:10010000C3FA05A90490044B68469847059809B0BE
+:1001100000BDC04604000010F11FFF1F00B5031C06
+:1001200089B00C2099420FD30193084B0291FA2118
+:10013000342218688900009200F0A6FA05A90390FD
+:10014000034B68469847059809B000BD04000010AD
+:10015000F11FFF1F10B588B01C1C382300930190BD
+:1001600002916846039205A9054B984705980A280D
+:1001700003D1002C01D0069B236008B010BDC046FF
+:10018000F11FFF1F08B50B4A0B4B03E0117801323A
+:100190001970013309498B42F8D3094B02E0002260
+:1001A0001A700133074A9342F9D300F027FA00F09E
+:1001B00063FAFEE7A307000000000010080000102B
+:1001C000080000100800001010B5031C00200FE00C
+:1001D0001A78013312025040082204B24000002C69
+:1001E00001DA064C6040013AD2B280B2002AF4D162
+:1001F000013909B20029EBDA10BDC0462110000018
+:1002000000B5034A034BDA60BFF34F8FFEE7C046E9
+:100210000400FA0500ED00E070B5051C061E1DD0B7
+:1002200001200721FFF74CFF0025A84216D10C4CF6
+:1002300080222068311C5200FFF756FFA8420DD1E2
+:1002400080222068311C52002B1CFFF783FFA8423C
+:1002500004D1236801350133FF332360281C70BDAE
+:100260000000001070B5454C4549A5445E228CA89D
+:1002700000F006FA7822ADAB1A80ACAB093A1A80CE
+:100280004049523AA4A800F0FBF99620800100F002
+:1002900049F901200721FFF713FF002869D1013038
+:1002A0000721FFF73BFF002863D18CA85E2100F0F7
+:1002B00095F9354C6C44201C00F082F90028F8D0E8
+:1002C000227801AB1A70012400251CE0337801A8C4
+:1002D0000355802301345B0000259C4213D1FFF7B6
+:1002E0009BFFA84201D1ADA800E0ACA8022100F01C
+:1002F00075F9002301AA0024D4548022013352004E
+:100300009342F7D1251C204E6E44301C00F058F962
+:100310000028DBD11D4B01359D42F4DD01A8FFF71C
+:100320007BFF002801D1ADA800E0ACA8022100F0BD
+:1003300055F9802040011649FFF746FFFE234CAADD
+:10034000DB0102CB02C2802109028B42F9D18B90E2
+:100350000720011CFFF7B4FE002806D1FE308022E2
+:10036000C0014CA95200FFF7BFFEA4A81D2100F058
+:1003700035F9AE239B009D4470BDC04648FDFFFF8C
+:100380002807000086070000B7020000FEFF0F00EC
+:10039000FC6F000070B5A02480231B02E405E25826
+:1003A00002218A43E250E2580826134DB243E2503C
+:1003B0002A88124B9A4207D0802040011049FFF74B
+:1003C00003FF2B88834211D0FFF74CFFFFF718FF84
+:1003D0000AE0FFF747FFFFF713FF00E00A48006855
+:1003E00085460A4800688746002070BD054BE358E3
+:1003F0003342F3D1EDE7C046FC7F0000FFFF000071
+:10040000FC6F0000FC3F0000001000000410000022
+:100410000148006887460000081000000148006895
+:10042000874600000C100000014800688746000065
+:100430002C100000014800688746000038100000BA
+:1004400001480068874600003C1000000148006831
+:100450008746000040100000014800688746000001
+:100460007C100000014800688746000080100000F2
+:1004700001480068874600008410000001480068B9
+:100480008746000088100000014800688746000089
+:100490008C100000014800688746000090100000A2
+:1004A0000148006887460000941000000148006879
+:1004B0008746000098100000014800688746000049
+:1004C0009C1000000148006887460000A010000052
+:1004D0000148006887460000A41000000148006839
+:1004E00087460000A8100000014800688746000009
+:1004F000AC1000000148006887460000B010000002
+:100500000148006887460000B410000001480068F8
+:1005100087460000B81000000148006887460000C8
+:10052000BC100000F8B5214B80229203DA67204B03
+:1005300007251A68071CAA431A601968012211438B
+:10054000196059681B4CA943596059681143596097
+:10055000194B8021D86F49010143D96794331A6040
+:100560008232E2601E68983B996F144B186800F065
+:100570008BF8311C00F088F8391C000900F084F871
+:10058000030A6360FF231840FC3B2060E360A56022
+:100590006369626960231340602BFAD101E0054B67
+:1005A0001B686369DA07FAD4F8BDC04604E100E0CD
+:1005B000A440044000800040048004400400001077
+:1005C00010B5054A041C51690123081C184002D0CB
+:1005D0001268181C227010BD0080004010B507E0A2
+:1005E0000278054B1A605A695406FCD5013001396E
+:1005F0000029F5D110BDC0460080004010B51C4B4D
+:100600008E229200995820208143995000221A622C
+:10061000C0460132C82AFBD1C73A00211A645A6485
+:1006200059645A64596C124AC807FBD5232191605A
+:100630006B31890050588024A0435050D868012164
+:100640000B4A0842FAD003201067033851675067FD
+:100650005167596F01221142FBD0054B05499A673A
+:100660000433D96790331A605A609A6010BDC0464F
+:10067000008004405F00010008B5FFF78BFE08BD55
+:1006800008B500F03BF808BD002931D00122D2079F
+:10069000030901E0090112099942FBD9430801E06D
+:1006A000490052089942FBD900E04908401A07D393
+:1006B0005241FAD301461046704749084018F7D214
+:1006C0009218FAD34018014610467047CB0F00D05D
+:1006D0004942021000D54042534008B5FFF7D4FF0D
+:1006E0000CBC521000D34042002A00D549421847A2
+:1006F000F446002000F001F8604770478446830705
+:1007000008D18B0706D1131F04D304C904C0043BCE
+:10071000FBD21A1D524205D0891A801A8B5C835471
+:100720000132FBD16046704757656C636F6D652081
+:10073000746F2065586F647573696E6F210D0A6858
+:100740007474703A2F2F656372616674732E672E0E
+:10075000686174656E612E6E652E6A702F4C796EBD
+:10076000782D457945442F0D0A4C796E58626565A0
+:1007700020426F6F746C6F61646572205374617294
+:10078000742E2E2E2E000D0A50726F6772616D202E
+:10079000656E642E205265626F6F74696E672E2ECF
+:0307A0002E2E00FA
+:0807A30000100000006CDC02F4
+:040000030000018573
+:00000001FF
diff --git a/Release/eXodusino.ld b/Release/eXodusino.ld new file mode 100755 index 0000000..6bfdbdc --- /dev/null +++ b/Release/eXodusino.ld @@ -0,0 +1,127 @@ +/*
+* GENERATED FILE - DO NOT EDIT
+* (C) Code Red Technologies Ltd, 2008-10
+* Generated linker script file for LPC1114/301
+* Created from generic_cpp.ld (vLPCXpresso v4.0 (6 [Build 152] [01/08/2011] ))
+* By LPCXpresso v4.0.6 [Build 152] [01/08/2011] on Wed Jan 18 21:43:17 JST 2012
+*/
+
+
+INCLUDE "eXodusino_Release_lib.ld" +INCLUDE "eXodusino_Release_mem.ld" +
+ENTRY(ResetISR)
+
+SECTIONS
+{
+
+ /* MAIN TEXT SECTION */
+ .text : ALIGN(4)
+ {
+ FILL(0xff)
+ KEEP(*(.isr_vector))
+
+ /* Global Section Table */
+ . = ALIGN(4) ;
+ __section_table_start = .;
+ __data_section_table = .;
+ LONG(LOADADDR(.data));
+ LONG( ADDR(.data)) ;
+ LONG( SIZEOF(.data));
+ __data_section_table_end = .;
+ __bss_section_table = .;
+ LONG( ADDR(.bss));
+ LONG( SIZEOF(.bss));
+ __bss_section_table_end = .;
+ __section_table_end = . ;
+ /* End of Global Section Table */
+
+
+ *(.after_vectors*)
+
+ *(.text*)
+ *(.rodata .rodata.*)
+ . = ALIGN(4);
+
+ /* C++ constructors etc */
+ . = ALIGN(4);
+ KEEP(*(.init))
+
+ . = ALIGN(4);
+ __preinit_array_start = .;
+ KEEP (*(.preinit_array))
+ __preinit_array_end = .;
+
+ . = ALIGN(4);
+ __init_array_start = .;
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ __init_array_end = .;
+
+ KEEP(*(.fini));
+
+ . = ALIGN(0x4);
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*crtend.o(.ctors))
+
+ . = ALIGN(0x4);
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*crtend.o(.dtors))
+ /* End C++ */
+ } > MFlash32
+
+ /*
+ * for exception handling/unwind - some Newlib functions (in common
+ * with C++ and STDC++) use this.
+ */
+ .ARM.extab : ALIGN(4)
+ {
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+ } > MFlash32
+ __exidx_start = .;
+
+ .ARM.exidx : ALIGN(4)
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > MFlash32
+ __exidx_end = .;
+
+ _etext = .;
+
+
+ /* MAIN DATA SECTION */
+
+ .uninit_RESERVED : ALIGN(4)
+ {
+ KEEP(*(.bss.$RESERVED*))
+ } > RamLoc8
+
+ .data : ALIGN(4)
+ {
+ FILL(0xff)
+ _data = .;
+ *(vtable)
+ *(.data*)
+ . = ALIGN(4) ;
+ _edata = .;
+ } > RamLoc8 AT>MFlash32
+
+
+ /* MAIN BSS SECTION */
+ .bss : ALIGN(4)
+ {
+ _bss = .;
+ *(.bss*)
+ *(COMMON)
+ . = ALIGN(4) ;
+ _ebss = .;
+ PROVIDE(end = .);
+ } > RamLoc8
+
+ PROVIDE(_pvHeapStart = .);
+ PROVIDE(_vStackTop = __top_RamLoc8 - 0);
+}
diff --git a/Release/eXodusino_Release_lib.ld b/Release/eXodusino_Release_lib.ld new file mode 100755 index 0000000..761a934 --- /dev/null +++ b/Release/eXodusino_Release_lib.ld @@ -0,0 +1,8 @@ +/*
+ * GENERATED FILE - DO NOT EDIT
+ * (C) Code Red Technologies Ltd, 2008-9
+ * Generated linker script library include file for Newlib (nohost)
+ * (created from newlib_nohost_cpp.ld (LPCXpresso v4.0.6 [Build 152] [01/08/2011] ) on Wed Jan 18 21:43:17 JST 2012)
+*/
+
+GROUP(libgcc.a libc.a libstdc++.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
diff --git a/Release/eXodusino_Release_mem.ld b/Release/eXodusino_Release_mem.ld new file mode 100755 index 0000000..ac46572 --- /dev/null +++ b/Release/eXodusino_Release_mem.ld @@ -0,0 +1,12 @@ +/* Application does not use first 4k of flash as this is
+ reserved for the bootloader. */
+
+MEMORY
+{
+ /* Define each memory region */
+ MFlash32 (rx) : ORIGIN = 0x1000, LENGTH = 0x7000 /* 28k */
+ RamLoc8 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x1FE0 /* 8k less 32 bytes used for IAP */
+}
+ /* Define a symbol for the top of each memory region */
+ __top_MFlash32 = 0x1000 + 0x7000;
+ __top_RamLoc8 = 0x10000000 + 0x1FE0;
diff --git a/Release/exodusino.axf b/Release/exodusino.axf Binary files differnew file mode 100755 index 0000000..35f24e8 --- /dev/null +++ b/Release/exodusino.axf diff --git a/Release/exodusino.bin b/Release/exodusino.bin Binary files differnew file mode 100755 index 0000000..11b95ad --- /dev/null +++ b/Release/exodusino.bin diff --git a/Release/exodusino.hex b/Release/exodusino.hex new file mode 100755 index 0000000..2578ca7 --- /dev/null +++ b/Release/exodusino.hex @@ -0,0 +1,858 @@ +:10100000E01F00100D110000D5100000D9100000E5
+:1010100000000000000000000000000000000000D0
+:10102000000000000000000000000000DD100000D3
+:101030000000000000000000E1100000A116000008
+:101040005111000051110000511100005111000018
+:101050005111000051110000511100005111000008
+:1010600051110000511100005111000051110000F8
+:1010700051110000511100005111000051110000E8
+:101080005111000051110000511100007D160000A7
+:10109000511100005111000000000000000000008C
+:1010A000511100005111000051110000000000001A
+:1010B00051110000511100005111000051110000A8
+:1010C000243D0000000000104C0800004C080010F7
+:1010D0004401000000B5FEE700B5FEE700B5FEE7FD
+:1010E00000B5FEE700B5FEE710B5002302E01C588E
+:1010F000043310C19342FAD310BD00B5002302E0BF
+:10110000002204C004338B42FAD300BD10B50D4C4D
+:1011100005E020686168A2680C34FFF7E5FF0A4B20
+:101120009C42F6D304E0206861680834FFF7E5FFCD
+:10113000064B9C42F7D300F073FB01F041FE00F038
+:1011400065FBFEE7C0100000CC100000D4100000CA
+:1011500000B5FEE738B50620012100F0D3FA6D2076
+:10116000012100F0CFFA0B4D9621281C890100F0D7
+:101170009FFB094C0C21201C00F037F9201C022198
+:1011800000F039F9201C00F0AFF9281C034900F0E9
+:101190007BFC38BD9808001060080010E0380000A3
+:1011A000F8B50620002100F0DFFA6D20012100F0E3
+:1011B000DBFA254D2549281C00F066FC012106209C
+:1011C00000F0D2FA042000F01BFA281C204900F09D
+:1011D0005BFC281C1F4900F057FC0620002100F092
+:1011E000C3FA1D4C1D49201C00F0B6F91C4E1B49CA
+:1011F0003060201C00F0B0F91A4F18493860201CEC
+:1012000000F0AAF9184C19492060281C00F09AFB3C
+:10121000281C31680A2200F044FC281C144900F004
+:1012200091FB281C39680A2200F03BFC281C11495C
+:1012300000F088FB281C21680A2200F032FCFA200A
+:10124000800000F0DDF9F8BD98080010E6380000D5
+:10125000F63800000639000060080010FF0F00009B
+:101260004C08001054080010500800101F390000EE
+:1012700024390000293900007047416070474170EF
+:101280007047817070470000F0B585B0041C0E1CDB
+:1012900070200121344D171C019300F033FA002314
+:1012A000EB617020012100F05FFA304A0223002C2C
+:1012B00004D0012C02D114602C6701E01360EB64B0
+:1012C000012211236A662B66294B59681143596024
+:1012D0000433D86F802109010143D96725490A6089
+:1012E0000B1C072E15D8301C00F022FC0504070942
+:1012F0000B0D0F1102221A600DE00422FBE70822F9
+:10130000F9E71022F7E72022F5E74022F3E78022F1
+:10131000F1E704230B60032F0CD8381C00F008FC05
+:1013200002040608002304E0012302E0022300E097
+:1013300003230393039A104B92011A6001991A68D0
+:1013400001390A431A6080200C4A022140031961C6
+:101350001060C52088401458FF25AC433F3D2C4306
+:1013600005B014505960F0BD00400440B040044046
+:1013700000800440948004400000044000E100E04C
+:1013800008B5031C9978DA7800785B68FFF77CFF72
+:1013900008BD38B5002508230221041C43600570F0
+:1013A0004570C5708170FFF76CFF201C6168FFF706
+:1013B00064FF291C201CFFF762FF201CFFF7E0FFE1
+:1013C000201C38BD10B5054C201CFFF7E2FF201C87
+:1013D0000349044A00F0D8F810BDC0465808001070
+:1013E0007912000048080010704741607047417052
+:1013F000704781707047C17070470000F7B5334C7B
+:101400006B200D1C0121161C1F1C00F07BF9002312
+:10141000A3606B20012100F0A7F92D4B0222A262EC
+:101420001A601223E3652B4B04205968844601435C
+:1014300059601B18D86F8021C90201432648D9671B
+:10144000012101606446031C072D15D8281C00F0FB
+:101450006FFB040906080B0D0F1119600DE01C60ED
+:101460000BE008221A6008E01022FBE72022F9E7CF
+:101470004022F7E78022F5E70460032E0CD8301CE9
+:1014800000F056FB02040608002304E0012302E0FA
+:10149000022300E003230193019A104B92011A608A
+:1014A0001A68013F174380200D4A0221C0011F60C6
+:1014B00019611060C320884015580A4C2C40C02583
+:1014C0002D042C4314505960F7BDC0460040044021
+:1014D0008C400440008004409C8004400080054013
+:1014E00000E100E0FFFF00FF08B5031C9978DA78FF
+:1014F00000785B68FFF782FF08BD38B50823002538
+:101500000221041C43604570C57001708170FFF7B3
+:1015100070FF201C6168FFF768FF291C201CFFF783
+:1015200066FF201CFFF7E0FF201C38BD07B5094B04
+:101530001222D9680A40022AF9D19860DA68D106E5
+:10154000FCD4DA685107FCD5024B9B6801930198E3
+:101550000EBDC0460080054008B5081CFFF7E6FF39
+:1015600008BD000010B5054C201CFFF7C6FF201C6D
+:101570000349044A00F008F810BDC0466008001096
+:10158000E9130000480800100020704770B5C3B28E
+:10159000002815DA0F221A40083A134892089200E0
+:1015A0001218032003408340FC305568041C9C4003
+:1015B0008901A543084098402B1C0343536011E068
+:1015C00003248008094A2340C030A3408000FC3433
+:1015D0008558261C9E408901B5430C409C402B1C1D
+:1015E0002343835070BDC04618ED00E000E100E0E9
+:1015F000024B80221203DA677047C04604E100E024
+:1016000007B5044B1A6801921968019A8A1A824236
+:10161000FAD307BD6C08001038B50F4B051C8022AB
+:10162000D86FD2000243DA67012912DD0B4C302358
+:10163000E36001399033216280226361084B120319
+:101640001A6013200021FFF7A1FF01236360054BFF
+:101650001D60002038BDC046048004400080014069
+:1016600000E100E06808001008B5012149420020AF
+:10167000FFF7D2FFFFF7BCFF08BD000010B5064C16
+:1016800023685A0707D5054B1A68002A01D01B6842
+:1016900098470423236010BD0080014068080010B3
+:1016A000024B1A6801321A607047C0466C0800107D
+:1016B00013B5104BFA211868890000F043FA019025
+:1016C000019B0D4A0D4C93420CD81B021B0A013B97
+:1016D0000120636040420321FFF758FF0023A3600D
+:1016E0000733236023685A0702D4054B08221A6087
+:1016F00013BDC04600000010FFFFFF0010E000E037
+:10170000B080044030B5132806DC80234400134D1C
+:10171000134AC0001B020AE063281DDDC7281BDC3A
+:10172000643880230D4D0F4A44001B02C00001297C
+:1017300008D11158013489006958A400C8581259B9
+:10174000024308E01158013489006958A400125975
+:10175000C8589043021CCA5030BDC0463039000002
+:10176000203A00004039000010B5132803DC440083
+:10177000104A114B07E063281BDDC72819DC6438C9
+:101780000C4A0E4B4400C000012908D119580134FD
+:10179000A40089001B59525899008B5009E0195830
+:1017A00001348900A400525819598B009858884375
+:1017B000985010BD30390000203A00004039000038
+:1017C00070470000662343600A338360054A023B8A
+:1017D000C3606E3B43700370036143618261C36108
+:1017E0007047C046FFFFFF0010B5054C201CFFF7F7
+:1017F000E9FF201C0349044AFFF7C6FE10BDC0469E
+:1018000070080010C11700004808001008B5FFF765
+:101810004FFFFFF729FFFFF79DFCFFF7C1FCFCE737
+:1018200010B51C4B8E22920099582020814399506C
+:1018300000221A62C0460132C82AFBD10021C73AF1
+:1018400019645A6459645A64596C124AC807FBD522
+:10185000232191606B31890050588024A04350505F
+:10186000D86801210B4A0842FAD0032010670338D8
+:10187000516750675167596F01221142FBD0054BE8
+:1018800005499A670433D96790331A605A609A60A1
+:1018900010BDC04600800440FFFF010070470023D8
+:1018A0000370083343708E339B0143607047000020
+:1018B00070B51B4B41601A1CA83210680724A04366
+:1018C00010601568012005431560A4331A6880254F
+:1018D000A2431A601A686D0102431A60114B1A1D67
+:1018E000D66F3543D56794321060986F13680E4AEF
+:1018F0001B0112685943504300F024F90B4B80221E
+:10190000D9681143D960010A5960FF210840186065
+:10191000D96891430322D960DA609C6070BDC046EB
+:10192000004004400080044000000010008000409F
+:1019300000B5034B5A699006FBD5196000BDC0463F
+:101940000080004038B5051C0C1C03E0281CFFF784
+:10195000EFFF013421780029F8D138BDF0B589B006
+:10196000071C0C1C012A03D1C9B2FFF7E1FF7AE082
+:101970000026B14204DA2D2369460B706442013619
+:10198000082A0BD002D8022A5BD109E00A2A03D028
+:10199000351C102A55D151E0351C3AE0351C27E0A2
+:1019A000351C10E0314B2340002B04DA0222013BAE
+:1019B0005242134301332E4AD35C6A465355E30F18
+:1019C0001C1901356410002CECD13BE0294B23405D
+:1019D000002B04DA0822013B524213430133264A0A
+:1019E0006946D35C4B55E3175B0F1C190135E410B6
+:1019F000002CEBD126E0201C0A2100F047F91F4BF8
+:101A00006A465B5C201C53550A2100F0E9F8013559
+:101A1000041C002CEFD115E0194B2340002B04DAF5
+:101A20001022013B524213430133164A6946D35CEC
+:101A30004B55E3171B0F1C1901352411002CEBD15A
+:101A400000E0351C00236A46535505E069468B5D6E
+:101A50004A5D8A554B550136013DAE42F6DB381CD6
+:101A60006946FFF76FFF09B0F0BDC0460100008076
+:101A7000B53A000007000080AC3A0000A13A00002F
+:101A80000F000080903A000010B5041CFFF75AFFC9
+:101A9000201C0D21FFF74CFF201C0A21FFF748FFF7
+:101AA00010BD10B5041CFFF759FF201C0D21FFF7D6
+:101AB0003FFF201C0A21FFF73BFF10BD10B5054C6E
+:101AC000201CFFF7ECFE201C0349044AFFF75CFDD5
+:101AD00010BDC046980800109D180000480800106E
+:101AE000016042607047000008B503480021034AC6
+:101AF000FFF7F6FF08BDC046A0080010FFFF00007A
+:101B00007047031CA43370221A60704710B5054C4F
+:101B1000201CFFF7F6FF201C0349044AFFF734FDA1
+:101B200010BDC046A8080010011B000048080010A6
+:101B300002B4714649084900095C49008E4402BC60
+:101B40007047C046002934D00123002210B48842D7
+:101B50002CD301242407A14204D2814202D20901DC
+:101B60001B01F8E7E400A14204D2814202D24900FD
+:101B70005B00F8E7884201D3401A1A434C08A042A0
+:101B800002D3001B5C0822438C08A04202D3001B36
+:101B90009C082243CC08A04202D3001BDC0822434D
+:101BA000002803D01B0901D00909E3E7101C10BC71
+:101BB0007047002801D00020C04307B4024802A1AA
+:101BC0004018029003BDC046D90000000029F0D0A3
+:101BD00003B5FFF7B9FF0EBC4243891A1847C04648
+:101BE000002941D010B4041C4C40A446012300221B
+:101BF000002900D54942002800D5404288422CD314
+:101C000001242407A14204D2814202D209011B010E
+:101C1000F8E7E400A14204D2814202D249005B000D
+:101C2000F8E7884201D3401A1A434C08A04202D375
+:101C3000001B5C0822438C08A04202D3001B9C08B6
+:101C40002243CC08A04202D3001BDC082243002818
+:101C500003D01B0901D00909E3E7101C6446002CDE
+:101C600000D5404210BC7047002806D003DB00209E
+:101C7000C043400801E08020000607B4024802A1EA
+:101C80004018029003BDC046190000000029EBD0A7
+:101C900003B5FFF7A7FF0EBC4243891A1847C04699
+:101CA0007047C04600B50368002B00D01B18181CF5
+:101CB00000BDC04600B503685A0003D45B005B0852
+:101CC000C01800BD80210A061343F9E7F8B55F4646
+:101CD00056464D464446F0B4814690460D1E26D0E9
+:101CE00001398B468A4600260AE0611CC800484438
+:101CF000FFF7E0FF0138474513D8404517D2661C6F
+:101D0000331C5344D80FC4186410E5004D44281CFC
+:101D1000FFF7D0FF071CA345E7D1012250424745FA
+:101D2000EBD9B44202D0013CA246E9E70025281CC9
+:101D30003CBC90469946A246AB46F8BD30B52B4B0D
+:101D400083B0041C8D1E002B4AD0281C01A900E082
+:101D500000BF031E22D02A1C181C0199FFF7B6FFF2
+:101D6000051E1ED0281CFFF7A5FF6B68A064012B81
+:101D700010D0002B24DB281DFFF79CFF0023E0641C
+:101D800023650368002B0FDBFFF794FF2061002021
+:101D900003B030BD013B23610520F9E72061093024
+:101DA000F6E725610920F3E71A01100F00280CD08F
+:101DB00001280DD002280FD0002020610920E7E77C
+:101DC000281D0125E0642565DBE709492161DFE77E
+:101DD000084D01382561DBE7074B02382361D7E75F
+:101DE000064B0749C81AC2100192B4E70000000070
+:101DF00085230000792300006D230000C43B000010
+:101E0000243D000010B50368041CDA0705D49A07C6
+:101E10000FD5483000F05CFD23685A070FD51A072C
+:101E200014D5DA0604D48C208300E01800F05CFDA1
+:101E300010BD483000F048FD23685A07EFD4201C3D
+:101E4000D03000F049FD23681A07EAD4201CB130D5
+:101E5000FF3000F045FD2368E3E7C046F0B55F467C
+:101E600056464D464446F0B4C3682F4C9946A544A7
+:101E70008369051C161C0431402292AC93A89A4633
+:101E800001F046FA0023216C281C98469293FFF734
+:101E900055FF731E9E411023071C09369B461EE00A
+:101EA000A06B5B461E43606453460193009401207F
+:101EB000311C2A1C2B1CC847002823D1002F22D1FB
+:101EC0009026201C02A9B20001F022FA08239845AE
+:101ED00022D1216C281CFFF731FF0926071C002F97
+:101EE000DED1216C902269619200211C02A801F0D0
+:101EF0000FFA2B69301C291C02AA984780461098BB
+:101F00006064D1E70927094D381CAD443CBC9046BC
+:101F10009946A246AB46F0BD013B09379845F2D140
+:101F200093A800F0BBFCC04674FBFFFF8C040000CC
+:101F300038B5041C0D1C296C201CFFF7FFFE00287F
+:101F40000AD1286C23696061211C01202A1C984752
+:101F50000828F0D0072801D000F02AFF281D00F043
+:101F60009DFCC04600B500290ED1002B12D10F23D5
+:101F700093428941494200290CD192008318586844
+:101F8000019A1060081C04E004228A428041404209
+:101F9000013000BD0220FCE700B585B003AB0A1C90
+:101FA000002100930B1CFFF7DDFF039805B000BD77
+:101FB00000B500290ED1002B12D10F239342894185
+:101FC000494200290CD1019B920080181A68426096
+:101FD000081C04E004228A4280414042013000BDD6
+:101FE0000220FCE700B585B00B1C0392002103AA78
+:101FF00000921A1C0B1CFFF7DBFF05B000BDC046AA
+:10200000F0B55F4656464D464446F0B4CF6C9A460E
+:1020100008238BB0034093460393032208CF0C1C84
+:1020200010400021009007978A4500D0D5E008A80D
+:1020300021260270009A190255466E4406913570A9
+:10204000022A00D1D9E0206D0123034000D0DAE05C
+:10205000009D02936B1E9D4104955D463E68002ED7
+:102060002FD002239A4500D18FE03B887E88043729
+:102070009B46B946A06C0127311CB9430A18281C9D
+:102080000F219046FFF788FF0023804505D85B4667
+:10209000BB4343449842BF417B4201273E405A46DE
+:1020A000BE403A401643BE4200D173E0002E0AD132
+:1020B000002B00D029E104210F1C4F443E68002E64
+:1020C000CFD1AB46A1E0022E07D009200BB03CBC1B
+:1020D00090469946A246AB46F0BD49460A6800982C
+:1020E000560071088B46002800D0ACE0002B44D08D
+:1020F00000239B4502D0039F9F423ED10026B3455B
+:1021000000D1F7E0582004220319171C5946019307
+:102110004F440026C90700D4BCE049460591A946B2
+:1021200013E00437AB4500D8CBE02E1C019D381CD2
+:102130000995FFF7B7FD4246011C09AB201C00E0E2
+:1021400000BF002811D104370136019B381C0993C8
+:10215000FFF7A8FD0022011C09AB201C00E000BF16
+:1021600000228046751C9045DBD0059B4D46994664
+:102170005E4500D1BEE04B461A68002A6EDB0122A4
+:10218000101C584487004F4468E7B3467E68083700
+:10219000B9466FE70098002863D1002B19D04A4652
+:1021A0005368484640C8991C00D18EE7221C58321B
+:1021B000099201330AD0FFF775FDF20F011C09AB3C
+:1021C000201C00E000BF002878D0099A002A00D027
+:1021D00090E008210F1C4F4440E7190C2126CAB299
+:1021E0001D046E44022332709A40BF18009A08A85A
+:1021F00006950370022A00D025E7206D0123A76B06
+:10220000034000D124E70024029406A9584600F0B8
+:102210000FFC011C0920002900D057E7029D01385E
+:10222000002D00D152E70F215846FFF7B5FE0E21D1
+:10223000021C5846FFF7D6FE58460F214A4AFFF7C0
+:10224000D1FE072042E7281C0D21266AFFF7A4FED5
+:1022500086423CD049460A68002A90DA0423994411
+:102260008DE7281C0D21266AFFF796FE8642B0D125
+:10227000A76AB945ADD14846FFF71CFD0F21021CE6
+:10228000281CFFF7AFFE281C0021221CFFF7AAFE26
+:1022900007201BE7019B381C0993FFF703FD321C45
+:1022A000011C09AB201C00E000BF002800D05FE744
+:1022B0004A46043701260592A94646E7009B099342
+:1022C00087E7059AA84646464D46914650E7A36AD9
+:1022D000994500D04FE70420002220635946484426
+:1022E000E262A162904660634A461268424527DB7B
+:1022F000029744E7281C0D21FFF74EFE2062099843
+:102300004F466062A7620620E0E6049E002E00D1E0
+:10231000D1E64846FFF7CEFC4F460437A763AB46ED
+:10232000051C201C00E000BF041C0920002C00D16B
+:10233000CCE658460F212A1CFFF754FE0720C5E6BD
+:102340005E460136AA464F46B5007819FFF7B2FC43
+:102350000F21021C5046FFF745FE50464146221C05
+:10236000FFF740FE0720B1E60000000008B5022399
+:10237000FFF746FE08BDC04608B50123FFF740FE43
+:1023800008BDC04608B50023FFF73AFE08BDC046A9
+:10239000F0B55F4656464D464446F0B4041CE7B0DF
+:1023A000161C0220042951D881405C4842589746A7
+:1023B0000220002B4AD13604360CA36BF00701D55E
+:1023C00002CB6160B10701D520CBA560720701D5B2
+:1023D00080CBE760370701D504CB2261F00601D539
+:1023E00001CB6061B10601D502CBA161720601D5B6
+:1023F00020CBE561370601D580CB2762F00501D5FA
+:1024000004CB6262B10501D501CBA062720501D592
+:1024100002CBE162370501D520CB2563F00401D55D
+:1024200080CB676380229201324001D001CBA06350
+:10243000710401D502CBE16380273D022E4201D019
+:1024400040CB26640020824200D1A36367B03CBC2D
+:1024500090469946A246AB46F0BD0220032BF5D12B
+:102460003304350C1E0C71191029EFD8236808228B
+:10247000134200D03CE122A800F034FAA06B7600B1
+:102480008446031C002E1DD0ED0004CB22AFED19B5
+:10249000701E04C5002812D00122002A04D001CBEE
+:1024A00001C5B01E00280AD0191C80C92A1C80C290
+:1024B0005F6802386F600B1D151D0028F4D1B6004F
+:1024C000331C634422A8A36300F00AFA0020BDE78E
+:1024D000002B00D0E5E01033B34200D2E1E02268E7
+:1024E0001A4200D0F7E062A800F000FAA36BF707E9
+:1024F00001D520CB6295B00701D504CB639271075B
+:1025000001D502CB6491320701D580CB659762A8D3
+:10251000A36300F0E9F9002098E7C046B83A00004C
+:102520005A1F511E8A41002A00D0BCE03004350CED
+:10253000060CB146291C49442027012B00D1C8E0D4
+:1025400002208F4200D281E75E1E774277410F263C
+:10255000B846AE42BF417F42002F00D0C3E0BB4629
+:10256000102900D9A4E00F2D0FD8226801210A42BA
+:102570000BD08A432260052B00D1DCE002239A4372
+:10258000201C2260483000F0A1F90022934504D0BD
+:1025900023680422134200D0BFE00020804500D011
+:1025A000C2E00F2D00D8B4E00026B34500D08AE089
+:1025B0004E46A36B9A469946002E2ADD76000227E6
+:1025C000B146EB0000AE524678429B1902CA061C87
+:1025D0004E4402C3701C18D00120002806D00321ED
+:1025E00080CA4E424E4480C3771C0ED0101C02C8D5
+:1025F000023E8C466746191C80C152689446021DF3
+:10260000604658600B1D711CF0D14A4693009946F4
+:10261000D1440026B3452FD05846400082462B1C9B
+:10262000102D00D21023103B022142AEDB004A469F
+:102630004F429B1901CA3E1C564401C3701C18D05E
+:102640000120002806D0032180CA4E42564480C390
+:10265000701C0ED0101C02C8023E8C466746191C26
+:1026600080C152689446021D604658600B1D711C63
+:10267000F0D15246930099440026B04540D14F46D0
+:10268000A7630F2D02D8684600F022F958460028AB
+:1026900000D1DBE642A800F01FF90020D6E60120B9
+:1026A000D4E60220D2E60220012B00D13EE7CDE69F
+:1026B00010398B460026B34500D154E70220B242C0
+:1026C00000D0C3E64FE742A800F008F910214E1BE6
+:1026D0006FE7103F34E78C209A4383002260E018B4
+:1026E00000F004F9FFE60021CB468845E2D0ADE6D4
+:1026F000201C9343B1302360FF3000F0F3F8BAE6BA
+:102700000420051C4D446846A56300F0DDF8002058
+:102710009CE6684600F0DEF846E79343201C236001
+:10272000D03000F0DBF838E76846002700F0CEF83C
+:10273000BB45CBD13CE7033B1A43201C2260483009
+:1027400000F0C8F821E7C046406C704770B5154CE2
+:10275000CD6BA5440D64041C0E1C01A8043140225D
+:1027600000F0D6FD01204342009300E0109D201CA4
+:10277000291CFFF7E3FA00280BD12569211C6A46C2
+:10278000A847051C0828F1D06846FFF73BFB062D3B
+:1027900004D0902189008D44092070BD201C311C7B
+:1027A000FFF7C6FBC0FDFFFF08B58261DA6BC160B1
+:1027B0001A64191C0022FFF751FB08BD38B5041C30
+:1027C000E36840690D1C0864002B05D00122201C21
+:1027D000FFF744FB00F0ECFA23690220211C2A1CBD
+:1027E0009847072803D0082804D000F0E1FA281DF4
+:1027F00000F054F8201C291CFFF79AFB08B5C368A9
+:10280000002B05D0CA6B0A640022FFF727FB08BD26
+:10281000FFF79CFFFBE7C0467047C04608B58368DA
+:10282000011C002B01D00120984708BD70B51A4C3F
+:10283000061CA544D46B0D1C1464111D01A8402274
+:1028400000F066FD01204342009302E0052818D005
+:10285000109C90A8211CFFF771FA002819D1684636
+:102860000C2190AAFFF7BEFB6846291CB047002840
+:102870000FD1949B083090A96A469847041C0928F8
+:10288000E4D16846FFF7BEFAA62189008D44201CDA
+:1028900070BD0924F5E7C04668FDFFFF011C343117
+:1028A00038C9043B9C461D60A646011C20313CC92A
+:1028B00090469946A246AB46011C0831FCC94168C6
+:1028C0000068E54600BDC0467047C0467047C04638
+:1028D0007047C0467047C0467047C0467047C04604
+:1028E0007047C0467047C0467047C0467047C046F4
+:1028F00001B401A801B585B0FFB408A841464A4615
+:1029000053465C4665463EC001A83EC80F980090FD
+:1029100000230CB401A9FFF719FF109B12B0184750
+:1029200001B401A801B585B0FFB408A841464A46E4
+:1029300053465C4665463EC001A83EC80F980090CD
+:1029400000230CB401A9FFF739FF109B12B0184700
+:1029500001B401A801B585B0FFB408A841464A46B4
+:1029600053465C4665463EC001A83EC80F9800909D
+:1029700000230CB401A9FFF741FF109B12B01847C8
+:1029800001B401A801B585B0FFB408A841464A4684
+:1029900053465C4665463EC001A83EC80F9800906D
+:1029A00000230CB401ABFFF7FFFE109B12B01847D9
+:1029B00001B401A801B585B0FFB408A841464A4654
+:1029C00053465C4665463EC001A83EC80F9800903D
+:1029D00000230CB401AAFFF729FF109B12B018477F
+:1029E00000B5027A031C002A0ED1427AB020002AD8
+:1029F00009D0013A58685A7204C803215860197204
+:102A0000100E12021A6000BD013A02720268F7E766
+:102A100000B585B003AB002100930C220B1CFFF71F
+:102A2000A1FA039805B000BD08B5FFF7F1FF08BD96
+:102A3000F0B55F4656464D464446F0B487B00D1C8F
+:102A4000002103918022F023F831061C904699461C
+:102A50008B46281CFFF7C4FF041CB02800D1ADE052
+:102A6000434603409C4628D04B460340802B00D170
+:102A700071E0902B3CD0A02B57D0B02B00D183E03D
+:102A8000C02B00D1AFE05B460340D02B0CD1072018
+:102A900004407930020301342243301C0121CB3B36
+:102AA000FFF776FC0028D4D0092407B0201C3CBCDA
+:102AB00090469946A246AB46F0BD8700FF233B40B7
+:102AC00004339A4605AF6146301C0D2263460097D9
+:102AD000FFF748FA610624D5059952468C1A0594E9
+:102AE00000970021301C0D220B1CFFF761FAB0E7A4
+:102AF0000F2202400F2AD7D0141C0D3C63425C41C8
+:102B0000002CD1D105AF211C231C301C0097FFF7EE
+:102B100029FA301C211C0D22231C0097FFF748FACC
+:102B200097E7059850440590DAE707225F33824320
+:102B30001801011C11410A1C0240230702D5802400
+:102B4000E3011A430021301C0B1CFFF721FC002875
+:102B500000D17EE7A8E70402281CFFF741FF80238D
+:102B600004431F02BC429FD02405240C0021301CCA
+:102B7000221C0B1CFFF70CFC002895D13C4200D115
+:102B800067E70127039764E7B12871D0B22800D125
+:102B90008BE0B3287ED0FC202040B42846D0072705
+:102BA0003C40793701343A0322430121301C0B1C8D
+:102BB000FFF7EEFB002800D14BE775E70398B03C28
+:102BC000A04200D071E705AD211C231C301C0E2251
+:102BD0000095FFF7C7F9301C211C0F22231C00951C
+:102BE000FFF7E6F961E7C6282FD0C72800D185E0B6
+:102BF0005B460340C02B00D192E0C82800D196E08C
+:102C0000C92800D050E7281CFFF7EAFE0F214B46E9
+:102C1000034008401F03421C3A43301C0121052396
+:102C2000FFF7B6FB002800D113E73DE7032214406D
+:102C30007D320134D20202212243301C0B1CFFF7EB
+:102C4000A7FB002800D104E72EE7281CFFF7C8FEE9
+:102C50000F244B46034020401903421C0A43032122
+:102C6000301C0B1CFFF794FB002800D1F1E61BE79A
+:102C7000281CFFF7B5FE021E00D115E74B46134096
+:102C800000D011E7301C191CFFF782FB002800D18F
+:102C9000DFE609E7281CFFF7A3FE4B4603401C03B1
+:102CA0000F231840421C22437FE705A900918A4662
+:102CB00000210D220B1C301CFFF754F9281CFFF7D4
+:102CC0008FFE4246B03C10420CD07F27059A384018
+:102CD000A04010180590281CFFF782FE43460734D9
+:102CE0001842F3D1059A81217F238F001840D11912
+:102CF000A0400F18524605970092F2E6281CFFF7F5
+:102D00006FFE021E00D1CFE64B46134000D0CBE64B
+:102D1000301C0421FFF73CFB002800D199E6C3E6F4
+:102D2000B13B1C40A02001340203224397E7281C3A
+:102D3000FFF756FE4A4602400F231840103201307A
+:102D4000120302430121301C0A3BFFF721FB00283C
+:102D500000D17EE6A8E6C04600B5C26C85B05068DA
+:102D600001AB00020190101C083002900320187281
+:102D7000D279081C5A72191CFFF75AFE05B000BD23
+:102D800008B5FFF751FE806C08BDC04608B5FFF7D7
+:102D90004BFEC36CD9791A1D01318800101808BD8B
+:102DA00008B500F005F8C04608B500F001F8C046C7
+:102DB00008B5062000F0CAFB012000F049FDC0461E
+:102DC00070B50D4D0D4E761BB610002E05D00024AB
+:102DD00008CD01349847A642FAD800F079FE084D94
+:102DE000084E761BB610002E05D0002408CD013405
+:102DF0009847A642FAD870BDDC3A0000DC3A0000E1
+:102E0000DC3A0000F83A0000F0B55F4656464D4601
+:102E10004446F0B40D1C0B3583B0071C162D2CD97D
+:102E200007239D43EB0F8D422BD3002B29D1381C58
+:102E300000F0EAFA8B4B9D4227D8EA088A4ED3006D
+:102E4000F318DC689C4200D1B6E163680322A168F4
+:102E50009343E268E318CA6091605A6801210A430B
+:102E6000381C5A6000F0D2FA201C083003B03CBC79
+:102E700090469946A246AB46F0BD102500238D42F0
+:102E8000D3D20C233B600020F0E76B0A002B2BD041
+:102E9000042B00D979E1AB0938339946D900724E39
+:102EA0007118CC68A14226D0626803208243531B6C
+:102EB0000F2B08DD1CE0E468A1421CD0626882434D
+:102EC000531B0F2B14DC002BF5DBE368A168A21861
+:102ED000CB609960536801210B43381C536000F0AC
+:102EE00095FA201C0830C1E7E8088146C100D6E702
+:102EF00001235B4299440124A144311C08318C68B0
+:102F0000A14200D185E0626803239A43531B934694
+:102F10000F2B00DD42E1C9608960002B00DB9DE0E2
+:102F2000524B9B4551D8D208931001209840D200B3
+:102F30007368B21803439068E260A060C460946054
+:102F40004C46A210012090407360984268D8184205
+:102F50000CD103229443221C0432400091461842B3
+:102F600004D10422400091440342FAD0032398463E
+:102F70004C46E3009B199B469C46CA466246D46871
+:102F8000A44507D10FE1002B00DB1EE1E468A44556
+:102F900000D108E1626843469A43531B0F2BF2DDD0
+:102FA000012062190543A6686560E568F560AE60BA
+:102FB0001843CA608A605060D1609160381CD35059
+:102FC00000F024FA201C083050E7530A042B00D9E3
+:102FD0000EE19009383080464046C3009B199C465C
+:102FE0009B68634500D117E15A68032082438046FD
+:102FF000934506D308E05868021C40468243934537
+:1030000002D29B689C45F6D1DA68E260A360DC607E
+:1030100094604C46A210012073689040984296D963
+:10302000B468032263680F2193439A465B1BD80F51
+:10303000033A99424241D2B2002A19D1AA4517D384
+:103040000122111C2943134365196160381CB560C6
+:103050006B6000F0DBF9201C083007E7221C5A44A3
+:1030600038E7C046F701000004000010FF0100002F
+:10307000A348A4490368804610335B199B468B68BC
+:103080008946013305D0A04A131C5B441B0B1B036C
+:103090009B46381C594600F0BBF90190431C5CD09C
+:1030A000221C5244824200D9A7E041464B685B444F
+:1030B0004B60824200D1F4E049468968013100D179
+:1030C000FAE0C3189A1A43465A600723034000D116
+:1030D0009FE00822D21A8018019080204001121827
+:1030E0000199381C0B1C5B441B051B0DD31A191CC2
+:1030F000994600F08DF9421C00D1E8E0019BC01A0E
+:103100004844012318434246536801994B44536095
+:10311000B1604860B44215D00F22924500D894E0C7
+:103120000C204042021C0721606852448A43063941
+:103130000140114361600520A118486088600F2A92
+:1031400000D9BCE04446E26A934200D9E3624046BB
+:10315000026B934201D941460B63B4680323626852
+:103160009A4392465246531B0021D80F0F2288469D
+:103170009A424141C9B2414502D1AA4500D35FE715
+:10318000381C00F043F9002070E6142B2CD9542B86
+:1031900036D82B0B6E339946D90080E60120621990
+:1031A0000543656004E70124A244524643461A429F
+:1031B00051D00824A444E1E6231C64690232083398
+:1031C0009146A34200D198E63FE6A2185368012138
+:1031D0000B435360E368A268381CD3609A6000F028
+:1031E00015F9201C083041E65B339946D90056E6B4
+:1031F000142B23D85B339846EEE6B442ADD154E7A6
+:10320000AA225200934211D8EB0B77339946D9008A
+:1032100045E68022520163E7424690100122824037
+:10322000101C7268024372601A1CEEE6374A934221
+:1032300029D8AB0C7C339946D90030E6542B27D8DB
+:103240005B46180B6E308046C6E601234B60013B9F
+:103250000C1C9A4686E75B464C4600E0013C424621
+:10326000144244D01A1C1B68083A9342F6D0736883
+:103270004000984200D9D3E6002800D1D0E60342AE
+:1032800039D0D14674E6FC217E228900914606E6BB
+:10329000AA20400083421ED85A46D00B7730804681
+:1032A0009AE61105002900D006E75946B268514454
+:1032B00001200143516045E74A46906005E7211C23
+:1032C0000831381C00F0D2F941464B683AE700213A
+:1032D0000120894617E70D4A7E20944680466345C3
+:1032E00000D979E65B46980C7C30804674E67368BA
+:1032F00083437360BBE70424A2444000BFE7C04699
+:103300005009001004040010FF0F000054050000D5
+:10331000F0B54F464646C0B4032A0BD8002A05D064
+:103320000023CC5CC45401339342FAD10CBC9046C8
+:103330009946F0BD8218031C032503E00C78013187
+:103340001C70013303242B42F8D10C4041D0E7001C
+:10335000BC46042766423C1BE4008D59A1460BE0A5
+:1033600004318F596446E540A8464C463D1CA540B3
+:103370004446254320C33D1CD71A032FF0DC03E04D
+:103380000C7801311C7001339342F9D3CEE70C68FD
+:103390001C604C685C608C689C60CC68DC600C696C
+:1033A0001C614C695C618C699C61CC69DC610C6A54
+:1033B0001C624C6A5C628C6A9C62CC6ADC620C6B3C
+:1033C0001C634C6B5C638C6B9C63CC6B4031DC632B
+:1033D0004033D41A3F2CDADC0AE00C681C604C68DD
+:1033E0005C608C689C60CC681031DC601033D41A4F
+:1033F0000F2CF2DC0D1C03E00968043502C3D41A5B
+:10340000291C032CF8DCBFE77047C0467047C04654
+:1034100038B5074C0023051C2360081C00F0F8F9A0
+:10342000431C00D038BD2368002BFBD02B60F9E78C
+:103430008809001070B5B725AD004659041C00205E
+:10344000864200D070BD201C8021FFF7DDFC60515A
+:10345000002807D0021C031C8032301C01C3934299
+:10346000FCD1EFE701204042ECE7C046F8B5051C6F
+:103470000C1C161C1F2909D8B727BF00C359002BE5
+:1034800009D0A4001B1918681E60F8BD162303603C
+:1034900001204042F9E7FFF7CDFF002801D1EB59A9
+:1034A000EFE701204042F0E770B5061C0C1C1F2915
+:1034B00021D8B7239B00C358002B12D08A009A183A
+:1034C0001368002B0DD00025012B04D0591C04D00B
+:1034D0001560201C9847281C70BD17330360013508
+:1034E000F9E7301C00F06EF8221C011C301C00F0C3
+:1034F00055F8051CEFE71623012503606D42EAE746
+:1035000070B5051C0C1C1F2916D8B726B6008359A8
+:10351000002B14D0A2009A1813680120002B0AD0A7
+:103520000018591C07D00130012B04D00025201CA5
+:1035300015609847281C70BD01204042FBE7FFF74B
+:1035400079FF0028F8D1AB59E4E7C04608B5034B32
+:10355000011C1868FFF7A8FF08BDC046180400103A
+:1035600008B50A1C0349031C0868191CFFF77EFFF5
+:1035700008BDC0461804001008B5024B1868FFF7D4
+:1035800059FF08BD1804001008B5034B011C18684A
+:10359000FFF7B6FF08BDC0461804001038B5084C48
+:1035A0000023051C2360081C111C00F05BF9431C60
+:1035B00000D038BD2368002BFBD02B60F9E7C04654
+:1035C0008809001008B500F045F908BDF8B50F1CD2
+:1035D000041CFFF719FF204D204AAB685E680323E7
+:1035E0009E43B318DF1B3F0B013F1D4B3F039F4220
+:1035F00007DD201C0021FFF70BFFAB689B199842E9
+:1036000004D0201CFFF702FF0020F8BD7942201CE7
+:10361000FFF7FEFE01300DD0AB68F61B01252E43EF
+:103620005E60104B201C1A68D71B1F60FFF7EEFE70
+:10363000281CEAE7201C0021FFF7EAFEAB68C21A4B
+:103640000F2ADEDD08490968401A06490860012191
+:103650000A435A60D5E7C04604000010EF0F00008F
+:10366000FF0F0000540900100C040010F0B557467D
+:103670004E464546E0B4051C0C1E5DD0083CFFF7E5
+:10368000C3FE60680121031C8B43E21857680326C0
+:10369000B7435A4E8046B068844694456CD00020AB
+:1036A000844640465760084080460ED120688C46CC
+:1036B000241A1B18A068824608208019824504D06D
+:1036C000E1685046C1608860C446D119486801214C
+:1036D000084207D10020DB19844532D09068D268B7
+:1036E000C26090600122111C194361600021E35007
+:1036F0008C451ED142498B4230D95A0A042A54D8EB
+:1037000099093831C80030188268824253D0516814
+:103710000326B1438B4204D306E05168B1438B4288
+:1037200002D292689042F8D1D368E360A260D4607C
+:103730009C60281CFFF76AFE1CBC90469946A24676
+:10374000F0BD371C90680837B842C8D11943C4602F
+:103750008460E060A0606160E350EAE7DB089910F4
+:103760008A407168DB000A437260F618B368E6604D
+:10377000A360DC60B460DCE74246FB180A4206D175
+:103780002268A41AA1689B18E268CA6091600122AD
+:103790001A4362601B4AB46012689342C9D31A4B41
+:1037A000281C1968FFF712FFC3E7142A0CD8111C54
+:1037B0005B31C800A7E7891001238B40191C73688F
+:1037C00019437160131CB0E7542A03D8190B6E31EA
+:1037D000C80098E7AA2149008A4203D8D90B77315B
+:1037E000C80090E709498A4203D8990C7C31C80087
+:1037F00089E7FC2080007E2185E7C0460400001098
+:10380000FF010000100400105009001054050000D2
+:1038100070B50D4B1A68002A01D10C4A1A600A4D86
+:10382000C61C2C6803239E43A619301C00F022F806
+:10383000002801D12E6005E000F04CF801240C2393
+:1038400003606442201C70BD8C09001090090010B8
+:1038500000B5FEE7024B5822012040421A60704733
+:1038600088090010024B5822012040421A6070471C
+:103870008809001000B5094A6B46934203D9984263
+:1038800001D3012008E0064B002B01D1002003E00A
+:10389000002298425241101C00BDC0469009001001
+:1038A0000000000000B5034B1A78002A01D1013254
+:1038B0001A7000BD8409001008B504480368002B85
+:1038C00003D0034B002B00D0984708BD4C080010D4
+:1038D00000000000014B18687047C0461804001033
+:1038E000537461727400E7A98DE7AE97E38292E9A1
+:1038F000968BE5A78B00E7A98DE7AE97E38292E769
+:10390000B582E4BA8600E38387E383BCE382BFE346
+:1039100083AAE383BCE38389E9968BE5A78B0072D6
+:10392000203D200067203D200062203D2000000057
+:103930000000005000000150000002500000035041
+:10394000010000000400000001000000020000006F
+:10395000010000001000000001000000000800004D
+:1039600001000000800000000100000020000000B5
+:10397000030000000400000002000000010000003D
+:1039800001000000400000000000000002000000F4
+:10399000010000000001000000000000080000001D
+:1039A0000000000004000000030000001000000000
+:1039B00000000000100000000300000020000000D4
+:1039C0000000000020000000010000008000000056
+:1039D00001000000000200000100000000040000DF
+:1039E000000000004000000000000000000800008F
+:1039F00000000000000100000100000001000000C4
+:103A00000000000000020000000000008000000034
+:103A10000100000020000000020000000100000082
+:103A200001000000400000000100000080000000D4
+:103A3000000000000800000001000000000200007B
+:103A40000300000010000000020000001000000051
+:103A50000200000001000000020000000800000059
+:103A6000020000000400000002000000020000004C
+:103A70000000000004000000000000000002000040
+:103A800000000000000100000000000040000000F5
+:103A90003031323334353637383941424344454684
+:103AA0000030313233343536373839003031323343
+:103AB0003435363700303100B023000020250000B7
+:103AC0009E2600005A240000D0240000430000007D
+:103AD000F8B5C046F8BC08BC9E467047C513000048
+:103AE00065150000E9170000BD1A0000E91A000082
+:103AF0000D1B0000B9380000F8B5C046F8BC08BC82
+:043B00009E46704726
+:103B040008B10181B0B000840000000008B1018157
+:103B1400B0B000840000000008B10181B0B000849E
+:103B240000000000A2B20181ABF08001000000009F
+:103B3400800A0181B0B0ABF00000000008B101813F
+:103B4400B0B000840000000008B10181B0B000846E
+:103B54000000000008B10181B0B000840000000042
+:103B64003F260181B0ABF0800000000008B1018164
+:103B7400B0B000840000000008B10181B0B000843E
+:103B84000000000008B10181B0B000840000000012
+:103B940008B10181B0B000840000000080060181FA
+:103BA400B0B0ABF00000000008B10181B0B00084F7
+:103BB4000000000008B10181B0B0008400000000E2
+:103BC40010D5FF7F0100000040D5FF7FB0B0A88072
+:103BD4007CD5FF7F0100000078D5FF7FA908B18064
+:103BE400BCD5FF7FAB08B1808CD6FF7F01000000FD
+:103BF40094D6FF7FB0AB048084D7FF7F04FFFF7FA0
+:103C04008ED7FF7FA908B180B8D7FF7F01000000DD
+:103C1400E8D7FF7FAB07B180CCD8FF7FF0FEFF7FF2
+:103C2400D6D8FF7FA908B18000D9FF7F010000002A
+:103C340048DAFF7FB0B0A88064DAFF7F010000009B
+:103C4400C8DBFF7FD4FEFF7FD4DBFF7F01000000D1
+:103C5400E8E0FF7FB0A90280A8E1FF7FB0B0A880B0
+:103C6400F8E1FF7FC0FEFF7FC4E2FF7FA908B180B7
+:103C7400F0E2FF7F0100000084E3FF7FB4FEFF7FDA
+:103C8400E8E6FF7FB8FEFF7FECE6FF7FBCFEFF7F28
+:103C9400F0E6FF7FC0FEFF7FF4E6FF7FC4FEFF7FF8
+:103CA400A4EAFF7F01000000A0EAFF7FAA0FB28010
+:103CB400F4EAFF7FB8FEFF7F00EBFF7FA908B18025
+:103CC40038EBFF7FB4FEFF7F4CEBFF7F0100000069
+:103CD40048EBFF7FB0FEFF7F50EBFF7FAA25B28049
+:103CE400B8EBFF7F0100000024EDFF7F0084048017
+:103CF40034EDFF7F9CFEFF7F34EDFF7FA0FEFF7F4E
+:103D040054F0FF7F0084048074F0FF7F9CFEFF7FEB
+:103D140078F0FF7FA0FEFF7F84F0FF7F01000000AA
+:103D2400006CDC0200000000000000000400001031
+:103D3400040000100C0000100C000010140000100F
+:103D4400140000101C0000101C00001024000010BF
+:103D5400240000102C0000102C000010340000106F
+:103D6400340000103C0000103C000010440000101F
+:103D7400440000104C0000104C00001054000010CF
+:103D8400540000105C0000105C000010640000107F
+:103D9400640000106C0000106C000010740000102F
+:103DA400740000107C0000107C00001084000010DF
+:103DB400840000108C0000108C000010940000108F
+:103DC400940000109C0000109C000010A40000103F
+:103DD400A4000010AC000010AC000010B4000010EF
+:103DE400B4000010BC000010BC000010C40000109F
+:103DF400C4000010CC000010CC000010D40000104F
+:103E0400D4000010DC000010DC000010E4000010FE
+:103E1400E4000010EC000010EC000010F4000010AE
+:103E2400F4000010FC000010FC000010040100105D
+:103E3400040100100C0100100C010010140100100A
+:103E4400140100101C0100101C01001024010010BA
+:103E5400240100102C0100102C010010340100106A
+:103E6400340100103C0100103C010010440100101A
+:103E7400440100104C0100104C01001054010010CA
+:103E8400540100105C0100105C010010640100107A
+:103E9400640100106C0100106C010010740100102A
+:103EA400740100107C0100107C01001084010010DA
+:103EB400840100108C0100108C010010940100108A
+:103EC400940100109C0100109C010010A40100103A
+:103ED400A4010010AC010010AC010010B4010010EA
+:103EE400B4010010BC010010BC010010C40100109A
+:103EF400C4010010CC010010CC010010D40100104A
+:103F0400D4010010DC010010DC010010E4010010F9
+:103F1400E4010010EC010010EC010010F4010010A9
+:103F2400F4010010FC010010FC0100100402001058
+:103F3400040200100C0200100C0200101402001005
+:103F4400140200101C0200101C02001024020010B5
+:103F5400240200102C0200102C0200103402001065
+:103F6400340200103C0200103C0200104402001015
+:103F7400440200104C0200104C02001054020010C5
+:103F8400540200105C0200105C0200106402001075
+:103F9400640200106C0200106C0200107402001025
+:103FA400740200107C0200107C02001084020010D5
+:103FB400840200108C0200108C0200109402001085
+:103FC400940200109C0200109C020010A402001035
+:103FD400A4020010AC020010AC020010B4020010E5
+:103FE400B4020010BC020010BC020010C402001095
+:103FF400C4020010CC020010CC020010D402001045
+:10400400D4020010DC020010DC020010E4020010F4
+:10401400E4020010EC020010EC020010F4020010A4
+:10402400F4020010FC020010FC0200100403001053
+:10403400040300100C0300100C0300101403001000
+:10404400140300101C0300101C03001024030010B0
+:10405400240300102C0300102C0300103403001060
+:10406400340300103C0300103C0300104403001010
+:10407400440300104C0300104C03001054030010C0
+:10408400540300105C0300105C0300106403001070
+:10409400640300106C0300106C0300107403001020
+:1040A400740300107C0300107C03001084030010D0
+:1040B400840300108C0300108C0300109403001080
+:1040C400940300109C0300109C030010A403001030
+:1040D400A4030010AC030010AC030010B4030010E0
+:1040E400B4030010BC030010BC030010C403001090
+:1040F400C4030010CC030010CC030010D403001040
+:10410400D4030010DC030010DC030010E4030010EF
+:10411400E4030010EC030010EC030010F40300109F
+:10412400F4030010FC030010FC030010FFFFFFFF6A
+:104134000000020000000000200400100000000045
+:10414400000000000C07001074070010DC070010CA
+:10415400000000000000000000000000000000005B
+:10416400000000000000000000000000000000004B
+:1041740000000000CC3A0000000000000000000035
+:10418400000000000000000000000000000000002B
+:10419400000000000000000000000000000000001B
+:1041A400000000000000000000000000000000000B
+:1041B40000000000000000000000000000000000FB
+:1041C40000000000000000000000000000000000EB
+:1041D40000000000000000000000000000000000DB
+:1041E40000000000000000000100000000000000CA
+:1041F4000E33CDAB34126DE6ECDE05000B0000008F
+:1042040000000000000000000000000000000000AA
+:10421400000000000000000000000000000000009A
+:10422400000000000000000000000000000000008A
+:10423400000000000000000000000000000000007A
+:10424400000000000000000000000000000000006A
+:10425400000000000000000000000000000000005A
+:10426400000000000000000000000000000000004A
+:10427400000000000000000000000000000000003A
+:10428400000000000000000000000000000000002A
+:10429400000000000000000000000000000000001A
+:1042A400000000000000000000000000000000000A
+:1042B40000000000000000000000000000000000FA
+:1042C40000000000000000000000000000000000EA
+:1042D40000000000000000000000000000000000DA
+:1042E40000000000000000000000000000000000CA
+:1042F40000000000000000000000000000000000BA
+:1043040000000000000000000000000000000000A9
+:104314000000000000000000000000000000000099
+:104324000000000000000000000000000000000089
+:104334000000000000000000000000000000000079
+:104344000000000000000000000000000000000069
+:104354000000000000000000000000000000000059
+:104364000000000000000000000000000000000049
+:104374000000000000000000000000000000000039
+:104384000000000000000000000000000000000029
+:104394000000000000000000000000000000000019
+:1043A4000000000000000000000000000000000009
+:1043B40000000000000000000000000000000000F9
+:1043C40000000000000000000000000000000000E9
+:1043D40000000000000000000000000000000000D9
+:1043E40000000000000000000000000000000000C9
+:1043F40000000000000000000000000000000000B9
+:1044040000000000000000000000000000000000A8
+:104414000000000000000000000000000000000098
+:104424000000000000000000000000000000000088
+:104434000000000000000000000000000000000078
+:104444000000000000000000000000000000000068
+:104454000000000000000000000000000000000058
+:104464000000000000000000000000000000000048
+:104474000000000000000000000000000000000038
+:104484000000000000000000000000000000000028
+:104494000000000000000000000000000000000018
+:1044A4000000000000000000000000000000000008
+:1044B40000000000000000000000000000000000F8
+:1044C40000000000000000000000000000000000E8
+:1044D40000000000000000000000000000000000D8
+:1044E40000000000000000000000000000000000C8
+:1044F40000000000000000000000000000000000B8
+:1045040000000000000000000000000000000000A7
+:104514000000000000000000000000000000000097
+:104524000000000000000000000000000000000087
+:104534000000000000000000000000000000000077
+:104544000000000000000000000000000000000067
+:104554000000000000000000000000000000000057
+:0C4564000000000000000000000000004B
+:040000030000110DDB
+:00000001FF
diff --git a/Release/exodusino.map b/Release/exodusino.map new file mode 100755 index 0000000..5d5c7ba --- /dev/null +++ b/Release/exodusino.map @@ -0,0 +1,2479 @@ +Archive member included because of file (symbol)
+
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_thumb1_case_uqi.o)
+ ./src/core/SPI.o (__gnu_thumb1_case_uqi)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_udivsi3.o)
+ ./src/core/delay.o (__aeabi_uidiv)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_divsi3.o)
+ ./src/core/uart.o (__aeabi_idiv)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_dvmd_tls.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_udivsi3.o) (__aeabi_idiv0)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o)
+ ./src/user_application.o (__aeabi_unwind_cpp_pr0)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(libunwind.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o) (restore_core_regs)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(pr-support.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o) (__gnu_unwind_execute)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-abort.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o) (abort)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-init.o)
+ ./src/core/cr_startup_lpc11.o (__libc_init_array)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-malloc.o)
+ ./src/core/cr_cpp_config.o (malloc)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mallocr.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-malloc.o) (_malloc_r)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o)
+ ./src/core/maryoled.o (memcpy)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mlock.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mallocr.o) (__malloc_lock)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-sbrkr.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mallocr.o) (_sbrk_r)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signal.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-abort.o) (raise)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signal.o) (_kill_r)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-freer.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-malloc.o) (_free_r)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-impure.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-malloc.o) (_impure_ptr)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-reent.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-sbrkr.o) (errno)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-sbrkr.o) (_sbrk)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-abort.o) (_exit)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o) (_getpid)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o) (_kill)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o) (__check_heap_overflow)
+c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-errno.o)
+ c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o) (__errno)
+
+Allocating common symbols
+Common symbol size file
+
+errno 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-reent.o)
+__end_of_heap 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+
+Discarded input sections
+
+ .text 0x00000000 0x0 ./src/user_application.o
+ .data 0x00000000 0x0 ./src/user_application.o
+ .bss 0x00000000 0x0 ./src/user_application.o
+ .ARM.extab.text._Z5setupv
+ 0x00000000 0x0 ./src/user_application.o
+ .ARM.extab.text._Z4loopv
+ 0x00000000 0x0 ./src/user_application.o
+ .text 0x00000000 0x0 ./src/core/SPI.o
+ .data 0x00000000 0x0 ./src/core/SPI.o
+ .bss 0x00000000 0x0 ./src/core/SPI.o
+ .ARM.extab.text._ZN3SSPD2Ev
+ 0x00000000 0x0 ./src/core/SPI.o
+ .ARM.extab.text._ZN3SSP12setBitLengthEi
+ 0x00000000 0x0 ./src/core/SPI.o
+ .text._ZN3SSP3endEv
+ 0x00000000 0x10 ./src/core/SPI.o
+ .ARM.extab.text._ZN3SSP3endEv
+ 0x00000000 0x0 ./src/core/SPI.o
+ .ARM.exidx.text._ZN3SSP3endEv
+ 0x00000000 0x8 ./src/core/SPI.o
+ .ARM.extab.text._ZN3SSP11setBitOrderE13SSP_BIT_ORDER
+ 0x00000000 0x0 ./src/core/SPI.o
+ .ARM.extab.text._ZN3SSP15setClockDividerE15SSP_CLK_DIVIDER
+ 0x00000000 0x0 ./src/core/SPI.o
+ .text._ZN3SSP11setDataModeE13SSP_DATA_MODE
+ 0x00000000 0x4 ./src/core/SPI.o
+ .ARM.extab.text._ZN3SSP11setDataModeE13SSP_DATA_MODE
+ 0x00000000 0x0 ./src/core/SPI.o
+ .ARM.exidx.text._ZN3SSP11setDataModeE13SSP_DATA_MODE
+ 0x00000000 0x8 ./src/core/SPI.o
+ .ARM.extab.text.ssp_begin
+ 0x00000000 0x0 ./src/core/SPI.o
+ .text._ZN3SSP5beginE8SSP_PORT
+ 0x00000000 0x14 ./src/core/SPI.o
+ .ARM.extab.text._ZN3SSP5beginE8SSP_PORT
+ 0x00000000 0xc ./src/core/SPI.o
+ .ARM.exidx.text._ZN3SSP5beginE8SSP_PORT
+ 0x00000000 0x8 ./src/core/SPI.o
+ .ARM.extab.text._ZN3SSPC2Ev
+ 0x00000000 0x0 ./src/core/SPI.o
+ .text.ssp_transfer
+ 0x00000000 0x2c ./src/core/SPI.o
+ .ARM.extab.text.ssp_transfer
+ 0x00000000 0x0 ./src/core/SPI.o
+ .ARM.exidx.text.ssp_transfer
+ 0x00000000 0x8 ./src/core/SPI.o
+ .text._ZN3SSP8transferEm
+ 0x00000000 0xa ./src/core/SPI.o
+ .ARM.extab.text._ZN3SSP8transferEm
+ 0x00000000 0x0 ./src/core/SPI.o
+ .ARM.exidx.text._ZN3SSP8transferEm
+ 0x00000000 0x8 ./src/core/SPI.o
+ .ARM.extab.text._GLOBAL__I_SPI
+ 0x00000000 0x0 ./src/core/SPI.o
+ .text 0x00000000 0x0 ./src/core/SPI1.o
+ .data 0x00000000 0x0 ./src/core/SPI1.o
+ .bss 0x00000000 0x0 ./src/core/SPI1.o
+ .ARM.extab.text._ZN4SSP1D2Ev
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .ARM.extab.text._ZN4SSP112setBitLengthEi
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .text._ZN4SSP13endEv
+ 0x00000000 0x10 ./src/core/SPI1.o
+ .ARM.extab.text._ZN4SSP13endEv
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .ARM.exidx.text._ZN4SSP13endEv
+ 0x00000000 0x8 ./src/core/SPI1.o
+ .ARM.extab.text._ZN4SSP111setBitOrderE13SSP_BIT_ORDER
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .ARM.extab.text._ZN4SSP115setClockDividerE15SSP_CLK_DIVIDER
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .ARM.extab.text._ZN4SSP111setDataModeE13SSP_DATA_MODE
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .ARM.extab.text.ssp1_begin
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .text._ZN4SSP15beginE8SSP_PORT
+ 0x00000000 0x14 ./src/core/SPI1.o
+ .ARM.extab.text._ZN4SSP15beginE8SSP_PORT
+ 0x00000000 0xc ./src/core/SPI1.o
+ .ARM.exidx.text._ZN4SSP15beginE8SSP_PORT
+ 0x00000000 0x8 ./src/core/SPI1.o
+ .ARM.extab.text._ZN4SSP1C2Ev
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .ARM.extab.text.ssp1_transfer
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .ARM.extab.text._ZN4SSP18transferEm
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .ARM.extab.text._GLOBAL__I_SPI1
+ 0x00000000 0x0 ./src/core/SPI1.o
+ .text 0x00000000 0x0 ./src/core/cr_cpp_config.o
+ .data 0x00000000 0x0 ./src/core/cr_cpp_config.o
+ .bss 0x00000000 0x0 ./src/core/cr_cpp_config.o
+ .text._Znwj 0x00000000 0x8 ./src/core/cr_cpp_config.o
+ .ARM.extab.text._Znwj
+ 0x00000000 0x0 ./src/core/cr_cpp_config.o
+ .ARM.exidx.text._Znwj
+ 0x00000000 0x8 ./src/core/cr_cpp_config.o
+ .text._ZdlPv 0x00000000 0x8 ./src/core/cr_cpp_config.o
+ .ARM.extab.text._ZdlPv
+ 0x00000000 0x0 ./src/core/cr_cpp_config.o
+ .ARM.exidx.text._ZdlPv
+ 0x00000000 0x8 ./src/core/cr_cpp_config.o
+ .ARM.extab.text.__aeabi_atexit
+ 0x00000000 0x0 ./src/core/cr_cpp_config.o
+ .text 0x00000000 0x0 ./src/core/cr_startup_lpc11.o
+ .data 0x00000000 0x0 ./src/core/cr_startup_lpc11.o
+ .bss 0x00000000 0x0 ./src/core/cr_startup_lpc11.o
+ .ARM.extab.after_vectors
+ 0x00000000 0x0 ./src/core/cr_startup_lpc11.o
+ .text.__cxa_pure_virtual
+ 0x00000000 0x4 ./src/core/cr_startup_lpc11.o
+ .ARM.extab.text.__cxa_pure_virtual
+ 0x00000000 0x0 ./src/core/cr_startup_lpc11.o
+ .ARM.exidx.text.__cxa_pure_virtual
+ 0x00000000 0x8 ./src/core/cr_startup_lpc11.o
+ .text 0x00000000 0x0 ./src/core/delay.o
+ .data 0x00000000 0x0 ./src/core/delay.o
+ .bss 0x00000000 0x0 ./src/core/delay.o
+ .ARM.extab.text.NVIC_SetPriority
+ 0x00000000 0x0 ./src/core/delay.o
+ .ARM.extab.text.NVIC_DisableIRQ.clone.0
+ 0x00000000 0x0 ./src/core/delay.o
+ .ARM.extab.text.delay
+ 0x00000000 0x0 ./src/core/delay.o
+ .text.millis 0x00000000 0xc ./src/core/delay.o
+ .ARM.extab.text.millis
+ 0x00000000 0x0 ./src/core/delay.o
+ .ARM.exidx.text.millis
+ 0x00000000 0x8 ./src/core/delay.o
+ .text.delayMicroseconds
+ 0x00000000 0x18 ./src/core/delay.o
+ .ARM.extab.text.delayMicroseconds
+ 0x00000000 0x0 ./src/core/delay.o
+ .ARM.exidx.text.delayMicroseconds
+ 0x00000000 0x8 ./src/core/delay.o
+ .text.micros 0x00000000 0xc ./src/core/delay.o
+ .ARM.extab.text.micros
+ 0x00000000 0x0 ./src/core/delay.o
+ .ARM.exidx.text.micros
+ 0x00000000 0x8 ./src/core/delay.o
+ .ARM.extab.text.attachMicroseconds
+ 0x00000000 0x0 ./src/core/delay.o
+ .ARM.extab.text.setup_TIMER32_1
+ 0x00000000 0x0 ./src/core/delay.o
+ .text.detachMicroseconds
+ 0x00000000 0x14 ./src/core/delay.o
+ .ARM.extab.text.detachMicroseconds
+ 0x00000000 0x0 ./src/core/delay.o
+ .ARM.exidx.text.detachMicroseconds
+ 0x00000000 0x8 ./src/core/delay.o
+ .ARM.extab.text.TIMER32_1_IRQHandler
+ 0x00000000 0x0 ./src/core/delay.o
+ .ARM.extab.text.SysTick_Handler
+ 0x00000000 0x0 ./src/core/delay.o
+ .ARM.extab.text.setup_systick
+ 0x00000000 0x0 ./src/core/delay.o
+ .text 0x00000000 0x0 ./src/core/gpio.o
+ .data 0x00000000 0x0 ./src/core/gpio.o
+ .bss 0x00000000 0x0 ./src/core/gpio.o
+ .ARM.extab.text._Z7pinModei12pinModeState
+ 0x00000000 0x0 ./src/core/gpio.o
+ .ARM.extab.text._Z12digitalWritei17digitalWriteState
+ 0x00000000 0x0 ./src/core/gpio.o
+ .text._Z11digitalReadi
+ 0x00000000 0x44 ./src/core/gpio.o
+ .ARM.extab.text._Z11digitalReadi
+ 0x00000000 0x0 ./src/core/gpio.o
+ .ARM.exidx.text._Z11digitalReadi
+ 0x00000000 0x8 ./src/core/gpio.o
+ .text 0x00000000 0x0 ./src/core/maryoled.o
+ .data 0x00000000 0x0 ./src/core/maryoled.o
+ .bss 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLEDD2Ev
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLEDC2Ev
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .text._ZN8MARYOLED7commandEi
+ 0x00000000 0x28 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED7commandEi
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED7commandEi
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED4dataEi
+ 0x00000000 0x28 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED4dataEi
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED4dataEi
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED7_windowEiiii
+ 0x00000000 0x48 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED7_windowEiiii
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED7_windowEiiii
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED11WindowResetEv
+ 0x00000000 0x3c ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED11WindowResetEv
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED11WindowResetEv
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED6locateEii
+ 0x00000000 0x6 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED6locateEii
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED6locateEii
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED7newlineEv
+ 0x00000000 0x14 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED7newlineEv
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED7newlineEv
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED5_putpEi
+ 0x00000000 0x24 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED5_putpEi
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED5_putpEi
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED6windowEiiii
+ 0x00000000 0xc ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED6windowEiiii
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED6windowEiiii
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED4putpEi
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED4putpEi
+ 0x00000000 0xc ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED4putpEi
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED5pixelEiii
+ 0x00000000 0x18 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED5pixelEiii
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED5pixelEiii
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED4fillEiiiii
+ 0x00000000 0x50 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED4fillEiiiii
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED4fillEiiiii
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED3clsEv
+ 0x00000000 0x1c ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED3clsEv
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED3clsEv
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED5resetEv
+ 0x00000000 0x228 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED5resetEv
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED5resetEv
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED5resetE8SSP_PORT
+ 0x00000000 0x46 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED5resetE8SSP_PORT
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED5resetE8SSP_PORT
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED4blitEiiiiPKi
+ 0x00000000 0x56 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED4blitEiiiiPKi
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED4blitEiiiiPKi
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED7bitblitEiiiiPKc
+ 0x00000000 0x80 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED7bitblitEiiiiPKc
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED7bitblitEiiiiPKc
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED5_putcEi
+ 0x00000000 0x50 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED5_putcEi
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED5_putcEi
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED10foregroundEi
+ 0x00000000 0x4 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED10foregroundEi
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED10foregroundEi
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED10backgroundEi
+ 0x00000000 0x4 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED10backgroundEi
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED10backgroundEi
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED5widthEv
+ 0x00000000 0x4 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED5widthEv
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED5widthEv
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED6heightEv
+ 0x00000000 0x4 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED6heightEv
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED6heightEv
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED7columnsEv
+ 0x00000000 0x4 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED7columnsEv
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED7columnsEv
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .text._ZN8MARYOLED4rowsEv
+ 0x00000000 0x4 ./src/core/maryoled.o
+ .ARM.extab.text._ZN8MARYOLED4rowsEv
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .ARM.exidx.text._ZN8MARYOLED4rowsEv
+ 0x00000000 0x8 ./src/core/maryoled.o
+ .ARM.extab.text._GLOBAL__I_oled
+ 0x00000000 0x0 ./src/core/maryoled.o
+ .rodata._ZL7FONT8x8
+ 0x00000000 0x308 ./src/core/maryoled.o
+ .rodata._ZZN8MARYOLED5resetEvE3C.8
+ 0x00000000 0x3f ./src/core/maryoled.o
+ .text 0x00000000 0x0 ./src/core/startup_mary.o
+ .data 0x00000000 0x0 ./src/core/startup_mary.o
+ .bss 0x00000000 0x0 ./src/core/startup_mary.o
+ .text 0x00000000 0x0 ./src/core/system_LPC11xx.o
+ .data 0x00000000 0x0 ./src/core/system_LPC11xx.o
+ .bss 0x00000000 0x0 ./src/core/system_LPC11xx.o
+ .text.SystemCoreClockUpdate
+ 0x00000000 0x9c ./src/core/system_LPC11xx.o
+ .ARM.extab.text.SystemCoreClockUpdate
+ 0x00000000 0x0 ./src/core/system_LPC11xx.o
+ .ARM.exidx.text.SystemCoreClockUpdate
+ 0x00000000 0x8 ./src/core/system_LPC11xx.o
+ .ARM.extab.text.SystemInit
+ 0x00000000 0x0 ./src/core/system_LPC11xx.o
+ .rodata.CSWTCH.16
+ 0x00000000 0x40 ./src/core/system_LPC11xx.o
+ .text 0x00000000 0x0 ./src/core/uart.o
+ .data 0x00000000 0x0 ./src/core/uart.o
+ .bss 0x00000000 0x0 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerialD2Ev
+ 0x00000000 0x0 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerialC2Ev
+ 0x00000000 0x0 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial5beginEi
+ 0x00000000 0x0 ./src/core/uart.o
+ .text._ZN7USerial3endEv
+ 0x00000000 0x2 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial3endEv
+ 0x00000000 0x0 ./src/core/uart.o
+ .ARM.exidx.text._ZN7USerial3endEv
+ 0x00000000 0x8 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial5writeEc
+ 0x00000000 0x0 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial5printEPKc
+ 0x00000000 0x0 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial5printEi12RADIX_FORMAT
+ 0x00000000 0x0 ./src/core/uart.o
+ .text._ZN7USerial5writeEPKci
+ 0x00000000 0x1c ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial5writeEPKci
+ 0x00000000 0x0 ./src/core/uart.o
+ .ARM.exidx.text._ZN7USerial5writeEPKci
+ 0x00000000 0x8 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial7printlnEPKc
+ 0x00000000 0x0 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial7printlnEi12RADIX_FORMAT
+ 0x00000000 0x0 ./src/core/uart.o
+ .text._ZN7USerial9availableEv
+ 0x00000000 0x10 ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial9availableEv
+ 0x00000000 0x0 ./src/core/uart.o
+ .ARM.exidx.text._ZN7USerial9availableEv
+ 0x00000000 0x8 ./src/core/uart.o
+ .text._ZN7USerial4readEv
+ 0x00000000 0xc ./src/core/uart.o
+ .ARM.extab.text._ZN7USerial4readEv
+ 0x00000000 0x0 ./src/core/uart.o
+ .ARM.exidx.text._ZN7USerial4readEv
+ 0x00000000 0x8 ./src/core/uart.o
+ .ARM.extab.text._GLOBAL__I_Serial
+ 0x00000000 0x0 ./src/core/uart.o
+ .group 0x00000000 0x8 ./src/XBee/XBee.o
+ .group 0x00000000 0x8 ./src/XBee/XBee.o
+ .group 0x00000000 0x8 ./src/XBee/XBee.o
+ .group 0x00000000 0x8 ./src/XBee/XBee.o
+ .text 0x00000000 0x0 ./src/XBee/XBee.o
+ .data 0x00000000 0x0 ./src/XBee/XBee.o
+ .bss 0x00000000 0x0 ./src/XBee/XBee.o
+ .text._ZN12ZBRxResponse13getDataOffsetEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12ZBRxResponse13getDataOffsetEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12ZBRxResponse13getDataOffsetEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequest12getFrameDataEh
+ 0x00000000 0x20 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequest12getFrameDataEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequest12getFrameDataEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequest18getFrameDataLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequest18getFrameDataLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequest18getFrameDataLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11XBeeRequest8setApiIdEh.clone.1
+ 0x00000000 0x6 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11XBeeRequest8setApiIdEh.clone.1
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11XBeeRequest8setApiIdEh.clone.1
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponseC2Ev
+ 0x00000000 0x2 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponseC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse8getApiIdEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse8getApiIdEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse8getApiIdEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse8setApiIdEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse8setApiIdEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse8setApiIdEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse12getMsbLengthEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse12getMsbLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse12getMsbLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse12setMsbLengthEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse12setMsbLengthEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse12setMsbLengthEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse12getLsbLengthEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse12getLsbLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse12getLsbLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse12setLsbLengthEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse12setLsbLengthEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse12setLsbLengthEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse11getChecksumEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse11getChecksumEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse11getChecksumEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse11setChecksumEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse11setChecksumEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse11setChecksumEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse18getFrameDataLengthEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse18getFrameDataLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse18getFrameDataLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse14setFrameLengthEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse14setFrameLengthEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse14setFrameLengthEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse11isAvailableEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse11isAvailableEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse11isAvailableEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse12setAvailableEb
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse12setAvailableEb
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse12setAvailableEb
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse7isErrorEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse7isErrorEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse7isErrorEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse12getErrorCodeEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse12getErrorCodeEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse12getErrorCodeEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse12setErrorCodeEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse12setErrorCodeEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse12setErrorCodeEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse9setCommonERS_
+ 0x00000000 0x68 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse9setCommonERS_
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse9setCommonERS_
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN18ZBTxStatusResponseC2Ev
+ 0x00000000 0x2 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN18ZBTxStatusResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN18ZBTxStatusResponseC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12ZBRxResponse18getRemoteAddress64Ev
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12ZBRxResponse18getRemoteAddress64Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12ZBRxResponse18getRemoteAddress64Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN23RemoteAtCommandResponseC2Ev
+ 0x00000000 0x2 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN23RemoteAtCommandResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN23RemoteAtCommandResponseC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN23RemoteAtCommandResponse14getValueLengthEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN23RemoteAtCommandResponse14getValueLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN23RemoteAtCommandResponse14getValueLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN23RemoteAtCommandResponse18getRemoteAddress64Ev
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN23RemoteAtCommandResponse18getRemoteAddress64Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN23RemoteAtCommandResponse18getRemoteAddress64Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN14RxDataResponseC2Ev
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN14RxDataResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN14RxDataResponseC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12ZBRxResponseC2Ev
+ 0x00000000 0x1c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12ZBRxResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12ZBRxResponseC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponseC2Ev
+ 0x00000000 0x14 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponseC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN15FrameIdResponseC2Ev
+ 0x00000000 0x2 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN15FrameIdResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN15FrameIdResponseC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN19ModemStatusResponseC2Ev
+ 0x00000000 0x2 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN19ModemStatusResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN19ModemStatusResponseC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN17AtCommandResponseC2Ev
+ 0x00000000 0x2 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN17AtCommandResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN17AtCommandResponseC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN17AtCommandResponse14getValueLengthEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN17AtCommandResponse14getValueLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN17AtCommandResponse14getValueLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse15getPacketLengthEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse15getPacketLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse15getPacketLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12ZBRxResponse13getDataLengthEv
+ 0x00000000 0x1c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12ZBRxResponse13getDataLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12ZBRxResponse13getDataLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse12getFrameDataEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse12getFrameDataEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse12getFrameDataEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN17AtCommandResponse8getValueEv
+ 0x00000000 0x16 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN17AtCommandResponse8getValueEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN17AtCommandResponse8getValueEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN17AtCommandResponse9getStatusEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN17AtCommandResponse9getStatusEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN17AtCommandResponse9getStatusEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN17AtCommandResponse4isOkEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN17AtCommandResponse4isOkEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN17AtCommandResponse4isOkEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN17AtCommandResponse10getCommandEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN17AtCommandResponse10getCommandEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN17AtCommandResponse10getCommandEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN19ModemStatusResponse9getStatusEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN19ModemStatusResponse9getStatusEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN19ModemStatusResponse9getStatusEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN15FrameIdResponse10getFrameIdEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN15FrameIdResponse10getFrameIdEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN15FrameIdResponse10getFrameIdEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN14RxDataResponse7getDataEv
+ 0x00000000 0x18 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN14RxDataResponse7getDataEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN14RxDataResponse7getDataEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN14RxDataResponse7getDataEi
+ 0x00000000 0x1c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN14RxDataResponse7getDataEi
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN14RxDataResponse7getDataEi
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN23RemoteAtCommandResponse18getRemoteAddress16Ev
+ 0x00000000 0x12 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN23RemoteAtCommandResponse18getRemoteAddress16Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN23RemoteAtCommandResponse18getRemoteAddress16Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN23RemoteAtCommandResponse8getValueEv
+ 0x00000000 0x16 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN23RemoteAtCommandResponse8getValueEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN23RemoteAtCommandResponse8getValueEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN23RemoteAtCommandResponse9getStatusEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN23RemoteAtCommandResponse9getStatusEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN23RemoteAtCommandResponse9getStatusEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN23RemoteAtCommandResponse4isOkEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN23RemoteAtCommandResponse4isOkEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN23RemoteAtCommandResponse4isOkEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN23RemoteAtCommandResponse10getCommandEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN23RemoteAtCommandResponse10getCommandEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN23RemoteAtCommandResponse10getCommandEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponse11isDigitalOnEh
+ 0x00000000 0x22 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponse11isDigitalOnEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponse11isDigitalOnEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponse13getAnalogMaskEv
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponse13getAnalogMaskEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponse13getAnalogMaskEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponse15isAnalogEnabledEh
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponse15isAnalogEnabledEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponse15isAnalogEnabledEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponse14containsAnalogEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponse14containsAnalogEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponse14containsAnalogEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponse17getDigitalMaskLsbEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponse17getDigitalMaskLsbEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponse17getDigitalMaskLsbEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponse17getDigitalMaskMsbEv
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponse17getDigitalMaskMsbEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponse17getDigitalMaskMsbEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponse16isDigitalEnabledEh
+ 0x00000000 0x1c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponse16isDigitalEnabledEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponse16isDigitalEnabledEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponse15containsDigitalEv
+ 0x00000000 0x1c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponse15containsDigitalEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponse15containsDigitalEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN20ZBRxIoSampleResponse9getAnalogEh
+ 0x00000000 0x40 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN20ZBRxIoSampleResponse9getAnalogEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN20ZBRxIoSampleResponse9getAnalogEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12ZBRxResponse9getOptionEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12ZBRxResponse9getOptionEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12ZBRxResponse9getOptionEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12ZBRxResponse18getRemoteAddress16Ev
+ 0x00000000 0x14 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12ZBRxResponse18getRemoteAddress16Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12ZBRxResponse18getRemoteAddress16Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN18ZBTxStatusResponse18getDiscoveryStatusEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN18ZBTxStatusResponse18getDiscoveryStatusEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN18ZBTxStatusResponse18getDiscoveryStatusEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN18ZBTxStatusResponse17getDeliveryStatusEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN18ZBTxStatusResponse17getDeliveryStatusEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN18ZBTxStatusResponse17getDeliveryStatusEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN18ZBTxStatusResponse9isSuccessEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN18ZBTxStatusResponse9isSuccessEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN18ZBTxStatusResponse9isSuccessEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN18ZBTxStatusResponse15getTxRetryCountEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN18ZBTxStatusResponse15getTxRetryCountEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN18ZBTxStatusResponse15getTxRetryCountEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN18ZBTxStatusResponse16getRemoteAddressEv
+ 0x00000000 0x12 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN18ZBTxStatusResponse16getRemoteAddressEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN18ZBTxStatusResponse16getRemoteAddressEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse12setFrameDataEPh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse12setFrameDataEPh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse12setFrameDataEPh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse20getAtCommandResponseERS_
+ 0x00000000 0x1c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse20getAtCommandResponseERS_
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse20getAtCommandResponseERS_
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse22getModemStatusResponseERS_
+ 0x00000000 0x1c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse22getModemStatusResponseERS_
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse22getModemStatusResponseERS_
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse21getZBTxStatusResponseERS_
+ 0x00000000 0x1c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse21getZBTxStatusResponseERS_
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse21getZBTxStatusResponseERS_
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse4initEv
+ 0x00000000 0xa ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse4initEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse4initEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse5resetEv
+ 0x00000000 0x26 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse5resetEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse5resetEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee13resetResponseEv
+ 0x00000000 0xe ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee13resetResponseEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee13resetResponseEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBeeC2Ev
+ 0x00000000 0x20 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBeeC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBeeC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee14getNextFrameIdEv
+ 0x00000000 0x16 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee14getNextFrameIdEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee14getNextFrameIdEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee5beginEi
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee5beginEi
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee5beginEi
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee11getResponseEv
+ 0x00000000 0x2 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee11getResponseEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee11getResponseEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee11getResponseER12XBeeResponse
+ 0x00000000 0x4c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee11getResponseER12XBeeResponse
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee11getResponseER12XBeeResponse
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee10readPacketEv
+ 0x00000000 0x124 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee10readPacketEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee10readPacketEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee10readPacketEi
+ 0x00000000 0x4c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee10readPacketEi
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee10readPacketEi
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee24readPacketUntilAvailableEv
+ 0x00000000 0x28 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee24readPacketUntilAvailableEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee24readPacketUntilAvailableEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11XBeeRequestC2Ehh
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11XBeeRequestC2Ehh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11XBeeRequestC2Ehh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11XBeeRequest10setFrameIdEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11XBeeRequest10setFrameIdEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11XBeeRequest10setFrameIdEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11XBeeRequest10getFrameIdEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11XBeeRequest10getFrameIdEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11XBeeRequest10getFrameIdEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11XBeeRequest8getApiIdEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11XBeeRequest8getApiIdEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11XBeeRequest8getApiIdEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11XBeeRequest8setApiIdEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11XBeeRequest8setApiIdEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11XBeeRequest8setApiIdEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN14PayloadRequestC2EhhPhh
+ 0x00000000 0x20 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN14PayloadRequestC2EhhPhh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN14PayloadRequestC2EhhPhh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN14PayloadRequest10getPayloadEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN14PayloadRequest10getPayloadEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN14PayloadRequest10getPayloadEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN14PayloadRequest10setPayloadEPh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN14PayloadRequest10setPayloadEPh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN14PayloadRequest10setPayloadEPh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN14PayloadRequest16getPayloadLengthEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN14PayloadRequest16getPayloadLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN14PayloadRequest16getPayloadLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest18getFrameDataLengthEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest18getFrameDataLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest18getFrameDataLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN14PayloadRequest16setPayloadLengthEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN14PayloadRequest16setPayloadLengthEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN14PayloadRequest16setPayloadLengthEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11XBeeAddressC2Ev
+ 0x00000000 0x2 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11XBeeAddressC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11XBeeAddressC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN13XBeeAddress64C2Ev
+ 0x00000000 0x2 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN13XBeeAddress64C2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN13XBeeAddress64C2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN13XBeeAddress64C2Emm
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .text._ZN13XBeeAddress646getMsbEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN13XBeeAddress646getMsbEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN13XBeeAddress646getMsbEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN13XBeeAddress646setMsbEm
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN13XBeeAddress646setMsbEm
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN13XBeeAddress646setMsbEm
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN13XBeeAddress646getLsbEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN13XBeeAddress646getLsbEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN13XBeeAddress646getLsbEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest12getFrameDataEh
+ 0x00000000 0x98 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest12getFrameDataEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest12getFrameDataEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN13XBeeAddress646setLsbEm
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN13XBeeAddress646setLsbEm
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN13XBeeAddress646setLsbEm
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse26getRemoteAtCommandResponseERS_
+ 0x00000000 0x64 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse26getRemoteAtCommandResponseERS_
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse26getRemoteAtCommandResponseERS_
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse23getZBRxIoSampleResponseERS_
+ 0x00000000 0x66 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse23getZBRxIoSampleResponseERS_
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse23getZBRxIoSampleResponseERS_
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN12XBeeResponse15getZBRxResponseERS_
+ 0x00000000 0x66 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN12XBeeResponse15getZBRxResponseERS_
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN12XBeeResponse15getZBRxResponseERS_
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequestC2Ev
+ 0x00000000 0x20 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequestC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequestC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequestC2ER13XBeeAddress64thhPhhh
+ 0x00000000 0x48 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequestC2ER13XBeeAddress64thhPhhh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequestC2ER13XBeeAddress64thhPhhh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequestC2ER13XBeeAddress64Phh
+ 0x00000000 0x38 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequestC2ER13XBeeAddress64Phh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequestC2ER13XBeeAddress64Phh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest12getAddress64Ev
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest12getAddress64Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest12getAddress64Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest12getAddress16Ev
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest12getAddress16Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest12getAddress16Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest18getBroadcastRadiusEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest18getBroadcastRadiusEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest18getBroadcastRadiusEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest9getOptionEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest9getOptionEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest9getOptionEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest12setAddress64ER13XBeeAddress64
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest12setAddress64ER13XBeeAddress64
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest12setAddress64ER13XBeeAddress64
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest12setAddress16Et
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest12setAddress16Et
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest12setAddress16Et
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest18setBroadcastRadiusEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest18setBroadcastRadiusEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest18setBroadcastRadiusEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN11ZBTxRequest9setOptionEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN11ZBTxRequest9setOptionEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN11ZBTxRequest9setOptionEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequestC2EPhS0_h
+ 0x00000000 0x28 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequestC2EPhS0_h
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequestC2EPhS0_h
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequest10getCommandEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequest10getCommandEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequest10getCommandEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequest15getCommandValueEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequest15getCommandValueEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequest15getCommandValueEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequest12getFrameDataEh
+ 0x00000000 0xae ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequest12getFrameDataEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequest12getFrameDataEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequest21getCommandValueLengthEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequest21getCommandValueLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequest21getCommandValueLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequest18getFrameDataLengthEv
+ 0x00000000 0xc ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequest18getFrameDataLengthEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequest18getFrameDataLengthEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequest10setCommandEPh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequest10setCommandEPh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequest10setCommandEPh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequest15setCommandValueEPh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequest15setCommandValueEPh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequest15setCommandValueEPh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequest21setCommandValueLengthEh
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequest21setCommandValueLengthEh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequest21setCommandValueLengthEh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequest17clearCommandValueEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequest17clearCommandValueEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequest17clearCommandValueEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequestC2EPh
+ 0x00000000 0x24 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequestC2EPh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequestC2EPh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN16AtCommandRequestC2Ev
+ 0x00000000 0x24 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN16AtCommandRequestC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN16AtCommandRequestC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequestC2Ev
+ 0x00000000 0x28 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequestC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequestC2Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequestC2EtPhS0_h
+ 0x00000000 0x3c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequestC2EtPhS0_h
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequestC2EtPhS0_h
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequestC2EtPh
+ 0x00000000 0x38 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequestC2EtPh
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequestC2EtPh
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequestC2ER13XBeeAddress64PhS2_h
+ 0x00000000 0x38 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequestC2ER13XBeeAddress64PhS2_h
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequestC2ER13XBeeAddress64PhS2_h
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequestC2ER13XBeeAddress64Ph
+ 0x00000000 0x38 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequestC2ER13XBeeAddress64Ph
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequestC2ER13XBeeAddress64Ph
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequest18getRemoteAddress16Ev
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequest18getRemoteAddress16Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequest18getRemoteAddress16Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequest18setRemoteAddress16Et
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequest18setRemoteAddress16Et
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequest18setRemoteAddress16Et
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequest18getRemoteAddress64Ev
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequest18getRemoteAddress64Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequest18getRemoteAddress64Ev
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequest18setRemoteAddress64ER13XBeeAddress64
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequest18setRemoteAddress64ER13XBeeAddress64
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequest18setRemoteAddress64ER13XBeeAddress64
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequest15getApplyChangesEv
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequest15getApplyChangesEv
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequest15getApplyChangesEv
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN22RemoteAtCommandRequest15setApplyChangesEb
+ 0x00000000 0x4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN22RemoteAtCommandRequest15setApplyChangesEb
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN22RemoteAtCommandRequest15setApplyChangesEb
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee8sendByteEhb
+ 0x00000000 0x3c ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee8sendByteEhb
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee8sendByteEhb
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .text._ZN4XBee4sendER11XBeeRequest
+ 0x00000000 0xb4 ./src/XBee/XBee.o
+ .ARM.extab.text._ZN4XBee4sendER11XBeeRequest
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .ARM.exidx.text._ZN4XBee4sendER11XBeeRequest
+ 0x00000000 0x8 ./src/XBee/XBee.o
+ .ARM.extab.text._GLOBAL__I__ZN12XBeeResponseC2Ev
+ 0x00000000 0x0 ./src/XBee/XBee.o
+ .rodata._ZTV14PayloadRequest
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .rodata._ZTV11XBeeRequest
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .rodata._ZTV14RxDataResponse
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .rodata._ZTV20ZBRxIoSampleResponse
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .rodata._ZTV16AtCommandRequest
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .rodata._ZTV11ZBTxRequest
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .rodata._ZTV12ZBRxResponse
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .rodata._ZTV22RemoteAtCommandRequest
+ 0x00000000 0x10 ./src/XBee/XBee.o
+ .text 0x00000000 0x0 ./src/FatFs/SD.o
+ .data 0x00000000 0x0 ./src/FatFs/SD.o
+ .bss 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFSD2Ev
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFSC2Ev
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5beginEv
+ 0x00000000 0x12 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5beginEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5beginEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5beginEi
+ 0x00000000 0xe ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5beginEi
+ 0x00000000 0xc ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5beginEi
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5beginE8SSP_PORT
+ 0x00000000 0x28 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5beginE8SSP_PORT
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5beginE8SSP_PORT
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS6existsEv
+ 0x00000000 0x4 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS6existsEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS6existsEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5mkdirEv
+ 0x00000000 0x4 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5mkdirEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5mkdirEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS4openEPKc
+ 0x00000000 0x10 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS4openEPKc
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS4openEPKc
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS6removeEPKc
+ 0x00000000 0x4 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS6removeEPKc
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS6removeEPKc
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5rmdirEPKc
+ 0x00000000 0x4 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5rmdirEPKc
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5rmdirEPKc
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS9availableEv
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS9availableEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS9availableEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5closeEv
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5closeEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5closeEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5flushEv
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5flushEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5flushEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS4peekEv
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS4peekEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS4peekEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS8positionEv
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS8positionEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS8positionEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5printEPKc
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5printEPKc
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5printEPKc
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5printEi12RADIX_FORMAT
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5printEi12RADIX_FORMAT
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5printEi12RADIX_FORMAT
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS7printlnEPKc
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS7printlnEPKc
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS7printlnEPKc
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS7printlnEi12RADIX_FORMAT
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS7printlnEi12RADIX_FORMAT
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS7printlnEi12RADIX_FORMAT
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS4seekEm
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS4seekEm
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS4seekEm
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS4sizeEv
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS4sizeEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS4sizeEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS4readEv
+ 0x00000000 0x2e ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS4readEv
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS4readEv
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5writeEPKc
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5writeEPKc
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5writeEPKc
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .text._ZN7PETITFS5writeEPKci
+ 0x00000000 0x2 ./src/FatFs/SD.o
+ .ARM.extab.text._ZN7PETITFS5writeEPKci
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .ARM.exidx.text._ZN7PETITFS5writeEPKci
+ 0x00000000 0x8 ./src/FatFs/SD.o
+ .ARM.extab.text._GLOBAL__I_SDFile
+ 0x00000000 0x0 ./src/FatFs/SD.o
+ .text 0x00000000 0x0 ./src/FatFs/pff.o
+ .data 0x00000000 0x0 ./src/FatFs/pff.o
+ .bss 0x00000000 0x0 ./src/FatFs/pff.o
+ .text._ZL10clust2sectm
+ 0x00000000 0x20 ./src/FatFs/pff.o
+ .ARM.extab.text._ZL10clust2sectm
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._ZL10clust2sectm
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._ZL10dir_rewindP5_DIR_
+ 0x00000000 0x44 ./src/FatFs/pff.o
+ .ARM.extab.text._ZL10dir_rewindP5_DIR_
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._ZL10dir_rewindP5_DIR_
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._ZL7get_fatm
+ 0x00000000 0xdc ./src/FatFs/pff.o
+ .ARM.extab.text._ZL7get_fatm
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._ZL7get_fatm
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._ZL8dir_nextP5_DIR_
+ 0x00000000 0x60 ./src/FatFs/pff.o
+ .ARM.extab.text._ZL8dir_nextP5_DIR_
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._ZL8dir_nextP5_DIR_
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._ZL8check_fsPhm
+ 0x00000000 0x80 ./src/FatFs/pff.o
+ .ARM.extab.text._ZL8check_fsPhm
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._ZL8check_fsPhm
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._ZL11follow_pathP5_DIR_PKc
+ 0x00000000 0x14c ./src/FatFs/pff.o
+ .ARM.extab.text._ZL11follow_pathP5_DIR_PKc
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._ZL11follow_pathP5_DIR_PKc
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._Z8pf_mountP7_FATFS_
+ 0x00000000 0x170 ./src/FatFs/pff.o
+ .ARM.extab.text._Z8pf_mountP7_FATFS_
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._Z8pf_mountP7_FATFS_
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._Z7pf_openPKc
+ 0x00000000 0x74 ./src/FatFs/pff.o
+ .ARM.extab.text._Z7pf_openPKc
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._Z7pf_openPKc
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._Z7pf_readPvtPt
+ 0x00000000 0xcc ./src/FatFs/pff.o
+ .ARM.extab.text._Z7pf_readPvtPt
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._Z7pf_readPvtPt
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._Z8pf_writePKvtPt
+ 0x00000000 0x11c ./src/FatFs/pff.o
+ .ARM.extab.text._Z8pf_writePKvtPt
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._Z8pf_writePKvtPt
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._Z8pf_lseekm
+ 0x00000000 0xb0 ./src/FatFs/pff.o
+ .ARM.extab.text._Z8pf_lseekm
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._Z8pf_lseekm
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._Z10pf_opendirP5_DIR_PKc
+ 0x00000000 0x5c ./src/FatFs/pff.o
+ .ARM.extab.text._Z10pf_opendirP5_DIR_PKc
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._Z10pf_opendirP5_DIR_PKc
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .text._Z10pf_readdirP5_DIR_P9_FILINFO_
+ 0x00000000 0x110 ./src/FatFs/pff.o
+ .ARM.extab.text._Z10pf_readdirP5_DIR_P9_FILINFO_
+ 0x00000000 0x0 ./src/FatFs/pff.o
+ .ARM.exidx.text._Z10pf_readdirP5_DIR_P9_FILINFO_
+ 0x00000000 0x8 ./src/FatFs/pff.o
+ .bss._ZL5FatFs
+ 0x00000000 0x4 ./src/FatFs/pff.o
+ .text 0x00000000 0x0 ./src/FatFs/sdcard.o
+ .data 0x00000000 0x0 ./src/FatFs/sdcard.o
+ .bss 0x00000000 0x0 ./src/FatFs/sdcard.o
+ .text._Z8xmit_spih
+ 0x00000000 0x10 ./src/FatFs/sdcard.o
+ .ARM.extab.text._Z8xmit_spih
+ 0x00000000 0xc ./src/FatFs/sdcard.o
+ .ARM.exidx.text._Z8xmit_spih
+ 0x00000000 0x8 ./src/FatFs/sdcard.o
+ .text._Z7rcv_spiv
+ 0x00000000 0x10 ./src/FatFs/sdcard.o
+ .ARM.extab.text._Z7rcv_spiv
+ 0x00000000 0xc ./src/FatFs/sdcard.o
+ .ARM.exidx.text._Z7rcv_spiv
+ 0x00000000 0x8 ./src/FatFs/sdcard.o
+ .text._ZL8send_cmdhm
+ 0x00000000 0x88 ./src/FatFs/sdcard.o
+ .ARM.extab.text._ZL8send_cmdhm
+ 0x00000000 0x0 ./src/FatFs/sdcard.o
+ .ARM.exidx.text._ZL8send_cmdhm
+ 0x00000000 0x8 ./src/FatFs/sdcard.o
+ .text._ZL11release_spiv
+ 0x00000000 0x18 ./src/FatFs/sdcard.o
+ .ARM.extab.text._ZL11release_spiv
+ 0x00000000 0xc ./src/FatFs/sdcard.o
+ .ARM.exidx.text._ZL11release_spiv
+ 0x00000000 0x8 ./src/FatFs/sdcard.o
+ .text._Z10disk_readpPhmtt
+ 0x00000000 0xa4 ./src/FatFs/sdcard.o
+ .ARM.extab.text._Z10disk_readpPhmtt
+ 0x00000000 0x0 ./src/FatFs/sdcard.o
+ .ARM.exidx.text._Z10disk_readpPhmtt
+ 0x00000000 0x8 ./src/FatFs/sdcard.o
+ .text._Z11disk_writepPKhm
+ 0x00000000 0xb4 ./src/FatFs/sdcard.o
+ .ARM.extab.text._Z11disk_writepPKhm
+ 0x00000000 0x0 ./src/FatFs/sdcard.o
+ .ARM.exidx.text._Z11disk_writepPKhm
+ 0x00000000 0x8 ./src/FatFs/sdcard.o
+ .text._Z15disk_initializev
+ 0x00000000 0x13c ./src/FatFs/sdcard.o
+ .ARM.extab.text._Z15disk_initializev
+ 0x00000000 0x0 ./src/FatFs/sdcard.o
+ .ARM.exidx.text._Z15disk_initializev
+ 0x00000000 0x8 ./src/FatFs/sdcard.o
+ .bss._ZL8CardType
+ 0x00000000 0x1 ./src/FatFs/sdcard.o
+ .bss._ZZ11disk_writepPKhmE2wc
+ 0x00000000 0x2 ./src/FatFs/sdcard.o
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_thumb1_case_uqi.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_thumb1_case_uqi.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_udivsi3.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_udivsi3.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_divsi3.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_divsi3.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_dvmd_tls.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_dvmd_tls.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(libunwind.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(libunwind.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(pr-support.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(pr-support.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-abort.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-abort.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-init.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-init.o)
+ .text 0x00000000 0x28 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-malloc.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-malloc.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-malloc.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mlock.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mlock.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-sbrkr.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-sbrkr.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signal.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signal.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-freer.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-freer.o)
+ .text 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-impure.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-impure.o)
+ .rodata 0x00000000 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-impure.o)
+ .text 0x00000000 0x100 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-reent.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-reent.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-reent.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+ .text 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crti.o
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crti.o
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crti.o
+ .text 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtn.o
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtn.o
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtn.o
+ .fini_array 0x00000000 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtbegin.o
+ .text 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtend.o
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtend.o
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtend.o
+ .jcr 0x00000000 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtend.o
+ .data 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-errno.o)
+ .bss 0x00000000 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-errno.o)
+
+Memory Configuration
+
+Name Origin Length Attributes
+MFlash32 0x00001000 0x00007000 xr
+RamLoc8 0x10000000 0x00001fe0 xrw
+*default* 0x00000000 0xffffffff
+
+Linker script and memory map
+
+LOAD ./src/user_application.o
+LOAD ./src/core/SPI.o
+LOAD ./src/core/SPI1.o
+LOAD ./src/core/cr_cpp_config.o
+LOAD ./src/core/cr_startup_lpc11.o
+LOAD ./src/core/delay.o
+LOAD ./src/core/gpio.o
+LOAD ./src/core/maryoled.o
+LOAD ./src/core/startup_mary.o
+LOAD ./src/core/system_LPC11xx.o
+LOAD ./src/core/uart.o
+LOAD ./src/XBee/XBee.o
+LOAD ./src/FatFs/SD.o
+LOAD ./src/FatFs/pff.o
+LOAD ./src/FatFs/sdcard.o
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libstdc++.a
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libm.a
+START GROUP
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a
+END GROUP
+START GROUP
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libstdc++.a
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libm.a
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crti.o
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtn.o
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtbegin.o
+LOAD c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtend.o
+END GROUP
+ 0x00008000 __top_MFlash32 = 0x8000
+ 0x10001fe0 __top_RamLoc8 = 0x10001fe0
+
+.text 0x00001000 0x2b04
+ FILL mask 0xff
+ *(.isr_vector)
+ .isr_vector 0x00001000 0xc0 ./src/core/cr_startup_lpc11.o
+ 0x00001000 g_pfnVectors
+ 0x000010c0 . = ALIGN (0x4)
+ 0x000010c0 __section_table_start = .
+ 0x000010c0 __data_section_table = .
+ 0x000010c0 0x4 LONG 0x3d24 LOADADDR (.data)
+ 0x000010c4 0x4 LONG 0x10000000 ADDR (.data)
+ 0x000010c8 0x4 LONG 0x84c SIZEOF (.data)
+ 0x000010cc __data_section_table_end = .
+ 0x000010cc __bss_section_table = .
+ 0x000010cc 0x4 LONG 0x1000084c ADDR (.bss)
+ 0x000010d0 0x4 LONG 0x144 SIZEOF (.bss)
+ 0x000010d4 __bss_section_table_end = .
+ 0x000010d4 __section_table_end = .
+ *(.after_vectors*)
+ .after_vectors
+ 0x000010d4 0x80 ./src/core/cr_startup_lpc11.o
+ 0x000010d4 NMI_Handler
+ 0x000010d8 HardFault_Handler
+ 0x000010dc SVCall_Handler
+ 0x000010e0 PendSV_Handler
+ 0x000010e8 data_init(unsigned int, unsigned int, unsigned int)
+ 0x000010fa bss_init(unsigned int, unsigned int)
+ 0x0000110c ResetISR
+ 0x00001150 IntDefaultHandler
+ 0x00001150 PIOINT1_IRQHandler
+ 0x00001150 CAN_IRQHandler
+ 0x00001150 TIMER32_0_IRQHandler
+ 0x00001150 TIMER16_1_IRQHandler
+ 0x00001150 ADC_IRQHandler
+ 0x00001150 SSP1_IRQHandler
+ 0x00001150 PIOINT2_IRQHandler
+ 0x00001150 UART_IRQHandler
+ 0x00001150 BOD_IRQHandler
+ 0x00001150 WAKEUP_IRQHandler
+ 0x00001150 PIOINT0_IRQHandler
+ 0x00001150 I2C_IRQHandler
+ 0x00001150 SSP0_IRQHandler
+ 0x00001150 WDT_IRQHandler
+ 0x00001150 TIMER16_0_IRQHandler
+ 0x00001150 PIOINT3_IRQHandler
+ *(.text*)
+ .text._Z5setupv
+ 0x00001154 0x4c ./src/user_application.o
+ 0x00001154 setup()
+ .text._Z4loopv
+ 0x000011a0 0xd8 ./src/user_application.o
+ 0x000011a0 loop()
+ .text._ZN3SSPD2Ev
+ 0x00001278 0x2 ./src/core/SPI.o
+ 0x00001278 SSP::~SSP()
+ 0x00001278 SSP::~SSP()
+ .text._ZN3SSP12setBitLengthEi
+ 0x0000127a 0x4 ./src/core/SPI.o
+ 0x0000127a SSP::setBitLength(int)
+ .text._ZN3SSP11setBitOrderE13SSP_BIT_ORDER
+ 0x0000127e 0x4 ./src/core/SPI.o
+ 0x0000127e SSP::setBitOrder(SSP_BIT_ORDER)
+ .text._ZN3SSP15setClockDividerE15SSP_CLK_DIVIDER
+ 0x00001282 0x4 ./src/core/SPI.o
+ 0x00001282 SSP::setClockDivider(SSP_CLK_DIVIDER)
+ *fill* 0x00001286 0x2 00
+ .text.ssp_begin
+ 0x00001288 0xf8 ./src/core/SPI.o
+ 0x00001288 ssp_begin
+ .text._ZN3SSP5beginEv
+ 0x00001380 0x12 ./src/core/SPI.o
+ 0x00001380 SSP::begin()
+ .text._ZN3SSPC2Ev
+ 0x00001392 0x32 ./src/core/SPI.o
+ 0x00001392 SSP::SSP()
+ 0x00001392 SSP::SSP()
+ .text._GLOBAL__I_SPI
+ 0x000013c4 0x24 ./src/core/SPI.o
+ .text._ZN4SSP1D2Ev
+ 0x000013e8 0x2 ./src/core/SPI1.o
+ 0x000013e8 SSP1::~SSP1()
+ 0x000013e8 SSP1::~SSP1()
+ .text._ZN4SSP112setBitLengthEi
+ 0x000013ea 0x4 ./src/core/SPI1.o
+ 0x000013ea SSP1::setBitLength(int)
+ .text._ZN4SSP111setBitOrderE13SSP_BIT_ORDER
+ 0x000013ee 0x4 ./src/core/SPI1.o
+ 0x000013ee SSP1::setBitOrder(SSP_BIT_ORDER)
+ .text._ZN4SSP115setClockDividerE15SSP_CLK_DIVIDER
+ 0x000013f2 0x4 ./src/core/SPI1.o
+ 0x000013f2 SSP1::setClockDivider(SSP_CLK_DIVIDER)
+ .text._ZN4SSP111setDataModeE13SSP_DATA_MODE
+ 0x000013f6 0x4 ./src/core/SPI1.o
+ 0x000013f6 SSP1::setDataMode(SSP_DATA_MODE)
+ *fill* 0x000013fa 0x2 00
+ .text.ssp1_begin
+ 0x000013fc 0xec ./src/core/SPI1.o
+ 0x000013fc ssp1_begin
+ .text._ZN4SSP15beginEv
+ 0x000014e8 0x12 ./src/core/SPI1.o
+ 0x000014e8 SSP1::begin()
+ .text._ZN4SSP1C2Ev
+ 0x000014fa 0x32 ./src/core/SPI1.o
+ 0x000014fa SSP1::SSP1()
+ 0x000014fa SSP1::SSP1()
+ .text.ssp1_transfer
+ 0x0000152c 0x2c ./src/core/SPI1.o
+ 0x0000152c ssp1_transfer
+ .text._ZN4SSP18transferEm
+ 0x00001558 0xa ./src/core/SPI1.o
+ 0x00001558 SSP1::transfer(unsigned long)
+ *fill* 0x00001562 0x2 00
+ .text._GLOBAL__I_SPI1
+ 0x00001564 0x24 ./src/core/SPI1.o
+ .text.__aeabi_atexit
+ 0x00001588 0x4 ./src/core/cr_cpp_config.o
+ 0x00001588 __aeabi_atexit
+ .text.NVIC_SetPriority
+ 0x0000158c 0x64 ./src/core/delay.o
+ .text.NVIC_DisableIRQ.clone.0
+ 0x000015f0 0x10 ./src/core/delay.o
+ .text.delay 0x00001600 0x18 ./src/core/delay.o
+ 0x00001600 delay
+ .text.attachMicroseconds
+ 0x00001618 0x50 ./src/core/delay.o
+ 0x00001618 attachMicroseconds
+ .text.setup_TIMER32_1
+ 0x00001668 0x12 ./src/core/delay.o
+ 0x00001668 setup_TIMER32_1
+ *fill* 0x0000167a 0x2 00
+ .text.TIMER32_1_IRQHandler
+ 0x0000167c 0x24 ./src/core/delay.o
+ 0x0000167c TIMER32_1_IRQHandler
+ .text.SysTick_Handler
+ 0x000016a0 0x10 ./src/core/delay.o
+ 0x000016a0 SysTick_Handler
+ .text.setup_systick
+ 0x000016b0 0x54 ./src/core/delay.o
+ 0x000016b0 setup_systick
+ .text._Z7pinModei12pinModeState
+ 0x00001704 0x64 ./src/core/gpio.o
+ 0x00001704 pinMode(int, pinModeState)
+ .text._Z12digitalWritei17digitalWriteState
+ 0x00001768 0x58 ./src/core/gpio.o
+ 0x00001768 digitalWrite(int, digitalWriteState)
+ .text._ZN8MARYOLEDD2Ev
+ 0x000017c0 0x2 ./src/core/maryoled.o
+ 0x000017c0 MARYOLED::~MARYOLED()
+ 0x000017c0 MARYOLED::~MARYOLED()
+ *fill* 0x000017c2 0x2 00
+ .text._ZN8MARYOLEDC2Ev
+ 0x000017c4 0x24 ./src/core/maryoled.o
+ 0x000017c4 MARYOLED::MARYOLED()
+ 0x000017c4 MARYOLED::MARYOLED()
+ .text._GLOBAL__I_oled
+ 0x000017e8 0x24 ./src/core/maryoled.o
+ .text.main 0x0000180c 0x14 ./src/core/startup_mary.o
+ 0x0000180c main
+ .text.SystemInit
+ 0x00001820 0x7c ./src/core/system_LPC11xx.o
+ 0x00001820 SystemInit
+ .text._ZN7USerialD2Ev
+ 0x0000189c 0x2 ./src/core/uart.o
+ 0x0000189c USerial::~USerial()
+ 0x0000189c USerial::~USerial()
+ .text._ZN7USerialC2Ev
+ 0x0000189e 0x10 ./src/core/uart.o
+ 0x0000189e USerial::USerial()
+ 0x0000189e USerial::USerial()
+ *fill* 0x000018ae 0x2 00
+ .text._ZN7USerial5beginEi
+ 0x000018b0 0x80 ./src/core/uart.o
+ 0x000018b0 USerial::begin(int)
+ .text._ZN7USerial5writeEc
+ 0x00001930 0x14 ./src/core/uart.o
+ 0x00001930 USerial::write(char)
+ .text._ZN7USerial5printEPKc
+ 0x00001944 0x18 ./src/core/uart.o
+ 0x00001944 USerial::print(char const*)
+ .text._ZN7USerial5printEi12RADIX_FORMAT
+ 0x0000195c 0x12c ./src/core/uart.o
+ 0x0000195c USerial::print(int, RADIX_FORMAT)
+ .text._ZN7USerial7printlnEPKc
+ 0x00001a88 0x1a ./src/core/uart.o
+ 0x00001a88 USerial::println(char const*)
+ .text._ZN7USerial7printlnEi12RADIX_FORMAT
+ 0x00001aa2 0x1a ./src/core/uart.o
+ 0x00001aa2 USerial::println(int, RADIX_FORMAT)
+ .text._GLOBAL__I_Serial
+ 0x00001abc 0x24 ./src/core/uart.o
+ .text._ZN13XBeeAddress64C2Emm
+ 0x00001ae0 0x6 ./src/XBee/XBee.o
+ 0x00001ae0 XBeeAddress64::XBeeAddress64(unsigned long, unsigned long)
+ 0x00001ae0 XBeeAddress64::XBeeAddress64(unsigned long, unsigned long)
+ *fill* 0x00001ae6 0x2 00
+ .text._GLOBAL__I__ZN12XBeeResponseC2Ev
+ 0x00001ae8 0x18 ./src/XBee/XBee.o
+ .text._ZN7PETITFSD2Ev
+ 0x00001b00 0x2 ./src/FatFs/SD.o
+ 0x00001b00 PETITFS::~PETITFS()
+ 0x00001b00 PETITFS::~PETITFS()
+ .text._ZN7PETITFSC2Ev
+ 0x00001b02 0xa ./src/FatFs/SD.o
+ 0x00001b02 PETITFS::PETITFS()
+ 0x00001b02 PETITFS::PETITFS()
+ .text._GLOBAL__I_SDFile
+ 0x00001b0c 0x24 ./src/FatFs/SD.o
+ .text 0x00001b30 0x14 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_thumb1_case_uqi.o)
+ 0x00001b30 __gnu_thumb1_case_uqi
+ .text 0x00001b44 0x9c c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_udivsi3.o)
+ 0x00001b44 __aeabi_uidiv
+ 0x00001b44 __udivsi3
+ 0x00001bcc __aeabi_uidivmod
+ .text 0x00001be0 0xc0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_divsi3.o)
+ 0x00001be0 __divsi3
+ 0x00001be0 __aeabi_idiv
+ 0x00001c8c __aeabi_idivmod
+ .text 0x00001ca0 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_dvmd_tls.o)
+ 0x00001ca0 __aeabi_idiv0
+ 0x00001ca0 __aeabi_ldiv0
+ .text 0x00001ca4 0xbf8 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o)
+ 0x00001f64 _Unwind_VRS_Get
+ 0x00001fb0 _Unwind_VRS_Set
+ 0x0000236c __aeabi_unwind_cpp_pr2
+ 0x00002378 __aeabi_unwind_cpp_pr1
+ 0x00002384 __aeabi_unwind_cpp_pr0
+ 0x00002390 _Unwind_VRS_Pop
+ 0x00002748 _Unwind_GetCFA
+ 0x0000274c __gnu_Unwind_RaiseException
+ 0x000027a8 __gnu_Unwind_ForcedUnwind
+ 0x000027bc __gnu_Unwind_Resume
+ 0x000027fc __gnu_Unwind_Resume_or_Rethrow
+ 0x00002818 _Unwind_Complete
+ 0x0000281c _Unwind_DeleteException
+ 0x0000282c __gnu_Unwind_Backtrace
+ .text 0x0000289c 0x144 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(libunwind.o)
+ 0x0000289c __restore_core_regs
+ 0x0000289c restore_core_regs
+ 0x000028c8 __gnu_Unwind_Restore_VFP
+ 0x000028cc __gnu_Unwind_Save_VFP
+ 0x000028d0 __gnu_Unwind_Restore_VFP_D
+ 0x000028d4 __gnu_Unwind_Save_VFP_D
+ 0x000028d8 __gnu_Unwind_Restore_VFP_D_16_to_31
+ 0x000028dc __gnu_Unwind_Save_VFP_D_16_to_31
+ 0x000028e0 __gnu_Unwind_Restore_WMMXD
+ 0x000028e4 __gnu_Unwind_Save_WMMXD
+ 0x000028e8 __gnu_Unwind_Restore_WMMXC
+ 0x000028ec __gnu_Unwind_Save_WMMXC
+ 0x000028f0 ___Unwind_RaiseException
+ 0x000028f0 _Unwind_RaiseException
+ 0x00002920 _Unwind_Resume
+ 0x00002920 ___Unwind_Resume
+ 0x00002950 _Unwind_Resume_or_Rethrow
+ 0x00002950 ___Unwind_Resume_or_Rethrow
+ 0x00002980 _Unwind_ForcedUnwind
+ 0x00002980 ___Unwind_ForcedUnwind
+ 0x000029b0 ___Unwind_Backtrace
+ 0x000029b0 _Unwind_Backtrace
+ .text 0x000029e0 0x3d0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(pr-support.o)
+ 0x00002a30 __gnu_unwind_execute
+ 0x00002d58 __gnu_unwind_frame
+ 0x00002d80 _Unwind_GetRegionStart
+ 0x00002d8c _Unwind_GetLanguageSpecificData
+ 0x00002da0 _Unwind_GetDataRelBase
+ 0x00002da8 _Unwind_GetTextRelBase
+ .text 0x00002db0 0x10 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-abort.o)
+ 0x00002db0 abort
+ .text 0x00002dc0 0x48 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-init.o)
+ 0x00002dc0 __libc_init_array
+ .text 0x00002e08 0x508 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mallocr.o)
+ 0x00002e08 _malloc_r
+ .text 0x00003310 0xf8 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o)
+ 0x00003310 memcpy
+ .text 0x00003408 0x8 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mlock.o)
+ 0x00003408 __malloc_lock
+ 0x0000340c __malloc_unlock
+ .text 0x00003410 0x24 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-sbrkr.o)
+ 0x00003410 _sbrk_r
+ .text 0x00003434 0x168 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signal.o)
+ 0x00003434 _init_signal_r
+ 0x0000346c _signal_r
+ 0x000034a8 _raise_r
+ 0x00003500 __sigtramp_r
+ 0x0000354c raise
+ 0x00003560 signal
+ 0x00003578 _init_signal
+ 0x00003588 __sigtramp
+ .text 0x0000359c 0x30 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o)
+ 0x0000359c _kill_r
+ 0x000035c4 _getpid_r
+ .text 0x000035cc 0x244 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-freer.o)
+ 0x000035cc _malloc_trim_r
+ 0x0000366c _free_r
+ .text 0x00003810 0x40 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ 0x00003810 _sbrk
+ .text 0x00003850 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ 0x00003850 _exit
+ .text 0x00003854 0x10 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ 0x00003854 _getpid
+ .text 0x00003864 0x10 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ 0x00003864 _kill
+ .text 0x00003874 0x30 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+ 0x00003874 __check_heap_overflow
+ .text 0x000038a4 0x30 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtbegin.o
+ .text 0x000038d4 0xc c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-errno.o)
+ 0x000038d4 __errno
+ *(.rodata .rodata.*)
+ .rodata.str1.1
+ 0x000038e0 0x4e ./src/user_application.o
+ *fill* 0x0000392e 0x2 00
+ .rodata._ZL8LPC_GPIO
+ 0x00003930 0x10 ./src/core/gpio.o
+ .rodata._ZL14mary_pinAssign
+ 0x00003940 0xe0 ./src/core/gpio.o
+ .rodata._ZL17arduino_pinAssign
+ 0x00003a20 0x70 ./src/core/gpio.o
+ .rodata._ZL9radix_hex
+ 0x00003a90 0x11 ./src/core/uart.o
+ .rodata._ZL9radix_dec
+ 0x00003aa1 0xb ./src/core/uart.o
+ .rodata._ZL9radix_oct
+ 0x00003aac 0x9 ./src/core/uart.o
+ .rodata._ZL9radix_bin
+ 0x00003ab5 0x3 ./src/core/uart.o
+ .rodata 0x00003ab8 0x14 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o)
+ .rodata.str1.4
+ 0x00003acc 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-impure.o)
+ 0x00003ad0 . = ALIGN (0x4)
+ 0x00003ad0 . = ALIGN (0x4)
+ *(.init)
+ .init 0x00003ad0 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crti.o
+ 0x00003ad0 _init
+ .init 0x00003ad4 0x8 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtn.o
+ 0x00003adc . = ALIGN (0x4)
+ 0x00003adc __preinit_array_start = .
+ *(.preinit_array)
+ 0x00003adc __preinit_array_end = .
+ 0x00003adc . = ALIGN (0x4)
+ 0x00003adc __init_array_start = .
+ *(SORT(.init_array.*))
+ *(.init_array)
+ .init_array 0x00003adc 0x4 ./src/core/SPI.o
+ .init_array 0x00003ae0 0x4 ./src/core/SPI1.o
+ .init_array 0x00003ae4 0x4 ./src/core/maryoled.o
+ .init_array 0x00003ae8 0x4 ./src/core/uart.o
+ .init_array 0x00003aec 0x4 ./src/XBee/XBee.o
+ .init_array 0x00003af0 0x4 ./src/FatFs/SD.o
+ .init_array 0x00003af4 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtbegin.o
+ 0x00003af8 __init_array_end = .
+ *(.fini)
+ .fini 0x00003af8 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crti.o
+ 0x00003af8 _fini
+ .fini 0x00003afc 0x8 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtn.o
+ 0x00003b04 . = ALIGN (0x4)
+ *crtbegin.o(.ctors)
+ *(EXCLUDE_FILE(*crtend.o) .ctors)
+ *(SORT(.ctors.*))
+ *crtend.o(.ctors)
+ 0x00003b04 . = ALIGN (0x4)
+ *crtbegin.o(.dtors)
+ *(EXCLUDE_FILE(*crtend.o) .dtors)
+ *(SORT(.dtors.*))
+ *crtend.o(.dtors)
+
+.glue_7 0x00003b04 0x0
+ .glue_7 0x00000000 0x0 linker stubs
+
+.glue_7t 0x00003b04 0x0
+ .glue_7t 0x00000000 0x0 linker stubs
+
+.vfp11_veneer 0x00003b04 0x0
+ .vfp11_veneer 0x00000000 0x0 linker stubs
+
+.v4_bx 0x00003b04 0x0
+ .v4_bx 0x00000000 0x0 linker stubs
+
+.ARM.extab 0x00003b04 0xc0
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+ .ARM.extab.text._ZN3SSP5beginEv
+ 0x00003b04 0xc ./src/core/SPI.o
+ .ARM.extab.text._ZN4SSP15beginEv
+ 0x00003b10 0xc ./src/core/SPI1.o
+ .ARM.extab.text.main
+ 0x00003b1c 0xc ./src/core/startup_mary.o
+ .ARM.extab 0x00003b28 0x6c c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o)
+ .ARM.extab 0x00003b94 0x30 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(pr-support.o)
+ 0x00003bc4 __exidx_start = .
+
+.ARM.exidx 0x00003bc4 0x160
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ .ARM.exidx.text._Z5setupv
+ 0x00003bdc 0x8 ./src/user_application.o
+ .ARM.exidx.text._Z4loopv
+ 0x00003be4 0x8 ./src/user_application.o
+ .ARM.exidx.text._ZN3SSPD2Ev
+ 0x00003bec 0x8 ./src/core/SPI.o
+ .ARM.exidx.text._ZN3SSP12setBitLengthEi
+ 0x00003bf4 0x0 ./src/core/SPI.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN3SSP11setBitOrderE13SSP_BIT_ORDER
+ 0x00003bf4 0x0 ./src/core/SPI.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN3SSP15setClockDividerE15SSP_CLK_DIVIDER
+ 0x00003bf4 0x0 ./src/core/SPI.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text.ssp_begin
+ 0x00003bf4 0x8 ./src/core/SPI.o
+ .ARM.exidx.text._ZN3SSP5beginEv
+ 0x00003bfc 0x8 ./src/core/SPI.o
+ .ARM.exidx.text._ZN3SSPC2Ev
+ 0x00003c04 0x8 ./src/core/SPI.o
+ .ARM.exidx.text._GLOBAL__I_SPI
+ 0x00003c0c 0x8 ./src/core/SPI.o
+ .ARM.exidx.text._ZN4SSP1D2Ev
+ 0x00003c14 0x0 ./src/core/SPI1.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN4SSP112setBitLengthEi
+ 0x00003c14 0x0 ./src/core/SPI1.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN4SSP111setBitOrderE13SSP_BIT_ORDER
+ 0x00003c14 0x0 ./src/core/SPI1.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN4SSP115setClockDividerE15SSP_CLK_DIVIDER
+ 0x00003c14 0x0 ./src/core/SPI1.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN4SSP111setDataModeE13SSP_DATA_MODE
+ 0x00003c14 0x0 ./src/core/SPI1.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text.ssp1_begin
+ 0x00003c14 0x8 ./src/core/SPI1.o
+ .ARM.exidx.text._ZN4SSP15beginEv
+ 0x00003c1c 0x8 ./src/core/SPI1.o
+ .ARM.exidx.text._ZN4SSP1C2Ev
+ 0x00003c24 0x8 ./src/core/SPI1.o
+ .ARM.exidx.text.ssp1_transfer
+ 0x00003c2c 0x8 ./src/core/SPI1.o
+ .ARM.exidx.text._ZN4SSP18transferEm
+ 0x00003c34 0x0 ./src/core/SPI1.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._GLOBAL__I_SPI1
+ 0x00003c34 0x0 ./src/core/SPI1.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text.__aeabi_atexit
+ 0x00003c34 0x0 ./src/core/cr_cpp_config.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.after_vectors
+ 0x00003bc4 0x18 ./src/core/cr_startup_lpc11.o
+ 0x48 (size before relaxing)
+ .ARM.exidx.text.NVIC_SetPriority
+ 0x00003c34 0x0 ./src/core/delay.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text.NVIC_DisableIRQ.clone.0
+ 0x00003c34 0x0 ./src/core/delay.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text.delay
+ 0x00003c34 0x0 ./src/core/delay.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text.attachMicroseconds
+ 0x00003c34 0x0 ./src/core/delay.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text.setup_TIMER32_1
+ 0x00003c34 0x0 ./src/core/delay.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text.TIMER32_1_IRQHandler
+ 0x00003c34 0x8 ./src/core/delay.o
+ .ARM.exidx.text.SysTick_Handler
+ 0x00003c3c 0x8 ./src/core/delay.o
+ .ARM.exidx.text.setup_systick
+ 0x00003c44 0x0 ./src/core/delay.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._Z7pinModei12pinModeState
+ 0x00003c44 0x0 ./src/core/gpio.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._Z12digitalWritei17digitalWriteState
+ 0x00003c44 0x0 ./src/core/gpio.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN8MARYOLEDD2Ev
+ 0x00003c44 0x0 ./src/core/maryoled.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN8MARYOLEDC2Ev
+ 0x00003c44 0x0 ./src/core/maryoled.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._GLOBAL__I_oled
+ 0x00003c44 0x0 ./src/core/maryoled.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text.main
+ 0x00003c44 0x8 ./src/core/startup_mary.o
+ .ARM.exidx.text.SystemInit
+ 0x00003c4c 0x8 ./src/core/system_LPC11xx.o
+ .ARM.exidx.text._ZN7USerialD2Ev
+ 0x00003c54 0x0 ./src/core/uart.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN7USerialC2Ev
+ 0x00003c54 0x0 ./src/core/uart.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN7USerial5beginEi
+ 0x00003c54 0x0 ./src/core/uart.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN7USerial5writeEc
+ 0x00003c54 0x0 ./src/core/uart.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN7USerial5printEPKc
+ 0x00003c54 0x0 ./src/core/uart.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN7USerial5printEi12RADIX_FORMAT
+ 0x00003c54 0x0 ./src/core/uart.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN7USerial7printlnEPKc
+ 0x00003c54 0x0 ./src/core/uart.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN7USerial7printlnEi12RADIX_FORMAT
+ 0x00003c54 0x0 ./src/core/uart.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._GLOBAL__I_Serial
+ 0x00003c54 0x0 ./src/core/uart.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN13XBeeAddress64C2Emm
+ 0x00003c54 0x0 ./src/XBee/XBee.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._GLOBAL__I__ZN12XBeeResponseC2Ev
+ 0x00003c54 0x0 ./src/XBee/XBee.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN7PETITFSD2Ev
+ 0x00003c54 0x0 ./src/FatFs/SD.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._ZN7PETITFSC2Ev
+ 0x00003c54 0x0 ./src/FatFs/SD.o
+ 0x8 (size before relaxing)
+ .ARM.exidx.text._GLOBAL__I_SDFile
+ 0x00003c54 0x0 ./src/FatFs/SD.o
+ 0x8 (size before relaxing)
+ .ARM.exidx 0x00003c54 0x98 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o)
+ 0xc0 (size before relaxing)
+ .ARM.exidx 0x00003cec 0x38 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(pr-support.o)
+ 0x48 (size before relaxing)
+ 0x00003d24 __exidx_end = .
+ 0x00003d24 _etext = .
+
+.uninit_RESERVED
+ *(.bss.$RESERVED*)
+
+.data 0x10000000 0x84c load address 0x00003d24
+ FILL mask 0xff
+ 0x10000000 _data = .
+ *(vtable)
+ *(.data*)
+ .data.SystemCoreClock
+ 0x10000000 0x4 ./src/core/system_LPC11xx.o
+ 0x10000000 SystemCoreClock
+ .data 0x10000004 0x410 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mallocr.o)
+ 0x10000004 __malloc_av_
+ 0x1000040c __malloc_sbrk_base
+ 0x10000410 __malloc_trim_threshold
+ *fill* 0x10000414 0x4 00
+ .data 0x10000418 0x430 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-impure.o)
+ 0x10000418 _impure_ptr
+ .data 0x10000848 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtbegin.o
+ 0x10000848 __dso_handle
+ 0x1000084c . = ALIGN (0x4)
+ 0x1000084c _edata = .
+
+.jcr 0x1000084c 0x0 load address 0x00004570
+ .jcr 0x1000084c 0x0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtbegin.o
+
+.bss 0x1000084c 0x144 load address 0x00004570
+ 0x1000084c _bss = .
+ *(.bss*)
+ .bss.r 0x1000084c 0x4 ./src/user_application.o
+ 0x1000084c r
+ .bss.b 0x10000850 0x4 ./src/user_application.o
+ 0x10000850 b
+ .bss.g 0x10000854 0x4 ./src/user_application.o
+ 0x10000854 g
+ .bss.SPI 0x10000858 0x8 ./src/core/SPI.o
+ 0x10000858 SPI
+ .bss.SPI1 0x10000860 0x8 ./src/core/SPI1.o
+ 0x10000860 SPI1
+ .bss.userfunc 0x10000868 0x4 ./src/core/delay.o
+ 0x10000868 userfunc
+ .bss._ZL7msTicks
+ 0x1000086c 0x4 ./src/core/delay.o
+ .bss.oled 0x10000870 0x28 ./src/core/maryoled.o
+ 0x10000870 oled
+ .bss.Serial 0x10000898 0x8 ./src/core/uart.o
+ 0x10000898 Serial
+ .bss._ZN22RemoteAtCommandRequest18broadcastAddress64E
+ 0x100008a0 0x8 ./src/XBee/XBee.o
+ 0x100008a0 RemoteAtCommandRequest::broadcastAddress64
+ .bss.SDFile 0x100008a8 0xa8 ./src/FatFs/SD.o
+ 0x100008a8 SDFile
+ .bss 0x10000950 0x34 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mallocr.o)
+ 0x10000950 __malloc_top_pad
+ 0x10000954 __malloc_current_mallinfo
+ 0x1000097c __malloc_max_sbrked_mem
+ 0x10000980 __malloc_max_total_mem
+ .bss 0x10000984 0x1 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtbegin.o
+ *(COMMON)
+ *fill* 0x10000985 0x3 00
+ COMMON 0x10000988 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-reent.o)
+ 0x10000988 errno
+ COMMON 0x1000098c 0x4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ 0x1000098c __end_of_heap
+ 0x10000990 . = ALIGN (0x4)
+ 0x10000990 _ebss = .
+ 0x10000990 PROVIDE (end, .)
+ 0x10000990 PROVIDE (_pvHeapStart, .)
+ 0x10001fe0 PROVIDE (_vStackTop, (__top_RamLoc8 - 0x0))
+OUTPUT(exodusino.axf elf32-littlearm)
+
+.comment 0x00000000 0x101
+ .comment 0x00000000 0x2a ./src/user_application.o
+ 0x2b (size before relaxing)
+ .comment 0x00000000 0x2b ./src/core/SPI.o
+ .comment 0x00000000 0x2b ./src/core/SPI1.o
+ .comment 0x00000000 0x2b ./src/core/cr_cpp_config.o
+ .comment 0x00000000 0x2b ./src/core/cr_startup_lpc11.o
+ .comment 0x00000000 0x2b ./src/core/delay.o
+ .comment 0x00000000 0x2b ./src/core/gpio.o
+ .comment 0x00000000 0x2b ./src/core/maryoled.o
+ .comment 0x00000000 0x2b ./src/core/startup_mary.o
+ .comment 0x00000000 0x2b ./src/core/system_LPC11xx.o
+ .comment 0x00000000 0x2b ./src/core/uart.o
+ .comment 0x00000000 0x2b ./src/XBee/XBee.o
+ .comment 0x00000000 0x2b ./src/FatFs/SD.o
+ .comment 0x00000000 0x2b ./src/FatFs/pff.o
+ .comment 0x00000000 0x2b ./src/FatFs/sdcard.o
+ .comment 0x0000002a 0x2b c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .comment 0x00000055 0x2b c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .comment 0x00000080 0x2b c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .comment 0x000000ab 0x2b c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .comment 0x000000d6 0x2b c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+
+.ARM.attributes
+ 0x00000000 0x31
+ .ARM.attributes
+ 0x00000000 0x33 ./src/user_application.o
+ .ARM.attributes
+ 0x00000033 0x33 ./src/core/SPI.o
+ .ARM.attributes
+ 0x00000066 0x33 ./src/core/SPI1.o
+ .ARM.attributes
+ 0x00000099 0x33 ./src/core/cr_cpp_config.o
+ .ARM.attributes
+ 0x000000cc 0x33 ./src/core/cr_startup_lpc11.o
+ .ARM.attributes
+ 0x000000ff 0x33 ./src/core/delay.o
+ .ARM.attributes
+ 0x00000132 0x33 ./src/core/gpio.o
+ .ARM.attributes
+ 0x00000165 0x33 ./src/core/maryoled.o
+ .ARM.attributes
+ 0x00000198 0x33 ./src/core/startup_mary.o
+ .ARM.attributes
+ 0x000001cb 0x33 ./src/core/system_LPC11xx.o
+ .ARM.attributes
+ 0x000001fe 0x33 ./src/core/uart.o
+ .ARM.attributes
+ 0x00000231 0x33 ./src/XBee/XBee.o
+ .ARM.attributes
+ 0x00000264 0x33 ./src/FatFs/SD.o
+ .ARM.attributes
+ 0x00000297 0x33 ./src/FatFs/pff.o
+ .ARM.attributes
+ 0x000002ca 0x33 ./src/FatFs/sdcard.o
+ .ARM.attributes
+ 0x000002fd 0x1f c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_thumb1_case_uqi.o)
+ .ARM.attributes
+ 0x0000031c 0x1f c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_udivsi3.o)
+ .ARM.attributes
+ 0x0000033b 0x1f c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_divsi3.o)
+ .ARM.attributes
+ 0x0000035a 0x1f c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_dvmd_tls.o)
+ .ARM.attributes
+ 0x00000379 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o)
+ .ARM.attributes
+ 0x000003a6 0x1f c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(libunwind.o)
+ .ARM.attributes
+ 0x000003c5 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(pr-support.o)
+ .ARM.attributes
+ 0x000003f2 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-abort.o)
+ .ARM.attributes
+ 0x0000041f 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-init.o)
+ .ARM.attributes
+ 0x0000044c 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-malloc.o)
+ .ARM.attributes
+ 0x00000479 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mallocr.o)
+ .ARM.attributes
+ 0x000004a6 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o)
+ .ARM.attributes
+ 0x000004d3 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mlock.o)
+ .ARM.attributes
+ 0x00000500 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-sbrkr.o)
+ .ARM.attributes
+ 0x0000052d 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signal.o)
+ .ARM.attributes
+ 0x0000055a 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o)
+ .ARM.attributes
+ 0x00000587 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-freer.o)
+ .ARM.attributes
+ 0x000005b4 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-impure.o)
+ .ARM.attributes
+ 0x000005e1 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-reent.o)
+ .ARM.attributes
+ 0x0000060e 0x33 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .ARM.attributes
+ 0x00000641 0x33 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .ARM.attributes
+ 0x00000674 0x33 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .ARM.attributes
+ 0x000006a7 0x33 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .ARM.attributes
+ 0x000006da 0x33 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+ .ARM.attributes
+ 0x0000070d 0x1d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crti.o
+ .ARM.attributes
+ 0x0000072a 0x1d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtn.o
+ .ARM.attributes
+ 0x00000747 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtbegin.o
+ .ARM.attributes
+ 0x00000774 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\crtend.o
+ .ARM.attributes
+ 0x000007a1 0x2d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-errno.o)
+
+.debug_frame 0x00000000 0x80c
+ .debug_frame 0x00000000 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_udivsi3.o)
+ .debug_frame 0x00000020 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(_divsi3.o)
+ .debug_frame 0x00000040 0x2ac c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(unwind-arm.o)
+ .debug_frame 0x000002ec 0xfc c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/armv6-m\libgcc.a(pr-support.o)
+ .debug_frame 0x000003e8 0x28 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-abort.o)
+ .debug_frame 0x00000410 0x2c c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-init.o)
+ .debug_frame 0x0000043c 0x40 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-malloc.o)
+ .debug_frame 0x0000047c 0x3c c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mallocr.o)
+ .debug_frame 0x000004b8 0x34 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o)
+ .debug_frame 0x000004ec 0x30 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-mlock.o)
+ .debug_frame 0x0000051c 0x2c c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-sbrkr.o)
+ .debug_frame 0x00000548 0xe4 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signal.o)
+ .debug_frame 0x0000062c 0x44 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o)
+ .debug_frame 0x00000670 0x58 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-freer.o)
+ .debug_frame 0x000006c8 0x68 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-reent.o)
+ .debug_frame 0x00000730 0x2c c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .debug_frame 0x0000075c 0x28 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .debug_frame 0x00000784 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .debug_frame 0x000007a4 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .debug_frame 0x000007c4 0x28 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+ .debug_frame 0x000007ec 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-errno.o)
+
+.debug_abbrev 0x00000000 0x238
+ .debug_abbrev 0x00000000 0xa0 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .debug_abbrev 0x000000a0 0x52 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .debug_abbrev 0x000000f2 0x5b c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .debug_abbrev 0x0000014d 0x7b c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .debug_abbrev 0x000001c8 0x70 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+
+.debug_info 0x00000000 0x329
+ .debug_info 0x00000000 0xed c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .debug_info 0x000000ed 0x5c c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .debug_info 0x00000149 0x9a c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .debug_info 0x000001e3 0xbb c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .debug_info 0x0000029e 0x8b c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+
+.debug_line 0x00000000 0x1c2
+ .debug_line 0x00000000 0xb7 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .debug_line 0x000000b7 0x3e c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .debug_line 0x000000f5 0x41 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .debug_line 0x00000136 0x3f c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .debug_line 0x00000175 0x4d c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+
+.debug_loc 0x00000000 0xd2
+ .debug_loc 0x00000000 0x58 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .debug_loc 0x00000058 0x1f c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .debug_loc 0x00000077 0x13 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .debug_loc 0x0000008a 0x48 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+
+.debug_pubnames
+ 0x00000000 0xbe
+ .debug_pubnames
+ 0x00000000 0x2e c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .debug_pubnames
+ 0x0000002e 0x1c c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .debug_pubnames
+ 0x0000004a 0x1e c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .debug_pubnames
+ 0x00000068 0x1c c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .debug_pubnames
+ 0x00000084 0x3a c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+
+.debug_aranges 0x00000000 0xa0
+ .debug_aranges
+ 0x00000000 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ .debug_aranges
+ 0x00000020 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ .debug_aranges
+ 0x00000040 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ .debug_aranges
+ 0x00000060 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ .debug_aranges
+ 0x00000080 0x20 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+
+.debug_str 0x00000000 0x188
+ .debug_str 0x00000000 0xfc c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_sbrk.o)
+ 0x135 (size before relaxing)
+ .debug_str 0x000000fc 0x15 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_exit.o)
+ 0x62 (size before relaxing)
+ .debug_str 0x00000111 0x1e c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(getpid.o)
+ 0xf4 (size before relaxing)
+ .debug_str 0x0000012f 0x14 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(kill.o)
+ 0xf0 (size before relaxing)
+ .debug_str 0x00000143 0x45 c:/nxp/lpcxpresso_4.0.6_152/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/armv6-m\libcr_newlib_nohost.a(_cr_check_heap.o)
+ 0xc1 (size before relaxing)
diff --git a/Release/makefile b/Release/makefile new file mode 100755 index 0000000..ce15cda --- /dev/null +++ b/Release/makefile @@ -0,0 +1,68 @@ +################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+-include ../makefile.init
+
+RM := rm -rf
+
+# All of the sources participating in the build are defined here
+-include sources.mk
+-include subdir.mk
+-include src/subdir.mk
+-include src/core/subdir.mk
+-include src/XBee/subdir.mk
+-include src/FatFs/subdir.mk
+-include objects.mk
+
+ifneq ($(MAKECMDGOALS),clean)
+ifneq ($(strip $(C++_DEPS)),)
+-include $(C++_DEPS)
+endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
+ifneq ($(strip $(CC_DEPS)),)
+-include $(CC_DEPS)
+endif
+ifneq ($(strip $(CPP_DEPS)),)
+-include $(CPP_DEPS)
+endif
+ifneq ($(strip $(CXX_DEPS)),)
+-include $(CXX_DEPS)
+endif
+ifneq ($(strip $(C_UPPER_DEPS)),)
+-include $(C_UPPER_DEPS)
+endif
+endif
+
+-include ../makefile.defs
+
+# Add inputs and outputs from these tool invocations to the build variables
+
+# All Target
+all: exodusino.axf
+
+# Tool invocations
+exodusino.axf: $(OBJS) $(USER_OBJS)
+ @echo 'Building target: $@'
+ @echo 'Invoking: MCU C++ Linker'
+ arm-none-eabi-c++ -nostartfiles -L"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs" -L"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core" -L"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\XBee" -L"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src" -Xlinker -Map=exodusino.map -Xlinker --gc-sections -mcpu=cortex-m0 -mthumb -T "eXodusino.ld" -o"exodusino.axf" $(OBJS) $(USER_OBJS) $(LIBS)
+ @echo 'Finished building target: $@'
+ @echo ' '
+ $(MAKE) --no-print-directory post-build
+
+# Other Targets
+clean:
+ -$(RM) $(OBJS)$(C++_DEPS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) exodusino.axf
+ -@echo ' '
+
+post-build:
+ -@echo 'Performing post-build steps'
+ -arm-none-eabi-size exodusino.axf; arm-none-eabi-objcopy -O ihex exodusino.axf exodusino.hex ; arm-none-eabi-objcopy -O binary exodusino.axf exodusino.bin;# checksum -p LPC1114_301 -d exodusino.bin;
+ -@echo ' '
+
+.PHONY: all clean dependents
+.SECONDARY: post-build
+
+-include ../makefile.targets
diff --git a/Release/objects.mk b/Release/objects.mk new file mode 100755 index 0000000..dc31e16 --- /dev/null +++ b/Release/objects.mk @@ -0,0 +1,8 @@ +################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+USER_OBJS :=
+
+LIBS :=
+
diff --git a/Release/sources.mk b/Release/sources.mk new file mode 100755 index 0000000..311309d --- /dev/null +++ b/Release/sources.mk @@ -0,0 +1,31 @@ +################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+O_SRCS :=
+CPP_SRCS :=
+C_UPPER_SRCS :=
+C_SRCS :=
+S_SRCS :=
+S_UPPER_SRCS :=
+OBJ_SRCS :=
+ASM_SRCS :=
+CXX_SRCS :=
+C++_SRCS :=
+CC_SRCS :=
+OBJS :=
+C++_DEPS :=
+C_DEPS :=
+CC_DEPS :=
+CPP_DEPS :=
+EXECUTABLES :=
+CXX_DEPS :=
+C_UPPER_DEPS :=
+
+# Every subdirectory with source files must be described here
+SUBDIRS := \ +src \ +src/core \ +src/XBee \ +src/FatFs \ +
diff --git a/Release/src/FatFs/SD.d b/Release/src/FatFs/SD.d new file mode 100755 index 0000000..a984cb6 --- /dev/null +++ b/Release/src/FatFs/SD.d @@ -0,0 +1,33 @@ +src/FatFs/SD.d src/FatFs/SD.o: ../src/FatFs/SD.cpp \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h \
+ ../src/FatFs/SD.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/SPI.h \
+ ../src/FatFs/pff.h ../src/FatFs/integer.h
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h:
+
+../src/FatFs/SD.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/SPI.h:
+
+../src/FatFs/pff.h:
+
+../src/FatFs/integer.h:
diff --git a/Release/src/FatFs/SD.o b/Release/src/FatFs/SD.o Binary files differnew file mode 100755 index 0000000..7decf78 --- /dev/null +++ b/Release/src/FatFs/SD.o diff --git a/Release/src/FatFs/pff.d b/Release/src/FatFs/pff.d new file mode 100755 index 0000000..38fe74c --- /dev/null +++ b/Release/src/FatFs/pff.d @@ -0,0 +1,30 @@ +src/FatFs/pff.d src/FatFs/pff.o: ../src/FatFs/pff.cpp ../src/FatFs/pff.h \
+ ../src/FatFs/integer.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h \
+ ../src/FatFs/diskio.h
+
+../src/FatFs/pff.h:
+
+../src/FatFs/integer.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h:
+
+../src/FatFs/diskio.h:
diff --git a/Release/src/FatFs/pff.o b/Release/src/FatFs/pff.o Binary files differnew file mode 100755 index 0000000..d9cfdb5 --- /dev/null +++ b/Release/src/FatFs/pff.o diff --git a/Release/src/FatFs/sdcard.d b/Release/src/FatFs/sdcard.d new file mode 100755 index 0000000..9bd2f65 --- /dev/null +++ b/Release/src/FatFs/sdcard.d @@ -0,0 +1,39 @@ +src/FatFs/sdcard.d src/FatFs/sdcard.o: ../src/FatFs/sdcard.cpp \
+ ../src/FatFs/diskio.h ../src/FatFs/integer.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/SPI.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs/SD.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs/pff.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs/integer.h
+
+../src/FatFs/diskio.h:
+
+../src/FatFs/integer.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/SPI.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs/SD.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs/pff.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs/integer.h:
diff --git a/Release/src/FatFs/sdcard.o b/Release/src/FatFs/sdcard.o Binary files differnew file mode 100755 index 0000000..6fc7112 --- /dev/null +++ b/Release/src/FatFs/sdcard.o diff --git a/Release/src/FatFs/subdir.mk b/Release/src/FatFs/subdir.mk new file mode 100755 index 0000000..1ed6a7d --- /dev/null +++ b/Release/src/FatFs/subdir.mk @@ -0,0 +1,30 @@ +################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+CPP_SRCS += \ +../src/FatFs/SD.cpp \ +../src/FatFs/pff.cpp \ +../src/FatFs/sdcard.cpp
+
+OBJS += \ +./src/FatFs/SD.o \ +./src/FatFs/pff.o \ +./src/FatFs/sdcard.o
+
+CPP_DEPS += \ +./src/FatFs/SD.d \ +./src/FatFs/pff.d \ +./src/FatFs/sdcard.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+src/FatFs/%.o: ../src/FatFs/%.cpp
+ @echo 'Building file: $<'
+ @echo 'Invoking: MCU C++ Compiler'
+ arm-none-eabi-c++ -D__NEWLIB__ -D__CODE_RED -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\XBee" -Os -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fno-rtti -mcpu=cortex-m0 -mthumb -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<"
+ @echo 'Finished building: $<'
+ @echo ' '
+
+
diff --git a/Release/src/XBee/XBee.d b/Release/src/XBee/XBee.d new file mode 100755 index 0000000..7bf1577 --- /dev/null +++ b/Release/src/XBee/XBee.d @@ -0,0 +1,28 @@ +src/XBee/XBee.d src/XBee/XBee.o: ../src/XBee/XBee.cpp \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h \
+ ../src/XBee/XBee.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h:
+
+../src/XBee/XBee.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h:
diff --git a/Release/src/XBee/XBee.o b/Release/src/XBee/XBee.o Binary files differnew file mode 100755 index 0000000..88e754a --- /dev/null +++ b/Release/src/XBee/XBee.o diff --git a/Release/src/XBee/subdir.mk b/Release/src/XBee/subdir.mk new file mode 100755 index 0000000..728c881 --- /dev/null +++ b/Release/src/XBee/subdir.mk @@ -0,0 +1,24 @@ +################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+CPP_SRCS += \ +../src/XBee/XBee.cpp
+
+OBJS += \ +./src/XBee/XBee.o
+
+CPP_DEPS += \ +./src/XBee/XBee.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+src/XBee/%.o: ../src/XBee/%.cpp
+ @echo 'Building file: $<'
+ @echo 'Invoking: MCU C++ Compiler'
+ arm-none-eabi-c++ -D__NEWLIB__ -D__CODE_RED -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\XBee" -Os -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fno-rtti -mcpu=cortex-m0 -mthumb -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<"
+ @echo 'Finished building: $<'
+ @echo ' '
+
+
diff --git a/Release/src/core/SPI.d b/Release/src/core/SPI.d new file mode 100755 index 0000000..ef95964 --- /dev/null +++ b/Release/src/core/SPI.d @@ -0,0 +1,13 @@ +src/core/SPI.d src/core/SPI.o: ../src/core/SPI.cpp ../src/core/gpio.h \
+ ../src/core/LPC11xx.h ../src/core/core_cm0.h \
+ ../src/core/system_LPC11xx.h ../src/core/SPI.h
+
+../src/core/gpio.h:
+
+../src/core/LPC11xx.h:
+
+../src/core/core_cm0.h:
+
+../src/core/system_LPC11xx.h:
+
+../src/core/SPI.h:
diff --git a/Release/src/core/SPI.o b/Release/src/core/SPI.o Binary files differnew file mode 100755 index 0000000..16722ee --- /dev/null +++ b/Release/src/core/SPI.o diff --git a/Release/src/core/SPI1.d b/Release/src/core/SPI1.d new file mode 100755 index 0000000..512bdf2 --- /dev/null +++ b/Release/src/core/SPI1.d @@ -0,0 +1,15 @@ +src/core/SPI1.d src/core/SPI1.o: ../src/core/SPI1.cpp ../src/core/gpio.h \
+ ../src/core/LPC11xx.h ../src/core/core_cm0.h \
+ ../src/core/system_LPC11xx.h ../src/core/SPI1.h ../src/core/SPI.h
+
+../src/core/gpio.h:
+
+../src/core/LPC11xx.h:
+
+../src/core/core_cm0.h:
+
+../src/core/system_LPC11xx.h:
+
+../src/core/SPI1.h:
+
+../src/core/SPI.h:
diff --git a/Release/src/core/SPI1.o b/Release/src/core/SPI1.o Binary files differnew file mode 100755 index 0000000..225ad98 --- /dev/null +++ b/Release/src/core/SPI1.o diff --git a/Release/src/core/cr_cpp_config.d b/Release/src/core/cr_cpp_config.d new file mode 100755 index 0000000..e3d698a --- /dev/null +++ b/Release/src/core/cr_cpp_config.d @@ -0,0 +1,2 @@ +src/core/cr_cpp_config.d src/core/cr_cpp_config.o: \
+ ../src/core/cr_cpp_config.cpp
diff --git a/Release/src/core/cr_cpp_config.o b/Release/src/core/cr_cpp_config.o Binary files differnew file mode 100755 index 0000000..9274bac --- /dev/null +++ b/Release/src/core/cr_cpp_config.o diff --git a/Release/src/core/cr_startup_lpc11.d b/Release/src/core/cr_startup_lpc11.d new file mode 100755 index 0000000..6447b66 --- /dev/null +++ b/Release/src/core/cr_startup_lpc11.d @@ -0,0 +1,4 @@ +src/core/cr_startup_lpc11.d src/core/cr_startup_lpc11.o: \
+ ../src/core/cr_startup_lpc11.cpp ../src/core/system_LPC11xx.h
+
+../src/core/system_LPC11xx.h:
diff --git a/Release/src/core/cr_startup_lpc11.o b/Release/src/core/cr_startup_lpc11.o Binary files differnew file mode 100755 index 0000000..eee8663 --- /dev/null +++ b/Release/src/core/cr_startup_lpc11.o diff --git a/Release/src/core/delay.d b/Release/src/core/delay.d new file mode 100755 index 0000000..7050851 --- /dev/null +++ b/Release/src/core/delay.d @@ -0,0 +1,13 @@ +src/core/delay.d src/core/delay.o: ../src/core/delay.cpp \
+ ../src/core/delay.h ../src/core/LPC11xx.h ../src/core/core_cm0.h \
+ ../src/core/system_LPC11xx.h ../src/core/uart.h
+
+../src/core/delay.h:
+
+../src/core/LPC11xx.h:
+
+../src/core/core_cm0.h:
+
+../src/core/system_LPC11xx.h:
+
+../src/core/uart.h:
diff --git a/Release/src/core/delay.o b/Release/src/core/delay.o Binary files differnew file mode 100755 index 0000000..fa91115 --- /dev/null +++ b/Release/src/core/delay.o diff --git a/Release/src/core/gpio.d b/Release/src/core/gpio.d new file mode 100755 index 0000000..dca659e --- /dev/null +++ b/Release/src/core/gpio.d @@ -0,0 +1,11 @@ +src/core/gpio.d src/core/gpio.o: ../src/core/gpio.cpp ../src/core/gpio.h \
+ ../src/core/LPC11xx.h ../src/core/core_cm0.h \
+ ../src/core/system_LPC11xx.h
+
+../src/core/gpio.h:
+
+../src/core/LPC11xx.h:
+
+../src/core/core_cm0.h:
+
+../src/core/system_LPC11xx.h:
diff --git a/Release/src/core/gpio.o b/Release/src/core/gpio.o Binary files differnew file mode 100755 index 0000000..afb4011 --- /dev/null +++ b/Release/src/core/gpio.o diff --git a/Release/src/core/maryoled.d b/Release/src/core/maryoled.d new file mode 100755 index 0000000..eb0daf6 --- /dev/null +++ b/Release/src/core/maryoled.d @@ -0,0 +1,20 @@ +src/core/maryoled.d src/core/maryoled.o: ../src/core/maryoled.cpp \
+ ../src/core/delay.h ../src/core/LPC11xx.h ../src/core/core_cm0.h \
+ ../src/core/system_LPC11xx.h ../src/core/uart.h ../src/core/maryoled.h \
+ ../src/core/SPI.h ../src/core/gpio.h
+
+../src/core/delay.h:
+
+../src/core/LPC11xx.h:
+
+../src/core/core_cm0.h:
+
+../src/core/system_LPC11xx.h:
+
+../src/core/uart.h:
+
+../src/core/maryoled.h:
+
+../src/core/SPI.h:
+
+../src/core/gpio.h:
diff --git a/Release/src/core/maryoled.o b/Release/src/core/maryoled.o Binary files differnew file mode 100755 index 0000000..163047d --- /dev/null +++ b/Release/src/core/maryoled.o diff --git a/Release/src/core/startup_mary.d b/Release/src/core/startup_mary.d new file mode 100755 index 0000000..8b66b91 --- /dev/null +++ b/Release/src/core/startup_mary.d @@ -0,0 +1,18 @@ +src/core/startup_mary.d src/core/startup_mary.o: \
+ ../src/core/startup_mary.cpp ../src/core/libmary.h ../src/core/LPC11xx.h \
+ ../src/core/core_cm0.h ../src/core/system_LPC11xx.h ../src/core/delay.h \
+ ../src/core/uart.h ../src/core/gpio.h
+
+../src/core/libmary.h:
+
+../src/core/LPC11xx.h:
+
+../src/core/core_cm0.h:
+
+../src/core/system_LPC11xx.h:
+
+../src/core/delay.h:
+
+../src/core/uart.h:
+
+../src/core/gpio.h:
diff --git a/Release/src/core/startup_mary.o b/Release/src/core/startup_mary.o Binary files differnew file mode 100755 index 0000000..e4fe192 --- /dev/null +++ b/Release/src/core/startup_mary.o diff --git a/Release/src/core/subdir.mk b/Release/src/core/subdir.mk new file mode 100755 index 0000000..e93401f --- /dev/null +++ b/Release/src/core/subdir.mk @@ -0,0 +1,51 @@ +################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+CPP_SRCS += \ +../src/core/SPI.cpp \ +../src/core/SPI1.cpp \ +../src/core/cr_cpp_config.cpp \ +../src/core/cr_startup_lpc11.cpp \ +../src/core/delay.cpp \ +../src/core/gpio.cpp \ +../src/core/maryoled.cpp \ +../src/core/startup_mary.cpp \ +../src/core/system_LPC11xx.cpp \ +../src/core/uart.cpp
+
+OBJS += \ +./src/core/SPI.o \ +./src/core/SPI1.o \ +./src/core/cr_cpp_config.o \ +./src/core/cr_startup_lpc11.o \ +./src/core/delay.o \ +./src/core/gpio.o \ +./src/core/maryoled.o \ +./src/core/startup_mary.o \ +./src/core/system_LPC11xx.o \ +./src/core/uart.o
+
+CPP_DEPS += \ +./src/core/SPI.d \ +./src/core/SPI1.d \ +./src/core/cr_cpp_config.d \ +./src/core/cr_startup_lpc11.d \ +./src/core/delay.d \ +./src/core/gpio.d \ +./src/core/maryoled.d \ +./src/core/startup_mary.d \ +./src/core/system_LPC11xx.d \ +./src/core/uart.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+src/core/%.o: ../src/core/%.cpp
+ @echo 'Building file: $<'
+ @echo 'Invoking: MCU C++ Compiler'
+ arm-none-eabi-c++ -D__NEWLIB__ -D__CODE_RED -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\XBee" -Os -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fno-rtti -mcpu=cortex-m0 -mthumb -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<"
+ @echo 'Finished building: $<'
+ @echo ' '
+
+
diff --git a/Release/src/core/system_LPC11xx.d b/Release/src/core/system_LPC11xx.d new file mode 100755 index 0000000..f298c5a --- /dev/null +++ b/Release/src/core/system_LPC11xx.d @@ -0,0 +1,9 @@ +src/core/system_LPC11xx.d src/core/system_LPC11xx.o: \
+ ../src/core/system_LPC11xx.cpp ../src/core/LPC11xx.h \
+ ../src/core/core_cm0.h ../src/core/system_LPC11xx.h
+
+../src/core/LPC11xx.h:
+
+../src/core/core_cm0.h:
+
+../src/core/system_LPC11xx.h:
diff --git a/Release/src/core/system_LPC11xx.o b/Release/src/core/system_LPC11xx.o Binary files differnew file mode 100755 index 0000000..9fa7fa3 --- /dev/null +++ b/Release/src/core/system_LPC11xx.o diff --git a/Release/src/core/uart.d b/Release/src/core/uart.d new file mode 100755 index 0000000..3340b56 --- /dev/null +++ b/Release/src/core/uart.d @@ -0,0 +1,11 @@ +src/core/uart.d src/core/uart.o: ../src/core/uart.cpp \
+ ../src/core/LPC11xx.h ../src/core/core_cm0.h \
+ ../src/core/system_LPC11xx.h ../src/core/uart.h
+
+../src/core/LPC11xx.h:
+
+../src/core/core_cm0.h:
+
+../src/core/system_LPC11xx.h:
+
+../src/core/uart.h:
diff --git a/Release/src/core/uart.o b/Release/src/core/uart.o Binary files differnew file mode 100755 index 0000000..7836a55 --- /dev/null +++ b/Release/src/core/uart.o diff --git a/Release/src/subdir.mk b/Release/src/subdir.mk new file mode 100755 index 0000000..119f44c --- /dev/null +++ b/Release/src/subdir.mk @@ -0,0 +1,24 @@ +################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+CPP_SRCS += \ +../src/user_application.cpp
+
+OBJS += \ +./src/user_application.o
+
+CPP_DEPS += \ +./src/user_application.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+src/%.o: ../src/%.cpp
+ @echo 'Building file: $<'
+ @echo 'Invoking: MCU C++ Compiler'
+ arm-none-eabi-c++ -D__NEWLIB__ -D__CODE_RED -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\FatFs" -I"C:\Documents and Settings\atsu\My Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\XBee" -Os -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fno-rtti -mcpu=cortex-m0 -mthumb -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<"
+ @echo 'Finished building: $<'
+ @echo ' '
+
+
diff --git a/Release/src/user_application.d b/Release/src/user_application.d new file mode 100755 index 0000000..cb05d3d --- /dev/null +++ b/Release/src/user_application.d @@ -0,0 +1,29 @@ +src/user_application.d src/user_application.o: \
+ ../src/user_application.cpp \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/SPI1.h \
+ C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/SPI.h
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/libmary.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/core_cm0.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/system_LPC11xx.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/delay.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/uart.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/gpio.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/SPI1.h:
+
+C:\Documents\ and\ Settings\atsu\My\ Documents\LPCXpresso_4.0.6_152\workspace\eXodusino\src\core/SPI.h:
diff --git a/Release/src/user_application.o b/Release/src/user_application.o Binary files differnew file mode 100755 index 0000000..1dd8499 --- /dev/null +++ b/Release/src/user_application.o diff --git a/src/FatFs/SD.cpp b/src/FatFs/SD.cpp new file mode 100755 index 0000000..f614794 --- /dev/null +++ b/src/FatFs/SD.cpp @@ -0,0 +1,120 @@ +/*
+ * SD.cpp
+ *
+ * Created on: 2011/08/19
+ * Author: atsu
+ */
+#include <libmary.h>
+#include "SD.h"
+//#include "pff.h"
+
+PETITFS SDFile;
+
+PETITFS::PETITFS()
+{
+ this->SDCS = C33;
+}
+
+PETITFS::~PETITFS()
+{
+}
+BOOL PETITFS::begin(int cs_pin)
+{
+ BOOL rt;
+ this->SDCS = cs_pin;
+ rt = begin();
+ return (rt);
+}
+
+BOOL PETITFS::begin(SSP_PORT port)
+{
+ BOOL rt;
+ SPI.begin(port);
+ if(port == LPCXSSP0)
+ rt = begin(P1_4); //for MAPLE
+ else
+ rt = begin();
+ return (rt);
+}
+
+BOOL PETITFS::begin()
+{
+ rc = pf_mount(&fatfs);
+ return (!rc)? TRUE:FALSE;
+}
+
+BOOL PETITFS::exists()
+{
+ return FALSE;
+}
+
+BOOL PETITFS::mkdir()
+{
+ return FALSE;
+}
+
+FRESULT PETITFS::open(const char* filename) //???
+{
+ rc = pf_open(filename);
+ return rc;
+}
+
+
+BOOL PETITFS::remove(const char* filename)
+{
+ return FALSE;
+}
+
+BOOL PETITFS::rmdir(const char* filename)
+{
+ return FALSE;
+}
+
+int PETITFS::available(){}
+void PETITFS::close(){}
+void PETITFS::flush(){}
+int PETITFS::peek(){}
+unsigned long PETITFS::position(){}
+void PETITFS::print(const char *s){}
+void PETITFS::print(int val, RADIX_FORMAT format){}
+void PETITFS::println(const char *s){}
+void PETITFS::println(int val, RADIX_FORMAT format){}
+BOOL PETITFS::seek(unsigned long pos){}
+unsigned long PETITFS::size(){}
+
+int PETITFS::read()
+{
+ rc = pf_read(buff, sizeof(char), &br); /* Read a chunk of file */
+ if (rc || !br)
+ return -1; /* Error or end of file */
+ else
+ return (int)buff[0];
+}
+void PETITFS::write(const char *s){}
+void PETITFS::write(const char *s,int length){}
+
+/*
+class FILE {
+private:
+ char buff[64];
+ FRESULT rc;
+
+public:
+ FILE();
+ ~FILE();
+ int available();
+ void close();
+ void flush();
+ int peek();
+ unsigned long position();
+ void print(const char *s);
+ void print(int val, RADIX_FORMAT format);
+ void println(const char *s);
+ void println(int val, RADIX_FORMAT format) ;
+ BOOL seek(unsigned long pos);
+ unsigned long size();
+ int read();
+ void write(const char *s);
+ void write(const char *s,int length);
+};
+*/
diff --git a/src/FatFs/SD.h b/src/FatFs/SD.h new file mode 100755 index 0000000..80a9cda --- /dev/null +++ b/src/FatFs/SD.h @@ -0,0 +1,74 @@ +/*
+ * SD.h
+ *
+ * Created on: 2011/08/19
+ * Author: atsu
+ */
+
+#ifndef SD_H_
+#define SD_H_
+
+
+#include <libmary.h>
+#include <SPI.h>
+#include "pff.h"
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+
+class PETITFS{
+private:
+
+ FATFS fatfs; // File system object
+ DIR dir; // Directory object
+ FILINFO fno; // File information object
+ WORD bw, br, i;
+ char buff[64];
+ FRESULT rc;
+
+public:
+ int SDCS; //CS pin
+ PETITFS();
+ ~PETITFS();
+
+ BOOL begin(SSP_PORT port);
+ BOOL begin(int cs_pin);
+ BOOL begin();
+ BOOL exists();
+ BOOL mkdir();
+ FRESULT open(const char* filename); //???
+ BOOL remove(const char* filename);
+ BOOL rmdir(const char* filename);
+
+ int available();
+ void close();
+ void flush();
+ int peek();
+ unsigned long position();
+ void print(const char *s);
+ void print(int val, RADIX_FORMAT format);
+ void println(const char *s);
+ void println(int val, RADIX_FORMAT format) ;
+ BOOL seek(unsigned long pos);
+ unsigned long size();
+ int read();
+ void write(const char *s);
+ void write(const char *s,int length);
+};
+
+
+
+
+
+
+extern PETITFS SDFile;
+
+
+
+#ifdef __cplusplus
+ } //extern "C"
+#endif
+
+#endif /* SD_H_ */
diff --git a/src/FatFs/diskio.h b/src/FatFs/diskio.h new file mode 100755 index 0000000..253cff6 --- /dev/null +++ b/src/FatFs/diskio.h @@ -0,0 +1,41 @@ +/*-----------------------------------------------------------------------
+/ PFF - Low level disk interface modlue include file (C)ChaN, 2009
+/-----------------------------------------------------------------------*/
+
+#ifndef _DISKIO
+
+#include "integer.h"
+#include <stdint.h>
+
+/* Status of Disk Functions */
+typedef uint8_t DSTATUS;
+
+
+/* Results of Disk Functions */
+typedef enum {
+ RES_OK = 0, /* 0: Function succeeded */
+ RES_ERROR, /* 1: Disk error */
+ RES_NOTRDY, /* 2: Not ready */
+ RES_PARERR /* 3: Invalid parameter */
+} DRESULT;
+
+
+/*---------------------------------------*/
+/* Prototypes for disk control functions */
+
+DSTATUS disk_initialize (void);
+DRESULT disk_readp (uint8_t*, DWORD, WORD, WORD);
+DRESULT disk_writep (const uint8_t*, DWORD);
+
+#define STA_NOINIT 0x01 /* Drive not initialized */
+#define STA_NODISK 0x02 /* No medium in the drive */
+
+/* Card type flags (CardType) */
+#define CT_MMC 0x01 /* MMC ver 3 */
+#define CT_SD1 0x02 /* SD ver 1 */
+#define CT_SD2 0x04 /* SD ver 2 */
+#define CT_SDC (CT_SD1|CT_SD2) /* SD */
+#define CT_BLOCK 0x08 /* Block addressing */
+
+#define _DISKIO
+#endif
diff --git a/src/FatFs/integer.h b/src/FatFs/integer.h new file mode 100755 index 0000000..4dcd2dd --- /dev/null +++ b/src/FatFs/integer.h @@ -0,0 +1,37 @@ +/*-------------------------------------------*/
+/* Integer type definitions for FatFs module */
+/*-------------------------------------------*/
+
+#ifndef _INTEGER
+
+#if 0
+#include <windows.h>
+#else
+
+/* These types must be 16-bit, 32-bit or larger integer */
+typedef int INT;
+typedef unsigned int UINT;
+
+/* These types must be 8-bit integer */
+typedef signed char CHAR;
+typedef unsigned char UCHAR;
+//typedef unsigned char uint8_t;
+
+/* These types must be 16-bit integer */
+typedef short SHORT;
+typedef unsigned short USHORT;
+typedef unsigned short WORD;
+typedef unsigned short WCHAR;
+
+/* These types must be 32-bit integer */
+typedef long LONG;
+typedef unsigned long ULONG;
+typedef unsigned long DWORD;
+
+/* Boolean type */
+typedef enum { FALSE = 0, TRUE } BOOL;
+
+#endif
+
+#define _INTEGER
+#endif
diff --git a/src/FatFs/pff.cpp b/src/FatFs/pff.cpp new file mode 100755 index 0000000..8b2de72 --- /dev/null +++ b/src/FatFs/pff.cpp @@ -0,0 +1,845 @@ +/*----------------------------------------------------------------------------/
+/ Petit FatFs - FAT file system module R0.02 (C)ChaN, 2009
+/-----------------------------------------------------------------------------/
+/ Petit FatFs module is an open source software to implement FAT file system to
+/ small embedded systems. This is a free software and is opened for education,
+/ research and commercial developments under license policy of following trems.
+/
+/ Copyright (C) 2009, ChaN, all right reserved.
+/
+/ * The Petit FatFs module is a free software and there is NO WARRANTY.
+/ * No restriction on use. You can use, modify and redistribute it for
+/ personal, non-profit or commercial use UNDER YOUR RESPONSIBILITY.
+/ * Redistributions of source code must retain the above copyright notice.
+/
+/-----------------------------------------------------------------------------/
+/ Jun 15,'09 R0.01a First release. (Branched from FatFs R0.07b.)
+/
+/ Dec 14,'09 R0.02 Added multiple code page support.
+/ Added write funciton.
+/ Changed stream read mode interface.
+/----------------------------------------------------------------------------*/
+
+#include "pff.h" /* Petit FatFs configurations and declarations */
+#include "diskio.h" /* Declarations of low level disk I/O functions */
+#include <stdio.h>
+
+
+/*--------------------------------------------------------------------------
+
+ Private Functions
+
+---------------------------------------------------------------------------*/
+
+static
+FATFS *FatFs; /* Pointer to the file system object (logical drive) */
+
+
+
+/*-----------------------------------------------------------------------*/
+/* String functions */
+/*-----------------------------------------------------------------------*/
+
+/* Fill memory */
+static
+void mem_set (void* dst, int val, int cnt) {
+ char *d = (char*)dst;
+ while (cnt--) *d++ = (char)val;
+}
+
+/* Compare memory to memory */
+static
+int mem_cmp (const void* dst, const void* src, int cnt) {
+ const char *d = (const char *)dst, *s = (const char *)src;
+ int r = 0;
+ while (cnt-- && (r = *d++ - *s++) == 0) ;
+ return r;
+}
+
+
+
+/*-----------------------------------------------------------------------*/
+/* FAT access - Read value of a FAT entry */
+/*-----------------------------------------------------------------------*/
+
+static
+CLUST get_fat ( /* 1:IO error, Else:Cluster status */
+ CLUST clst /* Cluster# to get the link information */
+)
+{
+ WORD wc, bc, ofs;
+ uint8_t buf[4];
+ FATFS *fs = FatFs;
+
+
+ if (clst < 2 || clst >= fs->max_clust) /* Range check */
+ return 1;
+
+ switch (fs->fs_type) {
+ case FS_FAT12 :
+ bc = (WORD)clst; bc += bc / 2;
+ ofs = bc % 512; bc /= 512;
+ if (ofs != 511) {
+ if (disk_readp(buf, fs->fatbase + bc, ofs, 2)) break;
+ } else {
+ if (disk_readp(buf, fs->fatbase + bc, 511, 1)) break;
+ if (disk_readp(buf+1, fs->fatbase + bc + 1, 0, 1)) break;
+ }
+ wc = LD_WORD(buf);
+ return (clst & 1) ? (wc >> 4) : (wc & 0xFFF);
+
+ case FS_FAT16 :
+ if (disk_readp(buf, fs->fatbase + clst / 256, (WORD)(((WORD)clst % 256) * 2), 2)) break;
+ return LD_WORD(buf);
+#if _FS_FAT32
+ case FS_FAT32 :
+ if (disk_readp(buf, fs->fatbase + clst / 128, (WORD)(((WORD)clst % 128) * 4), 4)) break;
+ return LD_DWORD(buf) & 0x0FFFFFFF;
+#endif
+ }
+
+ return 1; /* An error occured at the disk I/O layer */
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Get sector# from cluster# */
+/*-----------------------------------------------------------------------*/
+
+static
+DWORD clust2sect ( /* !=0: Sector number, 0: Failed - invalid cluster# */
+ CLUST clst /* Cluster# to be converted */
+)
+{
+ FATFS *fs = FatFs;
+
+
+ clst -= 2;
+ if (clst >= (fs->max_clust - 2)) return 0; /* Invalid cluster# */
+ return (DWORD)clst * fs->csize + fs->database;
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Directory handling - Rewind directory index */
+/*-----------------------------------------------------------------------*/
+
+static
+FRESULT dir_rewind (
+ DIR *dj /* Pointer to directory object */
+)
+{
+ CLUST clst;
+ FATFS *fs = FatFs;
+
+
+ dj->index = 0;
+ clst = dj->sclust;
+ if (clst == 1 || clst >= fs->max_clust) /* Check start cluster range */
+ return FR_DISK_ERR;
+#if _FS_FAT32
+ if (!clst && fs->fs_type == FS_FAT32) /* Replace cluster# 0 with root cluster# if in FAT32 */
+ clst = fs->dirbase;
+#endif
+ dj->clust = clst; /* Current cluster */
+ dj->sect = clst ? clust2sect(clst) : fs->dirbase; /* Current sector */
+
+ return FR_OK; /* Seek succeeded */
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Directory handling - Move directory index next */
+/*-----------------------------------------------------------------------*/
+
+static
+FRESULT dir_next ( /* FR_OK:Succeeded, FR_NO_FILE:End of table */
+ DIR *dj /* Pointer to directory object */
+)
+{
+ CLUST clst;
+ WORD i;
+ FATFS *fs = FatFs;
+
+
+ i = dj->index + 1;
+ if (!i || !dj->sect) /* Report EOT when index has reached 65535 */
+ return FR_NO_FILE;
+
+ if (!(i & (16-1))) { /* Sector changed? */
+ dj->sect++; /* Next sector */
+
+ if (dj->clust == 0) { /* Static table */
+ if (i >= fs->n_rootdir) /* Report EOT when end of table */
+ return FR_NO_FILE;
+ }
+ else { /* Dynamic table */
+ if (((i / 16) & (fs->csize-1)) == 0) { /* Cluster changed? */
+ clst = get_fat(dj->clust); /* Get next cluster */
+ if (clst <= 1) return FR_DISK_ERR;
+ if (clst >= fs->max_clust) /* When it reached end of dynamic table */
+ return FR_NO_FILE; /* Report EOT */
+ dj->clust = clst; /* Initialize data for new cluster */
+ dj->sect = clust2sect(clst);
+ }
+ }
+ }
+
+ dj->index = i;
+
+ return FR_OK;
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Directory handling - Find an object in the directory */
+/*-----------------------------------------------------------------------*/
+
+static
+FRESULT dir_find (
+ DIR *dj /* Pointer to the directory object linked to the file name */
+)
+{
+ FRESULT res;
+ uint8_t c, *dir;
+
+
+ res = dir_rewind(dj); /* Rewind directory object */
+ if (res != FR_OK) return res;
+
+ dir = FatFs->buf;
+ do {
+ res = disk_readp(dir, dj->sect, (WORD)((dj->index % 16) * 32), 32) /* Read an entry */
+ ? FR_DISK_ERR : FR_OK;
+ if (res != FR_OK) break;
+ c = dir[DIR_Name]; /* First character */
+ if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */
+ if (!(dir[DIR_Attr] & AM_VOL) && !mem_cmp(dir, dj->fn, 11)) /* Is it a valid entry? */
+ break;
+ res = dir_next(dj); /* Next entry */
+ } while (res == FR_OK);
+
+ return res;
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Read an object from the directory */
+/*-----------------------------------------------------------------------*/
+#if _USE_DIR
+static
+FRESULT dir_read (
+ DIR *dj /* Pointer to the directory object to store read object name */
+)
+{
+ FRESULT res;
+ uint8_t a, c, *dir;
+
+
+ res = FR_NO_FILE;
+ dir = FatFs->buf;
+ while (dj->sect) {
+ res = disk_readp(dir, dj->sect, (WORD)((dj->index % 16) * 32), 32) /* Read an entry */
+ ? FR_DISK_ERR : FR_OK;
+ if (res != FR_OK) break;
+ c = dir[DIR_Name];
+ if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */
+ a = dir[DIR_Attr] & AM_MASK;
+ if (c != 0xE5 && c != '.' && !(a & AM_VOL)) /* Is it a valid entry? */
+ break;
+ res = dir_next(dj); /* Next entry */
+ if (res != FR_OK) break;
+ }
+
+ if (res != FR_OK) dj->sect = 0;
+
+ return res;
+}
+#endif
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Pick a segment and create the object name in directory form */
+/*-----------------------------------------------------------------------*/
+
+#ifdef _EXCVT
+ static const uint8_t cvt[] = _EXCVT;
+#endif
+
+static
+FRESULT create_name (
+ DIR *dj, /* Pointer to the directory object */
+ const char **path /* Pointer to pointer to the segment in the path string */
+)
+{
+ uint8_t c, d, ni, si, i, *sfn;
+ const char *p;
+
+ /* Create file name in directory form */
+ sfn = dj->fn;
+ mem_set(sfn, ' ', 11);
+ si = i = 0; ni = 8;
+ p = *path;
+ for (;;) {
+ c = p[si++];
+ if (c <= ' ' || c == '/') break; /* Break on end of segment */
+ if (c == '.' || i >= ni) {
+ if (ni != 8 || c != '.') break;
+ i = 8; ni = 11;
+ continue;
+ }
+#ifdef _EXCVT
+ if (c >= 0x80) /* To upper extended char (SBCS) */
+ c = cvt[c - 0x80];
+#endif
+ //if (IsDBCS1(c) && i >= ni - 1) { /* DBC 1st uint8_t? */
+ if (IsDBCS1(c) && i < ni - 1) { /* DBC 1st uint8_t? */
+ d = p[si++]; /* Get 2nd uint8_t */
+ sfn[i++] = c;
+ sfn[i++] = d;
+ } else { /* Single uint8_t code */
+ if (IsLower(c)) c -= 0x20; /* toupper */
+ sfn[i++] = c;
+ }
+ }
+ *path = &p[si]; /* Rerurn pointer to the next segment */
+
+ sfn[11] = (c <= ' ') ? 1 : 0; /* Set last segment flag if end of path */
+
+ return FR_OK;
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Get file information from directory entry */
+/*-----------------------------------------------------------------------*/
+#if _USE_DIR
+static
+void get_fileinfo ( /* No return code */
+ DIR *dj, /* Pointer to the directory object */
+ FILINFO *fno /* Pointer to store the file information */
+)
+{
+ uint8_t i, c, *dir;
+ char *p;
+
+
+ p = fno->fname;
+ if (dj->sect) {
+ dir = FatFs->buf;
+ for (i = 0; i < 8; i++) { /* Copy file name body */
+ c = dir[i];
+ if (c == ' ') break;
+ if (c == 0x05) c = 0xE5;
+ *p++ = c;
+ }
+ if (dir[8] != ' ') { /* Copy file name extension */
+ *p++ = '.';
+ for (i = 8; i < 11; i++) {
+ c = dir[i];
+ if (c == ' ') break;
+ *p++ = c;
+ }
+ }
+ fno->fattrib = dir[DIR_Attr]; /* Attribute */
+ fno->fsize = LD_DWORD(dir+DIR_FileSize); /* Size */
+ fno->fdate = LD_WORD(dir+DIR_WrtDate); /* Date */
+ fno->ftime = LD_WORD(dir+DIR_WrtTime); /* Time */
+ }
+ *p = 0;
+}
+#endif /* _USE_DIR */
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Follow a file path */
+/*-----------------------------------------------------------------------*/
+
+static
+FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */
+ DIR *dj, /* Directory object to return last directory and found object */
+ const char *path /* Full-path string to find a file or directory */
+)
+{
+ FRESULT res;
+ uint8_t *dir;
+
+
+ while (*path == ' ') path++; /* Skip leading spaces */
+ if (*path == '/') path++; /* Strip heading separator */
+ dj->sclust = 0; /* Set start directory (always root dir) */
+
+ if ((uint8_t)*path <= ' ') { /* Null path means the root directory */
+ res = dir_rewind(dj);
+ FatFs->buf[0] = 0;
+
+ } else { /* Follow path */
+ for (;;) {
+ res = create_name(dj, &path); /* Get a segment */
+ if (res != FR_OK) break;
+ res = dir_find(dj); /* Find it */
+ if (res != FR_OK) { /* Could not find the object */
+ if (res == FR_NO_FILE && !*(dj->fn+11))
+ res = FR_NO_PATH;
+ break;
+ }
+ if (*(dj->fn+11)) break; /* Last segment match. Function completed. */
+ dir = FatFs->buf; /* There is next segment. Follow the sub directory */
+ if (!(dir[DIR_Attr] & AM_DIR)) { /* Cannot follow because it is a file */
+ res = FR_NO_PATH; break;
+ }
+ dj->sclust =
+#if _FS_FAT32
+ ((DWORD)LD_WORD(dir+DIR_FstClusHI) << 16) |
+#endif
+ LD_WORD(dir+DIR_FstClusLO);
+ }
+ }
+
+ return res;
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Check a sector if it is an FAT boot record */
+/*-----------------------------------------------------------------------*/
+
+static
+uint8_t check_fs ( /* 0:The FAT boot record, 1:Valid boot record but not an FAT, 2:Not a boot record, 3:Error */
+ uint8_t *buf, /* Working buffer */
+ DWORD sect /* Sector# (lba) to check if it is an FAT boot record or not */
+)
+{
+ if (disk_readp(buf, sect, 510, 2)) /* Read the boot sector */
+ return 3;
+ if (LD_WORD(buf) != 0xAA55) /* Check record signature */
+ return 2;
+
+ if (!disk_readp(buf, sect, BS_FilSysType, 2) && LD_WORD(buf) == 0x4146) /* Check FAT12/16 */
+ return 0;
+#if _FS_FAT32
+ if (!disk_readp(buf, sect, BS_FilSysType32, 2) && LD_WORD(buf) == 0x4146) /* Check FAT32 */
+ return 0;
+#endif
+ return 1;
+}
+
+
+
+
+/*--------------------------------------------------------------------------
+
+ Public Functions
+
+--------------------------------------------------------------------------*/
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Mount/Unmount a Locical Drive */
+/*-----------------------------------------------------------------------*/
+
+FRESULT pf_mount (
+ FATFS *fs /* Pointer to new file system object (NULL: Unmount) */
+)
+{
+ uint8_t fmt, buf[36];
+ DWORD bsect, fsize, tsect, mclst;
+
+
+ FatFs = 0;
+ if (!fs) return FR_OK; /* Unregister fs object */
+
+ if (disk_initialize() & STA_NOINIT) /* Check if the drive is ready or not */
+ return FR_NOT_READY;
+
+ /* Search FAT partition on the drive */
+ bsect = 0;
+ fmt = check_fs(buf, bsect); /* Check sector 0 as an SFD format */
+ if (fmt == 1) { /* Not an FAT boot record, it may be FDISK format */
+ /* Check a partition listed in top of the partition table */
+ if (disk_readp(buf, bsect, MBR_Table, 16)) { /* 1st partition entry */
+ fmt = 3;
+ } else {
+ if (buf[4]) { /* Is the partition existing? */
+ bsect = LD_DWORD(&buf[8]); /* Partition offset in LBA */
+ fmt = check_fs(buf, bsect); /* Check the partition */
+ }
+ }
+ }
+ if (fmt == 3) return FR_DISK_ERR;
+ if (fmt) return FR_NO_FILESYSTEM; /* No valid FAT patition is found */
+
+ /* Initialize the file system object */
+ if (disk_readp(buf, bsect, 13, sizeof(buf))) return FR_DISK_ERR;
+
+ fsize = LD_WORD(buf+BPB_FATSz16-13); /* Number of sectors per FAT */
+ if (!fsize) fsize = LD_DWORD(buf+BPB_FATSz32-13);
+
+ fsize *= buf[BPB_NumFATs-13]; /* Number of sectors in FAT area */
+ fs->fatbase = bsect + LD_WORD(buf+BPB_RsvdSecCnt-13); /* FAT start sector (lba) */
+ fs->csize = buf[BPB_SecPerClus-13]; /* Number of sectors per cluster */
+ fs->n_rootdir = LD_WORD(buf+BPB_RootEntCnt-13); /* Nmuber of root directory entries */
+ tsect = LD_WORD(buf+BPB_TotSec16-13); /* Number of sectors on the file system */
+ if (!tsect) tsect = LD_DWORD(buf+BPB_TotSec32-13);
+ mclst = (tsect /* Last cluster# + 1 */
+ - LD_WORD(buf+BPB_RsvdSecCnt-13) - fsize - fs->n_rootdir / 16
+ ) / fs->csize + 2;
+ fs->max_clust = (CLUST)mclst;
+
+ fmt = FS_FAT12; /* Determine the FAT sub type */
+ if (mclst >= 0xFF7) fmt = FS_FAT16; /* Number of clusters >= 0xFF5 */
+ if (mclst >= 0xFFF7) /* Number of clusters >= 0xFFF5 */
+#if _FS_FAT32
+ fmt = FS_FAT32;
+#else
+ return FR_NO_FILESYSTEM;
+#endif
+
+ fs->fs_type = fmt; /* FAT sub-type */
+#if _FS_FAT32
+ if (fmt == FS_FAT32)
+ fs->dirbase = LD_DWORD(buf+(BPB_RootClus-13)); /* Root directory start cluster */
+ else
+#endif
+ fs->dirbase = fs->fatbase + fsize; /* Root directory start sector (lba) */
+ fs->database = fs->fatbase + fsize + fs->n_rootdir / 16; /* Data start sector (lba) */
+
+ fs->flag = 0;
+ FatFs = fs;
+
+ return FR_OK;
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Open or Create a File */
+/*-----------------------------------------------------------------------*/
+
+FRESULT pf_open (
+ const char *path /* Pointer to the file name */
+)
+{
+ FRESULT res;
+ DIR dj;
+ uint8_t sp[12], dir[32];
+ FATFS *fs = FatFs;
+
+
+ if (!fs) /* Check file system */
+ return FR_NOT_ENABLED;
+
+ fs->flag = 0;
+ fs->buf = dir;
+ dj.fn = sp;
+ res = follow_path(&dj, path); /* Follow the file path */
+ if (res != FR_OK) return res; /* Follow failed */
+ if (!dir[0] || (dir[DIR_Attr] & AM_DIR)) /* It is a directory */
+ return FR_NO_FILE;
+
+ fs->org_clust = /* File start cluster */
+#if _FS_FAT32
+ ((DWORD)LD_WORD(dir+DIR_FstClusHI) << 16) |
+#endif
+ LD_WORD(dir+DIR_FstClusLO);
+ fs->fsize = LD_DWORD(dir+DIR_FileSize); /* File size */
+ fs->fptr = 0; /* File pointer */
+ fs->flag = FA_OPENED;
+
+ return FR_OK;
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Read File */
+/*-----------------------------------------------------------------------*/
+#if _USE_READ
+
+FRESULT pf_read (
+ void* buff, /* Pointer to the read buffer (NULL:Forward data to the stream)*/
+ WORD btr, /* Number of uint8_ts to read */
+ WORD* br /* Pointer to number of uint8_ts read */
+)
+{
+ DRESULT dr;
+ CLUST clst;
+ DWORD sect, remain;
+ uint8_t *rbuff = (uint8_t *)buff;
+ WORD rcnt;
+ FATFS *fs = FatFs;
+
+
+ *br = 0;
+ if (!fs) return FR_NOT_ENABLED; /* Check file system */
+ if (!(fs->flag & FA_OPENED)) /* Check if opened */
+ return FR_NOT_OPENED;
+
+ remain = fs->fsize - fs->fptr;
+ if (btr > remain) btr = (WORD)remain; /* Truncate btr by remaining uint8_ts */
+
+ while (btr) { /* Repeat until all data transferred */
+ if ((fs->fptr % 512) == 0) { /* On the sector boundary? */
+ if ((fs->fptr / 512 % fs->csize) == 0) { /* On the cluster boundary? */
+ clst = (fs->fptr == 0) ? /* On the top of the file? */
+ fs->org_clust : get_fat(fs->curr_clust);
+ if (clst <= 1) goto fr_abort;
+ fs->curr_clust = clst; /* Update current cluster */
+ fs->csect = 0; /* Reset sector offset in the cluster */
+ }
+ sect = clust2sect(fs->curr_clust); /* Get current sector */
+ if (!sect) goto fr_abort;
+ fs->dsect = sect + fs->csect++;
+ }
+ rcnt = 512 - ((WORD)fs->fptr % 512); /* Get partial sector data from sector buffer */
+ if (rcnt > btr) rcnt = btr;
+ dr = disk_readp(!buff ? 0 : rbuff, fs->dsect, (WORD)(fs->fptr % 512), rcnt);
+ if (dr) goto fr_abort;
+ fs->fptr += rcnt; rbuff += rcnt; /* Update pointers and counters */
+ btr -= rcnt; *br += rcnt;
+ }
+
+ return FR_OK;
+
+fr_abort:
+ fs->flag = 0;
+ return FR_DISK_ERR;
+}
+#endif
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Write File */
+/*-----------------------------------------------------------------------*/
+#if _USE_WRITE
+
+FRESULT pf_write (
+ const void* buff, /* Pointer to the data to be written */
+ WORD btw, /* Number of uint8_ts to write (0:Finalize the current write operation) */
+ WORD* bw /* Pointer to number of uint8_ts written */
+)
+{
+ CLUST clst;
+ DWORD sect, remain;
+ const uint8_t *p = (uint8_t *)buff;
+ WORD wcnt;
+ FATFS *fs = FatFs;
+
+
+ *bw = 0;
+ if (!fs) return FR_NOT_ENABLED; /* Check file system */
+ if (!(fs->flag & FA_OPENED)) /* Check if opened */
+ return FR_NOT_OPENED;
+
+ if (!btw) { /* Finalize request */
+ if ((fs->flag & FA__WIP) && disk_writep(0, 0)) goto fw_abort;
+ fs->flag &= ~FA__WIP;
+ return FR_OK;
+ } else { /* Write data request */
+ if (!(fs->flag & FA__WIP)) /* Round down fptr to the sector boundary */
+ fs->fptr &= 0xFFFFFE00;
+ }
+ remain = fs->fsize - fs->fptr;
+ if (btw > remain) btw = (WORD)remain; /* Truncate btw by remaining uint8_ts */
+
+ while (btw) { /* Repeat until all data transferred */
+ if (((WORD)fs->fptr % 512) == 0) { /* On the sector boundary? */
+ if ((fs->fptr / 512 % fs->csize) == 0) { /* On the cluster boundary? */
+ clst = (fs->fptr == 0) ? /* On the top of the file? */
+ fs->org_clust : get_fat(fs->curr_clust);
+ if (clst <= 1) goto fw_abort;
+ fs->curr_clust = clst; /* Update current cluster */
+ fs->csect = 0; /* Reset sector offset in the cluster */
+ }
+ sect = clust2sect(fs->curr_clust); /* Get current sector */
+ if (!sect) goto fw_abort;
+ fs->dsect = sect + fs->csect++;
+ if (disk_writep(0, fs->dsect)) goto fw_abort; /* Initiate a sector write operation */
+ fs->flag |= FA__WIP;
+ }
+ wcnt = 512 - ((WORD)fs->fptr % 512); /* Number of uint8_ts to write to the sector */
+ if (wcnt > btw) wcnt = btw;
+ if (disk_writep(p, wcnt)) goto fw_abort; /* Send data to the sector */
+ fs->fptr += wcnt; p += wcnt; /* Update pointers and counters */
+ btw -= wcnt; *bw += wcnt;
+ if (((WORD)fs->fptr % 512) == 0) {
+ if (disk_writep(0, 0)) goto fw_abort; /* Finalize the currtent secter write operation */
+ fs->flag &= ~FA__WIP;
+ }
+ }
+
+ return FR_OK;
+
+fw_abort:
+ fs->flag = 0;
+ return FR_DISK_ERR;
+}
+#endif
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Seek File R/W Pointer */
+/*-----------------------------------------------------------------------*/
+#if _USE_LSEEK
+
+FRESULT pf_lseek (
+ DWORD ofs /* File pointer from top of file */
+)
+{
+ CLUST clst;
+ DWORD bcs, sect, ifptr;
+ FATFS *fs = FatFs;
+
+
+ if (!fs) return FR_NOT_ENABLED; /* Check file system */
+ if (!(fs->flag & FA_OPENED)) /* Check if opened */
+ return FR_NOT_OPENED;
+
+ if (ofs > fs->fsize) ofs = fs->fsize; /* Clip offset with the file size */
+ ifptr = fs->fptr;
+ fs->fptr = 0;
+ if (ofs > 0) {
+ bcs = (DWORD)fs->csize * 512; /* Cluster size (uint8_t) */
+ if (ifptr > 0 &&
+ (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */
+ fs->fptr = (ifptr - 1) & ~(bcs - 1); /* start from the current cluster */
+ ofs -= fs->fptr;
+ clst = fs->curr_clust;
+ } else { /* When seek to back cluster, */
+ clst = fs->org_clust; /* start from the first cluster */
+ fs->curr_clust = clst;
+ }
+ while (ofs > bcs) { /* Cluster following loop */
+ clst = get_fat(clst); /* Follow cluster chain */
+ if (clst <= 1 || clst >= fs->max_clust) goto fe_abort;
+ fs->curr_clust = clst;
+ fs->fptr += bcs;
+ ofs -= bcs;
+ }
+ fs->fptr += ofs;
+ sect = clust2sect(clst); /* Current sector */
+ if (!sect) goto fe_abort;
+ fs->csect = (uint8_t)(ofs / 512); /* Sector offset in the cluster */
+ if (ofs % 512)
+ fs->dsect = sect + fs->csect++;
+ }
+
+ return FR_OK;
+
+fe_abort:
+ fs->flag = 0;
+ return FR_DISK_ERR;
+}
+#endif
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Create a Directroy Object */
+/*-----------------------------------------------------------------------*/
+#if _USE_DIR
+
+FRESULT pf_opendir (
+ DIR *dj, /* Pointer to directory object to create */
+ const char *path /* Pointer to the directory path */
+)
+{
+ FRESULT res;
+ uint8_t sp[12], dir[32];
+ FATFS *fs = FatFs;
+
+
+ if (!fs) { /* Check file system */
+ res = FR_NOT_ENABLED;
+ } else {
+ fs->buf = dir;
+ dj->fn = sp;
+ res = follow_path(dj, path); /* Follow the path to the directory */
+ if (res == FR_OK) { /* Follow completed */
+ if (dir[0]) { /* It is not the root dir */
+ if (dir[DIR_Attr] & AM_DIR) { /* The object is a directory */
+ dj->sclust =
+#if _FS_FAT32
+ ((DWORD)LD_WORD(dir+DIR_FstClusHI) << 16) |
+#endif
+ LD_WORD(dir+DIR_FstClusLO);
+ } else { /* The object is not a directory */
+ res = FR_NO_PATH;
+ }
+ }
+ if (res == FR_OK)
+ res = dir_rewind(dj); /* Rewind dir */
+ }
+ if (res == FR_NO_FILE) res = FR_NO_PATH;
+ }
+
+ return res;
+}
+
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Read Directory Entry in Sequense */
+/*-----------------------------------------------------------------------*/
+
+FRESULT pf_readdir (
+ DIR *dj, /* Pointer to the open directory object */
+ FILINFO *fno /* Pointer to file information to return */
+)
+{
+ FRESULT res;
+ uint8_t sp[12], dir[32];
+ FATFS *fs = FatFs;
+
+
+ if (!fs) { /* Check file system */
+ res = FR_NOT_ENABLED;
+ } else {
+ fs->buf = dir;
+ dj->fn = sp;
+ if (!fno) {
+ res = dir_rewind(dj);
+ } else {
+ res = dir_read(dj);
+ if (res == FR_NO_FILE) {
+ dj->sect = 0;
+ res = FR_OK;
+ }
+ if (res == FR_OK) { /* A valid entry is found */
+ get_fileinfo(dj, fno); /* Get the object information */
+ res = dir_next(dj); /* Increment index for next */
+ if (res == FR_NO_FILE) {
+ dj->sect = 0;
+ res = FR_OK;
+ }
+ }
+ }
+ }
+
+ return res;
+}
+
+#endif /* _USE_DIR */
+
diff --git a/src/FatFs/pff.h b/src/FatFs/pff.h new file mode 100755 index 0000000..e28542c --- /dev/null +++ b/src/FatFs/pff.h @@ -0,0 +1,469 @@ +/*---------------------------------------------------------------------------/
+/ Petit FatFs - FAT file system module include file R0.02 (C)ChaN, 2009
+/----------------------------------------------------------------------------/
+/ Petit FatFs module is an open source software to implement FAT file system to
+/ small embedded systems. This is a free software and is opened for education,
+/ research and commercial developments under license policy of following trems.
+/
+/ Copyright (C) 2009, ChaN, all right reserved.
+/
+/ * The Petit FatFs module is a free software and there is NO WARRANTY.
+/ * No restriction on use. You can use, modify and redistribute it for
+/ personal, non-profit or commercial use UNDER YOUR RESPONSIBILITY.
+/ * Redistributions of source code must retain the above copyright notice.
+/
+/----------------------------------------------------------------------------*/
+
+#include "integer.h"
+#include <stdint.h>
+#include <libmary.h>
+/*---------------------------------------------------------------------------/
+/ Petit FatFs Configuration Options
+/
+/ CAUTION! Do not forget to make clean the project after any changes to
+/ the configuration options.
+/
+/----------------------------------------------------------------------------*/
+#ifndef _FATFS
+#define _FATFS
+
+#define _USE_READ 1 /* pf_read(): 0:Remove ,1:Enable */
+
+#define _USE_DIR 1 /* pf_opendir() and pf_readdir(): 0:Remove ,1:Enable */
+
+#define _USE_LSEEK 1 /* pf_lseek(): 0:Remove ,1:Enable */
+
+#define _USE_WRITE 1 /* pf_write(): 0:Remove ,1:Enable */
+
+#define _FS_FAT32 1 /* 0:Supports FAT12/16 only, 1:Enable FAT32 supprt */
+
+
+#define _CODE_PAGE 1
+/* Defines which code page is used for path name. Supported code pages are:
+/ 932, 936, 949, 950, 437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866,
+/ 874, 1250, 1251, 1252, 1253, 1254, 1255, 1257, 1258 and 1 (ASCII only).
+/ SBCS configurations except for 1 requiers a case conversion table. This
+/ might occupy 128 bytes on the RAM on some platforms, e.g. avr-gcc. */
+
+
+#define _WORD_ACCESS 0 // 1
+/* The _WORD_ACCESS option defines which access method is used to the word
+/ data in the FAT structure.
+/
+/ 0: Byte-by-byte access. Always compatible with all platforms.
+/ 1: Word access. Do not choose this unless following condition is met.
+/
+/ When the byte order on the memory is big-endian or address miss-aligned
+/ word access results incorrect behavior, the _WORD_ACCESS must be set to 0.
+/ If it is not the case, the value can also be set to 1 to improve the
+/ performance and code efficiency. */
+
+
+/* End of configuration options. Do not change followings without care. */
+/*--------------------------------------------------------------------------*/
+
+
+
+#if _FS_FAT32
+#define CLUST DWORD
+#else
+#define CLUST WORD
+#endif
+
+
+/* File system object structure */
+
+typedef struct _FATFS_ {
+ uint8_t fs_type; /* FAT sub type */
+ uint8_t csize; /* Number of sectors per cluster */
+ uint8_t flag; /* File status flags */
+ uint8_t csect; /* File sector address in the cluster */
+ WORD n_rootdir; /* Number of root directory entries (0 on FAT32) */
+ uint8_t* buf; /* Pointer to the disk access buffer */
+ CLUST max_clust; /* Maximum cluster# + 1. Number of clusters is max_clust - 2 */
+ DWORD fatbase; /* FAT start sector */
+ DWORD dirbase; /* Root directory start sector (Cluster# on FAT32) */
+ DWORD database; /* Data start sector */
+ DWORD fptr; /* File R/W pointer */
+ DWORD fsize; /* File size */
+ CLUST org_clust; /* File start cluster */
+ CLUST curr_clust; /* File current cluster */
+ DWORD dsect; /* File current data sector */
+} FATFS;
+
+
+
+/* Directory object structure */
+
+typedef struct _DIR_ {
+ WORD index; /* Current read/write index number */
+ uint8_t* fn; /* Pointer to the SFN (in/out) {file[8],ext[3],status[1]} */
+ CLUST sclust; /* Table start cluster (0:Static table) */
+ CLUST clust; /* Current cluster */
+ DWORD sect; /* Current sector */
+} DIR;
+
+
+
+/* File status structure */
+
+typedef struct _FILINFO_ {
+ DWORD fsize; /* File size */
+ WORD fdate; /* Last modified date */
+ WORD ftime; /* Last modified time */
+ uint8_t fattrib; /* Attribute */
+ char fname[13]; /* File name */
+} FILINFO;
+
+
+
+/* File function return code (FRESULT) */
+
+typedef enum {
+ FR_OK = 0, /* 0 */
+ FR_DISK_ERR, /* 1 */
+ FR_NOT_READY, /* 2 */
+ FR_NO_FILE, /* 3 */
+ FR_NO_PATH, /* 4 */
+ FR_NOT_OPENED, /* 5 */
+ FR_NOT_ENABLED, /* 6 */
+ FR_NO_FILESYSTEM /* 7 */
+} FRESULT;
+
+
+
+/*--------------------------------------------------------------*/
+/* Petit FatFs module application interface */
+
+FRESULT pf_mount (FATFS*); /* Mount/Unmount a logical drive */
+FRESULT pf_open (const char*); /* Open a file */
+FRESULT pf_read (void*, WORD, WORD*); /* Read data from the open file */
+FRESULT pf_write (const void*, WORD, WORD*); /* Write data to the open file */
+FRESULT pf_lseek (DWORD); /* Move file pointer of the open file */
+FRESULT pf_opendir (DIR*, const char*); /* Open a directory */
+FRESULT pf_readdir (DIR*, FILINFO*); /* Read a directory item from the open directory */
+
+
+
+/*--------------------------------------------------------------*/
+/* Flags and offset address */
+
+/* File status flag (FATFS.flag) */
+
+#define FA_OPENED 0x01
+#define FA_WPRT 0x02
+#define FA__WIP 0x40
+
+
+/* FAT sub type (FATFS.fs_type) */
+
+#define FS_FAT12 1
+#define FS_FAT16 2
+#define FS_FAT32 3
+
+
+/* File attribute bits for directory entry */
+
+#define AM_RDO 0x01 /* Read only */
+#define AM_HID 0x02 /* Hidden */
+#define AM_SYS 0x04 /* System */
+#define AM_VOL 0x08 /* Volume label */
+#define AM_LFN 0x0F /* LFN entry */
+#define AM_DIR 0x10 /* Directory */
+#define AM_ARC 0x20 /* Archive */
+#define AM_MASK 0x3F /* Mask of defined bits */
+
+
+/* FatFs refers the members in the FAT structures with uint8_t offset instead
+/ of structure member because there are incompatibility of the packing option
+/ between various compilers. */
+
+#define BS_jmpBoot 0
+#define BS_OEMName 3
+#define BPB_BytsPerSec 11
+#define BPB_SecPerClus 13
+#define BPB_RsvdSecCnt 14
+#define BPB_NumFATs 16
+#define BPB_RootEntCnt 17
+#define BPB_TotSec16 19
+#define BPB_Media 21
+#define BPB_FATSz16 22
+#define BPB_SecPerTrk 24
+#define BPB_NumHeads 26
+#define BPB_HiddSec 28
+#define BPB_TotSec32 32
+#define BS_55AA 510
+
+#define BS_DrvNum 36
+#define BS_BootSig 38
+#define BS_VolID 39
+#define BS_VolLab 43
+#define BS_FilSysType 54
+
+#define BPB_FATSz32 36
+#define BPB_ExtFlags 40
+#define BPB_FSVer 42
+#define BPB_RootClus 44
+#define BPB_FSInfo 48
+#define BPB_BkBootSec 50
+#define BS_DrvNum32 64
+#define BS_BootSig32 66
+#define BS_VolID32 67
+#define BS_VolLab32 71
+#define BS_FilSysType32 82
+
+#define MBR_Table 446
+
+#define DIR_Name 0
+#define DIR_Attr 11
+#define DIR_NTres 12
+#define DIR_CrtTime 14
+#define DIR_CrtDate 16
+#define DIR_FstClusHI 20
+#define DIR_WrtTime 22
+#define DIR_WrtDate 24
+#define DIR_FstClusLO 26
+#define DIR_FileSize 28
+
+
+
+/*--------------------------------*/
+/* Multi-uint8_t word access macros */
+
+#if _WORD_ACCESS == 1 /* Enable word access to the FAT structure */
+#define LD_WORD(ptr) (WORD)(*(WORD*)(uint8_t*)(ptr))
+#define LD_DWORD(ptr) (DWORD)(*(DWORD*)(uint8_t*)(ptr))
+#define ST_WORD(ptr,val) *(WORD*)(uint8_t*)(ptr)=(WORD)(val)
+#define ST_DWORD(ptr,val) *(DWORD*)(uint8_t*)(ptr)=(DWORD)(val)
+#else /* Use uint8_t-by-uint8_t access to the FAT structure */
+#define LD_WORD(ptr) (WORD)(((WORD)*(uint8_t*)((ptr)+1)<<8)|(WORD)*(uint8_t*)(ptr))
+#define LD_DWORD(ptr) (DWORD)(((DWORD)*(uint8_t*)((ptr)+3)<<24)|((DWORD)*(uint8_t*)((ptr)+2)<<16)|((WORD)*(uint8_t*)((ptr)+1)<<8)|*(uint8_t*)(ptr))
+#define ST_WORD(ptr,val) *(uint8_t*)(ptr)=(uint8_t)(val); *(uint8_t*)((ptr)+1)=(uint8_t)((WORD)(val)>>8)
+#define ST_DWORD(ptr,val) *(uint8_t*)(ptr)=(uint8_t)(val); *(uint8_t*)((ptr)+1)=(uint8_t)((WORD)(val)>>8); *(uint8_t*)((ptr)+2)=(uint8_t)((DWORD)(val)>>16); *(uint8_t*)((ptr)+3)=(uint8_t)((DWORD)(val)>>24)
+#endif
+
+
+/*--------------------------------------------------------*/
+/* DBCS code ranges and SBCS extend char conversion table */
+
+#if _CODE_PAGE == 932 /* Japanese Shift-JIS */
+#define _DF1S 0x81 /* DBC 1st uint8_t range 1 start */
+#define _DF1E 0x9F /* DBC 1st uint8_t range 1 end */
+#define _DF2S 0xE0 /* DBC 1st uint8_t range 2 start */
+#define _DF2E 0xFC /* DBC 1st uint8_t range 2 end */
+#define _DS1S 0x40 /* DBC 2nd uint8_t range 1 start */
+#define _DS1E 0x7E /* DBC 2nd uint8_t range 1 end */
+#define _DS2S 0x80 /* DBC 2nd uint8_t range 2 start */
+#define _DS2E 0xFC /* DBC 2nd uint8_t range 2 end */
+
+#elif _CODE_PAGE == 936 /* Simplified Chinese GBK */
+#define _DF1S 0x81
+#define _DF1E 0xFE
+#define _DS1S 0x40
+#define _DS1E 0x7E
+#define _DS2S 0x80
+#define _DS2E 0xFE
+
+#elif _CODE_PAGE == 949 /* Korean */
+#define _DF1S 0x81
+#define _DF1E 0xFE
+#define _DS1S 0x41
+#define _DS1E 0x5A
+#define _DS2S 0x61
+#define _DS2E 0x7A
+#define _DS3S 0x81
+#define _DS3E 0xFE
+
+#elif _CODE_PAGE == 950 /* Traditional Chinese Big5 */
+#define _DF1S 0x81
+#define _DF1E 0xFE
+#define _DS1S 0x40
+#define _DS1E 0x7E
+#define _DS2S 0xA1
+#define _DS2E 0xFE
+
+#elif _CODE_PAGE == 437 /* U.S. (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F,0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
+ 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 720 /* Arabic (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x45,0x41,0x84,0x41,0x86,0x43,0x45,0x45,0x45,0x49,0x49,0x8D,0x8E,0x8F,0x90,0x92,0x92,0x93,0x94,0x95,0x49,0x49,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
+ 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 737 /* Greek (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x92,0x92,0x93,0x94,0x95,0x96,0x97,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, \
+ 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0xAA,0x92,0x93,0x94,0x95,0x96,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0x97,0xEA,0xEB,0xEC,0xE4,0xED,0xEE,0xE7,0xE8,0xF1,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 775 /* Baltic (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x9A,0x91,0xA0,0x8E,0x95,0x8F,0x80,0xAD,0xED,0x8A,0x8A,0xA1,0x8D,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0x95,0x96,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \
+ 0xA0,0xA1,0xE0,0xA3,0xA3,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xA5,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE3,0xE8,0xE8,0xEA,0xEA,0xEE,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 850 /* Multilingual Latin 1 (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0xDE,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x59,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \
+ 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE7,0xE9,0xEA,0xEB,0xED,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 852 /* Latin 2 (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F,0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0x9F, \
+ 0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xB8,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBD,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF}
+
+#elif _CODE_PAGE == 855 /* Cyrillic (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x81,0x81,0x83,0x83,0x85,0x85,0x87,0x87,0x89,0x89,0x8B,0x8B,0x8D,0x8D,0x8F,0x8F,0x91,0x91,0x93,0x93,0x95,0x95,0x97,0x97,0x99,0x99,0x9B,0x9B,0x9D,0x9D,0x9F,0x9F, \
+ 0xA1,0xA1,0xA3,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAB,0xAB,0xAD,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB6,0xB6,0xB8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xDD,0xD9,0xDA,0xDB,0xDC,0xDD,0xE0,0xDF, \
+ 0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,0xEF,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 857 /* Turkish (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0x98,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x98,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9E, \
+ 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA6,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xDE,0x59,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 858 /* Multilingual Latin 1 + Euro (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0xDE,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x59,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \
+ 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD1,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE7,0xE9,0xEA,0xEB,0xED,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 862 /* Hebrew (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
+ 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 866 /* Russian (OEM) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
+ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0x90,0x91,0x92,0x93,0x9d,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 874 /* Thai (OEM, Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
+ 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 1250 /* Central Europe (Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, \
+ 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF}
+
+#elif _CODE_PAGE == 1251 /* Cyrillic (Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x82,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, \
+ 0xA0,0xA2,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF}
+
+#elif _CODE_PAGE == 1252 /* Latin 1 (Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xAd,0x9B,0x8C,0x9D,0xAE,0x9F, \
+ 0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0x9F}
+
+#elif _CODE_PAGE == 1253 /* Greek (Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
+ 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xA2,0xB8,0xB9,0xBA, \
+ 0xE0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xF2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xFB,0xBC,0xFD,0xBF,0xFF}
+
+#elif _CODE_PAGE == 1254 /* Turkish (Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x9E,0x9F, \
+ 0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0x9F}
+
+#elif _CODE_PAGE == 1255 /* Hebrew (Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
+ 0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 1256 /* Arabic (Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x8C,0x9D,0x9E,0x9F, \
+ 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0x41,0xE1,0x41,0xE3,0xE4,0xE5,0xE6,0x43,0x45,0x45,0x45,0x45,0xEC,0xED,0x49,0x49,0xF0,0xF1,0xF2,0xF3,0x4F,0xF5,0xF6,0xF7,0xF8,0x55,0xFA,0x55,0x55,0xFD,0xFE,0xFF}
+
+#elif _CODE_PAGE == 1257 /* Baltic (Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
+ 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF}
+
+#elif _CODE_PAGE == 1258 /* Vietnam (OEM, Windows) */
+#define _DF1S 0
+#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0xAC,0x9D,0x9E,0x9F, \
+ 0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
+ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xEC,0xCD,0xCE,0xCF,0xD0,0xD1,0xF2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xFE,0x9F}
+
+#elif _CODE_PAGE == 1 /* ASCII (for only non-LFN cfg) */
+#define _DF1S 0
+
+#else
+#error Unknown code page
+
+#endif
+
+
+
+/* Character code support macros */
+
+#define IsUpper(c) (((c)>='A')&&((c)<='Z'))
+#define IsLower(c) (((c)>='a')&&((c)<='z'))
+
+#if _DF1S /* DBCS configuration */
+
+#ifdef _DF2S /* Two 1st uint8_t areas */
+#define IsDBCS1(c) (((uint8_t)(c) >= _DF1S && (uint8_t)(c) <= _DF1E) || ((uint8_t)(c) >= _DF2S && (uint8_t)(c) <= _DF2E))
+#else /* One 1st uint8_t area */
+#define IsDBCS1(c) ((uint8_t)(c) >= _DF1S && (uint8_t)(c) <= _DF1E)
+#endif
+
+#ifdef _DS3S /* Three 2nd uint8_t areas */
+#define IsDBCS2(c) (((uint8_t)(c) >= _DS1S && (uint8_t)(c) <= _DS1E) || ((uint8_t)(c) >= _DS2S && (uint8_t)(c) <= _DS2E) || ((uint8_t)(c) >= _DS3S && (uint8_t)(c) <= _DS3E))
+#else /* Two 2nd uint8_t areas */
+#define IsDBCS2(c) (((uint8_t)(c) >= _DS1S && (uint8_t)(c) <= _DS1E) || ((uint8_t)(c) >= _DS2S && (uint8_t)(c) <= _DS2E))
+#endif
+
+#else /* SBCS configuration */
+
+#define IsDBCS1(c) 0
+#define IsDBCS2(c) 0
+
+#endif /* _DF1S */
+
+
+#endif /* _FATFS */
diff --git a/src/FatFs/sdcard.cpp b/src/FatFs/sdcard.cpp new file mode 100755 index 0000000..b37ad5a --- /dev/null +++ b/src/FatFs/sdcard.cpp @@ -0,0 +1,287 @@ +/*-----------------------------------------------------------------------*/
+/* PFF - Low level disk control module for ATtiny85 (C)ChaN, 2009 */
+/*-----------------------------------------------------------------------*/
+
+#define _WRITE_FUNC 1
+
+#include "diskio.h"
+#include <libmary.h>
+#include <SPI.h>
+#include <SD.h>
+
+
+/* Definitions for MMC/SDC command */
+#define CMD0 (0x40+0) /* GO_IDLE_STATE */
+#define CMD1 (0x40+1) /* SEND_OP_COND (MMC) */
+#define ACMD41 (0xC0+41) /* SEND_OP_COND (SDC) */
+#define CMD8 (0x40+8) /* SEND_IF_COND */
+#define CMD16 (0x40+16) /* SET_BLOCKLEN */
+#define CMD17 (0x40+17) /* READ_SINGLE_BLOCK */
+#define CMD24 (0x40+24) /* WRITE_BLOCK */
+#define CMD55 (0x40+55) /* APP_CMD */
+#define CMD58 (0x40+58) /* READ_OCR */
+
+
+/* USI control functions (Defined in usi.S, Platform dependent) */
+//void xmit_spi (BYTE); /* Send a byte */
+//BYTE rcv_spi (void); /* Send 0xFF and receive a byte */
+void xmit_spi (uint8_t data)
+{
+ SPI.transfer(data);
+}
+int rcv_spi(void)
+{
+ return SPI.transfer(0xff);
+}
+
+/* Port Controls (Platform dependent) */
+//#define SELECT() PORTB &= ~0x08 /* MMC CS = L */
+//#define DESELECT() PORTB |= 0x08 /* MMC CS = H */
+//#define MMC_SEL !(PORTB & 0x08) /* MMC CS status (true:selected) */
+//#define INIT_SPI() { USICR = 0b00011000; } /* Initialize SPI port */
+#define SELECT() digitalWrite(SDFile.SDCS,LOW) // MMC CS = PIO0_2
+#define DESELECT() digitalWrite(SDFile.SDCS,HIGH)
+#define MMC_SEL !digitalRead(SDFile.SDCS)
+#define INIT_SPI_SD(speed) Init_SPI(8, speed, SPI_SDCARD)
+
+/*--------------------------------------------------------------------------
+
+ Module Private Functions
+
+---------------------------------------------------------------------------*/
+
+static
+uint8_t CardType;
+
+
+/*-----------------------------------------------------------------------*/
+/* Deselect the card and release SPI bus */
+/*-----------------------------------------------------------------------*/
+
+static
+void release_spi (void)
+{
+ DESELECT();
+ rcv_spi();
+}
+
+
+/*-----------------------------------------------------------------------*/
+/* Send a command packet to MMC */
+/*-----------------------------------------------------------------------*/
+
+static
+uint8_t send_cmd (
+ uint8_t cmd, /* Command uint8_t */
+ DWORD arg /* Argument */
+)
+{
+ uint8_t n, res;
+
+
+ if (cmd & 0x80) { /* ACMD<n> is the command sequense of CMD55-CMD<n> */
+ cmd &= 0x7F;
+ res = send_cmd(CMD55, 0);
+ if (res > 1) return res;
+ }
+
+ /* Select the card */
+ DESELECT();
+ rcv_spi();
+ SELECT();
+ rcv_spi();
+
+ /* Send a command packet */
+ xmit_spi(cmd); /* Start + Command index */
+ xmit_spi((uint8_t)(arg >> 24)); /* Argument[31..24] */
+ xmit_spi((uint8_t)(arg >> 16)); /* Argument[23..16] */
+ xmit_spi((uint8_t)(arg >> 8)); /* Argument[15..8] */
+ xmit_spi((uint8_t)arg); /* Argument[7..0] */
+ n = 0x01; /* Dummy CRC + Stop */
+ if (cmd == CMD0) n = 0x95; /* Valid CRC for CMD0(0) */
+ if (cmd == CMD8) n = 0x87; /* Valid CRC for CMD8(0x1AA) */
+ xmit_spi(n);
+
+ /* Receive a command response */
+ n = 10; /* Wait for a valid response in timeout of 10 attempts */
+ do {
+ res = rcv_spi();
+ } while ((res & 0x80) && --n);
+
+ return res; /* Return with the response value */
+}
+
+
+
+/*--------------------------------------------------------------------------
+
+ Public Functions
+
+---------------------------------------------------------------------------*/
+
+
+/*-----------------------------------------------------------------------*/
+/* Initialize Disk Drive */
+/*-----------------------------------------------------------------------*/
+
+DSTATUS disk_initialize (void)
+{
+ uint8_t n, cmd, ty, ocr[4];
+ WORD tmr;
+
+
+ //INIT_SPI();
+ //INIT_SPI_SD(SPI_SLOW);
+ pinMode(SDFile.SDCS,OUTPUT); //CS initialize
+ SPI.setBitLength(8);
+ SPI.setDataMode(SPI_MODE0);
+ SPI.setClockDivider(SPI_CLOCK_DIV32);
+ SPI.begin();
+
+#if _WRITE_FUNC
+ if (MMC_SEL) disk_writep(0, 0); /* Finalize write process if it is in progress */
+#endif
+ for (n = 100; n; n--) rcv_spi(); /* Dummy clocks */
+
+ ty = 0;
+ if (send_cmd(CMD0, 0) == 1) { /* Enter Idle state */
+ if (send_cmd(CMD8, 0x1AA) == 1) { /* SDv2 */
+ for (n = 0; n < 4; n++) ocr[n] = rcv_spi(); /* Get trailing return value of R7 resp */
+ if (ocr[2] == 0x01 && ocr[3] == 0xAA) { /* The card can work at vdd range of 2.7-3.6V */
+ for (tmr = 12000; tmr && send_cmd(ACMD41, 1UL << 30); tmr--) ; /* Wait for leaving idle state (ACMD41 with HCS bit) */
+ if (tmr && send_cmd(CMD58, 0) == 0) { /* Check CCS bit in the OCR */
+ for (n = 0; n < 4; n++) ocr[n] = rcv_spi();
+ ty = (ocr[0] & 0x40) ? CT_SD2 | CT_BLOCK : CT_SD2; /* SDv2 (HC or SC) */
+ }
+ }
+ } else { /* SDv1 or MMCv3 */
+ if (send_cmd(ACMD41, 0) <= 1) {
+ ty = CT_SD1; cmd = ACMD41; /* SDv1 */
+ } else {
+ ty = CT_MMC; cmd = CMD1; /* MMCv3 */
+ }
+ for (tmr = 25000; tmr && send_cmd(cmd, 0); tmr--) ; /* Wait for leaving idle state */
+ if (!tmr || send_cmd(CMD16, 512) != 0) /* Set R/W block length to 512 */
+ ty = 0;
+ }
+ }
+ CardType = ty;
+ release_spi();
+
+ if (ty) SPI.setClockDivider(SPI_CLOCK_DIV4);//INIT_SPI_SD(SPI_FAST);
+
+ return ty ? 0 : STA_NOINIT;
+}
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Read partial sector */
+/*-----------------------------------------------------------------------*/
+
+DRESULT disk_readp (
+ uint8_t *buff, /* Pointer to the read buffer (NULL:Read uint8_ts are forwarded to the stream) */
+ DWORD lba, /* Sector number (LBA) */
+ WORD ofs, /* uint8_t offset to read from (0..511) */
+ WORD cnt /* Number of uint8_ts to read (ofs + cnt mus be <= 512) */
+)
+{
+ DRESULT res;
+ uint8_t rc;
+ WORD bc;
+
+
+ if (!(CardType & CT_BLOCK)) lba *= 512; /* Convert to uint8_t address if needed */
+
+ res = RES_ERROR;
+ if (send_cmd(CMD17, lba) == 0) { /* READ_SINGLE_BLOCK */
+
+ bc = 30000;
+ do { /* Wait for data packet in timeout of 100ms */
+ rc = rcv_spi();
+ } while (rc == 0xFF && --bc);
+
+ if (rc == 0xFE) { /* A data packet arrived */
+ bc = 514 - ofs - cnt;
+
+ /* Skip leading uint8_ts */
+ if (ofs) {
+ do rcv_spi(); while (--ofs);
+ }
+
+ /* Receive a part of the sector */
+ if (buff) { /* Store data to the memory */
+ do
+ *buff++ = rcv_spi();
+ while (--cnt);
+ } else { /* Forward data to the outgoing stream (depends on the project) */
+ do
+ //xmit(rcv_spi()); /* (Console output) */
+ Serial.println(rcv_spi(),DEC); // Console output
+ while (--cnt);
+ }
+
+ /* Skip trailing uint8_ts and CRC */
+ do rcv_spi(); while (--bc);
+
+ res = RES_OK;
+ }
+ }
+
+ release_spi();
+
+ return res;
+}
+
+
+
+/*-----------------------------------------------------------------------*/
+/* Write partial sector */
+/*-----------------------------------------------------------------------*/
+#if _WRITE_FUNC
+
+DRESULT disk_writep (
+ const uint8_t *buff, /* Pointer to the uint8_ts to be written (NULL:Initiate/Finalize sector write) */
+ DWORD sa /* Number of uint8_ts to send, Sector number (LBA) or zero */
+)
+{
+ DRESULT res;
+ WORD bc;
+ static WORD wc;
+
+ res = RES_ERROR;
+
+ if (buff) { /* Send data uint8_ts */
+ bc = (WORD)sa;
+ while (bc && wc) { /* Send data uint8_ts to the card */
+ xmit_spi(*buff++);
+ wc--; bc--;
+ }
+ res = RES_OK;
+ } else {
+ if (sa) { /* Initiate sector write process */
+ if (!(CardType & CT_BLOCK)) sa *= 512; /* Convert to uint8_t address if needed */
+ if (send_cmd(CMD24, sa) == 0) { /* WRITE_SINGLE_BLOCK */
+ xmit_spi(0xFF); xmit_spi(0xFE); /* Data block header */
+ wc = 512; /* Set uint8_t counter */
+ res = RES_OK;
+ }
+ } else { /* Finalize sector write process */
+ bc = wc + 2;
+ //while (bc--) xmit_spi(0); /* Fill left uint8_ts and CRC with zeros */
+ while (bc) /* Fill left uint8_ts and CRC with zeros */
+ {
+ xmit_spi(0);
+ bc--;
+ }
+ if ((rcv_spi() & 0x1F) == 0x05) { /* Receive data resp and wait for end of write process in timeout of 300ms */
+ for (bc = 65000; rcv_spi() != 0xFF && bc; bc--) ; /* Wait ready */
+ if (bc) res = RES_OK;
+ }
+ release_spi();
+ }
+ }
+
+ return res;
+}
+#endif
diff --git a/src/TFTLCD/TFTLCD.h b/src/TFTLCD/TFTLCD.h new file mode 100755 index 0000000..797383c --- /dev/null +++ b/src/TFTLCD/TFTLCD.h @@ -0,0 +1,220 @@ +#include <libmary.h> +#include <SPI.h> + +#define LCD_CS C33//4 //cs +#define LCD_DC C21//5 //data command +#define LCD_RES C31//6 //reset +//MOSI 11 C47 +//CLK 13 C43 +#define DC_DATA HIGH +#define DC_CMD LOW + +//#define STICK_A 7 +//#define STICK_B 8 +//#define STICK_C 9 +//#define STICK_D 10 +//#define STICK_CT 2 + + +#define select_disp() digitalWrite(LCD_CS,LOW) //PORTD &= ~(1 << PORTD4) +#define unselect_disp() digitalWrite(LCD_CS,HIGH) //PORTD |= (1 << PORTD4) + +#define set_disp_command() digitalWrite(LCD_DC,LOW) //PORTD &= ~(1 << PORTD5) +#define set_disp_data() digitalWrite(LCD_DC,HIGH) //PORTD |= (1 << PORTD5) + +/* SSD1283A Unique Value */ +/* MUST be need for SSD1283A */ +#define OFS_COL 2 +#define OFS_RAW 0 +#define MAX_X 130 +#define MAX_Y 130 + + + +void sendCmd(unsigned int cmd){ + select_disp(); + set_disp_command(); + // shiftOut2(PIN_MOSI,PIN_CLK,MSBFIRST,cmd); + SPI.transfer(cmd); + set_disp_data(); +} + +void sendData(unsigned int data){ + select_disp(); + set_disp_data(); + //shiftOut2(PIN_MOSI,PIN_CLK,MSBFIRST,data); + SPI.transfer(data); +} + +void sendData16(unsigned int data1,unsigned int data2){ + select_disp(); + set_disp_data(); + //shiftOut2(PIN_MOSI,PIN_CLK,MSBFIRST,data); + SPI.transfer(data1); + SPI.transfer(data2); +} + +void sendColor(unsigned int color){ + sendData(color&0x00ff); +} + + + + +void initDisplay(){ + select_disp(); + + digitalWrite(LCD_RES, LOW); + delay(80); + digitalWrite(LCD_RES, HIGH); + delay(20); + + /* SSD1283A */ + sendCmd(0x10); /* Power Control (1) */ + sendData16(0x2f,0x8e); /* Onchip DCDC Clock,Fine*2 StartCycle,VGH unregurated */ + /* StepUpCycle fosc,Internal OPAMP Current reserved,Sleep Mode OFF */ + + sendCmd(0x11); /* Power Control (2) */ + sendData16(0x00,0x0c); /* VGH/VCI ratio x4 */ + + sendCmd(0x07); /* Display Control */ + sendData16(0x00,0x21); /* Nomalize source out zero, Vartical Scroll not pafomed */ + /* 1 Divison Display,Source output GND, Gate output GVOFFL */ + + sendCmd(0x28); /* VCOM-OTP1 */ + sendData16(0x00,0x06); + + sendCmd(0x28); /* VCOM-OTP1 */ + sendData16(0x00,0x05); + + sendCmd(0x27); /* VCOM-OTP */ + sendData16(0x05,0x7f); + + sendCmd(0x29); /* VCOM-OTP2 */ + sendData16(0x89,0xa1); + + sendCmd(0x00); /* Oscillator On */ + sendData16(0x00,0x01); + delay(150); + + sendCmd(0x29); /* VCOM-OTP2 */ + sendData16(0x80,0xb0); + delay(50); + + sendCmd(0x29); /* VCOM-OTP2 */ + sendData16(0xff,0xfe); + + sendCmd(0x07); /* Display Control */ + sendData16(0x00,0x23); + delay(50); + + sendCmd(0x07); /* Display Control (Confirm) */ + sendData16(0x00,0x23); + delay(50); + + sendCmd(0x07); /* Display Control */ + sendData16(0x00,0x33); /* Nomalize source out zero, Vartical Scroll not pafomed */ + /* 1 Divison Display,,Source output GND (OFF) */ + /* Gate output Selected VGH, others GVOFFL */ + + sendCmd(0x01); /* Driver Output Control */ + sendData16(0x21,0x83); /* Reversal ON ,Cs On Common,BGR,Scanning Mounting Method */ + /* Output Shift Direction of Gate Driver G131->G0, */ + /* Output Shift Direction of Source Driver S0->S395, */ + /* Number of Gate Driver 131 */ + + sendCmd(0x2f); /* ??? */ + sendData16(0xff,0xff); + + sendCmd(0x2c); /* Oscillator frequency */ + sendData16(0x80,0x00); /* 520kHz */ + + sendCmd(0x03); /* Entry mode */ + sendData16(0x68,0x30); /* Colour mode 65k,OE defines Display Window,D-mode from internal ram */ + /* Horizontal increment & Vertical increment & AM 0 Horizontal */ + + sendCmd(0x40); /* Set Offset */ + sendData16(0x00,0x02); + + sendCmd(0x27); /* Further bias current setting */ + sendData16(0x05,0x70); /* Maximum */ + + sendCmd(0x02); /* LCD-Driving-Waveform Control */ + sendData16(0x03,0x00); /* the odd/even frame-select signals and the N-line inversion */ + /* signals are EORed for alternating drive */ + + sendCmd(0x0b); /* Frame Cycle Control */ + sendData16(0x58,0x0c); /* Amount of Overlap 4 clock cycle */ + /* Delay amount of the source output 2 clock cycle */ + /* EQ period 2 clock cycle, Division Ratio 2 */ + + sendCmd(0x12); /* Power Control 3 */ + sendData16(0x06,0x09); /* Set amplitude magnification of VLCD63 = Vref x 2.175 */ + + sendCmd(0x13); /* Power Control 4 */ + sendData16(0x31,0x00); /* Set output voltage of VcomL = VLCD63 x 1.02 */ + + sendCmd(0x2a); /* Test Commands ? */ + sendData16(0x1d,0xd0); + + sendCmd(0x2b); /* Test Commands ? */ + sendData16(0x0a,0x90); + + sendCmd(0x2d); /* Test Commands ? */ + sendData16(0x31,0x0f); + delay(100); + + sendCmd(0x44); /* Set CAS Address */ + sendData16(0x83,0x00); + + sendCmd(0x45); /* Set RAS Address */ + sendData16(0x83,0x00); + + sendCmd(0x21); /* Set RAM Address */ + sendData16(0x00,0x00); + + sendCmd(0x1e); /* Power Control 5 */ + sendData16(0x00,0xbf); /* VcomH = VLCD63 x 0.99 */ + delay(1); + + sendCmd(0x1e); /* Power Control 5 */ + sendData16(0x00,0x00); /* VcomH =VLCD63 x 0.36 */ + delay(100); + + unselect_disp(); +} + +void resetArea(){ + int x=0,y=0; + int xwidth=130 , yheight=130; + + select_disp(); + + /* Set CAS Address */ + sendCmd(0x44); + sendData16(OFS_COL + xwidth - 1, OFS_COL + x); + + /* Set RAS Address */ + sendCmd(0x45); + sendData16(OFS_RAW + yheight - 1, OFS_RAW + y); + + /* Set RAM Address */ + sendCmd(0x21); + sendData16(OFS_RAW + y, OFS_COL + x); + + /* Write RAM */ + sendCmd(0x22); + + set_disp_data(); + unselect_disp(); +} + +void fillScreen(unsigned int color_H,unsigned int color_L){ + select_disp(); + int i; + resetArea(); + for(i=0;i<16900;i++){ + sendData16(color_H,color_L); + } + unselect_disp(); +} diff --git a/src/XBee/XBee.cpp b/src/XBee/XBee.cpp new file mode 100755 index 0000000..fedcfdb --- /dev/null +++ b/src/XBee/XBee.cpp @@ -0,0 +1,1355 @@ +/** + * Copyright (c) 2009 Andrew Rapp. All rights reserved. + * + * This file is part of XBee-Arduino. + * + * XBee-Arduino is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * XBee-Arduino 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. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBee-Arduino. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <libmary.h> +#include "XBee.h" +#include <uart.h> + +//#include "WProgram.h" +//#include "HardwareSerial.h" + + + +XBeeResponse::XBeeResponse() { + +} + +uint8_t XBeeResponse::getApiId() { + return _apiId; +} + +void XBeeResponse::setApiId(uint8_t apiId) { + _apiId = apiId; +} + +uint8_t XBeeResponse::getMsbLength() { + return _msbLength; +} + +void XBeeResponse::setMsbLength(uint8_t msbLength) { + _msbLength = msbLength; +} + +uint8_t XBeeResponse::getLsbLength() { + return _lsbLength; +} + +void XBeeResponse::setLsbLength(uint8_t lsbLength) { + _lsbLength = lsbLength; +} + +uint8_t XBeeResponse::getChecksum() { + return _checksum; +} + +void XBeeResponse::setChecksum(uint8_t checksum) { + _checksum = checksum; +} + +uint8_t XBeeResponse::getFrameDataLength() { + return _frameLength; +} + +void XBeeResponse::setFrameLength(uint8_t frameLength) { + _frameLength = frameLength; +} + +bool XBeeResponse::isAvailable() { + return _complete; +} + +void XBeeResponse::setAvailable(bool complete) { + _complete = complete; +} + +bool XBeeResponse::isError() { + return _errorCode > 0; +} + +uint8_t XBeeResponse::getErrorCode() { + return _errorCode; +} + +void XBeeResponse::setErrorCode(uint8_t errorCode) { + _errorCode = errorCode; +} + +// copy common fields from xbee response to target response +void XBeeResponse::setCommon(XBeeResponse &target) { + target.setApiId(getApiId()); + target.setAvailable(isAvailable()); + target.setChecksum(getChecksum()); + target.setErrorCode(getErrorCode()); + target.setFrameLength(getFrameDataLength()); + target.setMsbLength(getMsbLength()); + target.setLsbLength(getLsbLength()); +} + +#ifdef SERIES_2 + +ZBTxStatusResponse::ZBTxStatusResponse() : FrameIdResponse() { + +} + +uint16_t ZBTxStatusResponse::getRemoteAddress() { + return (getFrameData()[1] << 8) + getFrameData()[2]; +} + +uint8_t ZBTxStatusResponse::getTxRetryCount() { + return getFrameData()[3]; +} + +uint8_t ZBTxStatusResponse::getDeliveryStatus() { + return getFrameData()[4]; +} + +uint8_t ZBTxStatusResponse::getDiscoveryStatus() { + return getFrameData()[5]; +} + +bool ZBTxStatusResponse::isSuccess() { + return getDeliveryStatus() == SUCCESS; +} + +void XBeeResponse::getZBTxStatusResponse(XBeeResponse &zbXBeeResponse) { + + // way off? + ZBTxStatusResponse* zb = static_cast<ZBTxStatusResponse*>(&zbXBeeResponse); + // pass pointer array to subclass + zb->setFrameData(getFrameData()); + setCommon(zbXBeeResponse); +} + +ZBRxResponse::ZBRxResponse(): RxDataResponse() { + _remoteAddress64 = XBeeAddress64(); +} + +uint16_t ZBRxResponse::getRemoteAddress16() { + return (getFrameData()[8] << 8) + getFrameData()[9]; +} + +uint8_t ZBRxResponse::getOption() { + return getFrameData()[10]; +} + +// markers to read data from packet array. this is the index, so the 12th item in the array +uint8_t ZBRxResponse::getDataOffset() { + return 11; +} + +uint8_t ZBRxResponse::getDataLength() { + return getPacketLength() - getDataOffset() - 1; +} + +XBeeAddress64& ZBRxResponse::getRemoteAddress64() { + return _remoteAddress64; +} + +void XBeeResponse::getZBRxResponse(XBeeResponse &rxResponse) { + + ZBRxResponse* zb = static_cast<ZBRxResponse*>(&rxResponse); + + //TODO verify response api id matches this api for this response + + // pass pointer array to subclass + zb->setFrameData(getFrameData()); + setCommon(rxResponse); + + zb->getRemoteAddress64().setMsb((uint32_t(getFrameData()[0]) << 24) + (uint32_t(getFrameData()[1]) << 16) + (uint16_t(getFrameData()[2]) << 8) + getFrameData()[3]); + zb->getRemoteAddress64().setLsb((uint32_t(getFrameData()[4]) << 24) + (uint32_t(getFrameData()[5]) << 16) + (uint16_t(getFrameData()[6]) << 8) + (getFrameData()[7])); +} + + +ZBRxIoSampleResponse::ZBRxIoSampleResponse() : ZBRxResponse() { + +} + +// 64 + 16 addresses, sample size, option = 12 (index 11), so this starts at 12 +uint8_t ZBRxIoSampleResponse::getDigitalMaskMsb() { + return getFrameData()[12] & 0x1c; +} + +uint8_t ZBRxIoSampleResponse::getDigitalMaskLsb() { + return getFrameData()[13]; +} + +uint8_t ZBRxIoSampleResponse::getAnalogMask() { + return getFrameData()[14] & 0x8f; +} + +bool ZBRxIoSampleResponse::containsAnalog() { + return getAnalogMask() > 0; +} + +bool ZBRxIoSampleResponse::containsDigital() { + return getDigitalMaskMsb() > 0 || getDigitalMaskLsb() > 0; +} + +bool ZBRxIoSampleResponse::isAnalogEnabled(uint8_t pin) { + return ((getAnalogMask() >> pin) & 1) == 1; +} + +bool ZBRxIoSampleResponse::isDigitalEnabled(uint8_t pin) { + if (pin <= 7) { + // added extra parens to calm avr compiler + return ((getDigitalMaskLsb() >> pin) & 1) == 1; + } else { + return ((getDigitalMaskMsb() >> (pin - 8)) & 1) == 1; + } +} + +uint16_t ZBRxIoSampleResponse::getAnalog(uint8_t pin) { + // analog starts 13 bytes after sample size, if no dio enabled + uint8_t start = 15; + + if (containsDigital()) { + // make room for digital i/o + start+=2; + } + +// std::cout << "spacing is " << static_cast<unsigned int>(spacing) << std::endl; + + // start depends on how many pins before this pin are enabled + for (int i = 0; i < pin; i++) { + if (isAnalogEnabled(pin)) { + start+=2; + } + } + +// std::cout << "start for analog pin ["<< static_cast<unsigned int>(pin) << "]/sample " << static_cast<unsigned int>(sample) << " is " << static_cast<unsigned int>(start) << std::endl; + +// std::cout << "returning index " << static_cast<unsigned int>(getSampleOffset() + start) << " and index " << static_cast<unsigned int>(getSampleOffset() + start + 1) << ", val is " << static_cast<unsigned int>(getFrameData()[getSampleOffset() + start] << 8) << " and " << + static_cast<unsigned int>(getFrameData()[getSampleOffset() + start + 1]) << std::endl; + + return (uint16_t)((getFrameData()[start] << 8) + getFrameData()[start + 1]); +} + +bool ZBRxIoSampleResponse::isDigitalOn(uint8_t pin) { + if (pin <= 7) { + // D0-7 + // DIO LSB is index 5 + return ((getFrameData()[16] >> pin) & 1) == 1; + } else { + // D10-12 + // DIO MSB is index 4 + return ((getFrameData()[15] >> (pin - 8)) & 1) == 1; + } +} + +void XBeeResponse::getZBRxIoSampleResponse(XBeeResponse &response) { + ZBRxIoSampleResponse* zb = static_cast<ZBRxIoSampleResponse*>(&response); + + + // pass pointer array to subclass + zb->setFrameData(getFrameData()); + setCommon(response); + + zb->getRemoteAddress64().setMsb((uint32_t(getFrameData()[0]) << 24) + (uint32_t(getFrameData()[1]) << 16) + (uint16_t(getFrameData()[2]) << 8) + getFrameData()[3]); + zb->getRemoteAddress64().setLsb((uint32_t(getFrameData()[4]) << 24) + (uint32_t(getFrameData()[5]) << 16) + (uint16_t(getFrameData()[6]) << 8) + (getFrameData()[7])); +} + +#endif + +#ifdef SERIES_1 + +RxResponse::RxResponse() : RxDataResponse() { + +} + +uint16_t Rx16Response::getRemoteAddress16() { + return (getFrameData()[0] << 8) + getFrameData()[1]; +} + +XBeeAddress64& Rx64Response::getRemoteAddress64() { + return _remoteAddress; +} + +Rx64Response::Rx64Response() : RxResponse() { + _remoteAddress = XBeeAddress64(); +} + +Rx16Response::Rx16Response() : RxResponse() { + +} + +RxIoSampleBaseResponse::RxIoSampleBaseResponse() : RxResponse() { + +} + +uint8_t RxIoSampleBaseResponse::getSampleOffset() { + // sample starts 2 bytes after rssi + return getRssiOffset() + 2; +} + + +uint8_t RxIoSampleBaseResponse::getSampleSize() { + return getFrameData()[getSampleOffset()]; +} + +bool RxIoSampleBaseResponse::containsAnalog() { + return (getFrameData()[getSampleOffset() + 1] & 0x7e) > 0; +} + +bool RxIoSampleBaseResponse::containsDigital() { + return (getFrameData()[getSampleOffset() + 1] & 0x1) > 0 || getFrameData()[getSampleOffset() + 2] > 0; +} + +//uint16_t RxIoSampleBaseResponse::getAnalog0(uint8_t sample) { +// return getAnalog(0, sample); +//} + +bool RxIoSampleBaseResponse::isAnalogEnabled(uint8_t pin) { + return (((getFrameData()[getSampleOffset() + 1] >> (pin + 1)) & 1) == 1); +} + +bool RxIoSampleBaseResponse::isDigitalEnabled(uint8_t pin) { + if (pin < 8) { + return ((getFrameData()[getSampleOffset() + 4] >> pin) & 1) == 1; + } else { + return (getFrameData()[getSampleOffset() + 3] & 1) == 1; + } +} + +uint16_t RxIoSampleBaseResponse::getAnalog(uint8_t pin, uint8_t sample) { + + // analog starts 3 bytes after sample size, if no dio enabled + uint8_t start = 3; + + if (containsDigital()) { + // make room for digital i/o sample (2 bytes per sample) + start+=2*(sample + 1); + } + + uint8_t spacing = 0; + + // spacing between samples depends on how many are enabled. add one for each analog that's enabled + for (int i = 0; i <= 5; i++) { + if (isAnalogEnabled(i)) { + // each analog is two bytes + spacing+=2; + } + } + +// std::cout << "spacing is " << static_cast<unsigned int>(spacing) << std::endl; + + // start depends on how many pins before this pin are enabled + for (int i = 0; i < pin; i++) { + if (isAnalogEnabled(pin)) { + start+=2; + } + } + + start+= sample * spacing; + +// std::cout << "start for analog pin ["<< static_cast<unsigned int>(pin) << "]/sample " << static_cast<unsigned int>(sample) << " is " << static_cast<unsigned int>(start) << std::endl; + +// std::cout << "returning index " << static_cast<unsigned int>(getSampleOffset() + start) << " and index " << static_cast<unsigned int>(getSampleOffset() + start + 1) << ", val is " << static_cast<unsigned int>(getFrameData()[getSampleOffset() + start] << 8) << " and " << + static_cast<unsigned int>(getFrameData()[getSampleOffset() + start + 1]) << std::endl; + + return (uint16_t)((getFrameData()[getSampleOffset() + start] << 8) + getFrameData()[getSampleOffset() + start + 1]); +} + +bool RxIoSampleBaseResponse::isDigitalOn(uint8_t pin, uint8_t sample) { + if (pin < 8) { + return ((getFrameData()[getSampleOffset() + 4] >> pin) & 1) == 1; + } else { + return (getFrameData()[getSampleOffset() + 3] & 1) == 1; + } +} + + +//bool RxIoSampleBaseResponse::isDigital0On(uint8_t sample) { +// return isDigitalOn(0, sample); +//} + +Rx16IoSampleResponse::Rx16IoSampleResponse() : RxIoSampleBaseResponse() { + +} + +uint16_t Rx16IoSampleResponse::getRemoteAddress16() { + return (uint16_t)((getFrameData()[0] << 8) + getFrameData()[1]); +} + +uint8_t Rx16IoSampleResponse::getRssiOffset() { + return 2; +} + +void XBeeResponse::getRx16IoSampleResponse(XBeeResponse &response) { + Rx16IoSampleResponse* rx = static_cast<Rx16IoSampleResponse*>(&response); + + rx->setFrameData(getFrameData()); + setCommon(response); +} + + +Rx64IoSampleResponse::Rx64IoSampleResponse() : RxIoSampleBaseResponse() { + _remoteAddress = XBeeAddress64(); +} + +XBeeAddress64& Rx64IoSampleResponse::getRemoteAddress64() { + return _remoteAddress; +} + +uint8_t Rx64IoSampleResponse::getRssiOffset() { + return 8; +} + +void XBeeResponse::getRx64IoSampleResponse(XBeeResponse &response) { + Rx64IoSampleResponse* rx = static_cast<Rx64IoSampleResponse*>(&response); + + rx->setFrameData(getFrameData()); + setCommon(response); + + rx->getRemoteAddress64().setMsb((uint32_t(getFrameData()[0]) << 24) + (uint32_t(getFrameData()[1]) << 16) + (uint16_t(getFrameData()[2]) << 8) + getFrameData()[3]); + rx->getRemoteAddress64().setLsb((uint32_t(getFrameData()[4]) << 24) + (uint32_t(getFrameData()[5]) << 16) + (uint16_t(getFrameData()[6]) << 8) + getFrameData()[7]); +} + +TxStatusResponse::TxStatusResponse() : FrameIdResponse() { + +} + +uint8_t TxStatusResponse::getStatus() { + return getFrameData()[1]; +} + +bool TxStatusResponse::isSuccess() { + return getStatus() == SUCCESS; +} + +void XBeeResponse::getTxStatusResponse(XBeeResponse &txResponse) { + + TxStatusResponse* txStatus = static_cast<TxStatusResponse*>(&txResponse); + + // pass pointer array to subclass + txStatus->setFrameData(getFrameData()); + setCommon(txResponse); +} + +uint8_t RxResponse::getRssi() { + return getFrameData()[getRssiOffset()]; +} + +uint8_t RxResponse::getOption() { + return getFrameData()[getRssiOffset() + 1]; +} + +bool RxResponse::isAddressBroadcast() { + return (getOption() & 2) == 2; +} + +bool RxResponse::isPanBroadcast() { + return (getOption() & 4) == 4; +} + +uint8_t RxResponse::getDataLength() { + return getPacketLength() - getDataOffset() - 1; +} + +uint8_t RxResponse::getDataOffset() { + return getRssiOffset() + 2; +} + +uint8_t Rx16Response::getRssiOffset() { + return RX_16_RSSI_OFFSET; +} + +void XBeeResponse::getRx16Response(XBeeResponse &rx16Response) { + + Rx16Response* rx16 = static_cast<Rx16Response*>(&rx16Response); + + // pass pointer array to subclass + rx16->setFrameData(getFrameData()); + setCommon(rx16Response); + +// rx16->getRemoteAddress16().setAddress((getFrameData()[0] << 8) + getFrameData()[1]); +} + +uint8_t Rx64Response::getRssiOffset() { + return RX_64_RSSI_OFFSET; +} + +void XBeeResponse::getRx64Response(XBeeResponse &rx64Response) { + + Rx64Response* rx64 = static_cast<Rx64Response*>(&rx64Response); + + // pass pointer array to subclass + rx64->setFrameData(getFrameData()); + setCommon(rx64Response); + + rx64->getRemoteAddress64().setMsb((uint32_t(getFrameData()[0]) << 24) + (uint32_t(getFrameData()[1]) << 16) + (uint16_t(getFrameData()[2]) << 8) + getFrameData()[3]); + rx64->getRemoteAddress64().setLsb((uint32_t(getFrameData()[4]) << 24) + (uint32_t(getFrameData()[5]) << 16) + (uint16_t(getFrameData()[6]) << 8) + getFrameData()[7]); +} + +#endif + +RemoteAtCommandResponse::RemoteAtCommandResponse() : AtCommandResponse() { + +} + +uint8_t* RemoteAtCommandResponse::getCommand() { + return getFrameData() + 11; +} + +uint8_t RemoteAtCommandResponse::getStatus() { + return getFrameData()[13]; +} + +bool RemoteAtCommandResponse::isOk() { + // weird c++ behavior. w/o this method, it calls AtCommandResponse::isOk(), which calls the AtCommandResponse::getStatus, not this.getStatus!!! + return getStatus() == AT_OK; +} + +uint8_t RemoteAtCommandResponse::getValueLength() { + return getFrameDataLength() - 14; +} + +uint8_t* RemoteAtCommandResponse::getValue() { + if (getValueLength() > 0) { + // value is only included for query commands. set commands does not return a value + return getFrameData() + 14; + } + + return NULL; +} + +uint16_t RemoteAtCommandResponse::getRemoteAddress16() { + return uint16_t((getFrameData()[9] << 8) + getFrameData()[10]); +} + +XBeeAddress64& RemoteAtCommandResponse::getRemoteAddress64() { + return _remoteAddress64; +} + +void XBeeResponse::getRemoteAtCommandResponse(XBeeResponse &response) { + + // TODO no real need to cast. change arg to match expected class + RemoteAtCommandResponse* at = static_cast<RemoteAtCommandResponse*>(&response); + + // pass pointer array to subclass + at->setFrameData(getFrameData()); + setCommon(response); + + at->getRemoteAddress64().setMsb((uint32_t(getFrameData()[1]) << 24) + (uint32_t(getFrameData()[2]) << 16) + (uint16_t(getFrameData()[3]) << 8) + getFrameData()[4]); + at->getRemoteAddress64().setLsb((uint32_t(getFrameData()[5]) << 24) + (uint32_t(getFrameData()[6]) << 16) + (uint16_t(getFrameData()[7]) << 8) + (getFrameData()[8])); + +} + +RxDataResponse::RxDataResponse() : XBeeResponse() { + +} + +uint8_t RxDataResponse::getData(int index) { + return getFrameData()[getDataOffset() + index]; +} + +uint8_t* RxDataResponse::getData() { + return getFrameData() + getDataOffset(); +} + +FrameIdResponse::FrameIdResponse() { + +} + +uint8_t FrameIdResponse::getFrameId() { + return getFrameData()[0]; +} + + +ModemStatusResponse::ModemStatusResponse() { + +} + +uint8_t ModemStatusResponse::getStatus() { + return getFrameData()[0]; +} + +void XBeeResponse::getModemStatusResponse(XBeeResponse &modemStatusResponse) { + + ModemStatusResponse* modem = static_cast<ModemStatusResponse*>(&modemStatusResponse); + + // pass pointer array to subclass + modem->setFrameData(getFrameData()); + setCommon(modemStatusResponse); + +} + +AtCommandResponse::AtCommandResponse() { + +} + +uint8_t* AtCommandResponse::getCommand() { + return getFrameData() + 1; +} + +uint8_t AtCommandResponse::getStatus() { + return getFrameData()[3]; +} + +uint8_t AtCommandResponse::getValueLength() { + return getFrameDataLength() - 4; +} + +uint8_t* AtCommandResponse::getValue() { + if (getValueLength() > 0) { + // value is only included for query commands. set commands does not return a value + return getFrameData() + 4; + } + + return NULL; +} + +bool AtCommandResponse::isOk() { + return getStatus() == AT_OK; +} + +void XBeeResponse::getAtCommandResponse(XBeeResponse &atCommandResponse) { + + AtCommandResponse* at = static_cast<AtCommandResponse*>(&atCommandResponse); + + // pass pointer array to subclass + at->setFrameData(getFrameData()); + setCommon(atCommandResponse); +} + +uint16_t XBeeResponse::getPacketLength() { + return ((_msbLength << 8) & 0xff) + (_lsbLength & 0xff); +} + +uint8_t* XBeeResponse::getFrameData() { + return _frameDataPtr; +} + +void XBeeResponse::setFrameData(uint8_t* frameDataPtr) { + _frameDataPtr = frameDataPtr; +} + +void XBeeResponse::init() { + _complete = false; + _errorCode = NO_ERROR; + _checksum = 0; +} + +void XBeeResponse::reset() { + init(); + _apiId = 0; + _msbLength = 0; + _lsbLength = 0; + _checksum = 0; + _frameLength = 0; + + for (int i = 0; i < MAX_FRAME_DATA_SIZE; i++) { + getFrameData()[i] = 0; + } +} + +void XBee::resetResponse() { + _pos = 0; + _escape = false; + _response.reset(); +} + +XBee::XBee(): _response(XBeeResponse()) { + _pos = 0; + _escape = false; + _checksumTotal = 0; + _nextFrameId = 0; + + _response.init(); + _response.setFrameData(_responseFrameData); +} + +uint8_t XBee::getNextFrameId() { + + _nextFrameId++; + + if (_nextFrameId == 0) { + // can't send 0 because that disables status response + _nextFrameId = 1; + } + + return _nextFrameId; +} + +void XBee::begin(int baud) +{ + Serial.begin(baud);//Serial.begin(baud); +} + +/*void XBee::setSerial(HardwareSerial serial) { + Serial = serial; +}*/ + +XBeeResponse& XBee::getResponse() { + return _response; +} + +// TODO how to convert response to proper subclass? +void XBee::getResponse(XBeeResponse &response) { + + response.setMsbLength(_response.getMsbLength()); + response.setLsbLength(_response.getLsbLength()); + response.setApiId(_response.getApiId()); + response.setFrameLength(_response.getFrameDataLength()); + + response.setFrameData(_response.getFrameData()); +} + +void XBee::readPacketUntilAvailable() { + while (!(getResponse().isAvailable() || getResponse().isError())) { + // read some more + readPacket(); + } +} + +bool XBee::readPacket(int timeout) { + + if (timeout < 0) { + return false; + } + + unsigned long start = millis(); + + while (int((millis() - start)) < timeout) { + + readPacket(); + + if (getResponse().isAvailable()) { + return true; + } else if (getResponse().isError()) { + return false; + } + } + + // timed out + return false; +} + +void XBee::readPacket() { + // reset previous response + if (_response.isAvailable() || _response.isError()) { + // discard previous packet and start over + resetResponse(); + } + + while (Serial.available()) { + + b = Serial.read(); + + if (_pos > 0 && b == START_BYTE && ATAP == 2) { + // new packet start before previous packeted completed -- discard previous packet and start over + _response.setErrorCode(UNEXPECTED_START_BYTE); + return; + } + + if (_pos > 0 && b == ESCAPE) { + if (Serial.available()) { + b = Serial.read(); + b = 0x20 ^ b; + } else { + // escape byte. next byte will be + _escape = true; + continue; + } + } + + if (_escape == true) { + b = 0x20 ^ b; + _escape = false; + } + + // checksum includes all bytes starting with api id + if (_pos >= API_ID_INDEX) { + _checksumTotal+= b; + } + + switch(_pos) { + case 0: + if (b == START_BYTE) { + _pos++; + } + + break; + case 1: + // length msb + _response.setMsbLength(b); + _pos++; + + break; + case 2: + // length lsb + _response.setLsbLength(b); + _pos++; + + break; + case 3: + _response.setApiId(b); + _pos++; + + break; + default: + // starts at fifth byte + + if (_pos > MAX_FRAME_DATA_SIZE) { + // exceed max size. should never occur + _response.setErrorCode(PACKET_EXCEEDS_BYTE_ARRAY_LENGTH); + return; + } + + // check if we're at the end of the packet + // packet length does not include start, length, or checksum bytes, so add 3 + if (_pos == (_response.getPacketLength() + 3)) { + // verify checksum + + //std::cout << "read checksum " << static_cast<unsigned int>(b) << " at pos " << static_cast<unsigned int>(_pos) << std::endl; + + if ((_checksumTotal & 0xff) == 0xff) { + _response.setChecksum(b); + _response.setAvailable(true); + + _response.setErrorCode(NO_ERROR); + } else { + // checksum failed + _response.setErrorCode(CHECKSUM_FAILURE); + } + + // minus 4 because we start after start,msb,lsb,api and up to but not including checksum + // e.g. if frame was one byte, _pos=4 would be the byte, pos=5 is the checksum, where end stop reading + _response.setFrameLength(_pos - 4); + + // reset state vars + _pos = 0; + + _checksumTotal = 0; + + return; + } else { + // add to packet array, starting with the fourth byte of the apiFrame + _response.getFrameData()[_pos - 4] = b; + _pos++; + } + } + } +} + +// it's peanut butter jelly time!! + +XBeeRequest::XBeeRequest(uint8_t apiId, uint8_t frameId) { + _apiId = apiId; + _frameId = frameId; +} + +void XBeeRequest::setFrameId(uint8_t frameId) { + _frameId = frameId; +} + +uint8_t XBeeRequest::getFrameId() { + return _frameId; +} + +uint8_t XBeeRequest::getApiId() { + return _apiId; +} + +void XBeeRequest::setApiId(uint8_t apiId) { + _apiId = apiId; +} + +//void XBeeRequest::reset() { +// _frameId = DEFAULT_FRAME_ID; +//} + +//uint8_t XBeeRequest::getPayloadOffset() { +// return _payloadOffset; +//} +// +//uint8_t XBeeRequest::setPayloadOffset(uint8_t payloadOffset) { +// _payloadOffset = payloadOffset; +//} + + +PayloadRequest::PayloadRequest(uint8_t apiId, uint8_t frameId, uint8_t *payload, uint8_t payloadLength) : XBeeRequest(apiId, frameId) { + _payloadPtr = payload; + _payloadLength = payloadLength; +} + +uint8_t* PayloadRequest::getPayload() { + return _payloadPtr; +} + +void PayloadRequest::setPayload(uint8_t* payload) { + _payloadPtr = payload; +} + +uint8_t PayloadRequest::getPayloadLength() { + return _payloadLength; +} + +void PayloadRequest::setPayloadLength(uint8_t payloadLength) { + _payloadLength = payloadLength; +} + + +XBeeAddress::XBeeAddress() { + +} + +XBeeAddress64::XBeeAddress64() : XBeeAddress() { + +} + +XBeeAddress64::XBeeAddress64(uint32_t msb, uint32_t lsb) : XBeeAddress() { + _msb = msb; + _lsb = lsb; +} + +uint32_t XBeeAddress64::getMsb() { + return _msb; +} + +void XBeeAddress64::setMsb(uint32_t msb) { + _msb = msb; +} + +uint32_t XBeeAddress64::getLsb() { + return _lsb; +} + +void XBeeAddress64::setLsb(uint32_t lsb) { + _lsb = lsb; +} + + +#ifdef SERIES_2 + +ZBTxRequest::ZBTxRequest() : PayloadRequest(ZB_TX_REQUEST, DEFAULT_FRAME_ID, NULL, 0) { + +} + +ZBTxRequest::ZBTxRequest(XBeeAddress64 &addr64, uint16_t addr16, uint8_t broadcastRadius, uint8_t option, uint8_t *data, uint8_t dataLength, uint8_t frameId): PayloadRequest(ZB_TX_REQUEST, frameId, data, dataLength) { + _addr64 = addr64; + _addr16 = addr16; + _broadcastRadius = broadcastRadius; + _option = option; +} + +ZBTxRequest::ZBTxRequest(XBeeAddress64 &addr64, uint8_t *data, uint8_t dataLength): PayloadRequest(ZB_TX_REQUEST, DEFAULT_FRAME_ID, data, dataLength) { + _addr64 = addr64; + _addr16 = ZB_BROADCAST_ADDRESS; + _broadcastRadius = ZB_BROADCAST_RADIUS_MAX_HOPS; + _option = ZB_TX_UNICAST; +} + +uint8_t ZBTxRequest::getFrameData(uint8_t pos) { + if (pos == 0) { + return (_addr64.getMsb() >> 24) & 0xff; + } else if (pos == 1) { + return (_addr64.getMsb() >> 16) & 0xff; + } else if (pos == 2) { + return (_addr64.getMsb() >> 8) & 0xff; + } else if (pos == 3) { + return _addr64.getMsb() & 0xff; + } else if (pos == 4) { + return (_addr64.getLsb() >> 24) & 0xff; + } else if (pos == 5) { + return (_addr64.getLsb() >> 16) & 0xff; + } else if (pos == 6) { + return (_addr64.getLsb() >> 8) & 0xff; + } else if (pos == 7) { + return _addr64.getLsb() & 0xff; + } else if (pos == 8) { + return (_addr16 >> 8) & 0xff; + } else if (pos == 9) { + return _addr16 & 0xff; + } else if (pos == 10) { + return _broadcastRadius; + } else if (pos == 11) { + return _option; + } else { + return getPayload()[pos - ZB_TX_API_LENGTH]; + } +} + +uint8_t ZBTxRequest::getFrameDataLength() { + return ZB_TX_API_LENGTH + getPayloadLength(); +} + +XBeeAddress64& ZBTxRequest::getAddress64() { + return _addr64; +} + +uint16_t ZBTxRequest::getAddress16() { + return _addr16; +} + +uint8_t ZBTxRequest::getBroadcastRadius() { + return _broadcastRadius; +} + +uint8_t ZBTxRequest::getOption() { + return _option; +} + +void ZBTxRequest::setAddress64(XBeeAddress64& addr64) { + _addr64 = addr64; +} + +void ZBTxRequest::setAddress16(uint16_t addr16) { + _addr16 = addr16; +} + +void ZBTxRequest::setBroadcastRadius(uint8_t broadcastRadius) { + _broadcastRadius = broadcastRadius; +} + +void ZBTxRequest::setOption(uint8_t option) { + _option = option; +} + +#endif + +#ifdef SERIES_1 + +Tx16Request::Tx16Request() : PayloadRequest(TX_16_REQUEST, DEFAULT_FRAME_ID, NULL, 0) { + +} + +Tx16Request::Tx16Request(uint16_t addr16, uint8_t option, uint8_t *data, uint8_t dataLength, uint8_t frameId) : PayloadRequest(TX_16_REQUEST, frameId, data, dataLength) { + _addr16 = addr16; + _option = option; +} + +Tx16Request::Tx16Request(uint16_t addr16, uint8_t *data, uint8_t dataLength) : PayloadRequest(TX_16_REQUEST, DEFAULT_FRAME_ID, data, dataLength) { + _addr16 = addr16; + _option = ACK_OPTION; +} + +uint8_t Tx16Request::getFrameData(uint8_t pos) { + + if (pos == 0) { + return (_addr16 >> 8) & 0xff; + } else if (pos == 1) { + return _addr16 & 0xff; + } else if (pos == 2) { + return _option; + } else { + return getPayload()[pos - TX_16_API_LENGTH]; + } +} + +uint8_t Tx16Request::getFrameDataLength() { + return TX_16_API_LENGTH + getPayloadLength(); +} + +uint16_t Tx16Request::getAddress16() { + return _addr16; +} + +void Tx16Request::setAddress16(uint16_t addr16) { + _addr16 = addr16; +} + +uint8_t Tx16Request::getOption() { + return _option; +} + +void Tx16Request::setOption(uint8_t option) { + _option = option; +} + +Tx64Request::Tx64Request() : PayloadRequest(TX_64_REQUEST, DEFAULT_FRAME_ID, NULL, 0) { + +} + +Tx64Request::Tx64Request(XBeeAddress64 &addr64, uint8_t option, uint8_t *data, uint8_t dataLength, uint8_t frameId) : PayloadRequest(TX_64_REQUEST, frameId, data, dataLength) { + _addr64 = addr64; + _option = option; +} + +Tx64Request::Tx64Request(XBeeAddress64 &addr64, uint8_t *data, uint8_t dataLength) : PayloadRequest(TX_64_REQUEST, DEFAULT_FRAME_ID, data, dataLength) { + _addr64 = addr64; + _option = ACK_OPTION; +} + +uint8_t Tx64Request::getFrameData(uint8_t pos) { + + if (pos == 0) { + return (_addr64.getMsb() >> 24) & 0xff; + } else if (pos == 1) { + return (_addr64.getMsb() >> 16) & 0xff; + } else if (pos == 2) { + return (_addr64.getMsb() >> 8) & 0xff; + } else if (pos == 3) { + return _addr64.getMsb() & 0xff; + } else if (pos == 4) { + return (_addr64.getLsb() >> 24) & 0xff; + } else if (pos == 5) { + return (_addr64.getLsb() >> 16) & 0xff; + } else if (pos == 6) { + return(_addr64.getLsb() >> 8) & 0xff; + } else if (pos == 7) { + return _addr64.getLsb() & 0xff; + } else if (pos == 8) { + return _option; + } else { + return getPayload()[pos - TX_64_API_LENGTH]; + } +} + +uint8_t Tx64Request::getFrameDataLength() { + return TX_64_API_LENGTH + getPayloadLength(); +} + +XBeeAddress64& Tx64Request::getAddress64() { + return _addr64; +} + +void Tx64Request::setAddress64(XBeeAddress64& addr64) { + _addr64 = addr64; +} + +uint8_t Tx64Request::getOption() { + return _option; +} + +void Tx64Request::setOption(uint8_t option) { + _option = option; +} + +#endif + +AtCommandRequest::AtCommandRequest() : XBeeRequest(AT_COMMAND_REQUEST, DEFAULT_FRAME_ID) { + _command = NULL; + clearCommandValue(); +} + +AtCommandRequest::AtCommandRequest(uint8_t *command, uint8_t *commandValue, uint8_t commandValueLength) : XBeeRequest(AT_COMMAND_REQUEST, DEFAULT_FRAME_ID) { + _command = command; + _commandValue = commandValue; + _commandValueLength = commandValueLength; +} + +AtCommandRequest::AtCommandRequest(uint8_t *command) : XBeeRequest(AT_COMMAND_REQUEST, DEFAULT_FRAME_ID) { + _command = command; + clearCommandValue(); +} + +uint8_t* AtCommandRequest::getCommand() { + return _command; +} + +uint8_t* AtCommandRequest::getCommandValue() { + return _commandValue; +} + +uint8_t AtCommandRequest::getCommandValueLength() { + return _commandValueLength; +} + +void AtCommandRequest::setCommand(uint8_t* command) { + _command = command; +} + +void AtCommandRequest::setCommandValue(uint8_t* value) { + _commandValue = value; +} + +void AtCommandRequest::setCommandValueLength(uint8_t length) { + _commandValueLength = length; +} + +uint8_t AtCommandRequest::getFrameData(uint8_t pos) { + + if (pos == 0) { + return _command[0]; + } else if (pos == 1) { + return _command[1]; + } else { + return _commandValue[pos - AT_COMMAND_API_LENGTH]; + } +} + +void AtCommandRequest::clearCommandValue() { + _commandValue = NULL; + _commandValueLength = 0; +} + +//void AtCommandRequest::reset() { +// XBeeRequest::reset(); +//} + +uint8_t AtCommandRequest::getFrameDataLength() { + // command is 2 byte + length of value + return AT_COMMAND_API_LENGTH + _commandValueLength; +} + +XBeeAddress64 RemoteAtCommandRequest::broadcastAddress64 = XBeeAddress64(0x0, BROADCAST_ADDRESS); + +RemoteAtCommandRequest::RemoteAtCommandRequest() : AtCommandRequest(NULL, NULL, 0) { + _remoteAddress16 = 0; + _applyChanges = false; + setApiId(REMOTE_AT_REQUEST); +} + +RemoteAtCommandRequest::RemoteAtCommandRequest(uint16_t remoteAddress16, uint8_t *command, uint8_t *commandValue, uint8_t commandValueLength) : AtCommandRequest(command, commandValue, commandValueLength) { + _remoteAddress64 = broadcastAddress64; + _remoteAddress16 = remoteAddress16; + _applyChanges = true; + setApiId(REMOTE_AT_REQUEST); +} + +RemoteAtCommandRequest::RemoteAtCommandRequest(uint16_t remoteAddress16, uint8_t *command) : AtCommandRequest(command, NULL, 0) { + _remoteAddress64 = broadcastAddress64; + _remoteAddress16 = remoteAddress16; + _applyChanges = false; + setApiId(REMOTE_AT_REQUEST); +} + +RemoteAtCommandRequest::RemoteAtCommandRequest(XBeeAddress64 &remoteAddress64, uint8_t *command, uint8_t *commandValue, uint8_t commandValueLength) : AtCommandRequest(command, commandValue, commandValueLength) { + _remoteAddress64 = remoteAddress64; + // don't worry.. works for series 1 too! + _remoteAddress16 = ZB_BROADCAST_ADDRESS; + _applyChanges = true; + setApiId(REMOTE_AT_REQUEST); +} + +RemoteAtCommandRequest::RemoteAtCommandRequest(XBeeAddress64 &remoteAddress64, uint8_t *command) : AtCommandRequest(command, NULL, 0) { + _remoteAddress64 = remoteAddress64; + _remoteAddress16 = ZB_BROADCAST_ADDRESS; + _applyChanges = false; + setApiId(REMOTE_AT_REQUEST); +} + +uint16_t RemoteAtCommandRequest::getRemoteAddress16() { + return _remoteAddress16; +} + +void RemoteAtCommandRequest::setRemoteAddress16(uint16_t remoteAddress16) { + _remoteAddress16 = remoteAddress16; +} + +XBeeAddress64& RemoteAtCommandRequest::getRemoteAddress64() { + return _remoteAddress64; +} + +void RemoteAtCommandRequest::setRemoteAddress64(XBeeAddress64 &remoteAddress64) { + _remoteAddress64 = remoteAddress64; +} + +bool RemoteAtCommandRequest::getApplyChanges() { + return _applyChanges; +} + +void RemoteAtCommandRequest::setApplyChanges(bool applyChanges) { + _applyChanges = applyChanges; +} + + +uint8_t RemoteAtCommandRequest::getFrameData(uint8_t pos) { + if (pos == 0) { + return (_remoteAddress64.getMsb() >> 24) & 0xff; + } else if (pos == 1) { + return (_remoteAddress64.getMsb() >> 16) & 0xff; + } else if (pos == 2) { + return (_remoteAddress64.getMsb() >> 8) & 0xff; + } else if (pos == 3) { + return _remoteAddress64.getMsb() & 0xff; + } else if (pos == 4) { + return (_remoteAddress64.getLsb() >> 24) & 0xff; + } else if (pos == 5) { + return (_remoteAddress64.getLsb() >> 16) & 0xff; + } else if (pos == 6) { + return(_remoteAddress64.getLsb() >> 8) & 0xff; + } else if (pos == 7) { + return _remoteAddress64.getLsb() & 0xff; + } else if (pos == 8) { + return (_remoteAddress16 >> 8) & 0xff; + } else if (pos == 9) { + return _remoteAddress16 & 0xff; + } else if (pos == 10) { + return _applyChanges ? 2: 0; + } else if (pos == 11) { + return getCommand()[0]; + } else if (pos == 12) { + return getCommand()[1]; + } else { + return getCommandValue()[pos - REMOTE_AT_COMMAND_API_LENGTH]; + } +} + +uint8_t RemoteAtCommandRequest::getFrameDataLength() { + return REMOTE_AT_COMMAND_API_LENGTH + getCommandValueLength(); +} + + +// TODO +//GenericRequest::GenericRequest(uint8_t* frame, uint8_t len, uint8_t apiId): XBeeRequest(apiId, *(frame), len) { +// _frame = frame; +//} + +void XBee::send(XBeeRequest &request) { + // the new new deal + + sendByte(START_BYTE, false); + + // send length + uint8_t msbLen = ((request.getFrameDataLength() + 2) >> 8) & 0xff; + uint8_t lsbLen = (request.getFrameDataLength() + 2) & 0xff; + + sendByte(msbLen, true); + sendByte(lsbLen, true); + + // api id + sendByte(request.getApiId(), true); + sendByte(request.getFrameId(), true); + + uint8_t checksum = 0; + + // compute checksum, start at api id + checksum+= request.getApiId(); + checksum+= request.getFrameId(); + + //std::cout << "frame length is " << static_cast<unsigned int>(request.getFrameDataLength()) << std::endl; + + for (int i = 0; i < request.getFrameDataLength(); i++) { +// std::cout << "sending byte [" << static_cast<unsigned int>(i) << "] " << std::endl; + sendByte(request.getFrameData(i), true); + checksum+= request.getFrameData(i); + } + + // perform 2s complement + checksum = 0xff - checksum; + +// std::cout << "checksum is " << static_cast<unsigned int>(checksum) << std::endl; + + // send checksum + sendByte(checksum, true); + + // send packet + //Serial.flush(); +} + +void XBee::sendByte(uint8_t b, bool escape) { + + if (escape && (b == START_BYTE || b == ESCAPE || b == XON || b == XOFF)) { +// std::cout << "escaping byte [" << toHexString(b) << "] " << std::endl; + Serial.print(ESCAPE, BYTE); + Serial.print(b ^ 0x20, BYTE); + } else { + Serial.print(b, BYTE); + } +} + diff --git a/src/XBee/XBee.h b/src/XBee/XBee.h new file mode 100755 index 0000000..1874ec3 --- /dev/null +++ b/src/XBee/XBee.h @@ -0,0 +1,964 @@ +/** + * Copyright (c) 2009 Andrew Rapp. All rights reserved. + * + * This file is part of XBee-Arduino. + * + * XBee-Arduino is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * XBee-Arduino 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. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBee-Arduino. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef XBee_h +#define XBee_h + +#include <libmary.h> +#include <inttypes.h> + +#ifdef __cplusplus + extern "C" { +#endif + + + + + +//#define SERIES_1 +#define SERIES_2 + +// set to ATAP value of XBee. AP=2 is recommended +#define ATAP 2 + +#define START_BYTE 0x7e +#define ESCAPE 0x7d +#define XON 0x11 +#define XOFF 0x13 + + +#ifndef NULL + #define NULL 0 +#endif +// This value determines the size of the byte array for receiving RX packets +// Most users won't be dealing with packets this large so you can adjust this +// value to reduce memory consumption. But, remember that +// if a RX packet exceeds this size, it cannot be parsed! + +// This value is determined by the largest packet size (100 byte payload + 64-bit address + option byte and rssi byte) of a series 1 radio +#define MAX_FRAME_DATA_SIZE 110 + +#define BROADCAST_ADDRESS 0xffff +#define ZB_BROADCAST_ADDRESS 0xfffe + +// the non-variable length of the frame data (not including frame id or api id or variable data size (e.g. payload, at command set value) +#define ZB_TX_API_LENGTH 12 +#define TX_16_API_LENGTH 3 +#define TX_64_API_LENGTH 9 +#define AT_COMMAND_API_LENGTH 2 +#define REMOTE_AT_COMMAND_API_LENGTH 13 +// start/length(2)/api/frameid/checksum bytes +#define PACKET_OVERHEAD_LENGTH 6 +// api is always the third byte in packet +#define API_ID_INDEX 3 + +// frame position of rssi byte +#define RX_16_RSSI_OFFSET 2 +#define RX_64_RSSI_OFFSET 8 + +#define DEFAULT_FRAME_ID 1 +#define NO_RESPONSE_FRAME_ID 0 + +// TODO put in tx16 class +#define ACK_OPTION 0 +#define DISABLE_ACK_OPTION 1 +#define BROADCAST_OPTION 4 + +// RX options +#define ZB_PACKET_ACKNOWLEDGED 0x01 +#define ZB_BROADCAST_PACKET 0x02 + +// not everything is implemented! +/** + * Api Id constants + */ +#define TX_64_REQUEST 0x0 +#define TX_16_REQUEST 0x1 +#define AT_COMMAND_REQUEST 0x08 +#define AT_COMMAND_QUEUE_REQUEST 0x09 +#define REMOTE_AT_REQUEST 0x17 +#define ZB_TX_REQUEST 0x10 +#define ZB_EXPLICIT_TX_REQUEST 0x11 +#define RX_64_RESPONSE 0x80 +#define RX_16_RESPONSE 0x81 +#define RX_64_IO_RESPONSE 0x82 +#define RX_16_IO_RESPONSE 0x83 +#define AT_RESPONSE 0x88 +#define TX_STATUS_RESPONSE 0x89 +#define MODEM_STATUS_RESPONSE 0x8a +#define ZB_RX_RESPONSE 0x90 +#define ZB_EXPLICIT_RX_RESPONSE 0x91 +#define ZB_TX_STATUS_RESPONSE 0x8b +#define ZB_IO_SAMPLE_RESPONSE 0x92 +#define ZB_IO_NODE_IDENTIFIER_RESPONSE 0x95 +#define AT_COMMAND_RESPONSE 0x88 +#define REMOTE_AT_COMMAND_RESPONSE 0x97 + + +/** + * TX STATUS constants + */ +#define SUCCESS 0x0 +#define CCA_FAILURE 0x2 +#define INVALID_DESTINATION_ENDPOINT_SUCCESS 0x15 +#define NETWORK_ACK_FAILURE 0x21 +#define NOT_JOINED_TO_NETWORK 0x22 +#define SELF_ADDRESSED 0x23 +#define ADDRESS_NOT_FOUND 0x24 +#define ROUTE_NOT_FOUND 0x25 +#define PAYLOAD_TOO_LARGE 0x74 + +// modem status +#define HARDWARE_RESET 0 +#define WATCHDOG_TIMER_RESET 1 +#define ASSOCIATED 2 +#define DISASSOCIATED 3 +#define SYNCHRONIZATION_LOST 4 +#define COORDINATOR_REALIGNMENT 5 +#define COORDINATOR_STARTED 6 + +#define ZB_BROADCAST_RADIUS_MAX_HOPS 0 + +#define ZB_TX_UNICAST 0 +#define ZB_TX_BROADCAST 8 + +#define AT_OK 0 +#define AT_ERROR 1 +#define AT_INVALID_COMMAND 2 +#define AT_INVALID_PARAMETER 3 +#define AT_NO_RESPONSE 4 + +#define NO_ERROR 0 +#define CHECKSUM_FAILURE 1 +#define PACKET_EXCEEDS_BYTE_ARRAY_LENGTH 2 +#define UNEXPECTED_START_BYTE 3 + +/** + * The super class of all XBee responses (RX packets) + * Users should never attempt to create an instance of this class; instead + * create an instance of a subclass + * It is recommend to reuse subclasses to conserve memory + */ +class XBeeResponse { +public: + //static const int MODEM_STATUS = 0x8a; + /** + * Default constructor + */ + XBeeResponse(); + /** + * Returns Api Id of the response + */ + uint8_t getApiId(); + void setApiId(uint8_t apiId); + /** + * Returns the MSB length of the packet + */ + uint8_t getMsbLength(); + void setMsbLength(uint8_t msbLength); + /** + * Returns the LSB length of the packet + */ + uint8_t getLsbLength(); + void setLsbLength(uint8_t lsbLength); + /** + * Returns the packet checksum + */ + uint8_t getChecksum(); + void setChecksum(uint8_t checksum); + /** + * Returns the length of the frame data: all bytes after the api id, and prior to the checksum + * Note up to release 0.1.2, this was incorrectly including the checksum in the length. + */ + uint8_t getFrameDataLength(); + void setFrameData(uint8_t* frameDataPtr); + /** + * Returns the buffer that contains the response. + * Starts with byte that follows API ID and includes all bytes prior to the checksum + * Length is specified by getFrameDataLength() + * Note: Unlike Digi's definition of the frame data, this does not start with the API ID.. + * The reason for this is all responses include an API ID, whereas my frame data + * includes only the API specific data. + */ + uint8_t* getFrameData(); + + void setFrameLength(uint8_t frameLength); + // to support future 65535 byte packets I guess + /** + * Returns the length of the packet + */ + uint16_t getPacketLength(); + /** + * Resets the response to default values + */ + void reset(); + /** + * Initializes the response + */ + void init(); +#ifdef SERIES_2 + /** + * Call with instance of ZBTxStatusResponse class only if getApiId() == ZB_TX_STATUS_RESPONSE + * to populate response + */ + void getZBTxStatusResponse(XBeeResponse &response); + /** + * Call with instance of ZBRxResponse class only if getApiId() == ZB_RX_RESPONSE + * to populate response + */ + void getZBRxResponse(XBeeResponse &response); + /** + * Call with instance of ZBRxIoSampleResponse class only if getApiId() == ZB_IO_SAMPLE_RESPONSE + * to populate response + */ + void getZBRxIoSampleResponse(XBeeResponse &response); +#endif +#ifdef SERIES_1 + /** + * Call with instance of TxStatusResponse only if getApiId() == TX_STATUS_RESPONSE + */ + void getTxStatusResponse(XBeeResponse &response); + /** + * Call with instance of Rx16Response only if getApiId() == RX_16_RESPONSE + */ + void getRx16Response(XBeeResponse &response); + /** + * Call with instance of Rx64Response only if getApiId() == RX_64_RESPONSE + */ + void getRx64Response(XBeeResponse &response); + /** + * Call with instance of Rx16IoSampleResponse only if getApiId() == RX_16_IO_RESPONSE + */ + void getRx16IoSampleResponse(XBeeResponse &response); + /** + * Call with instance of Rx64IoSampleResponse only if getApiId() == RX_64_IO_RESPONSE + */ + void getRx64IoSampleResponse(XBeeResponse &response); +#endif + /** + * Call with instance of AtCommandResponse only if getApiId() == AT_COMMAND_RESPONSE + */ + void getAtCommandResponse(XBeeResponse &responses); + /** + * Call with instance of RemoteAtCommandResponse only if getApiId() == REMOTE_AT_COMMAND_RESPONSE + */ + void getRemoteAtCommandResponse(XBeeResponse &response); + /** + * Call with instance of ModemStatusResponse only if getApiId() == MODEM_STATUS_RESPONSE + */ + void getModemStatusResponse(XBeeResponse &response); + /** + * Returns true if the response has been successfully parsed and is complete and ready for use + */ + bool isAvailable(); + void setAvailable(bool complete); + /** + * Returns true if the response contains errors + */ + bool isError(); + /** + * Returns an error code, or zero, if successful. + * Error codes include: CHECKSUM_FAILURE, PACKET_EXCEEDS_BYTE_ARRAY_LENGTH, UNEXPECTED_START_BYTE + */ + uint8_t getErrorCode(); + void setErrorCode(uint8_t errorCode); +protected: + // pointer to frameData + uint8_t* _frameDataPtr; +private: + void setCommon(XBeeResponse &target); + uint8_t _apiId; + uint8_t _msbLength; + uint8_t _lsbLength; + uint8_t _checksum; + uint8_t _frameLength; + bool _complete; + uint8_t _errorCode; +}; + +class XBeeAddress { +public: + XBeeAddress(); +}; + +/** + * Represents a 64-bit XBee Address + */ +class XBeeAddress64 : public XBeeAddress { +public: + XBeeAddress64(uint32_t msb, uint32_t lsb); + XBeeAddress64(); + uint32_t getMsb(); + uint32_t getLsb(); + void setMsb(uint32_t msb); + void setLsb(uint32_t lsb); +private: + uint32_t _msb; + uint32_t _lsb; +}; + +//class XBeeAddress16 : public XBeeAddress { +//public: +// XBeeAddress16(uint16_t addr); +// XBeeAddress16(); +// uint16_t getAddress(); +// void setAddress(uint16_t addr); +//private: +// uint16_t _addr; +//}; + +/** + * This class is extended by all Responses that include a frame id + */ +class FrameIdResponse : public XBeeResponse { +public: + FrameIdResponse(); + uint8_t getFrameId(); +private: + uint8_t _frameId; +}; + +/** + * Common functionality for both Series 1 and 2 data RX data packets + */ +class RxDataResponse : public XBeeResponse { +public: + RxDataResponse(); + /** + * Returns the specified index of the payload. The index may be 0 to getDataLength() - 1 + * This method is deprecated; use uint8_t* getData() + */ + uint8_t getData(int index); + /** + * Returns the payload array. This may be accessed from index 0 to getDataLength() - 1 + */ + uint8_t* getData(); + /** + * Returns the length of the payload + */ + virtual uint8_t getDataLength() = 0; + /** + * Returns the position in the frame data where the data begins + */ + virtual uint8_t getDataOffset() = 0; +}; + +// getResponse to return the proper subclass: +// we maintain a pointer to each type of response, when a response is parsed, it is allocated only if NULL +// can we allocate an object in a function? + +#ifdef SERIES_2 +/** + * Represents a Series 2 TX status packet + */ +class ZBTxStatusResponse : public FrameIdResponse { + public: + ZBTxStatusResponse(); + uint16_t getRemoteAddress(); + uint8_t getTxRetryCount(); + uint8_t getDeliveryStatus(); + uint8_t getDiscoveryStatus(); + bool isSuccess(); +}; + +/** + * Represents a Series 2 RX packet + */ +class ZBRxResponse : public RxDataResponse { +public: + ZBRxResponse(); + XBeeAddress64& getRemoteAddress64(); + uint16_t getRemoteAddress16(); + uint8_t getOption(); + uint8_t getDataLength(); + // frame position where data starts + uint8_t getDataOffset(); +private: + XBeeAddress64 _remoteAddress64; +}; + +/** + * Represents a Series 2 RX I/O Sample packet + */ +class ZBRxIoSampleResponse : public ZBRxResponse { +public: + ZBRxIoSampleResponse(); + bool containsAnalog(); + bool containsDigital(); + /** + * Returns true if the pin is enabled + */ + bool isAnalogEnabled(uint8_t pin); + /** + * Returns true if the pin is enabled + */ + bool isDigitalEnabled(uint8_t pin); + /** + * Returns the 10-bit analog reading of the specified pin. + * Valid pins include ADC:xxx. + */ + uint16_t getAnalog(uint8_t pin); + /** + * Returns true if the specified pin is high/on. + * Valid pins include DIO:xxx. + */ + bool isDigitalOn(uint8_t pin); + uint8_t getDigitalMaskMsb(); + uint8_t getDigitalMaskLsb(); + uint8_t getAnalogMask(); +}; + +#endif + +#ifdef SERIES_1 +/** + * Represents a Series 1 TX Status packet + */ +class TxStatusResponse : public FrameIdResponse { + public: + TxStatusResponse(); + uint8_t getStatus(); + bool isSuccess(); +}; + +/** + * Represents a Series 1 RX packet + */ +class RxResponse : public RxDataResponse { +public: + RxResponse(); + // remember rssi is negative but this is unsigned byte so it's up to you to convert + uint8_t getRssi(); + uint8_t getOption(); + bool isAddressBroadcast(); + bool isPanBroadcast(); + uint8_t getDataLength(); + uint8_t getDataOffset(); + virtual uint8_t getRssiOffset() = 0; +}; + +/** + * Represents a Series 1 16-bit address RX packet + */ +class Rx16Response : public RxResponse { +public: + Rx16Response(); + uint8_t getRssiOffset(); + uint16_t getRemoteAddress16(); +protected: + uint16_t _remoteAddress; +}; + +/** + * Represents a Series 1 64-bit address RX packet + */ +class Rx64Response : public RxResponse { +public: + Rx64Response(); + uint8_t getRssiOffset(); + XBeeAddress64& getRemoteAddress64(); +private: + XBeeAddress64 _remoteAddress; +}; + +/** + * Represents a Series 1 RX I/O Sample packet + */ +class RxIoSampleBaseResponse : public RxResponse { + public: + RxIoSampleBaseResponse(); + /** + * Returns the number of samples in this packet + */ + uint8_t getSampleSize(); + bool containsAnalog(); + bool containsDigital(); + /** + * Returns true if the specified analog pin is enabled + */ + bool isAnalogEnabled(uint8_t pin); + /** + * Returns true if the specified digital pin is enabled + */ + bool isDigitalEnabled(uint8_t pin); + /** + * Returns the 10-bit analog reading of the specified pin. + * Valid pins include ADC:0-5. Sample index starts at 0 + */ + uint16_t getAnalog(uint8_t pin, uint8_t sample); + /** + * Returns true if the specified pin is high/on. + * Valid pins include DIO:0-8. Sample index starts at 0 + */ + bool isDigitalOn(uint8_t pin, uint8_t sample); + uint8_t getSampleOffset(); + private: +}; + +class Rx16IoSampleResponse : public RxIoSampleBaseResponse { +public: + Rx16IoSampleResponse(); + uint16_t getRemoteAddress16(); + uint8_t getRssiOffset(); + +}; + +class Rx64IoSampleResponse : public RxIoSampleBaseResponse { +public: + Rx64IoSampleResponse(); + XBeeAddress64& getRemoteAddress64(); + uint8_t getRssiOffset(); +private: + XBeeAddress64 _remoteAddress; +}; + +#endif + +/** + * Represents a Modem Status RX packet + */ +class ModemStatusResponse : public XBeeResponse { +public: + ModemStatusResponse(); + uint8_t getStatus(); +}; + +/** + * Represents an AT Command RX packet + */ +class AtCommandResponse : public FrameIdResponse { + public: + AtCommandResponse(); + /** + * Returns an array containing the two character command + */ + uint8_t* getCommand(); + /** + * Returns the command status code. + * Zero represents a successful command + */ + uint8_t getStatus(); + /** + * Returns an array containing the command value. + * This is only applicable to query commands. + */ + uint8_t* getValue(); + /** + * Returns the length of the command value array. + */ + uint8_t getValueLength(); + /** + * Returns true if status equals AT_OK + */ + bool isOk(); +}; + +/** + * Represents a Remote AT Command RX packet + */ +class RemoteAtCommandResponse : public AtCommandResponse { + public: + RemoteAtCommandResponse(); + /** + * Returns an array containing the two character command + */ + uint8_t* getCommand(); + /** + * Returns the command status code. + * Zero represents a successful command + */ + uint8_t getStatus(); + /** + * Returns an array containing the command value. + * This is only applicable to query commands. + */ + uint8_t* getValue(); + /** + * Returns the length of the command value array. + */ + uint8_t getValueLength(); + /** + * Returns the 16-bit address of the remote radio + */ + uint16_t getRemoteAddress16(); + /** + * Returns the 64-bit address of the remote radio + */ + XBeeAddress64& getRemoteAddress64(); + /** + * Returns true if command was successful + */ + bool isOk(); + private: + XBeeAddress64 _remoteAddress64; +}; + + +/** + * Super class of all XBee requests (TX packets) + * Users should never create an instance of this class; instead use an subclass of this class + * It is recommended to reuse Subclasses of the class to conserve memory + * <p/> + * This class allocates a buffer to + */ +class XBeeRequest { +public: + /** + * Constructor + * TODO make protected + */ + XBeeRequest(uint8_t apiId, uint8_t frameId); + /** + * Sets the frame id. Must be between 1 and 255 inclusive to get a TX status response. + */ + void setFrameId(uint8_t frameId); + /** + * Returns the frame id + */ + uint8_t getFrameId(); + /** + * Returns the API id + */ + uint8_t getApiId(); + // setting = 0 makes this a pure virtual function, meaning the subclass must implement, like abstract in java + /** + * Starting after the frame id (pos = 0) and up to but not including the checksum + * Note: Unlike Digi's definition of the frame data, this does not start with the API ID. + * The reason for this is the API ID and Frame ID are common to all requests, whereas my definition of + * frame data is only the API specific data. + */ + virtual uint8_t getFrameData(uint8_t pos) = 0; + /** + * Returns the size of the api frame (not including frame id or api id or checksum). + */ + virtual uint8_t getFrameDataLength() = 0; + //void reset(); +protected: + void setApiId(uint8_t apiId); +private: + uint8_t _apiId; + uint8_t _frameId; +}; + +// TODO add reset/clear method since responses are often reused +/** + * Primary interface for communicating with an XBee Radio. + * This class provides methods for sending and receiving packets with an XBee radio via the serial port. + * The XBee radio must be configured in API (packet) mode (AP=2) + * in order to use this software. + * <p/> + * Since this code is designed to run on a microcontroller, with only one thread, you are responsible for reading the + * data off the serial buffer in a timely manner. This involves a call to a variant of readPacket(...). + * If your serial port is receiving data faster than you are reading, you can expect to lose packets. + * Arduino only has a 128 byte serial buffer so it can easily overflow if two or more packets arrive + * without a call to readPacket(...) + * <p/> + * In order to conserve resources, this class only supports storing one response packet in memory at a time. + * This means that you must fully consume the packet prior to calling readPacket(...), because calling + * readPacket(...) overwrites the previous response. + * <p/> + * This class creates an array of size MAX_FRAME_DATA_SIZE for storing the response packet. You may want + * to adjust this value to conserve memory. + * + * \author Andrew Rapp + */ +class XBee { +public: + XBee(); + // for eclipse dev only + //void setSerial(HardwareSerial serial); + /** + * Reads all available serial bytes until a packet is parsed, an error occurs, or the buffer is empty. + * You may call <i>xbee</i>.getResponse().isAvailable() after calling this method to determine if + * a packet is ready, or <i>xbee</i>.getResponse().isError() to determine if + * a error occurred. + * <p/> + * This method should always return quickly since it does not wait for serial data to arrive. + * You will want to use this method if you are doing other timely stuff in your loop, where + * a delay would cause problems. + * NOTE: calling this method resets the current response, so make sure you first consume the + * current response + */ + void readPacket(); + /** + * Waits a maximum of <i>timeout</i> milliseconds for a response packet before timing out; returns true if packet is read. + * Returns false if timeout or error occurs. + */ + bool readPacket(int timeout); + /** + * Reads until a packet is received or an error occurs. + * Caution: use this carefully since if you don't get a response, your Arduino code will hang on this + * call forever!! often it's better to use a timeout: readPacket(int) + */ + void readPacketUntilAvailable(); + /** + * Starts the serial connection at the supplied baud rate + */ + void begin(int baud); + void getResponse(XBeeResponse &response); + /** + * Returns a reference to the current response + * Note: once readPacket is called again this response will be overwritten! + */ + XBeeResponse& getResponse(); + /** + * Sends a XBeeRequest (TX packet) out the serial port + */ + void send(XBeeRequest &request); + //uint8_t sendAndWaitForResponse(XBeeRequest &request, int timeout); + /** + * Returns a sequential frame id between 1 and 255 + */ + uint8_t getNextFrameId(); +private: + void sendByte(uint8_t b, bool escape); + void resetResponse(); + XBeeResponse _response; + bool _escape; + // current packet position for response. just a state variable for packet parsing and has no relevance for the response otherwise + uint8_t _pos; + // last byte read + uint8_t b; + uint8_t _checksumTotal; + uint8_t _nextFrameId; + // buffer for incoming RX packets. holds only the api specific frame data, starting after the api id byte and prior to checksum + uint8_t _responseFrameData[MAX_FRAME_DATA_SIZE]; +}; + +/** + * All TX packets that support payloads extend this class + */ +class PayloadRequest : public XBeeRequest { +public: + PayloadRequest(uint8_t apiId, uint8_t frameId, uint8_t *payload, uint8_t payloadLength); + /** + * Returns the payload of the packet, if not null + */ + uint8_t* getPayload(); + /** + * Sets the payload array + */ + void setPayload(uint8_t* payloadPtr); + /** + * Returns the length of the payload array, as specified by the user. + */ + uint8_t getPayloadLength(); + /** + * Sets the length of the payload to include in the request. For example if the payload array + * is 50 bytes and you only want the first 10 to be included in the packet, set the length to 10. + * Length must be <= to the array length. + */ + void setPayloadLength(uint8_t payloadLength); +private: + uint8_t* _payloadPtr; + uint8_t _payloadLength; +}; + +#ifdef SERIES_1 + +/** + * Represents a Series 1 TX packet that corresponds to Api Id: TX_16_REQUEST + * <p/> + * Be careful not to send a data array larger than the max packet size of your radio. + * This class does not perform any validation of packet size and there will be no indication + * if the packet is too large, other than you will not get a TX Status response. + * The datasheet says 100 bytes is the maximum, although that could change in future firmware. + */ +class Tx16Request : public PayloadRequest { +public: + Tx16Request(uint16_t addr16, uint8_t option, uint8_t *payload, uint8_t payloadLength, uint8_t frameId); + /** + * Creates a Unicast Tx16Request with the ACK option and DEFAULT_FRAME_ID + */ + Tx16Request(uint16_t addr16, uint8_t *payload, uint8_t payloadLength); + /** + * Creates a default instance of this class. At a minimum you must specify + * a payload, payload length and a destination address before sending this request. + */ + Tx16Request(); + uint16_t getAddress16(); + void setAddress16(uint16_t addr16); + uint8_t getOption(); + void setOption(uint8_t option); + uint8_t getFrameData(uint8_t pos); + uint8_t getFrameDataLength(); +protected: +private: + uint16_t _addr16; + uint8_t _option; +}; + +/** + * Represents a Series 1 TX packet that corresponds to Api Id: TX_64_REQUEST + * + * Be careful not to send a data array larger than the max packet size of your radio. + * This class does not perform any validation of packet size and there will be no indication + * if the packet is too large, other than you will not get a TX Status response. + * The datasheet says 100 bytes is the maximum, although that could change in future firmware. + */ +class Tx64Request : public PayloadRequest { +public: + Tx64Request(XBeeAddress64 &addr64, uint8_t option, uint8_t *payload, uint8_t payloadLength, uint8_t frameId); + /** + * Creates a unicast Tx64Request with the ACK option and DEFAULT_FRAME_ID + */ + Tx64Request(XBeeAddress64 &addr64, uint8_t *payload, uint8_t payloadLength); + /** + * Creates a default instance of this class. At a minimum you must specify + * a payload, payload length and a destination address before sending this request. + */ + Tx64Request(); + XBeeAddress64& getAddress64(); + void setAddress64(XBeeAddress64& addr64); + // TODO move option to superclass + uint8_t getOption(); + void setOption(uint8_t option); + uint8_t getFrameData(uint8_t pos); + uint8_t getFrameDataLength(); +private: + XBeeAddress64 _addr64; + uint8_t _option; +}; + +#endif + + +#ifdef SERIES_2 + +/** + * Represents a Series 2 TX packet that corresponds to Api Id: ZB_TX_REQUEST + * + * Be careful not to send a data array larger than the max packet size of your radio. + * This class does not perform any validation of packet size and there will be no indication + * if the packet is too large, other than you will not get a TX Status response. + * The datasheet says 72 bytes is the maximum for ZNet firmware and ZB Pro firmware provides + * the ATNP command to get the max supported payload size. This command is useful since the + * maximum payload size varies according to certain settings, such as encryption. + * ZB Pro firmware provides a PAYLOAD_TOO_LARGE that is returned if payload size + * exceeds the maximum. + */ +class ZBTxRequest : public PayloadRequest { +public: + /** + * Creates a unicast ZBTxRequest with the ACK option and DEFAULT_FRAME_ID + */ + ZBTxRequest(XBeeAddress64 &addr64, uint8_t *payload, uint8_t payloadLength); + ZBTxRequest(XBeeAddress64 &addr64, uint16_t addr16, uint8_t broadcastRadius, uint8_t option, uint8_t *payload, uint8_t payloadLength, uint8_t frameId); + /** + * Creates a default instance of this class. At a minimum you must specify + * a payload, payload length and a destination address before sending this request. + */ + ZBTxRequest(); + XBeeAddress64& getAddress64(); + uint16_t getAddress16(); + uint8_t getBroadcastRadius(); + uint8_t getOption(); + void setAddress64(XBeeAddress64& addr64); + void setAddress16(uint16_t addr16); + void setBroadcastRadius(uint8_t broadcastRadius); + void setOption(uint8_t option); +protected: + // declare virtual functions + uint8_t getFrameData(uint8_t pos); + uint8_t getFrameDataLength(); +private: + XBeeAddress64 _addr64; + uint16_t _addr16; + uint8_t _broadcastRadius; + uint8_t _option; +}; + +#endif + +/** + * Represents an AT Command TX packet + * The command is used to configure the serially connected XBee radio + */ +class AtCommandRequest : public XBeeRequest { +public: + AtCommandRequest(); + AtCommandRequest(uint8_t *command); + AtCommandRequest(uint8_t *command, uint8_t *commandValue, uint8_t commandValueLength); + uint8_t getFrameData(uint8_t pos); + uint8_t getFrameDataLength(); + uint8_t* getCommand(); + void setCommand(uint8_t* command); + uint8_t* getCommandValue(); + void setCommandValue(uint8_t* command); + uint8_t getCommandValueLength(); + void setCommandValueLength(uint8_t length); + /** + * Clears the optional commandValue and commandValueLength so that a query may be sent + */ + void clearCommandValue(); + //void reset(); +private: + uint8_t *_command; + uint8_t *_commandValue; + uint8_t _commandValueLength; +}; + +/** + * Represents an Remote AT Command TX packet + * The command is used to configure a remote XBee radio + */ +class RemoteAtCommandRequest : public AtCommandRequest { +public: + RemoteAtCommandRequest(); + /** + * Creates a RemoteAtCommandRequest with 16-bit address to set a command. + * 64-bit address defaults to broadcast and applyChanges is true. + */ + RemoteAtCommandRequest(uint16_t remoteAddress16, uint8_t *command, uint8_t *commandValue, uint8_t commandValueLength); + /** + * Creates a RemoteAtCommandRequest with 16-bit address to query a command. + * 64-bit address defaults to broadcast and applyChanges is true. + */ + RemoteAtCommandRequest(uint16_t remoteAddress16, uint8_t *command); + /** + * Creates a RemoteAtCommandRequest with 64-bit address to set a command. + * 16-bit address defaults to broadcast and applyChanges is true. + */ + RemoteAtCommandRequest(XBeeAddress64 &remoteAddress64, uint8_t *command, uint8_t *commandValue, uint8_t commandValueLength); + /** + * Creates a RemoteAtCommandRequest with 16-bit address to query a command. + * 16-bit address defaults to broadcast and applyChanges is true. + */ + RemoteAtCommandRequest(XBeeAddress64 &remoteAddress64, uint8_t *command); + uint16_t getRemoteAddress16(); + void setRemoteAddress16(uint16_t remoteAddress16); + XBeeAddress64& getRemoteAddress64(); + void setRemoteAddress64(XBeeAddress64 &remoteAddress64); + bool getApplyChanges(); + void setApplyChanges(bool applyChanges); + uint8_t getFrameData(uint8_t pos); + uint8_t getFrameDataLength(); + static XBeeAddress64 broadcastAddress64; +// static uint16_t broadcast16Address; +private: + XBeeAddress64 _remoteAddress64; + uint16_t _remoteAddress16; + bool _applyChanges; +}; + +#ifdef __cplusplus + } +#endif + +#endif //XBee_h diff --git a/src/core/LPC11xx.h b/src/core/LPC11xx.h new file mode 100755 index 0000000..854f719 --- /dev/null +++ b/src/core/LPC11xx.h @@ -0,0 +1,559 @@ +/****************************************************************************
+ * $Id:: LPC11xx.h 3635 2010-06-02 00:31:46Z usb00423 $
+ * Project: NXP LPC11xx software example
+ *
+ * Description:
+ * CMSIS Cortex-M0 Core Peripheral Access Layer Header File for
+ * NXP LPC11xx Device Series
+ *
+ ****************************************************************************
+ * Software that is described herein is for illustrative purposes only
+ * which provides customers with programming information regarding the
+ * products. This software is supplied "AS IS" without any warranties.
+ * NXP Semiconductors assumes no responsibility or liability for the
+ * use of the software, conveys no license or title under any patent,
+ * copyright, or mask work right to the product. NXP Semiconductors
+ * reserves the right to make changes in the software without
+ * notification. NXP Semiconductors also make no representation or
+ * warranty that such application will be suitable for the specified
+ * use without further testing or modification.
+****************************************************************************/
+#ifndef __LPC11xx_H__
+#define __LPC11xx_H__
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/** @addtogroup LPC11xx_Definitions LPC11xx Definitions
+ This file defines all structures and symbols for LPC11xx:
+ - Registers and bitfields
+ - peripheral base address
+ - peripheral ID
+ - PIO definitions
+ @{
+*/
+
+
+/******************************************************************************/
+/* Processor and Core Peripherals */
+/******************************************************************************/
+/** @addtogroup LPC11xx_CMSIS LPC11xx CMSIS Definitions
+ Configuration of the Cortex-M0 Processor and Core Peripherals
+ @{
+*/
+
+/*
+ * ==========================================================================
+ * ---------- Interrupt Number Definition -----------------------------------
+ * ==========================================================================
+ */
+
+typedef enum IRQn
+{
+/****** Cortex-M0 Processor Exceptions Numbers ***************************************************/
+ NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< 3 Cortex-M0 Hard Fault Interrupt */
+ SVCall_IRQn = -5, /*!< 11 Cortex-M0 SV Call Interrupt */
+ PendSV_IRQn = -2, /*!< 14 Cortex-M0 Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< 15 Cortex-M0 System Tick Interrupt */
+
+/****** LPC11xx Specific Interrupt Numbers *******************************************************/
+ WAKEUP0_IRQn = 0, /*!< All I/O pins can be used as wakeup source. */
+ WAKEUP1_IRQn = 1, /*!< There are 13 pins in total for LPC11xx */
+ WAKEUP2_IRQn = 2,
+ WAKEUP3_IRQn = 3,
+ WAKEUP4_IRQn = 4,
+ WAKEUP5_IRQn = 5,
+ WAKEUP6_IRQn = 6,
+ WAKEUP7_IRQn = 7,
+ WAKEUP8_IRQn = 8,
+ WAKEUP9_IRQn = 9,
+ WAKEUP10_IRQn = 10,
+ WAKEUP11_IRQn = 11,
+ WAKEUP12_IRQn = 12,
+ CAN_IRQn = 13, /*!< CAN Interrupt */
+ SSP1_IRQn = 14, /*!< SSP1 Interrupt */
+ I2C_IRQn = 15, /*!< I2C Interrupt */
+ TIMER_16_0_IRQn = 16, /*!< 16-bit Timer0 Interrupt */
+ TIMER_16_1_IRQn = 17, /*!< 16-bit Timer1 Interrupt */
+ TIMER_32_0_IRQn = 18, /*!< 32-bit Timer0 Interrupt */
+ TIMER_32_1_IRQn = 19, /*!< 32-bit Timer1 Interrupt */
+ SSP0_IRQn = 20, /*!< SSP0 Interrupt */
+ UART_IRQn = 21, /*!< UART Interrupt */
+ ADC_IRQn = 24, /*!< A/D Converter Interrupt */
+ WDT_IRQn = 25, /*!< Watchdog timer Interrupt */
+ BOD_IRQn = 26, /*!< Brown Out Detect(BOD) Interrupt */
+ EINT3_IRQn = 28, /*!< External Interrupt 3 Interrupt */
+ EINT2_IRQn = 29, /*!< External Interrupt 2 Interrupt */
+ EINT1_IRQn = 30, /*!< External Interrupt 1 Interrupt */
+ EINT0_IRQn = 31, /*!< External Interrupt 0 Interrupt */
+} IRQn_Type;
+
+
+/*
+ * ==========================================================================
+ * ----------- Processor and Core Peripheral Section ------------------------
+ * ==========================================================================
+ */
+
+/* Configuration of the Cortex-M3 Processor and Core Peripherals */
+#define __MPU_PRESENT 0 /*!< MPU present or not */
+#define __NVIC_PRIO_BITS 2 /*!< Number of Bits used for Priority Levels */
+#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
+
+/*@}*/ /* end of group LPC11xx_CMSIS */
+
+
+#include "core_cm0.h" /* Cortex-M0 processor and core peripherals */
+#include "system_LPC11xx.h" /* System Header */
+
+
+/******************************************************************************/
+/* Device Specific Peripheral Registers structures */
+/******************************************************************************/
+
+#if defined ( __CC_ARM )
+#pragma anon_unions
+#endif
+
+/*------------- System Control (SYSCON) --------------------------------------*/
+/** @addtogroup LPC11xx_SYSCON LPC11xx System Control Block
+ @{
+*/
+typedef struct
+{
+ __IO uint32_t SYSMEMREMAP; /*!< Offset: 0x000 System memory remap (R/W) */
+ __IO uint32_t PRESETCTRL; /*!< Offset: 0x004 Peripheral reset control (R/W) */
+ __IO uint32_t SYSPLLCTRL; /*!< Offset: 0x008 System PLL control (R/W) */
+ __IO uint32_t SYSPLLSTAT; /*!< Offset: 0x00C System PLL status (R/ ) */
+ uint32_t RESERVED0[4];
+
+ __IO uint32_t SYSOSCCTRL; /*!< Offset: 0x020 System oscillator control (R/W) */
+ __IO uint32_t WDTOSCCTRL; /*!< Offset: 0x024 Watchdog oscillator control (R/W) */
+ __IO uint32_t IRCCTRL; /*!< Offset: 0x028 IRC control (R/W) */
+ uint32_t RESERVED1[1];
+ __IO uint32_t SYSRESSTAT; /*!< Offset: 0x030 System reset status Register (R/ ) */
+ uint32_t RESERVED2[3];
+ __IO uint32_t SYSPLLCLKSEL; /*!< Offset: 0x040 System PLL clock source select (R/W) */
+ __IO uint32_t SYSPLLCLKUEN; /*!< Offset: 0x044 System PLL clock source update enable (R/W) */
+ uint32_t RESERVED3[10];
+
+ __IO uint32_t MAINCLKSEL; /*!< Offset: 0x070 Main clock source select (R/W) */
+ __IO uint32_t MAINCLKUEN; /*!< Offset: 0x074 Main clock source update enable (R/W) */
+ __IO uint32_t SYSAHBCLKDIV; /*!< Offset: 0x078 System AHB clock divider (R/W) */
+ uint32_t RESERVED4[1];
+
+ __IO uint32_t SYSAHBCLKCTRL; /*!< Offset: 0x080 System AHB clock control (R/W) */
+ uint32_t RESERVED5[4];
+ __IO uint32_t SSP0CLKDIV; /*!< Offset: 0x094 SSP0 clock divider (R/W) */
+ __IO uint32_t UARTCLKDIV; /*!< Offset: 0x098 UART clock divider (R/W) */
+ __IO uint32_t SSP1CLKDIV; /*!< Offset: 0x09C SSP1 clock divider (R/W) */
+ uint32_t RESERVED6[4];
+
+ __IO uint32_t SYSTICKCLKDIV; /*!< Offset: 0x0B0 SYSTICK clock divider (R/W) */
+ uint32_t RESERVED7[7];
+
+ __IO uint32_t WDTCLKSEL; /*!< Offset: 0x0D0 WDT clock source select (R/W) */
+ __IO uint32_t WDTCLKUEN; /*!< Offset: 0x0D4 WDT clock source update enable (R/W) */
+ __IO uint32_t WDTCLKDIV; /*!< Offset: 0x0D8 WDT clock divider (R/W) */
+ uint32_t RESERVED8[1];
+ __IO uint32_t CLKOUTCLKSEL; /*!< Offset: 0x0E0 CLKOUT clock source select (R/W) */
+ __IO uint32_t CLKOUTUEN; /*!< Offset: 0x0E4 CLKOUT clock source update enable (R/W) */
+ __IO uint32_t CLKOUTDIV; /*!< Offset: 0x0E8 CLKOUT clock divider (R/W) */
+ uint32_t RESERVED9[5];
+
+ __IO uint32_t PIOPORCAP0; /*!< Offset: 0x100 POR captured PIO status 0 (R/ ) */
+ __IO uint32_t PIOPORCAP1; /*!< Offset: 0x104 POR captured PIO status 1 (R/ ) */
+ uint32_t RESERVED10[18];
+
+ __IO uint32_t BODCTRL; /*!< Offset: 0x150 BOD control (R/W) */
+ uint32_t RESERVED11[1];
+ __IO uint32_t SYSTCKCAL; /*!< Offset: 0x158 System tick counter calibration (R/W) */
+ uint32_t RESERVED12;
+ __IO uint32_t MAINREGVOUT0CFG; /*!< Offset: 0x160 Main Regulator Voltage 0 Configuration */
+ __IO uint32_t MAINREGVOUT1CFG; /*!< Offset: 0x164 Main Regulator Voltage 1 Configuration */
+ uint32_t RESERVED13[38];
+
+ __IO uint32_t STARTAPRP0; /*!< Offset: 0x200 Start logic edge control Register 0 (R/W) */
+ __IO uint32_t STARTERP0; /*!< Offset: 0x204 Start logic signal enable Register 0 (R/W) */
+ __IO uint32_t STARTRSRP0CLR; /*!< Offset: 0x208 Start logic reset Register 0 ( /W) */
+ __IO uint32_t STARTSRP0; /*!< Offset: 0x20C Start logic status Register 0 (R/W) */
+ uint32_t RESERVED14[8];
+
+ __IO uint32_t PDSLEEPCFG; /*!< Offset: 0x230 Power-down states in Deep-sleep mode (R/W) */
+ __IO uint32_t PDAWAKECFG; /*!< Offset: 0x234 Power-down states after wake-up (R/W) */
+ __IO uint32_t PDRUNCFG; /*!< Offset: 0x238 Power-down configuration Register (R/W) */
+ uint32_t RESERVED15[101];
+ __O uint32_t VOUTCFGPROT; /*!< Offset: 0x3D0 Voltage Output Configuration Protection Register (W) */
+ uint32_t RESERVED16[8];
+ __I uint32_t DEVICE_ID; /*!< Offset: 0x3F4 Device ID (R/ ) */
+} LPC_SYSCON_TypeDef;
+/*@}*/ /* end of group LPC11xx_SYSCON */
+
+
+/*------------- Pin Connect Block (IOCON) --------------------------------*/
+/** @addtogroup LPC11xx_IOCON LPC11xx I/O Configuration Block
+ @{
+*/
+typedef struct
+{
+ __IO uint32_t PIO2_6; /*!< Offset: 0x000 I/O configuration for pin PIO2_6 (R/W) */
+ uint32_t RESERVED0[1];
+ __IO uint32_t PIO2_0; /*!< Offset: 0x008 I/O configuration for pin PIO2_0/DTR/SSEL1 (R/W) */
+ __IO uint32_t RESET_PIO0_0; /*!< Offset: 0x00C I/O configuration for pin RESET/PIO0_0 (R/W) */
+ __IO uint32_t PIO0_1; /*!< Offset: 0x010 I/O configuration for pin PIO0_1/CLKOUT/CT32B0_MAT2 (R/W) */
+ __IO uint32_t PIO1_8; /*!< Offset: 0x014 I/O configuration for pin PIO1_8/CT16B1_CAP0 (R/W) */
+ uint32_t RESERVED1[1];
+ __IO uint32_t PIO0_2; /*!< Offset: 0x01C I/O configuration for pin PIO0_2/SSEL0/CT16B0_CAP0 (R/W) */
+
+ __IO uint32_t PIO2_7; /*!< Offset: 0x020 I/O configuration for pin PIO2_7 (R/W) */
+ __IO uint32_t PIO2_8; /*!< Offset: 0x024 I/O configuration for pin PIO2_8 (R/W) */
+ __IO uint32_t PIO2_1; /*!< Offset: 0x028 I/O configuration for pin PIO2_1/nDSR/SCK1 (R/W) */
+ __IO uint32_t PIO0_3; /*!< Offset: 0x02C I/O configuration for pin PIO0_3 (R/W) */
+ __IO uint32_t PIO0_4; /*!< Offset: 0x030 I/O configuration for pin PIO0_4/SCL (R/W) */
+ __IO uint32_t PIO0_5; /*!< Offset: 0x034 I/O configuration for pin PIO0_5/SDA (R/W) */
+ __IO uint32_t PIO1_9; /*!< Offset: 0x038 I/O configuration for pin PIO1_9/CT16B1_MAT0 (R/W) */
+ __IO uint32_t PIO3_4; /*!< Offset: 0x03C I/O configuration for pin PIO3_4 (R/W) */
+
+ __IO uint32_t PIO2_4; /*!< Offset: 0x040 I/O configuration for pin PIO2_4 (R/W) */
+ __IO uint32_t PIO2_5; /*!< Offset: 0x044 I/O configuration for pin PIO2_5 (R/W) */
+ __IO uint32_t PIO3_5; /*!< Offset: 0x048 I/O configuration for pin PIO3_5 (R/W) */
+ __IO uint32_t PIO0_6; /*!< Offset: 0x04C I/O configuration for pin PIO0_6/SCK0 (R/W) */
+ __IO uint32_t PIO0_7; /*!< Offset: 0x050 I/O configuration for pin PIO0_7/nCTS (R/W) */
+ __IO uint32_t PIO2_9; /*!< Offset: 0x054 I/O configuration for pin PIO2_9 (R/W) */
+ __IO uint32_t PIO2_10; /*!< Offset: 0x058 I/O configuration for pin PIO2_10 (R/W) */
+ __IO uint32_t PIO2_2; /*!< Offset: 0x05C I/O configuration for pin PIO2_2/DCD/MISO1 (R/W) */
+
+ __IO uint32_t PIO0_8; /*!< Offset: 0x060 I/O configuration for pin PIO0_8/MISO0/CT16B0_MAT0 (R/W) */
+ __IO uint32_t PIO0_9; /*!< Offset: 0x064 I/O configuration for pin PIO0_9/MOSI0/CT16B0_MAT1 (R/W) */
+ __IO uint32_t SWCLK_PIO0_10; /*!< Offset: 0x068 I/O configuration for pin SWCLK/PIO0_10/SCK0/CT16B0_MAT2 (R/W) */
+ __IO uint32_t PIO1_10; /*!< Offset: 0x06C I/O configuration for pin PIO1_10/AD6/CT16B1_MAT1 (R/W) */
+ __IO uint32_t PIO2_11; /*!< Offset: 0x070 I/O configuration for pin PIO2_11/SCK0 (R/W) */
+ __IO uint32_t R_PIO0_11; /*!< Offset: 0x074 I/O configuration for pin TDI/PIO0_11/AD0/CT32B0_MAT3 (R/W) */
+ __IO uint32_t R_PIO1_0; /*!< Offset: 0x078 I/O configuration for pin TMS/PIO1_0/AD1/CT32B1_CAP0 (R/W) */
+ __IO uint32_t R_PIO1_1; /*!< Offset: 0x07C I/O configuration for pin TDO/PIO1_1/AD2/CT32B1_MAT0 (R/W) */
+
+ __IO uint32_t R_PIO1_2; /*!< Offset: 0x080 I/O configuration for pin nTRST/PIO1_2/AD3/CT32B1_MAT1 (R/W) */
+ __IO uint32_t PIO3_0; /*!< Offset: 0x084 I/O configuration for pin PIO3_0/nDTR (R/W) */
+ __IO uint32_t PIO3_1; /*!< Offset: 0x088 I/O configuration for pin PIO3_1/nDSR (R/W) */
+ __IO uint32_t PIO2_3; /*!< Offset: 0x08C I/O configuration for pin PIO2_3/RI/MOSI1 (R/W) */
+ __IO uint32_t SWDIO_PIO1_3; /*!< Offset: 0x090 I/O configuration for pin SWDIO/PIO1_3/AD4/CT32B1_MAT2 (R/W) */
+ __IO uint32_t PIO1_4; /*!< Offset: 0x094 I/O configuration for pin PIO1_4/AD5/CT32B1_MAT3 (R/W) */
+ __IO uint32_t PIO1_11; /*!< Offset: 0x098 I/O configuration for pin PIO1_11/AD7 (R/W) */
+ __IO uint32_t PIO3_2; /*!< Offset: 0x09C I/O configuration for pin PIO3_2/nDCD (R/W) */
+
+ __IO uint32_t PIO1_5; /*!< Offset: 0x0A0 I/O configuration for pin PIO1_5/nRTS/CT32B0_CAP0 (R/W) */
+ __IO uint32_t PIO1_6; /*!< Offset: 0x0A4 I/O configuration for pin PIO1_6/RXD/CT32B0_MAT0 (R/W) */
+ __IO uint32_t PIO1_7; /*!< Offset: 0x0A8 I/O configuration for pin PIO1_7/TXD/CT32B0_MAT1 (R/W) */
+ __IO uint32_t PIO3_3; /*!< Offset: 0x0AC I/O configuration for pin PIO3_3/nRI (R/W) */
+ __IO uint32_t SCK_LOC; /*!< Offset: 0x0B0 SCK pin location select Register (R/W) */
+ __IO uint32_t DSR_LOC; /*!< Offset: 0x0B4 DSR pin location select Register (R/W) */
+ __IO uint32_t DCD_LOC; /*!< Offset: 0x0B8 DCD pin location select Register (R/W) */
+ __IO uint32_t RI_LOC; /*!< Offset: 0x0BC RI pin location Register (R/W) */
+} LPC_IOCON_TypeDef;
+/*@}*/ /* end of group LPC11xx_IOCON */
+
+
+/*------------- Power Management Unit (PMU) --------------------------*/
+/** @addtogroup LPC11xx_PMU LPC11xx Power Management Unit
+ @{
+*/
+typedef struct
+{
+ __IO uint32_t PCON; /*!< Offset: 0x000 Power control Register (R/W) */
+ __IO uint32_t GPREG0; /*!< Offset: 0x004 General purpose Register 0 (R/W) */
+ __IO uint32_t GPREG1; /*!< Offset: 0x008 General purpose Register 1 (R/W) */
+ __IO uint32_t GPREG2; /*!< Offset: 0x00C General purpose Register 2 (R/W) */
+ __IO uint32_t GPREG3; /*!< Offset: 0x010 General purpose Register 3 (R/W) */
+ __IO uint32_t GPREG4; /*!< Offset: 0x014 General purpose Register 4 (R/W) */
+} LPC_PMU_TypeDef;
+/*@}*/ /* end of group LPC11xx_PMU */
+
+
+/*------------- General Purpose Input/Output (GPIO) --------------------------*/
+/** @addtogroup LPC11xx_GPIO LPC11xx General Purpose Input/Output
+ @{
+*/
+typedef struct
+{
+ union {
+ __IO uint32_t MASKED_ACCESS[4096]; /*!< Offset: 0x0000 to 0x3FFC Port data Register for pins PIOn_0 to PIOn_11 (R/W) */
+ struct {
+ uint32_t RESERVED0[4095];
+ __IO uint32_t DATA; /*!< Offset: 0x3FFC Port data Register (R/W) */
+ };
+ };
+ uint32_t RESERVED1[4096];
+ __IO uint32_t DIR; /*!< Offset: 0x8000 Data direction Register (R/W) */
+ __IO uint32_t IS; /*!< Offset: 0x8004 Interrupt sense Register (R/W) */
+ __IO uint32_t IBE; /*!< Offset: 0x8008 Interrupt both edges Register (R/W) */
+ __IO uint32_t IEV; /*!< Offset: 0x800C Interrupt event Register (R/W) */
+ __IO uint32_t IE; /*!< Offset: 0x8010 Interrupt mask Register (R/W) */
+ __IO uint32_t RIS; /*!< Offset: 0x8014 Raw interrupt status Register (R/ ) */
+ __IO uint32_t MIS; /*!< Offset: 0x8018 Masked interrupt status Register (R/ ) */
+ __IO uint32_t IC; /*!< Offset: 0x801C Interrupt clear Register (R/W) */
+} LPC_GPIO_TypeDef;
+/*@}*/ /* end of group LPC11xx_GPIO */
+
+
+/*------------- Timer (TMR) --------------------------------------------------*/
+/** @addtogroup LPC11xx_TMR LPC11xx 16/32-bit Counter/Timer
+ @{
+*/
+typedef struct
+{
+ __IO uint32_t IR; /*!< Offset: 0x000 Interrupt Register (R/W) */
+ __IO uint32_t TCR; /*!< Offset: 0x004 Timer Control Register (R/W) */
+ __IO uint32_t TC; /*!< Offset: 0x008 Timer Counter Register (R/W) */
+ __IO uint32_t PR; /*!< Offset: 0x00C Prescale Register (R/W) */
+ __IO uint32_t PC; /*!< Offset: 0x010 Prescale Counter Register (R/W) */
+ __IO uint32_t MCR; /*!< Offset: 0x014 Match Control Register (R/W) */
+ __IO uint32_t MR0; /*!< Offset: 0x018 Match Register 0 (R/W) */
+ __IO uint32_t MR1; /*!< Offset: 0x01C Match Register 1 (R/W) */
+ __IO uint32_t MR2; /*!< Offset: 0x020 Match Register 2 (R/W) */
+ __IO uint32_t MR3; /*!< Offset: 0x024 Match Register 3 (R/W) */
+ __IO uint32_t CCR; /*!< Offset: 0x028 Capture Control Register (R/W) */
+ __I uint32_t CR0; /*!< Offset: 0x02C Capture Register 0 (R/ ) */
+ uint32_t RESERVED1[3];
+ __IO uint32_t EMR; /*!< Offset: 0x03C External Match Register (R/W) */
+ uint32_t RESERVED2[12];
+ __IO uint32_t CTCR; /*!< Offset: 0x070 Count Control Register (R/W) */
+ __IO uint32_t PWMC; /*!< Offset: 0x074 PWM Control Register (R/W) */
+} LPC_TMR_TypeDef;
+/*@}*/ /* end of group LPC11xx_TMR */
+
+
+/*------------- Universal Asynchronous Receiver Transmitter (UART) -----------*/
+/** @addtogroup LPC11xx_UART LPC11xx Universal Asynchronous Receiver/Transmitter
+ @{
+*/
+typedef struct
+{
+ union {
+ __I uint32_t RBR; /*!< Offset: 0x000 Receiver Buffer Register (R/ ) */
+ __O uint32_t THR; /*!< Offset: 0x000 Transmit Holding Register ( /W) */
+ __IO uint32_t DLL; /*!< Offset: 0x000 Divisor Latch LSB (R/W) */
+ };
+ union {
+ __IO uint32_t DLM; /*!< Offset: 0x004 Divisor Latch MSB (R/W) */
+ __IO uint32_t IER; /*!< Offset: 0x000 Interrupt Enable Register (R/W) */
+ };
+ union {
+ __I uint32_t IIR; /*!< Offset: 0x008 Interrupt ID Register (R/ ) */
+ __O uint32_t FCR; /*!< Offset: 0x008 FIFO Control Register ( /W) */
+ };
+ __IO uint32_t LCR; /*!< Offset: 0x00C Line Control Register (R/W) */
+ __IO uint32_t MCR; /*!< Offset: 0x010 Modem control Register (R/W) */
+ __I uint32_t LSR; /*!< Offset: 0x014 Line Status Register (R/ ) */
+ __I uint32_t MSR; /*!< Offset: 0x018 Modem status Register (R/ ) */
+ __IO uint32_t SCR; /*!< Offset: 0x01C Scratch Pad Register (R/W) */
+ __IO uint32_t ACR; /*!< Offset: 0x020 Auto-baud Control Register (R/W) */
+ uint32_t RESERVED0;
+ __IO uint32_t FDR; /*!< Offset: 0x028 Fractional Divider Register (R/W) */
+ uint32_t RESERVED1;
+ __IO uint32_t TER; /*!< Offset: 0x030 Transmit Enable Register (R/W) */
+ uint32_t RESERVED2[6];
+ __IO uint32_t RS485CTRL; /*!< Offset: 0x04C RS-485/EIA-485 Control Register (R/W) */
+ __IO uint32_t ADRMATCH; /*!< Offset: 0x050 RS-485/EIA-485 address match Register (R/W) */
+ __IO uint32_t RS485DLY; /*!< Offset: 0x054 RS-485/EIA-485 direction control delay Register (R/W) */
+ __I uint32_t FIFOLVL; /*!< Offset: 0x058 FIFO Level Register (R/ ) */
+} LPC_UART_TypeDef;
+/*@}*/ /* end of group LPC11xx_UART */
+
+
+/*------------- Synchronous Serial Communication (SSP) -----------------------*/
+/** @addtogroup LPC11xx_SSP LPC11xx Synchronous Serial Port
+ @{
+*/
+typedef struct
+{
+ __IO uint32_t CR0; /*!< Offset: 0x000 Control Register 0 (R/W) */
+ __IO uint32_t CR1; /*!< Offset: 0x004 Control Register 1 (R/W) */
+ __IO uint32_t DR; /*!< Offset: 0x008 Data Register (R/W) */
+ __I uint32_t SR; /*!< Offset: 0x00C Status Registe (R/ ) */
+ __IO uint32_t CPSR; /*!< Offset: 0x010 Clock Prescale Register (R/W) */
+ __IO uint32_t IMSC; /*!< Offset: 0x014 Interrupt Mask Set and Clear Register (R/W) */
+ __IO uint32_t RIS; /*!< Offset: 0x018 Raw Interrupt Status Register (R/W) */
+ __IO uint32_t MIS; /*!< Offset: 0x01C Masked Interrupt Status Register (R/W) */
+ __IO uint32_t ICR; /*!< Offset: 0x020 SSPICR Interrupt Clear Register (R/W) */
+} LPC_SSP_TypeDef;
+/*@}*/ /* end of group LPC11xx_SSP */
+
+
+/*------------- Inter-Integrated Circuit (I2C) -------------------------------*/
+/** @addtogroup LPC11xx_I2C LPC11xx I2C-Bus Interface
+ @{
+*/
+typedef struct
+{
+ __IO uint32_t CONSET; /*!< Offset: 0x000 I2C Control Set Register (R/W) */
+ __I uint32_t STAT; /*!< Offset: 0x004 I2C Status Register (R/ ) */
+ __IO uint32_t DAT; /*!< Offset: 0x008 I2C Data Register (R/W) */
+ __IO uint32_t ADR0; /*!< Offset: 0x00C I2C Slave Address Register 0 (R/W) */
+ __IO uint32_t SCLH; /*!< Offset: 0x010 SCH Duty Cycle Register High Half Word (R/W) */
+ __IO uint32_t SCLL; /*!< Offset: 0x014 SCL Duty Cycle Register Low Half Word (R/W) */
+ __O uint32_t CONCLR; /*!< Offset: 0x018 I2C Control Clear Register ( /W) */
+ __IO uint32_t MMCTRL; /*!< Offset: 0x01C Monitor mode control register (R/W) */
+ __IO uint32_t ADR1; /*!< Offset: 0x020 I2C Slave Address Register 1 (R/W) */
+ __IO uint32_t ADR2; /*!< Offset: 0x024 I2C Slave Address Register 2 (R/W) */
+ __IO uint32_t ADR3; /*!< Offset: 0x028 I2C Slave Address Register 3 (R/W) */
+ __I uint32_t DATA_BUFFER; /*!< Offset: 0x02C Data buffer register ( /W) */
+ __IO uint32_t MASK0; /*!< Offset: 0x030 I2C Slave address mask register 0 (R/W) */
+ __IO uint32_t MASK1; /*!< Offset: 0x034 I2C Slave address mask register 1 (R/W) */
+ __IO uint32_t MASK2; /*!< Offset: 0x038 I2C Slave address mask register 2 (R/W) */
+ __IO uint32_t MASK3; /*!< Offset: 0x03C I2C Slave address mask register 3 (R/W) */
+} LPC_I2C_TypeDef;
+/*@}*/ /* end of group LPC11xx_I2C */
+
+
+/*------------- Watchdog Timer (WDT) -----------------------------------------*/
+/** @addtogroup LPC11xx_WDT LPC11xx WatchDog Timer
+ @{
+*/
+typedef struct
+{
+ __IO uint32_t MOD; /*!< Offset: 0x000 Watchdog mode register (R/W) */
+ __IO uint32_t TC; /*!< Offset: 0x004 Watchdog timer constant register (R/W) */
+ __O uint32_t FEED; /*!< Offset: 0x008 Watchdog feed sequence register ( /W) */
+ __I uint32_t TV; /*!< Offset: 0x00C Watchdog timer value register (R/ ) */
+ uint32_t RESERVED0;
+ __IO uint32_t WARNINT;
+ __IO uint32_t WINDOW;
+} LPC_WDT_TypeDef;
+/*@}*/ /* end of group LPC11xx_WDT */
+
+
+/*------------- Analog-to-Digital Converter (ADC) ----------------------------*/
+/** @addtogroup LPC11xx_ADC LPC11xx Analog-to-Digital Converter
+ @{
+*/
+typedef struct
+{
+ __IO uint32_t CR; /*!< Offset: 0x000 A/D Control Register (R/W) */
+ __IO uint32_t GDR; /*!< Offset: 0x004 A/D Global Data Register (R/W) */
+ uint32_t RESERVED0;
+ __IO uint32_t INTEN; /*!< Offset: 0x00C A/D Interrupt Enable Register (R/W) */
+ __IO uint32_t DR[8]; /*!< Offset: 0x010-0x02C A/D Channel 0..7 Data Register (R/W) */
+ __I uint32_t STAT; /*!< Offset: 0x030 A/D Status Register (R/ ) */
+} LPC_ADC_TypeDef;
+/*@}*/ /* end of group LPC11xx_ADC */
+
+
+/*------------- CAN Controller (CAN) ----------------------------*/
+/** @addtogroup LPC11xx_CAN LPC11xx Controller Area Network(CAN)
+ @{
+*/
+typedef struct
+{
+ __IO uint32_t CNTL; /* 0x000 */
+ __IO uint32_t STAT;
+ __IO uint32_t EC;
+ __IO uint32_t BT;
+ __IO uint32_t INT;
+ __IO uint32_t TEST;
+ __IO uint32_t BRPE;
+ uint32_t RESERVED0;
+ __IO uint32_t IF1_CMDREQ; /* 0x020 */
+ __IO uint32_t IF1_CMDMSK;
+ __IO uint32_t IF1_MSK1;
+ __IO uint32_t IF1_MSK2;
+ __IO uint32_t IF1_ARB1;
+ __IO uint32_t IF1_ARB2;
+ __IO uint32_t IF1_MCTRL;
+ __IO uint32_t IF1_DA1;
+ __IO uint32_t IF1_DA2;
+ __IO uint32_t IF1_DB1;
+ __IO uint32_t IF1_DB2;
+ uint32_t RESERVED1[13];
+ __IO uint32_t IF2_CMDREQ; /* 0x080 */
+ __IO uint32_t IF2_CMDMSK;
+ __IO uint32_t IF2_MSK1;
+ __IO uint32_t IF2_MSK2;
+ __IO uint32_t IF2_ARB1;
+ __IO uint32_t IF2_ARB2;
+ __IO uint32_t IF2_MCTRL;
+ __IO uint32_t IF2_DA1;
+ __IO uint32_t IF2_DA2;
+ __IO uint32_t IF2_DB1;
+ __IO uint32_t IF2_DB2;
+ uint32_t RESERVED2[21];
+ __I uint32_t TXREQ1; /* 0x100 */
+ __I uint32_t TXREQ2;
+ uint32_t RESERVED3[6];
+ __I uint32_t ND1; /* 0x120 */
+ __I uint32_t ND2;
+ uint32_t RESERVED4[6];
+ __I uint32_t IR1; /* 0x140 */
+ __I uint32_t IR2;
+ uint32_t RESERVED5[6];
+ __I uint32_t MSGV1; /* 0x160 */
+ __I uint32_t MSGV2;
+ uint32_t RESERVED6[6];
+ __IO uint32_t CLKDIV; /* 0x180 */
+} LPC_CAN_TypeDef;
+/*@}*/ /* end of group LPC11xx_CAN */
+
+#if defined ( __CC_ARM )
+#pragma no_anon_unions
+#endif
+
+/******************************************************************************/
+/* Peripheral memory map */
+/******************************************************************************/
+/* Base addresses */
+#define LPC_FLASH_BASE (0x00000000UL)
+#define LPC_RAM_BASE (0x10000000UL)
+#define LPC_APB0_BASE (0x40000000UL)
+#define LPC_AHB_BASE (0x50000000UL)
+
+/* APB0 peripherals */
+#define LPC_I2C_BASE (LPC_APB0_BASE + 0x00000)
+#define LPC_WDT_BASE (LPC_APB0_BASE + 0x04000)
+#define LPC_UART_BASE (LPC_APB0_BASE + 0x08000)
+#define LPC_CT16B0_BASE (LPC_APB0_BASE + 0x0C000)
+#define LPC_CT16B1_BASE (LPC_APB0_BASE + 0x10000)
+#define LPC_CT32B0_BASE (LPC_APB0_BASE + 0x14000)
+#define LPC_CT32B1_BASE (LPC_APB0_BASE + 0x18000)
+#define LPC_ADC_BASE (LPC_APB0_BASE + 0x1C000)
+#define LPC_PMU_BASE (LPC_APB0_BASE + 0x38000)
+#define LPC_SSP0_BASE (LPC_APB0_BASE + 0x40000)
+#define LPC_IOCON_BASE (LPC_APB0_BASE + 0x44000)
+#define LPC_SYSCON_BASE (LPC_APB0_BASE + 0x48000)
+#define LPC_CAN_BASE (LPC_APB0_BASE + 0x50000)
+#define LPC_SSP1_BASE (LPC_APB0_BASE + 0x58000)
+
+/* AHB peripherals */
+#define LPC_GPIO_BASE (LPC_AHB_BASE + 0x00000)
+#define LPC_GPIO0_BASE (LPC_AHB_BASE + 0x00000)
+#define LPC_GPIO1_BASE (LPC_AHB_BASE + 0x10000)
+#define LPC_GPIO2_BASE (LPC_AHB_BASE + 0x20000)
+#define LPC_GPIO3_BASE (LPC_AHB_BASE + 0x30000)
+
+/******************************************************************************/
+/* Peripheral declaration */
+/******************************************************************************/
+#define LPC_I2C ((LPC_I2C_TypeDef *) LPC_I2C_BASE )
+#define LPC_WDT ((LPC_WDT_TypeDef *) LPC_WDT_BASE )
+#define LPC_UART ((LPC_UART_TypeDef *) LPC_UART_BASE )
+#define LPC_TMR16B0 ((LPC_TMR_TypeDef *) LPC_CT16B0_BASE)
+#define LPC_TMR16B1 ((LPC_TMR_TypeDef *) LPC_CT16B1_BASE)
+#define LPC_TMR32B0 ((LPC_TMR_TypeDef *) LPC_CT32B0_BASE)
+#define LPC_TMR32B1 ((LPC_TMR_TypeDef *) LPC_CT32B1_BASE)
+#define LPC_ADC ((LPC_ADC_TypeDef *) LPC_ADC_BASE )
+#define LPC_PMU ((LPC_PMU_TypeDef *) LPC_PMU_BASE )
+#define LPC_SSP0 ((LPC_SSP_TypeDef *) LPC_SSP0_BASE )
+#define LPC_SSP1 ((LPC_SSP_TypeDef *) LPC_SSP1_BASE )
+#define LPC_CAN ((LPC_CAN_TypeDef *) LPC_CAN_BASE )
+#define LPC_IOCON ((LPC_IOCON_TypeDef *) LPC_IOCON_BASE )
+#define LPC_SYSCON ((LPC_SYSCON_TypeDef *) LPC_SYSCON_BASE)
+#define LPC_GPIO0 ((LPC_GPIO_TypeDef *) LPC_GPIO0_BASE )
+#define LPC_GPIO1 ((LPC_GPIO_TypeDef *) LPC_GPIO1_BASE )
+#define LPC_GPIO2 ((LPC_GPIO_TypeDef *) LPC_GPIO2_BASE )
+#define LPC_GPIO3 ((LPC_GPIO_TypeDef *) LPC_GPIO3_BASE )
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __LPC11xx_H__ */
diff --git a/src/core/SPI.cpp b/src/core/SPI.cpp new file mode 100755 index 0000000..53108a9 --- /dev/null +++ b/src/core/SPI.cpp @@ -0,0 +1,213 @@ +/* + * ssp.cpp + * + * Created on: 2011/07/30 + * Author: lynxeyed + */ +#include "gpio.h" +#include "SPI.h" + + +SSP SPI; + +SSP::SSP() //define constructor +{ + this->port = marySSP0; + bitOrder = LSBFIRST; + divider = SPI_CLOCK_DIV4; //Arduino's default + dataMode = SPI_MODE0; + bitlength = 8; + setClockDivider(divider); + setBitLength(bitlength); + setBitOrder(LSBFIRST); + begin(); +} + +SSP::~SSP() // destructor +{ + +} +void SSP::begin() +{ + ssp_begin(port,divider,dataMode,bitlength); + return; +} +void SSP::begin(SSP_PORT port) +{ + this->port = port; + ssp_begin(port,divider,dataMode,bitlength); + return; +} +void SSP::setBitLength(int bitlength) +{ + this->bitlength = bitlength; + return; +} +void SSP::end() +{ + LPC_SSP0->CR1 &= ~(1U << 1); //the SPI controller is disabled + return; +} + +void SSP::setBitOrder(SSP_BIT_ORDER bitOrder) +{ + this->bitOrder = bitOrder; + if(bitOrder == MSBFIRST) + { + ; + } + else + { + ; + } + return; +} + +void SSP::setClockDivider(SSP_CLK_DIVIDER divider) //See also SSP1CLKDIV(user.manual p.24) +{ + this->divider = divider; + return; + +} + +void SSP::setDataMode(SSP_DATA_MODE mode) +{ + this->dataMode = mode; + +} + +unsigned long SSP::transfer(unsigned long txdata) +{ + return ssp_transfer(txdata); +} + + + +// lowlevel + +void ssp_begin(SSP_PORT port,SSP_CLK_DIVIDER divider,SSP_DATA_MODE dataMode,int bitlength) +{ + // Initialize SSP + // PIO0_2(CN3_3) : SSEL + // PIO0_6(CN4_3) : SCLK + // PIO0_8(CN4_5) : MISO + // PIO0_9(CN4_7) : MOSI + + volatile int sspPhase; //SSP's clock phase + + pinMode(P0_2,OUTPUT); // PIO0_2(CN3_3) out + LPC_IOCON->PIO0_2 = 0x00000000; // GPIO, disable pu/pd mos + digitalWrite(P0_2,HIGH); // PIO0_2(CN3_3) = 1 + + switch(port){ + case LPCXSSP0: + LPC_IOCON->SCK_LOC = 0x00000001;//2; // SCK is PIO2_11 + LPC_IOCON->PIO2_11 = 0x00000001;//2; // SCK, disable pu/pd mos + break; + case marySSP0: + LPC_IOCON->SCK_LOC = 0x00000002; // SCK is PIO0_6 + LPC_IOCON->PIO0_6 = 0x00000002; // SCK, disable pu/pd mos + break; + default: //default = MARY + LPC_IOCON->SCK_LOC = 0x00000002; // SCK is PIO0_6 + LPC_IOCON->PIO0_6 = 0x00000002; // SCK, disable pu/pd mos + break; + } + LPC_IOCON->PIO0_9 = 0x00000001; // MOSI, disable pu/pd mos + LPC_IOCON->PIO0_8 = 0x00000011; // MISO, enable pu/pd mos + + // + // Initialize SPI + // + LPC_SYSCON->PRESETCTRL |= (0x1<<0); + LPC_SYSCON->SYSAHBCLKCTRL |= (1<<11); + //clockDivider + LPC_SYSCON->SSP0CLKDIV = 0x01; // Divided by 1 + switch(divider) + { + case SPI_CLOCK_DIV1: //Special code + LPC_SYSCON->SSP0CLKDIV = 0x01; + break; + case SPI_CLOCK_DIV2: + LPC_SYSCON->SSP0CLKDIV = 0x02; + break; + case SPI_CLOCK_DIV4: + LPC_SYSCON->SSP0CLKDIV = 0x04; + break; + case SPI_CLOCK_DIV8: + LPC_SYSCON->SSP0CLKDIV = 0x08; + break; + case SPI_CLOCK_DIV16: + LPC_SYSCON->SSP0CLKDIV = 0x10; + break; + case SPI_CLOCK_DIV32: + LPC_SYSCON->SSP0CLKDIV = 0x20; + break; + case SPI_CLOCK_DIV64: + LPC_SYSCON->SSP0CLKDIV = 0x40; + break; + case SPI_CLOCK_DIV128: + LPC_SYSCON->SSP0CLKDIV = 0x80; + break; + default: + LPC_SYSCON->SSP0CLKDIV = 0x04; //default + break; + } + // dataMode(MODE0,1,2,3) + switch(dataMode) + { + // SSP0CR0::bit6 = CPOL, bit7 = CPHA + case SPI_MODE0: // CPOL=0, CPHA = 0 + sspPhase = 0; + break; + case SPI_MODE1: // CPOL=0, CPHA = 1 + sspPhase = 1; + break; + case SPI_MODE2: // CPOL=1, CPHA = 0 + sspPhase = 2; + break; + case SPI_MODE3: // CPOL=1, CPHA = 1 + sspPhase = 3; + break; + case TI_SERIAL_MODE: + default: + break; + }//end switch(dataMode) + + // bitLength + LPC_SSP0->CR0 = (sspPhase << 6); + LPC_SSP0->CR0 |= (bitlength - 1); + + //SCLKDivider + LPC_SSP0->CPSR = 2; //2 or more but even value + + + // Enable the SSP Interrupt + NVIC_EnableIRQ(SSP0_IRQn); + NVIC_SetPriority(SSP0_IRQn, 3); + + // Device select as master, SSP Enabled (see also user.manual p.143) + LPC_SSP0->CR1 = (1U << 1); + return; +} + +unsigned long ssp_transfer(unsigned long txdata) +{ + volatile unsigned long rxdata; + // Tx + while ((LPC_SSP0->SR & ((1U<<1)|(1U<<4))) != 1U << 1); + // Send a byte + LPC_SSP0->DR = txdata; + // Wait until the Busy bit is cleared + while ( LPC_SSP0->SR & (1<<4) ); + + // Rx + while ((LPC_SSP0->SR & (1U<<2)) != 1U << 2 ); + rxdata = LPC_SSP0->DR; + + return rxdata; +} + + + + diff --git a/src/core/SPI.h b/src/core/SPI.h new file mode 100755 index 0000000..6040e74 --- /dev/null +++ b/src/core/SPI.h @@ -0,0 +1,120 @@ +#ifndef SSP_H_ +#define SSP_H_ + + +/**************************************************************************//** + * @file SPI.h + * @brief Arduino-like library for MARY + * @version V0.50 + * @date 1. August 2011. + * @author @@lynxeyed_atsu + * @note Copyright (c) 2011 Lynx-EyED's Klavier and Craft-works. <BR> + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: <BR> + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software.<BR> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ******************************************************************************/ + +#include "LPC11xx.h" +#include "gpio.h" + +#ifdef __cplusplus + extern "C" { +#endif + +/*! @enum SSP_PORT + @brief SPIポートのチャンネル選択。使用時のCS信号を選択する + @note SPIが1ポートしかないMARYでは使用していないので特に影響はないが、2ポート以上あるLPCXpressoやmbedシリーズとの後方互換性を考慮し用意している +*/ +typedef enum { + marySSP0, /*!< MARYのSSPポート(デフォルト) */ + LPCXSSP0, /*!< LPCXPressoのSSP0ポート */ + LPCXSSP1 /*!< LPCXpressoのSSP1ポート */ +} SSP_PORT; // Defaults:marySSP1 + +/*! @enum SSP_BIT_ORDER + @brief SSPIバスの入出力に使用するビットオーダーを設定 + @warning この機能はまだ実装されていない + */ +typedef enum { + LSBFIRST, /*!< LSBを最初に送出(least-significant bit first) */ + MSBFIRST /*!< MSBを最初に送出(most-significant bit first) */ +} SSP_BIT_ORDER; + +/*! @enum SSP_CLK_DIVIDER + @brief SPIクロック分周器の設定. 分周値は2、4、8、16、32、64、128のいずれか +*/ +typedef enum { + SPI_CLOCK_DIV1, /*!< SPIクロックはシステムクロックと同じ(MARY-DUINOオリジナル) */ + SPI_CLOCK_DIV2, /*!< SPIクロックはシステムクロックの1/2 */ + SPI_CLOCK_DIV4, /*!< SPIクロックはシステムクロックの1/4 */ + SPI_CLOCK_DIV8, /*!< SPIクロックはシステムクロックの1/8 */ + SPI_CLOCK_DIV16, /*!< SPIクロックはシステムクロックの1/16 */ + SPI_CLOCK_DIV32, /*!< SPIクロックはシステムクロックの1/32 */ + SPI_CLOCK_DIV64, /*!< SPIクロックはシステムクロックの1/64 */ + SPI_CLOCK_DIV128 /*!< SPIクロックはシステムクロックの1/128 */ +} SSP_CLK_DIVIDER; + +/*! @enum SSP_DATA_MODE + @brief SPIの転送モードの設定 +*/ +typedef enum { + SPI_MODE0 , /*!< SPIモード0 ( CPOL = 0, CPHA = 0 ) */ + SPI_MODE1 , /*!< SPIモード1 ( CPOL = 0, CPHA = 1 ) */ + SPI_MODE2 , /*!< SPIモード2 ( CPOL = 1, CPHA = 0 ) */ + SPI_MODE3 , /*!< SPIモード3 ( CPOL = 1, CPHA = 1 ) */ + TI_SERIAL_MODE , /*!< Texas Instrumentsの提唱するシリアル方式 */ + NXP_I2S /*!< I2Sモード(I2S搭載機種のみ) */ +} SSP_DATA_MODE; + +/*! @class SSP + @brief SPIを制御するクラス +*/ +class SSP { +private: + SSP_PORT port; /*!< 使用するポート */ + SSP_BIT_ORDER bitOrder; + SSP_CLK_DIVIDER divider; + SSP_DATA_MODE dataMode; + int bitlength; + +public: + SSP(); // announce the constructor to initialize + ~SSP(); + void begin(); + void begin(SSP_PORT port); + void end(); + void setBitLength(int bitLength); + void setBitOrder(SSP_BIT_ORDER bitOrder) ; + void setClockDivider(SSP_CLK_DIVIDER divider); + void setDataMode(SSP_DATA_MODE mode); + unsigned long transfer(unsigned long txdata) ; +}; + + +// lowlevel +void ssp_begin(SSP_PORT port,SSP_CLK_DIVIDER divider,SSP_DATA_MODE dataMode,int bitLength); +unsigned long ssp_transfer(unsigned long txdata); + + + +extern SSP SPI; + + +#ifdef __cplusplus + } +#endif + + +#endif /* SSP_H_ */ diff --git a/src/core/SPI1.cpp b/src/core/SPI1.cpp new file mode 100755 index 0000000..a164004 --- /dev/null +++ b/src/core/SPI1.cpp @@ -0,0 +1,220 @@ +/*
+ * ssp.cpp
+ *
+ * Created on: 2011/07/30
+ * Author: lynxeyed
+ */
+#include "gpio.h"
+#include "SPI1.h"
+
+
+SSP1 SPI1;
+
+SSP1::SSP1() //define constructor
+{
+ this->port = LPCXSSP1;
+ bitOrder = LSBFIRST;
+ divider = SPI_CLOCK_DIV4; //Arduino's default
+ dataMode = SPI_MODE0;
+ bitlength = 8;
+ setClockDivider(divider);
+ setBitLength(bitlength);
+ setBitOrder(LSBFIRST);
+ begin();
+}
+
+SSP1::~SSP1() // destructor
+{
+
+}
+void SSP1::begin()
+{
+ ssp1_begin(port,divider,dataMode,bitlength);
+ return;
+}
+void SSP1::begin(SSP_PORT port)
+{
+ this->port = port;
+ ssp1_begin(port,divider,dataMode,bitlength);
+ return;
+}
+void SSP1::setBitLength(int bitlength)
+{
+ this->bitlength = bitlength;
+ return;
+}
+void SSP1::end()
+{
+ LPC_SSP1->CR1 &= ~(1U << 1); //the SPI controller is disabled
+ return;
+}
+
+void SSP1::setBitOrder(SSP_BIT_ORDER bitOrder)
+{
+ this->bitOrder = bitOrder;
+ if(bitOrder == MSBFIRST)
+ {
+ ;
+ }
+ else
+ {
+ ;
+ }
+ return;
+}
+
+void SSP1::setClockDivider(SSP_CLK_DIVIDER divider) //See also SSP1CLKDIV(user.manual p.24)
+{
+ this->divider = divider;
+ return;
+
+}
+
+void SSP1::setDataMode(SSP_DATA_MODE mode)
+{
+ this->dataMode = mode;
+
+}
+
+unsigned long SSP1::transfer(unsigned long txdata)
+{
+ return ssp1_transfer(txdata);
+}
+
+
+
+// lowlevel
+
+void ssp1_begin(SSP_PORT port,SSP_CLK_DIVIDER divider,SSP_DATA_MODE dataMode,int bitlength)
+{
+ // Initialize SSP
+ // PIO2_0 : SSEL
+ // PIO2_1 : SCLK
+ // PIO2_2 : MISO
+ // PIO2_3 : MOSI
+
+ volatile int sspPhase; //SSP's clock phase
+
+ pinMode(P2_0,OUTPUT); // PIO2_0 out
+ LPC_IOCON->PIO2_0 = 0x00000000; // GPIO, disable pu/pd mos
+ digitalWrite(P2_0,HIGH); // PIO2_0 = 1
+
+ LPC_IOCON->PIO2_1 = 0x00000002; // SCK, disable pu/pd mos
+ LPC_IOCON->PIO2_3 = 0x00000002; // MOSI, disable pu/pd mos
+ LPC_IOCON->PIO2_2 = 0x00000012; // MISO, enable pu/pd mos
+
+ /*
+ switch(port){
+ case LPCXSSP0:
+ LPC_IOCON->SCK_LOC = 0x00000001;//2; // SCK is PIO2_11
+ LPC_IOCON->PIO2_11 = 0x00000001;//2; // SCK, disable pu/pd mos
+ break;
+ case marySSP0:
+ LPC_IOCON->SCK_LOC = 0x00000002; // SCK is PIO0_6
+ LPC_IOCON->PIO0_6 = 0x00000002; // SCK, disable pu/pd mos
+ break;
+ default: //default = MARY
+ LPC_IOCON->SCK_LOC = 0x00000002; // SCK is PIO0_6
+ LPC_IOCON->PIO0_6 = 0x00000002; // SCK, disable pu/pd mos
+ break;
+ }
+ */
+
+ //LPC_IOCON->PIO0_9 = 0x00000001; // MOSI, disable pu/pd mos
+ //LPC_IOCON->PIO0_8 = 0x00000011; // MISO, enable pu/pd mos
+
+ //
+ // Initialize SPI
+ //
+ LPC_SYSCON->PRESETCTRL |= (0x1<<2);
+ LPC_SYSCON->SYSAHBCLKCTRL |= (1<<18);
+ //clockDivider
+ LPC_SYSCON->SSP1CLKDIV = 0x01; // Divided by 1
+ switch(divider)
+ {
+ case SPI_CLOCK_DIV1: //Special code
+ LPC_SYSCON->SSP1CLKDIV = 0x01;
+ break;
+ case SPI_CLOCK_DIV2:
+ LPC_SYSCON->SSP1CLKDIV = 0x02;
+ break;
+ case SPI_CLOCK_DIV4:
+ LPC_SYSCON->SSP1CLKDIV = 0x04;
+ break;
+ case SPI_CLOCK_DIV8:
+ LPC_SYSCON->SSP1CLKDIV = 0x08;
+ break;
+ case SPI_CLOCK_DIV16:
+ LPC_SYSCON->SSP1CLKDIV = 0x10;
+ break;
+ case SPI_CLOCK_DIV32:
+ LPC_SYSCON->SSP1CLKDIV = 0x20;
+ break;
+ case SPI_CLOCK_DIV64:
+ LPC_SYSCON->SSP1CLKDIV = 0x40;
+ break;
+ case SPI_CLOCK_DIV128:
+ LPC_SYSCON->SSP1CLKDIV = 0x80;
+ break;
+ default:
+ LPC_SYSCON->SSP1CLKDIV = 0x04; //default
+ break;
+ }
+ // dataMode(MODE0,1,2,3)
+ switch(dataMode)
+ {
+ // SSP0CR0::bit6 = CPOL, bit7 = CPHA
+ case SPI_MODE0: // CPOL=0, CPHA = 0
+ sspPhase = 0;
+ break;
+ case SPI_MODE1: // CPOL=0, CPHA = 1
+ sspPhase = 1;
+ break;
+ case SPI_MODE2: // CPOL=1, CPHA = 0
+ sspPhase = 2;
+ break;
+ case SPI_MODE3: // CPOL=1, CPHA = 1
+ sspPhase = 3;
+ break;
+ case TI_SERIAL_MODE:
+ default:
+ break;
+ }//end switch(dataMode)
+
+ // bitLength
+ LPC_SSP1->CR0 = (sspPhase << 6);
+ LPC_SSP1->CR0 |= (bitlength - 1);
+
+ //SCLKDivider
+ LPC_SSP1->CPSR = 2; //2 or more but even value
+
+
+ // Enable the SSP Interrupt
+ NVIC_EnableIRQ(SSP1_IRQn);
+ NVIC_SetPriority(SSP1_IRQn, 3);
+
+ // Device select as master, SSP Enabled (see also user.manual p.143)
+ LPC_SSP1->CR1 = (1U << 1);
+ return;
+}
+
+unsigned long ssp1_transfer(unsigned long txdata)
+{
+ volatile unsigned long rxdata;
+ // Tx
+ while ((LPC_SSP1->SR & ((1U<<1)|(1U<<4))) != 1U << 1);
+ // Send a byte
+ LPC_SSP1->DR = txdata;
+ // Wait until the Busy bit is cleared
+ while ( LPC_SSP1->SR & (1<<4) );
+
+ // Rx
+ while ((LPC_SSP1->SR & (1U<<2)) != 1U << 2 );
+ rxdata = LPC_SSP1->DR;
+
+ return rxdata;
+}
+
+
+
+
diff --git a/src/core/SPI1.h b/src/core/SPI1.h new file mode 100755 index 0000000..6863b8f --- /dev/null +++ b/src/core/SPI1.h @@ -0,0 +1,77 @@ +#ifndef SSP1_H_
+#define SSP1_H_
+
+
+/**************************************************************************//**
+ * @file SPI1.h
+ * @brief Arduino-like library for MARY
+ * @version V0.50
+ * @date 1. August 2011.
+ * @author @@lynxeyed_atsu
+ * @note Copyright (c) 2011 Lynx-EyED's Klavier and Craft-works. <BR>
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions: <BR>
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.<BR>
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ ******************************************************************************/
+
+#include "LPC11xx.h"
+#include "gpio.h"
+#include "SPI.h"
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+
+/*! @class SSP1
+ @brief SPI1を制御するクラス
+*/
+class SSP1 {
+private:
+ SSP_PORT port; /*!< 使用するポート */
+ SSP_BIT_ORDER bitOrder;
+ SSP_CLK_DIVIDER divider;
+ SSP_DATA_MODE dataMode;
+ int bitlength;
+
+public:
+ SSP1(); // announce the constructor to initialize
+ ~SSP1();
+ void begin();
+ void begin(SSP_PORT port);
+ void end();
+ void setBitLength(int bitLength);
+ void setBitOrder(SSP_BIT_ORDER bitOrder) ;
+ void setClockDivider(SSP_CLK_DIVIDER divider);
+ void setDataMode(SSP_DATA_MODE mode);
+ unsigned long transfer(unsigned long txdata) ;
+};
+
+
+// lowlevel
+void ssp1_begin(SSP_PORT port,SSP_CLK_DIVIDER divider,SSP_DATA_MODE dataMode,int bitLength);
+unsigned long ssp1_transfer(unsigned long txdata);
+
+
+
+extern SSP1 SPI1;
+
+
+#ifdef __cplusplus
+ }
+#endif
+
+
+#endif /* SSP1_H_ */
diff --git a/src/core/core_cm0.h b/src/core/core_cm0.h new file mode 100755 index 0000000..f148b8f --- /dev/null +++ b/src/core/core_cm0.h @@ -0,0 +1,960 @@ +/**************************************************************************//**
+ * @file core_cm0.h
+ * @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File
+ * @version V1.30
+ * @date 30. October 2009
+ *
+ * @note
+ * Copyright (C) 2009 ARM Limited. All rights reserved.
+ *
+ * @par
+ * ARM Limited (ARM) is supplying this software for use with Cortex-M
+ * processor based microcontrollers. This file can be freely distributed
+ * within development tools that are supporting such ARM based processors.
+ *
+ * @par
+ * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+ * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+ * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+ * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+ *
+ ******************************************************************************/
+
+#ifndef __CM0_CORE_H__
+#define __CM0_CORE_H__
+
+/** @addtogroup CMSIS_CM0_core_LintCinfiguration CMSIS CM0 Core Lint Configuration
+ *
+ * List of Lint messages which will be suppressed and not shown:
+ * - not yet checked
+ * .
+ * Note: To re-enable a Message, insert a space before 'lint' *
+ *
+ */
+
+
+/** @addtogroup CMSIS_CM0_core_definitions CM0 Core Definitions
+ This file defines all structures and symbols for CMSIS core:
+ - CMSIS version number
+ - Cortex-M core registers and bitfields
+ - Cortex-M core peripheral base address
+ @{
+ */
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#define __CM0_CMSIS_VERSION_MAIN (0x01) /*!< [31:16] CMSIS HAL main version */
+#define __CM0_CMSIS_VERSION_SUB (0x30) /*!< [15:0] CMSIS HAL sub version */
+#define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16) | __CM0_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */
+
+#define __CORTEX_M (0x00) /*!< Cortex core */
+
+#include <stdint.h> /* Include standard types */
+
+#if defined (__ICCARM__)
+ #include <intrinsics.h> /* IAR Intrinsics */
+#endif
+
+
+#ifndef __NVIC_PRIO_BITS
+ #define __NVIC_PRIO_BITS 2 /*!< standard definition for NVIC Priority Bits */
+#endif
+
+
+
+
+/**
+ * IO definitions
+ *
+ * define access restrictions to peripheral registers
+ */
+
+#ifdef __cplusplus
+ #define __I volatile /*!< defines 'read only' permissions */
+#else
+ #define __I volatile const /*!< defines 'read only' permissions */
+#endif
+#define __O volatile /*!< defines 'write only' permissions */
+#define __IO volatile /*!< defines 'read / write' permissions */
+
+
+
+/*******************************************************************************
+ * Register Abstraction
+ ******************************************************************************/
+/** @addtogroup CMSIS_CM0_core_register CMSIS CM0 Core Register
+ @{
+*/
+
+
+/** @addtogroup CMSIS_CM0_NVIC CMSIS CM0 NVIC
+ memory mapped structure for Nested Vectored Interrupt Controller (NVIC)
+ @{
+ */
+typedef struct
+{
+ __IO uint32_t ISER[1]; /*!< (Offset: 0x000) Interrupt Set Enable Register */
+ uint32_t RESERVED0[31];
+ __IO uint32_t ICER[1]; /*!< (Offset: 0x080) Interrupt Clear Enable Register */
+ uint32_t RSERVED1[31];
+ __IO uint32_t ISPR[1]; /*!< (Offset: 0x100) Interrupt Set Pending Register */
+ uint32_t RESERVED2[31];
+ __IO uint32_t ICPR[1]; /*!< (Offset: 0x180) Interrupt Clear Pending Register */
+ uint32_t RESERVED3[31];
+ uint32_t RESERVED4[64];
+ __IO uint32_t IPR[8]; /*!< (Offset: 0x3EC) Interrupt Priority Register */
+} NVIC_Type;
+/*@}*/ /* end of group CMSIS_CM0_NVIC */
+
+
+/** @addtogroup CMSIS_CM0_SCB CMSIS CM0 SCB
+ memory mapped structure for System Control Block (SCB)
+ @{
+ */
+typedef struct
+{
+ __I uint32_t CPUID; /*!< Offset: 0x00 CPU ID Base Register */
+ __IO uint32_t ICSR; /*!< Offset: 0x04 Interrupt Control State Register */
+ uint32_t RESERVED0;
+ __IO uint32_t AIRCR; /*!< Offset: 0x0C Application Interrupt / Reset Control Register */
+ __IO uint32_t SCR; /*!< Offset: 0x10 System Control Register */
+ __IO uint32_t CCR; /*!< Offset: 0x14 Configuration Control Register */
+ uint32_t RESERVED1;
+ __IO uint32_t SHP[2]; /*!< Offset: 0x1C System Handlers Priority Registers. [0] is RESERVED */
+ __IO uint32_t SHCSR; /*!< Offset: 0x24 System Handler Control and State Register */
+ uint32_t RESERVED2[2];
+ __IO uint32_t DFSR; /*!< Offset: 0x30 Debug Fault Status Register */
+} SCB_Type;
+
+/* SCB CPUID Register Definitions */
+#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */
+#define SCB_CPUID_IMPLEMENTER_Msk (0xFFul << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */
+
+#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */
+#define SCB_CPUID_VARIANT_Msk (0xFul << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */
+
+#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */
+#define SCB_CPUID_ARCHITECTURE_Msk (0xFul << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */
+
+#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */
+#define SCB_CPUID_PARTNO_Msk (0xFFFul << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */
+
+#define SCB_CPUID_REVISION_Pos 0 /*!< SCB CPUID: REVISION Position */
+#define SCB_CPUID_REVISION_Msk (0xFul << SCB_CPUID_REVISION_Pos) /*!< SCB CPUID: REVISION Mask */
+
+/* SCB Interrupt Control State Register Definitions */
+#define SCB_ICSR_NMIPENDSET_Pos 31 /*!< SCB ICSR: NMIPENDSET Position */
+#define SCB_ICSR_NMIPENDSET_Msk (1ul << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */
+
+#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */
+#define SCB_ICSR_PENDSVSET_Msk (1ul << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */
+
+#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */
+#define SCB_ICSR_PENDSVCLR_Msk (1ul << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */
+
+#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */
+#define SCB_ICSR_PENDSTSET_Msk (1ul << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */
+
+#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */
+#define SCB_ICSR_PENDSTCLR_Msk (1ul << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */
+
+#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */
+#define SCB_ICSR_ISRPREEMPT_Msk (1ul << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */
+
+#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */
+#define SCB_ICSR_ISRPENDING_Msk (1ul << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */
+
+#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */
+#define SCB_ICSR_VECTPENDING_Msk (0x1FFul << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */
+
+#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */
+#define SCB_ICSR_VECTACTIVE_Msk (0x1FFul << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */
+
+/* SCB Application Interrupt and Reset Control Register Definitions */
+#define SCB_AIRCR_VECTKEY_Pos 16 /*!< SCB AIRCR: VECTKEY Position */
+#define SCB_AIRCR_VECTKEY_Msk (0xFFFFul << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */
+
+#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */
+#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFul << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */
+
+#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */
+#define SCB_AIRCR_ENDIANESS_Msk (1ul << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */
+
+#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */
+#define SCB_AIRCR_SYSRESETREQ_Msk (1ul << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */
+
+#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */
+#define SCB_AIRCR_VECTCLRACTIVE_Msk (1ul << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */
+
+/* SCB System Control Register Definitions */
+#define SCB_SCR_SEVONPEND_Pos 4 /*!< SCB SCR: SEVONPEND Position */
+#define SCB_SCR_SEVONPEND_Msk (1ul << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */
+
+#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */
+#define SCB_SCR_SLEEPDEEP_Msk (1ul << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */
+
+#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< SCB SCR: SLEEPONEXIT Position */
+#define SCB_SCR_SLEEPONEXIT_Msk (1ul << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */
+
+/* SCB Configuration Control Register Definitions */
+#define SCB_CCR_STKALIGN_Pos 9 /*!< SCB CCR: STKALIGN Position */
+#define SCB_CCR_STKALIGN_Msk (1ul << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */
+
+#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< SCB CCR: UNALIGN_TRP Position */
+#define SCB_CCR_UNALIGN_TRP_Msk (1ul << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */
+
+/* SCB System Handler Control and State Register Definitions */
+#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */
+#define SCB_SHCSR_SVCALLPENDED_Msk (1ul << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */
+
+/* SCB Debug Fault Status Register Definitions */
+#define SCB_DFSR_EXTERNAL_Pos 4 /*!< SCB DFSR: EXTERNAL Position */
+#define SCB_DFSR_EXTERNAL_Msk (1ul << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */
+
+#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */
+#define SCB_DFSR_VCATCH_Msk (1ul << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */
+
+#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */
+#define SCB_DFSR_DWTTRAP_Msk (1ul << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */
+
+#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */
+#define SCB_DFSR_BKPT_Msk (1ul << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */
+
+#define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */
+#define SCB_DFSR_HALTED_Msk (1ul << SCB_DFSR_HALTED_Pos) /*!< SCB DFSR: HALTED Mask */
+/*@}*/ /* end of group CMSIS_CM0_SCB */
+
+
+/** @addtogroup CMSIS_CM0_SysTick CMSIS CM0 SysTick
+ memory mapped structure for SysTick
+ @{
+ */
+typedef struct
+{
+ __IO uint32_t CTRL; /*!< Offset: 0x00 SysTick Control and Status Register */
+ __IO uint32_t LOAD; /*!< Offset: 0x04 SysTick Reload Value Register */
+ __IO uint32_t VAL; /*!< Offset: 0x08 SysTick Current Value Register */
+ __I uint32_t CALIB; /*!< Offset: 0x0C SysTick Calibration Register */
+} SysTick_Type;
+
+/* SysTick Control / Status Register Definitions */
+#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */
+#define SysTick_CTRL_COUNTFLAG_Msk (1ul << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */
+
+#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */
+#define SysTick_CTRL_CLKSOURCE_Msk (1ul << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */
+
+#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */
+#define SysTick_CTRL_TICKINT_Msk (1ul << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */
+
+#define SysTick_CTRL_ENABLE_Pos 0 /*!< SysTick CTRL: ENABLE Position */
+#define SysTick_CTRL_ENABLE_Msk (1ul << SysTick_CTRL_ENABLE_Pos) /*!< SysTick CTRL: ENABLE Mask */
+
+/* SysTick Reload Register Definitions */
+#define SysTick_LOAD_RELOAD_Pos 0 /*!< SysTick LOAD: RELOAD Position */
+#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos) /*!< SysTick LOAD: RELOAD Mask */
+
+/* SysTick Current Register Definitions */
+#define SysTick_VAL_CURRENT_Pos 0 /*!< SysTick VAL: CURRENT Position */
+#define SysTick_VAL_CURRENT_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick VAL: CURRENT Mask */
+
+/* SysTick Calibration Register Definitions */
+#define SysTick_CALIB_NOREF_Pos 31 /*!< SysTick CALIB: NOREF Position */
+#define SysTick_CALIB_NOREF_Msk (1ul << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */
+
+#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */
+#define SysTick_CALIB_SKEW_Msk (1ul << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */
+
+#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */
+#define SysTick_CALIB_TENMS_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */
+/*@}*/ /* end of group CMSIS_CM0_SysTick */
+
+
+/** @addtogroup CMSIS_CM0_CoreDebug CMSIS CM0 Core Debug
+ memory mapped structure for Core Debug Register
+ @{
+ */
+typedef struct
+{
+ __IO uint32_t DHCSR; /*!< Offset: 0x00 Debug Halting Control and Status Register */
+ __O uint32_t DCRSR; /*!< Offset: 0x04 Debug Core Register Selector Register */
+ __IO uint32_t DCRDR; /*!< Offset: 0x08 Debug Core Register Data Register */
+ __IO uint32_t DEMCR; /*!< Offset: 0x0C Debug Exception and Monitor Control Register */
+} CoreDebug_Type;
+
+/* Debug Halting Control and Status Register */
+#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< CoreDebug DHCSR: DBGKEY Position */
+#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFul << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */
+
+#define CoreDebug_DHCSR_S_RESET_ST_Pos 25 /*!< CoreDebug DHCSR: S_RESET_ST Position */
+#define CoreDebug_DHCSR_S_RESET_ST_Msk (1ul << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */
+
+#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24 /*!< CoreDebug DHCSR: S_RETIRE_ST Position */
+#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1ul << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */
+
+#define CoreDebug_DHCSR_S_LOCKUP_Pos 19 /*!< CoreDebug DHCSR: S_LOCKUP Position */
+#define CoreDebug_DHCSR_S_LOCKUP_Msk (1ul << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */
+
+#define CoreDebug_DHCSR_S_SLEEP_Pos 18 /*!< CoreDebug DHCSR: S_SLEEP Position */
+#define CoreDebug_DHCSR_S_SLEEP_Msk (1ul << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */
+
+#define CoreDebug_DHCSR_S_HALT_Pos 17 /*!< CoreDebug DHCSR: S_HALT Position */
+#define CoreDebug_DHCSR_S_HALT_Msk (1ul << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */
+
+#define CoreDebug_DHCSR_S_REGRDY_Pos 16 /*!< CoreDebug DHCSR: S_REGRDY Position */
+#define CoreDebug_DHCSR_S_REGRDY_Msk (1ul << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */
+
+#define CoreDebug_DHCSR_C_MASKINTS_Pos 3 /*!< CoreDebug DHCSR: C_MASKINTS Position */
+#define CoreDebug_DHCSR_C_MASKINTS_Msk (1ul << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */
+
+#define CoreDebug_DHCSR_C_STEP_Pos 2 /*!< CoreDebug DHCSR: C_STEP Position */
+#define CoreDebug_DHCSR_C_STEP_Msk (1ul << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */
+
+#define CoreDebug_DHCSR_C_HALT_Pos 1 /*!< CoreDebug DHCSR: C_HALT Position */
+#define CoreDebug_DHCSR_C_HALT_Msk (1ul << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */
+
+#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0 /*!< CoreDebug DHCSR: C_DEBUGEN Position */
+#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1ul << CoreDebug_DHCSR_C_DEBUGEN_Pos) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */
+
+/* Debug Core Register Selector Register */
+#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */
+#define CoreDebug_DCRSR_REGWnR_Msk (1ul << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */
+
+#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< CoreDebug DCRSR: REGSEL Position */
+#define CoreDebug_DCRSR_REGSEL_Msk (0x1Ful << CoreDebug_DCRSR_REGSEL_Pos) /*!< CoreDebug DCRSR: REGSEL Mask */
+
+/* Debug Exception and Monitor Control Register */
+#define CoreDebug_DEMCR_DWTENA_Pos 24 /*!< CoreDebug DEMCR: DWTENA Position */
+#define CoreDebug_DEMCR_DWTENA_Msk (1ul << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */
+
+#define CoreDebug_DEMCR_VC_HARDERR_Pos 10 /*!< CoreDebug DEMCR: VC_HARDERR Position */
+#define CoreDebug_DEMCR_VC_HARDERR_Msk (1ul << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */
+
+#define CoreDebug_DEMCR_VC_CORERESET_Pos 0 /*!< CoreDebug DEMCR: VC_CORERESET Position */
+#define CoreDebug_DEMCR_VC_CORERESET_Msk (1ul << CoreDebug_DEMCR_VC_CORERESET_Pos) /*!< CoreDebug DEMCR: VC_CORERESET Mask */
+/*@}*/ /* end of group CMSIS_CM0_CoreDebug */
+
+
+/* Memory mapping of Cortex-M0 Hardware */
+#define SCS_BASE (0xE000E000) /*!< System Control Space Base Address */
+#define CoreDebug_BASE (0xE000EDF0) /*!< Core Debug Base Address */
+#define SysTick_BASE (SCS_BASE + 0x0010) /*!< SysTick Base Address */
+#define NVIC_BASE (SCS_BASE + 0x0100) /*!< NVIC Base Address */
+#define SCB_BASE (SCS_BASE + 0x0D00) /*!< System Control Block Base Address */
+
+#define SCB ((SCB_Type *) SCB_BASE) /*!< SCB configuration struct */
+#define SysTick ((SysTick_Type *) SysTick_BASE) /*!< SysTick configuration struct */
+#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */
+#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */
+
+/*@}*/ /* end of group CMSIS_CM0_core_register */
+
+
+/*******************************************************************************
+ * Hardware Abstraction Layer
+ ******************************************************************************/
+
+#if defined ( __CC_ARM )
+ #define __ASM __asm /*!< asm keyword for ARM Compiler */
+ #define __INLINE __inline /*!< inline keyword for ARM Compiler */
+
+#elif defined ( __ICCARM__ )
+ #define __ASM __asm /*!< asm keyword for IAR Compiler */
+ #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */
+
+#elif defined ( __GNUC__ )
+ #define __ASM __asm /*!< asm keyword for GNU Compiler */
+ #define __INLINE inline /*!< inline keyword for GNU Compiler */
+
+#elif defined ( __TASKING__ )
+ #define __ASM __asm /*!< asm keyword for TASKING Compiler */
+ #define __INLINE inline /*!< inline keyword for TASKING Compiler */
+
+#endif
+
+
+/* ################### Compiler specific Intrinsics ########################### */
+
+#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/
+/* ARM armcc specific functions */
+
+#define __enable_fault_irq __enable_fiq
+#define __disable_fault_irq __disable_fiq
+
+#define __NOP __nop
+#define __WFI __wfi
+#define __WFE __wfe
+#define __SEV __sev
+#define __ISB() __isb(0)
+#define __DSB() __dsb(0)
+#define __DMB() __dmb(0)
+#define __REV __rev
+
+
+/* intrinsic void __enable_irq(); */
+/* intrinsic void __disable_irq(); */
+
+
+/**
+ * @brief Return the Process Stack Pointer
+ *
+ * @return ProcessStackPointer
+ *
+ * Return the actual process stack pointer
+ */
+extern uint32_t __get_PSP(void);
+
+/**
+ * @brief Set the Process Stack Pointer
+ *
+ * @param topOfProcStack Process Stack Pointer
+ *
+ * Assign the value ProcessStackPointer to the MSP
+ * (process stack pointer) Cortex processor register
+ */
+extern void __set_PSP(uint32_t topOfProcStack);
+
+/**
+ * @brief Return the Main Stack Pointer
+ *
+ * @return Main Stack Pointer
+ *
+ * Return the current value of the MSP (main stack pointer)
+ * Cortex processor register
+ */
+extern uint32_t __get_MSP(void);
+
+/**
+ * @brief Set the Main Stack Pointer
+ *
+ * @param topOfMainStack Main Stack Pointer
+ *
+ * Assign the value mainStackPointer to the MSP
+ * (main stack pointer) Cortex processor register
+ */
+extern void __set_MSP(uint32_t topOfMainStack);
+
+/**
+ * @brief Reverse byte order in unsigned short value
+ *
+ * @param value value to reverse
+ * @return reversed value
+ *
+ * Reverse byte order in unsigned short value
+ */
+extern uint32_t __REV16(uint16_t value);
+
+/**
+ * @brief Reverse byte order in signed short value with sign extension to integer
+ *
+ * @param value value to reverse
+ * @return reversed value
+ *
+ * Reverse byte order in signed short value with sign extension to integer
+ */
+extern int32_t __REVSH(int16_t value);
+
+
+#if (__ARMCC_VERSION < 400000)
+
+/**
+ * @brief Return the Priority Mask value
+ *
+ * @return PriMask
+ *
+ * Return state of the priority mask bit from the priority mask register
+ */
+extern uint32_t __get_PRIMASK(void);
+
+/**
+ * @brief Set the Priority Mask value
+ *
+ * @param priMask PriMask
+ *
+ * Set the priority mask bit in the priority mask register
+ */
+extern void __set_PRIMASK(uint32_t priMask);
+
+/**
+ * @brief Return the Control Register value
+ *
+ * @return Control value
+ *
+ * Return the content of the control register
+ */
+extern uint32_t __get_CONTROL(void);
+
+/**
+ * @brief Set the Control Register value
+ *
+ * @param control Control value
+ *
+ * Set the control register
+ */
+extern void __set_CONTROL(uint32_t control);
+
+#else /* (__ARMCC_VERSION >= 400000) */
+
+
+/**
+ * @brief Return the Priority Mask value
+ *
+ * @return PriMask
+ *
+ * Return state of the priority mask bit from the priority mask register
+ */
+static __INLINE uint32_t __get_PRIMASK(void)
+{
+ register uint32_t __regPriMask __ASM("primask");
+ return(__regPriMask);
+}
+
+/**
+ * @brief Set the Priority Mask value
+ *
+ * @param priMask PriMask
+ *
+ * Set the priority mask bit in the priority mask register
+ */
+static __INLINE void __set_PRIMASK(uint32_t priMask)
+{
+ register uint32_t __regPriMask __ASM("primask");
+ __regPriMask = (priMask);
+}
+
+/**
+ * @brief Return the Control Register value
+ *
+ * @return Control value
+ *
+ * Return the content of the control register
+ */
+static __INLINE uint32_t __get_CONTROL(void)
+{
+ register uint32_t __regControl __ASM("control");
+ return(__regControl);
+}
+
+/**
+ * @brief Set the Control Register value
+ *
+ * @param control Control value
+ *
+ * Set the control register
+ */
+static __INLINE void __set_CONTROL(uint32_t control)
+{
+ register uint32_t __regControl __ASM("control");
+ __regControl = control;
+}
+
+#endif /* __ARMCC_VERSION */
+
+
+
+#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
+/* IAR iccarm specific functions */
+
+#define __enable_irq __enable_interrupt /*!< global Interrupt enable */
+#define __disable_irq __disable_interrupt /*!< global Interrupt disable */
+
+static __INLINE void __enable_fault_irq() { __ASM ("cpsie f"); }
+static __INLINE void __disable_fault_irq() { __ASM ("cpsid f"); }
+
+#define __NOP __no_operation /*!< no operation intrinsic in IAR Compiler */
+static __INLINE void __WFI() { __ASM ("wfi"); }
+static __INLINE void __WFE() { __ASM ("wfe"); }
+static __INLINE void __SEV() { __ASM ("sev"); }
+
+/* intrinsic void __ISB(void) */
+/* intrinsic void __DSB(void) */
+/* intrinsic void __DMB(void) */
+/* intrinsic void __set_PRIMASK(); */
+/* intrinsic void __get_PRIMASK(); */
+
+
+/* intrinsic uint32_t __REV(uint32_t value); */
+/* intrinsic uint32_t __REVSH(uint32_t value); */
+
+
+/**
+ * @brief Return the Process Stack Pointer
+ *
+ * @return ProcessStackPointer
+ *
+ * Return the actual process stack pointer
+ */
+extern uint32_t __get_PSP(void);
+
+/**
+ * @brief Set the Process Stack Pointer
+ *
+ * @param topOfProcStack Process Stack Pointer
+ *
+ * Assign the value ProcessStackPointer to the MSP
+ * (process stack pointer) Cortex processor register
+ */
+extern void __set_PSP(uint32_t topOfProcStack);
+
+/**
+ * @brief Return the Main Stack Pointer
+ *
+ * @return Main Stack Pointer
+ *
+ * Return the current value of the MSP (main stack pointer)
+ * Cortex processor register
+ */
+extern uint32_t __get_MSP(void);
+
+/**
+ * @brief Set the Main Stack Pointer
+ *
+ * @param topOfMainStack Main Stack Pointer
+ *
+ * Assign the value mainStackPointer to the MSP
+ * (main stack pointer) Cortex processor register
+ */
+extern void __set_MSP(uint32_t topOfMainStack);
+
+/**
+ * @brief Reverse byte order in unsigned short value
+ *
+ * @param value value to reverse
+ * @return reversed value
+ *
+ * Reverse byte order in unsigned short value
+ */
+extern uint32_t __REV16(uint16_t value);
+
+
+
+
+
+#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
+/* GNU gcc specific functions */
+
+static __INLINE void __enable_irq() { __ASM volatile ("cpsie i"); }
+static __INLINE void __disable_irq() { __ASM volatile ("cpsid i"); }
+
+static __INLINE void __enable_fault_irq() { __ASM volatile ("cpsie f"); }
+static __INLINE void __disable_fault_irq() { __ASM volatile ("cpsid f"); }
+
+static __INLINE void __NOP() { __ASM volatile ("nop"); }
+static __INLINE void __WFI() { __ASM volatile ("wfi"); }
+static __INLINE void __WFE() { __ASM volatile ("wfe"); }
+static __INLINE void __SEV() { __ASM volatile ("sev"); }
+static __INLINE void __ISB() { __ASM volatile ("isb"); }
+static __INLINE void __DSB() { __ASM volatile ("dsb"); }
+static __INLINE void __DMB() { __ASM volatile ("dmb"); }
+
+
+/**
+ * @brief Return the Process Stack Pointer
+ *
+ * @return ProcessStackPointer
+ *
+ * Return the actual process stack pointer
+ */
+extern uint32_t __get_PSP(void);
+
+/**
+ * @brief Set the Process Stack Pointer
+ *
+ * @param topOfProcStack Process Stack Pointer
+ *
+ * Assign the value ProcessStackPointer to the MSP
+ * (process stack pointer) Cortex processor register
+ */
+extern void __set_PSP(uint32_t topOfProcStack);
+
+/**
+ * @brief Return the Main Stack Pointer
+ *
+ * @return Main Stack Pointer
+ *
+ * Return the current value of the MSP (main stack pointer)
+ * Cortex processor register
+ */
+extern uint32_t __get_MSP(void);
+
+/**
+ * @brief Set the Main Stack Pointer
+ *
+ * @param topOfMainStack Main Stack Pointer
+ *
+ * Assign the value mainStackPointer to the MSP
+ * (main stack pointer) Cortex processor register
+ */
+extern void __set_MSP(uint32_t topOfMainStack);
+
+/**
+ * @brief Return the Priority Mask value
+ *
+ * @return PriMask
+ *
+ * Return state of the priority mask bit from the priority mask register
+ */
+extern uint32_t __get_PRIMASK(void);
+
+/**
+ * @brief Set the Priority Mask value
+ *
+ * @param priMask PriMask
+ *
+ * Set the priority mask bit in the priority mask register
+ */
+extern void __set_PRIMASK(uint32_t priMask);
+
+/**
+ * @brief Return the Control Register value
+*
+* @return Control value
+ *
+ * Return the content of the control register
+ */
+extern uint32_t __get_CONTROL(void);
+
+/**
+ * @brief Set the Control Register value
+ *
+ * @param control Control value
+ *
+ * Set the control register
+ */
+extern void __set_CONTROL(uint32_t control);
+
+/**
+ * @brief Reverse byte order in integer value
+ *
+ * @param value value to reverse
+ * @return reversed value
+ *
+ * Reverse byte order in integer value
+ */
+extern uint32_t __REV(uint32_t value);
+
+/**
+ * @brief Reverse byte order in unsigned short value
+ *
+ * @param value value to reverse
+ * @return reversed value
+ *
+ * Reverse byte order in unsigned short value
+ */
+extern uint32_t __REV16(uint16_t value);
+
+/**
+ * @brief Reverse byte order in signed short value with sign extension to integer
+ *
+ * @param value value to reverse
+ * @return reversed value
+ *
+ * Reverse byte order in signed short value with sign extension to integer
+ */
+extern int32_t __REVSH(int16_t value);
+
+
+#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/
+/* TASKING carm specific functions */
+
+/*
+ * The CMSIS functions have been implemented as intrinsics in the compiler.
+ * Please use "carm -?i" to get an up to date list of all instrinsics,
+ * Including the CMSIS ones.
+ */
+
+#endif
+
+
+/** @addtogroup CMSIS_CM0_Core_FunctionInterface CMSIS CM0 Core Function Interface
+ Core Function Interface containing:
+ - Core NVIC Functions
+ - Core SysTick Functions
+ - Core Reset Functions
+*/
+/*@{*/
+
+/* ########################## NVIC functions #################################### */
+
+/* Interrupt Priorities are WORD accessible only under ARMv6M */
+/* The following MACROS handle generation of the register offset and byte masks */
+#define _BIT_SHIFT(IRQn) ( (((uint32_t)(IRQn) ) & 0x03) * 8 )
+#define _SHP_IDX(IRQn) ( ((((uint32_t)(IRQn) & 0x0F)-8) >> 2) )
+#define _IP_IDX(IRQn) ( ((uint32_t)(IRQn) >> 2) )
+
+
+/**
+ * @brief Enable Interrupt in NVIC Interrupt Controller
+ *
+ * @param IRQn The positive number of the external interrupt to enable
+ *
+ * Enable a device specific interupt in the NVIC interrupt controller.
+ * The interrupt number cannot be a negative value.
+ */
+static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
+{
+ NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */
+}
+
+/**
+ * @brief Disable the interrupt line for external interrupt specified
+ *
+ * @param IRQn The positive number of the external interrupt to disable
+ *
+ * Disable a device specific interupt in the NVIC interrupt controller.
+ * The interrupt number cannot be a negative value.
+ */
+static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
+{
+ NVIC->ICER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */
+}
+
+/**
+ * @brief Read the interrupt pending bit for a device specific interrupt source
+ *
+ * @param IRQn The number of the device specifc interrupt
+ * @return 1 = interrupt pending, 0 = interrupt not pending
+ *
+ * Read the pending register in NVIC and return 1 if its status is pending,
+ * otherwise it returns 0
+ */
+static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
+{
+ return((uint32_t) ((NVIC->ISPR[0] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */
+}
+
+/**
+ * @brief Set the pending bit for an external interrupt
+ *
+ * @param IRQn The number of the interrupt for set pending
+ *
+ * Set the pending bit for the specified interrupt.
+ * The interrupt number cannot be a negative value.
+ */
+static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
+{
+ NVIC->ISPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */
+}
+
+/**
+ * @brief Clear the pending bit for an external interrupt
+ *
+ * @param IRQn The number of the interrupt for clear pending
+ *
+ * Clear the pending bit for the specified interrupt.
+ * The interrupt number cannot be a negative value.
+ */
+static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
+{
+ NVIC->ICPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */
+}
+
+/**
+ * @brief Set the priority for an interrupt
+ *
+ * @param IRQn The number of the interrupt for set priority
+ * @param priority The priority to set
+ *
+ * Set the priority for the specified interrupt. The interrupt
+ * number can be positive to specify an external (device specific)
+ * interrupt, or negative to specify an internal (core) interrupt.
+ *
+ * Note: The priority cannot be set for every core interrupt.
+ */
+static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
+{
+ if(IRQn < 0) {
+ SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |
+ (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }
+ else {
+ NVIC->IPR[_IP_IDX(IRQn)] = (NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |
+ (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }
+}
+
+/**
+ * @brief Read the priority for an interrupt
+ *
+ * @param IRQn The number of the interrupt for get priority
+ * @return The priority for the interrupt
+ *
+ * Read the priority for the specified interrupt. The interrupt
+ * number can be positive to specify an external (device specific)
+ * interrupt, or negative to specify an internal (core) interrupt.
+ *
+ * The returned priority value is automatically aligned to the implemented
+ * priority bits of the microcontroller.
+ *
+ * Note: The priority cannot be set for every core interrupt.
+ */
+static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
+{
+
+ if(IRQn < 0) {
+ return((uint32_t)((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M0 system interrupts */
+ else {
+ return((uint32_t)((NVIC->IPR[_IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */
+}
+
+
+
+/* ################################## SysTick function ############################################ */
+
+#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)
+
+/**
+ * @brief Initialize and start the SysTick counter and its interrupt.
+ *
+ * @param ticks number of ticks between two interrupts
+ * @return 1 = failed, 0 = successful
+ *
+ * Initialise the system tick timer and its interrupt and start the
+ * system tick timer / counter in free running mode to generate
+ * periodical interrupts.
+ */
+static __INLINE uint32_t SysTick_Config(uint32_t ticks)
+{
+ if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */
+
+ SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */
+ NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */
+ SysTick->VAL = 0; /* Load the SysTick Counter Value */
+ SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
+ SysTick_CTRL_TICKINT_Msk |
+ SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
+ return (0); /* Function successful */
+}
+
+#endif
+
+
+
+
+/* ################################## Reset function ############################################ */
+
+/**
+ * @brief Initiate a system reset request.
+ *
+ * Initiate a system reset request to reset the MCU
+ */
+static __INLINE void NVIC_SystemReset(void)
+{
+ SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) |
+ SCB_AIRCR_SYSRESETREQ_Msk);
+ __DSB(); /* Ensure completion of memory access */
+ while(1); /* wait until reset */
+}
+
+/*@}*/ /* end of group CMSIS_CM0_Core_FunctionInterface */
+
+#ifdef __cplusplus
+}
+#endif
+
+/*@}*/ /* end of group CMSIS_CM0_core_definitions */
+
+#endif /* __CM0_CORE_H__ */
+
+/*lint -restore */
diff --git a/src/core/cr_cpp_config.cpp b/src/core/cr_cpp_config.cpp new file mode 100755 index 0000000..8577b2d --- /dev/null +++ b/src/core/cr_cpp_config.cpp @@ -0,0 +1,56 @@ +//*****************************************************************************
+// +--+
+// | ++----+
+// +-++ |
+// | |
+// +-+--+ |
+// | +--+--+
+// +----+ Copyright (c) 2009-10 Code Red Technologies Ltd.
+//
+// Microcontroller Startup code for use with Red Suite
+//
+// Version : 101026
+//
+// Software License Agreement
+//
+// The software is owned by Code Red Technologies and/or its suppliers, and is
+// protected under applicable copyright laws. All rights are reserved. Any
+// use in violation of the foregoing restrictions may subject the user to criminal
+// sanctions under applicable laws, as well as to civil liability for the breach
+// of the terms and conditions of this license.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+// USE OF THIS SOFTWARE FOR COMMERCIAL DEVELOPMENT AND/OR EDUCATION IS SUBJECT
+// TO A CURRENT END USER LICENSE AGREEMENT (COMMERCIAL OR EDUCATIONAL) WITH
+// CODE RED TECHNOLOGIES LTD.
+//
+//*****************************************************************************
+
+#define $(CPPHeapFlag)
+
+#include <stdlib.h>
+
+void *operator new(size_t size) throw() {
+ return malloc(size);
+}
+void operator delete(void *p) throw() {
+ free(p);
+}
+
+extern "C" int __aeabi_atexit(void *object,
+ void (*destructor)(void *),
+ void *dso_handle)
+{
+ return 0;
+}
+
+#ifdef CPP_NO_HEAP
+extern "C" void *malloc(size_t) {
+ return (void *)0;
+}
+
+extern "C" void free(void *) {
+}
+#endif
diff --git a/src/core/cr_startup_lpc11.cpp b/src/core/cr_startup_lpc11.cpp new file mode 100755 index 0000000..e58e676 --- /dev/null +++ b/src/core/cr_startup_lpc11.cpp @@ -0,0 +1,383 @@ +//*****************************************************************************
+// +--+
+// | ++----+
+// +-++ |
+// | |
+// +-+--+ |
+// | +--+--+
+// +----+ Copyright (c) 2009-10 Code Red Technologies Ltd.
+//
+// Microcontroller Startup code for use with Red Suite
+//
+// Version : 101130
+//
+// Software License Agreement
+//
+// The software is owned by Code Red Technologies and/or its suppliers, and is
+// protected under applicable copyright laws. All rights are reserved. Any
+// use in violation of the foregoing restrictions may subject the user to criminal
+// sanctions under applicable laws, as well as to civil liability for the breach
+// of the terms and conditions of this license.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+// USE OF THIS SOFTWARE FOR COMMERCIAL DEVELOPMENT AND/OR EDUCATION IS SUBJECT
+// TO A CURRENT END USER LICENSE AGREEMENT (COMMERCIAL OR EDUCATIONAL) WITH
+// CODE RED TECHNOLOGIES LTD.
+//
+//*****************************************************************************
+#if defined (__cplusplus)
+#ifdef __REDLIB__
+#error Redlib does not support C++
+#else
+//*****************************************************************************
+//
+// The entry point for the C++ library startup
+//
+//*****************************************************************************
+
+extern "C" void __cxa_pure_virtual() {
+ while (1);
+}
+
+
+extern "C" {
+ extern void __libc_init_array(void);
+}
+#endif
+#endif
+
+#define WEAK __attribute__ ((weak))
+#define ALIAS(f) __attribute__ ((weak, alias (#f)))
+
+// Code Red - if CMSIS is being used, then SystemInit() routine
+// will be called by startup code rather than in application's main()
+//#if defined (__USE_CMSIS)
+#include "system_LPC11xx.h"
+//#endif
+
+//*****************************************************************************
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
+//*****************************************************************************
+//
+// Forward declaration of the default handlers. These are aliased.
+// When the application defines a handler (with the same name), this will
+// automatically take precedence over these weak definitions
+//
+//*****************************************************************************
+ void ResetISR(void);
+WEAK void NMI_Handler(void);
+WEAK void HardFault_Handler(void);
+WEAK void SVCall_Handler(void);
+WEAK void PendSV_Handler(void);
+WEAK void SysTick_Handler(void);
+WEAK void IntDefaultHandler(void);
+//*****************************************************************************
+//
+// Forward declaration of the specific IRQ handlers. These are aliased
+// to the IntDefaultHandler, which is a 'forever' loop. When the application
+// defines a handler (with the same name), this will automatically take
+// precedence over these weak definitions
+//
+//*****************************************************************************
+
+void CAN_IRQHandler (void) ALIAS(IntDefaultHandler);
+void SSP1_IRQHandler (void) ALIAS(IntDefaultHandler);
+void I2C_IRQHandler (void) ALIAS(IntDefaultHandler);
+void TIMER16_0_IRQHandler (void) ALIAS(IntDefaultHandler);
+void TIMER16_1_IRQHandler (void) ALIAS(IntDefaultHandler);
+void TIMER32_0_IRQHandler (void) ALIAS(IntDefaultHandler);
+void TIMER32_1_IRQHandler (void) ALIAS(IntDefaultHandler);
+void SSP0_IRQHandler (void) ALIAS(IntDefaultHandler);
+void UART_IRQHandler (void) ALIAS(IntDefaultHandler);
+void ADC_IRQHandler (void) ALIAS(IntDefaultHandler);
+void WDT_IRQHandler (void) ALIAS(IntDefaultHandler);
+void BOD_IRQHandler (void) ALIAS(IntDefaultHandler);
+void PIOINT3_IRQHandler (void) ALIAS(IntDefaultHandler);
+void PIOINT2_IRQHandler (void) ALIAS(IntDefaultHandler);
+void PIOINT1_IRQHandler (void) ALIAS(IntDefaultHandler);
+void PIOINT0_IRQHandler (void) ALIAS(IntDefaultHandler);
+void WAKEUP_IRQHandler (void) ALIAS(IntDefaultHandler);
+
+//*****************************************************************************
+//
+// The entry point for the application.
+// __main() is the entry point for redlib based applications
+// main() is the entry point for newlib based applications
+//
+//*****************************************************************************
+//
+// The entry point for the application.
+// __main() is the entry point for Redlib based applications
+// main() is the entry point for Newlib based applications
+//
+//*****************************************************************************
+#if defined (__REDLIB__)
+extern void __main(void);
+#endif
+extern int main(void);
+//*****************************************************************************
+//
+// External declaration for the pointer to the stack top from the Linker Script
+//
+//*****************************************************************************
+extern void _vStackTop(void);
+
+//*****************************************************************************
+#if defined (__cplusplus)
+} // extern "C"
+#endif
+//*****************************************************************************
+//
+// The vector table. Note that the proper constructs must be placed on this to
+// ensure that it ends up at physical address 0x0000.0000.
+//
+//*****************************************************************************
+extern void (* const g_pfnVectors[])(void);
+__attribute__ ((section(".isr_vector")))
+void (* const g_pfnVectors[])(void) = {
+ &_vStackTop, // The initial stack pointer
+ ResetISR, // The reset handler
+ NMI_Handler, // The NMI handler
+ HardFault_Handler, // The hard fault handler
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ SVCall_Handler, // SVCall handler
+ 0, // Reserved
+ 0, // Reserved
+ PendSV_Handler, // The PendSV handler
+ SysTick_Handler, // The SysTick handler
+
+ // Wakeup sources for the I/O pins:
+ // PIO0 (0:11)
+ // PIO1 (0)
+ WAKEUP_IRQHandler, // PIO0_0 Wakeup
+ WAKEUP_IRQHandler, // PIO0_1 Wakeup
+ WAKEUP_IRQHandler, // PIO0_2 Wakeup
+ WAKEUP_IRQHandler, // PIO0_3 Wakeup
+ WAKEUP_IRQHandler, // PIO0_4 Wakeup
+ WAKEUP_IRQHandler, // PIO0_5 Wakeup
+ WAKEUP_IRQHandler, // PIO0_6 Wakeup
+ WAKEUP_IRQHandler, // PIO0_7 Wakeup
+ WAKEUP_IRQHandler, // PIO0_8 Wakeup
+ WAKEUP_IRQHandler, // PIO0_9 Wakeup
+ WAKEUP_IRQHandler, // PIO0_10 Wakeup
+ WAKEUP_IRQHandler, // PIO0_11 Wakeup
+ WAKEUP_IRQHandler, // PIO1_0 Wakeup
+
+ CAN_IRQHandler, // C_CAN Interrupt
+ SSP1_IRQHandler, // SPI/SSP1 Interrupt
+ I2C_IRQHandler, // I2C0
+ TIMER16_0_IRQHandler, // CT16B0 (16-bit Timer 0)
+ TIMER16_1_IRQHandler, // CT16B1 (16-bit Timer 1)
+ TIMER32_0_IRQHandler, // CT32B0 (32-bit Timer 0)
+ TIMER32_1_IRQHandler, // CT32B1 (32-bit Timer 1)
+ SSP0_IRQHandler, // SPI/SSP0 Interrupt
+ UART_IRQHandler, // UART0
+
+ 0, // Reserved
+ 0, // Reserved
+
+ ADC_IRQHandler, // ADC (A/D Converter)
+ WDT_IRQHandler, // WDT (Watchdog Timer)
+ BOD_IRQHandler, // BOD (Brownout Detect)
+ 0, // Reserved
+ PIOINT3_IRQHandler, // PIO INT3
+ PIOINT2_IRQHandler, // PIO INT2
+ PIOINT1_IRQHandler, // PIO INT1
+ PIOINT0_IRQHandler, // PIO INT0
+};
+
+//*****************************************************************************
+// Functions to carry out the initialization of RW and BSS data sections. These
+// are written as separate functions rather than being inlined within the
+// ResetISR() function in order to cope with MCUs with multiple banks of
+// memory.
+//*****************************************************************************
+__attribute__ ((section(".after_vectors")))
+void data_init(unsigned int romstart, unsigned int start, unsigned int len) {
+ unsigned int *pulDest = (unsigned int*) start;
+ unsigned int *pulSrc = (unsigned int*) romstart;
+ unsigned int loop;
+ for (loop = 0; loop < len; loop = loop + 4)
+ *pulDest++ = *pulSrc++;
+}
+
+__attribute__ ((section(".after_vectors")))
+void bss_init(unsigned int start, unsigned int len) {
+ unsigned int *pulDest = (unsigned int*) start;
+ unsigned int loop;
+ for (loop = 0; loop < len; loop = loop + 4)
+ *pulDest++ = 0;
+}
+
+#ifndef USE_OLD_STYLE_DATA_BSS_INIT
+//*****************************************************************************
+// The following symbols are constructs generated by the linker, indicating
+// the location of various points in the "Global Section Table". This table is
+// created by the linker via the Code Red managed linker script mechanism. It
+// contains the load address, execution address and length of each RW data
+// section and the execution and length of each BSS (zero initialized) section.
+//*****************************************************************************
+extern unsigned int __data_section_table;
+extern unsigned int __data_section_table_end;
+extern unsigned int __bss_section_table;
+extern unsigned int __bss_section_table_end;
+#else
+//*****************************************************************************
+// The following symbols are constructs generated by the linker, indicating
+// the load address, execution address and length of the RW data section and
+// the execution and length of the BSS (zero initialized) section.
+// Note that these symbols are not normally used by the managed linker script
+// mechanism in Red Suite/LPCXpresso 3.6 (Windows) and LPCXpresso 3.8 (Linux).
+// They are provide here simply so this startup code can be used with earlier
+// versions of Red Suite which do not support the more advanced managed linker
+// script mechanism introduced in the above version. To enable their use,
+// define "USE_OLD_STYLE_DATA_BSS_INIT".
+//*****************************************************************************
+extern unsigned int _etext;
+extern unsigned int _data;
+extern unsigned int _edata;
+extern unsigned int _bss;
+extern unsigned int _ebss;
+#endif
+
+
+//*****************************************************************************
+// Reset entry point for your code.
+// Sets up a simple runtime environment and initializes the C/C++
+// library.
+//*****************************************************************************
+__attribute__ ((section(".after_vectors")))
+void
+ResetISR(void) {
+
+#ifndef USE_OLD_STYLE_DATA_BSS_INIT
+ //
+ // Copy the data sections from flash to SRAM.
+ //
+ unsigned int LoadAddr, ExeAddr, SectionLen;
+ unsigned int *SectionTableAddr;
+
+ // Load base address of Global Section Table
+ SectionTableAddr = &__data_section_table;
+
+ // Copy the data sections from flash to SRAM.
+ while (SectionTableAddr < &__data_section_table_end) {
+ LoadAddr = *SectionTableAddr++;
+ ExeAddr = *SectionTableAddr++;
+ SectionLen = *SectionTableAddr++;
+ data_init(LoadAddr, ExeAddr, SectionLen);
+ }
+ // At this point, SectionTableAddr = &__bss_section_table;
+ // Zero fill the bss segment
+ while (SectionTableAddr < &__bss_section_table_end) {
+ ExeAddr = *SectionTableAddr++;
+ SectionLen = *SectionTableAddr++;
+ bss_init(ExeAddr, SectionLen);
+ }
+#else
+ // Use Old Style Data and BSS section initialization.
+ // This will only initialize a single RAM bank.
+ unsigned int * LoadAddr, *ExeAddr, *EndAddr, SectionLen;
+
+ // Copy the data segment from flash to SRAM.
+ LoadAddr = &_etext;
+ ExeAddr = &_data;
+ EndAddr = &_edata;
+ SectionLen = (void*)EndAddr - (void*)ExeAddr;
+ data_init((unsigned int)LoadAddr, (unsigned int)ExeAddr, SectionLen);
+ // Zero fill the bss segment
+ ExeAddr = &_bss;
+ EndAddr = &_ebss;
+ SectionLen = (void*)EndAddr - (void*)ExeAddr;
+ bss_init ((unsigned int)ExeAddr, SectionLen);
+#endif
+
+//#ifdef __USE_CMSIS
+ SystemInit();
+//#endif
+
+#if defined (__cplusplus)
+ //
+ // Call C++ library initialisation
+ //
+ __libc_init_array();
+#endif
+
+#if defined (__REDLIB__)
+ // Call the Redlib library, which in turn calls main()
+ __main() ;
+#else
+ main();
+#endif
+ //
+ // main() shouldn't return, but if it does, we'll just enter an infinite loop
+ //
+ while (1) {
+ ;
+ }
+}
+//*****************************************************************************
+// Default exception handlers. Override the ones here by defining your own
+// handler routines in your application code.
+//*****************************************************************************
+__attribute__ ((section(".after_vectors")))
+void NMI_Handler(void)
+{
+ while(1)
+ {
+ }
+}
+__attribute__ ((section(".after_vectors")))
+void HardFault_Handler(void)
+{
+ while(1)
+ {
+ }
+}
+__attribute__ ((section(".after_vectors")))
+void SVCall_Handler(void)
+{
+ while(1)
+ {
+ }
+}
+__attribute__ ((section(".after_vectors")))
+void PendSV_Handler(void)
+{
+ while(1)
+ {
+ }
+}
+__attribute__ ((section(".after_vectors")))
+void SysTick_Handler(void)
+{
+ while(1)
+ {
+ }
+}
+
+//*****************************************************************************
+//
+// Processor ends up here if an unexpected interrupt occurs or a specific
+// handler is not present in the application code.
+//
+//*****************************************************************************
+__attribute__ ((section(".after_vectors")))
+void IntDefaultHandler(void)
+{
+ while(1)
+ {
+ }
+}
+
diff --git a/src/core/delay.cpp b/src/core/delay.cpp new file mode 100755 index 0000000..9d46a23 --- /dev/null +++ b/src/core/delay.cpp @@ -0,0 +1,123 @@ +/*
+ * systick.cpp
+ *
+ * Created on: 2011/08/11
+ * Author: atsu
+ */
+
+#include "delay.h"
+
+volatile static unsigned long msTicks; /* counts 1ms timeTicks */
+volatile USER_TIMER_FUNC userfunc; //user function's pointer
+
+/*------------------------------------------------------------------------------
+ delays number of tick Systicks (happens every 1 ms)
+ *------------------------------------------------------------------------------*/
+void delay (unsigned long dlyTicks) {
+ volatile unsigned long curTicks;
+
+ curTicks = msTicks;
+ while ((msTicks - curTicks) < dlyTicks);
+}
+
+
+unsigned long millis(void)
+{
+ return msTicks;
+}
+
+void delayMicroseconds (unsigned long us)
+{
+ volatile unsigned long usTicks;
+
+ //LPC_TMR16B0->TC = 0; //reset timer counter
+ usTicks = LPC_TMR32B1->TC; //usTicks = micros();
+ while ((LPC_TMR32B1->TC - usTicks) < us); //while ((micros() - usTicks) < us);
+
+}
+
+unsigned long micros(void)
+{
+ return LPC_TMR32B1->TC;
+}
+
+//for micros() and delayMicroseconds()
+void setup_TIMER32_1(void)
+{
+ attachMicroseconds(0,0xffffffff);
+ NVIC_DisableIRQ(TIMER_32_1_IRQn);
+}
+
+unsigned long attachMicroseconds(USER_TIMER_FUNC func,int us)
+{
+ LPC_SYSCON->SYSAHBCLKCTRL |= (1UL << 10); // Enable clock for CT32B1 module
+ if(us <= 1)return 0;
+
+ LPC_TMR32B1->PR = 48; //48MHz/48=1MHzに分周する
+ LPC_TMR32B1->MR2 = us - 1; //us
+
+ LPC_TMR32B1->MCR = (0x3 << 6); // clear at MR2 and Interrupt
+
+ NVIC_EnableIRQ(TIMER_32_1_IRQn);
+ NVIC_SetPriority(TIMER_32_1_IRQn,0);//割り込みレベル
+ LPC_TMR32B1->TCR = 1; //タイマスタート
+
+ userfunc = func;
+
+ return 0;
+}
+
+void detachMicroseconds(void)
+{
+ LPC_TMR32B1->MR2 = 0xffffffff; //us
+ NVIC_DisableIRQ(TIMER_32_1_IRQn);
+
+}
+
+/*----------------------------------------------------------------------------
+ Timer32_0_Handler
+ *----------------------------------------------------------------------------*/
+void TIMER32_1_IRQHandler (void)
+{
+ if (LPC_TMR32B1->IR & (1 << 2)) // MR2 Interrupt
+ {
+ if(userfunc)userfunc();
+
+ // Clear Flag
+ LPC_TMR32B1->IR = (1 << 2);
+ }
+}
+
+/*----------------------------------------------------------------------------
+ SysTick_Handler
+ *----------------------------------------------------------------------------*/
+void SysTick_Handler(void) {
+ msTicks++; /* increment counter necessary in Delay() */
+}
+
+void setup_systick (void) {
+
+ //LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);
+
+ // Setup SysTick Timer for 1 msec interrupts
+ // Configure System tick timer in 10msec period
+ volatile unsigned long period = SystemCoreClock / 1000; // Period for 1msec SYSTICK
+ SysTick_Config(period); // Configuration
+
+#if 1
+ if ( !(SysTick->CTRL & SysTick_CTRL_CLKSOURCE_Msk) )
+ {
+ /* When external reference clock is used(CLKSOURCE in
+ Systick Control and register bit 2 is set to 0), the
+ SYSTICKCLKDIV must be a non-zero value and 2.5 times
+ faster than the reference clock.
+ When core clock, or system AHB clock, is used(CLKSOURCE
+ in Systick Control and register bit 2 is set to 1), the
+ SYSTICKCLKDIV has no effect to the SYSTICK frequency. See
+ more on Systick clock and status register in Cortex-M3
+ technical Reference Manual. */
+ LPC_SYSCON->SYSTICKCLKDIV = 0x08;
+ }
+#endif
+}
+
diff --git a/src/core/delay.h b/src/core/delay.h new file mode 100755 index 0000000..f72d31f --- /dev/null +++ b/src/core/delay.h @@ -0,0 +1,64 @@ +/*
+ * systick.h
+ *
+ * Created on: 2011/08/11
+ * Author: atsu
+ */
+
+#ifndef SYSTICK_H_
+#define SYSTICK_H_
+
+/**************************************************************************//**
+ * @file systick.h
+ * @brief Arduino-like library for MARY(LPC1114)
+ * @version v.0.50
+ * @date 1. August 2011.
+ * @author this library's assembled by @@dw256 and rebuild by @@lynxeyed_atsu
+ * @note Copyright (c) 2011 Lynx-EyED's Klavier and Craft-works. <BR>
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions: <BR>
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.<BR>
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ ******************************************************************************/
+
+
+#include "LPC11xx.h"
+#include "system_LPC11xx.h"
+#include "uart.h"
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+
+
+typedef void (* USER_TIMER_FUNC)(void);
+
+void delay(unsigned long dlyTicks);
+void delayMicroseconds(unsigned long us);
+unsigned long millis(void);
+//low level
+void SysTick_Handler(void);
+void setup_systick (void);
+unsigned long micros(void);
+unsigned long attachMicroseconds(USER_TIMER_FUNC func,int us);
+void detachMicroseconds(void);
+
+void setup_TIMER32_1(void);
+void TIMER32_1_IRQHandler (void);
+
+#endif /* SYSTICK_H_ */
+
+#ifdef __cplusplus
+ }
+#endif
diff --git a/src/core/gpio.cpp b/src/core/gpio.cpp new file mode 100755 index 0000000..1a7b18e --- /dev/null +++ b/src/core/gpio.cpp @@ -0,0 +1,102 @@ +#include "gpio.h" + + +/* ======================================= +* Macros and functions for Defining MARY's GPIO Assign +* +* CN1_7,8 : (PIO1_2,PIO1_1) +* should be C17,C18 +* +* CN2_1...8 : (PIO1_4,PIO1_11,PIO1_7,PIO1_5,PIO3_2,PIO2_0,PIO1_6,PIO0_1) +* should be C21,C22,C23,C24,C25,C26,C27,C28 +* +* CN3_1...8 : (PIO1_8,PIO0_3,PIO0_2,PIO3_4,PIO0_4,PIO3_5,PIO0_5,PIO1_7) +* should be C31,C32,C33,C34,C35,C36,C37,C38 +* +* CN4_1...7 : (PIO1_9,PIO1_10,PIO0_6,PIO0_11,PIO0_8,PIO1_0,PIO0_9) +* should be C41,C42,C43,C44,C45,C46,C47 +* +* see also mary_pinAssign[...] in "gpio.h" +* ======================================= +*/ +void pinMode(int pin,pinModeState state) +{ + if(pin < 20) //arduinoPinAssign(0~19) + { + if(state == OUTPUT) //OUTPUT + { + LPC_GPIO[ arduino_pinAssign[pin * 2] ]->DIR |= arduino_pinAssign[pin * 2 + 1]; + }else //INPUT + { + LPC_GPIO[ arduino_pinAssign[pin * 2] ]->DIR &= ~(arduino_pinAssign[pin * 2 + 1]); + } + return; + } + + if(pin < 100) return; //(20~99:reserved) + + if(pin < 200) //maryPinAssign(100~119?) + { + pin = pin - 100; + if(state == OUTPUT) //OUTPUT + { + LPC_GPIO[ mary_pinAssign[pin * 2] ]->DIR |= mary_pinAssign[pin * 2 + 1]; + }else //INPUT + { + LPC_GPIO[ mary_pinAssign[pin * 2] ]->DIR &= ~(mary_pinAssign[pin * 2 + 1]); + } + } + return; + } + +void digitalWrite(int pin,digitalWriteState state) +{ + if(pin < 20) //arduinoPinAssign(0~19) + { + if(state == HIGH) //HIGH + { + LPC_GPIO[ arduino_pinAssign[pin * 2] ]->MASKED_ACCESS[ arduino_pinAssign[pin * 2 + 1] ] = arduino_pinAssign[pin * 2 + 1]; + }else //LOW + { + LPC_GPIO[ arduino_pinAssign[pin * 2] ]->MASKED_ACCESS[ arduino_pinAssign[pin * 2 + 1] ] &= ~(arduino_pinAssign[pin * 2 + 1]); + } + return; + } + + if(pin < 100) return; //arduinoPinAssign(20~99:reserved) + + if(pin < 200) //maryPinAssign(100~119?) + { + pin = pin - 100; + if(state == HIGH) //HIGH + { + LPC_GPIO[ mary_pinAssign[pin * 2] ]->MASKED_ACCESS[ mary_pinAssign[pin * 2 + 1] ] = mary_pinAssign[pin * 2 + 1]; + }else //LOW + { + LPC_GPIO[ mary_pinAssign[pin * 2] ]->MASKED_ACCESS[ mary_pinAssign[pin * 2 + 1] ] &= ~(mary_pinAssign[pin * 2 + 1]); + } + } + return; + } + +int digitalRead(int pin) +{ + volatile int readValue; + if(pin < 20) //arduinoPinAssign(0~19) + { + readValue = (LPC_GPIO[ arduino_pinAssign[pin * 2] ]->MASKED_ACCESS[ arduino_pinAssign[pin * 2 + 1] ])? 1 : 0; + return readValue; + } + + if(pin < 100) return 0; //(20~99:reserved) + + if(pin < 200) //maryPinAssign(100~199?) + { + pin = pin - 100; + readValue = (LPC_GPIO[ mary_pinAssign[pin * 2] ]->MASKED_ACCESS[ mary_pinAssign[pin * 2 + 1] ])? 1 : 0; + return readValue; + } + return 0; +} + + diff --git a/src/core/gpio.h b/src/core/gpio.h new file mode 100755 index 0000000..5b7c05c --- /dev/null +++ b/src/core/gpio.h @@ -0,0 +1,194 @@ +/* + * gpio.h + * + * Created on: 2011/07/27 + * Author: lynxeyed + */ +#ifndef GPIO_H_ +#define GPIO_H_ + +//#if defined (__USE_CMSIS) +#include "LPC11xx.h" +//#endif +//======================================= +// Define LPC_GPIO[4] (each top address) +//======================================= +static LPC_GPIO_TypeDef (* const LPC_GPIO[4]) = { LPC_GPIO0, LPC_GPIO1, LPC_GPIO2, LPC_GPIO3 }; + +/* ======================================= +* Macros and functions for Defining MARY's GPIO Assign +* +* CN1_7,8 : (PIO1_2,PIO1_1) +* should be C17,C18 +* +* CN2_1...8 : (PIO1_4,PIO1_11,PIO1_7,PIO1_5,PIO3_2,PIO2_0,PIO1_6,PIO0_1) +* should be C21,C22,C23,C24,C25,C26,C27,C28 +* +* CN3_1...8 : (PIO1_8,PIO0_3,PIO0_2,PIO3_4,PIO0_4,PIO3_5,PIO0_5,PIO1_7) +* should be C31,C32,C33,C34,C35,C36,C37,C38 +* +* CN4_1...7 : (PIO1_9,PIO1_10,PIO0_6,PIO0_11,PIO0_8,PIO1_0,PIO0_9) +* should be C41,C42,C43,C44,C45,C46,C47 +* ======================================= +*/ +#define C17 (100) +#define C18 (101) + +#define C21 (102) +#define C22 (103) +#define C23 (104) +#define C24 (105) +#define C25 (106) +#define C26 (107) +#define C27 (108) +#define C28 (109) + +#define C31 (110) +#define C32 (111) +#define C33 (112) +#define C34 (113) +#define C35 (114) +#define C36 (115) +#define C37 (116) +#define C38 (117) + +#define C41 (118) +#define C42 (119) +#define C43 (120) +#define C44 (121) +#define C45 (122) +#define C46 (123) +#define C47 (124) +#define GLED (125) +#define BLED (126) +#define RLED (127) + +// For LPCXpresso LPC1114 +#define P1_2 (100) +#define P1_1 (101) +#define P1_4 (102) +#define P1_11 (103) +#define P1_7 (104) +#define P1_5 (105) +#define P3_2 (106) +#define P2_0 (107) +#define P1_6 (108) +#define P0_1 (109) +#define P1_8 (110) +#define P0_3 (111) +#define P0_2 (112) +#define P3_4 (113) +#define P0_4 (114) +#define P3_5 (115) +#define P0_5 (116) +//#define P1_7 (117) +#define P1_9 (118) +#define P1_10 (119) +#define P0_6 (120) +#define P0_11 (121) +#define P0_8 (122) +#define P1_0 (123) +#define P0_9 (124) +#define P0_7 (125) +//#define P1_5 (126) +//#define P2_0 (127) + +#define _BIT0 (1U << 0) +#define _BIT1 (1U << 1) +#define _BIT2 (1U << 2) +#define _BIT3 (1U << 3) +#define _BIT4 (1U << 4) +#define _BIT5 (1U << 5) +#define _BIT6 (1U << 6) +#define _BIT7 (1U << 7) +#define _BIT8 (1U << 8) +#define _BIT9 (1U << 9) +#define _BIT10 (1U << 10) +#define _BIT11 (1U << 11) + +const unsigned int mary_pinAssign[] = +{ + 1, _BIT2, //CN1_7 + 1, _BIT1, //CN1_8 + + 1, _BIT4, //CN2_1 + 1, _BIT11, //CN2_2 + 1, _BIT7, //CN2_3 + 1, _BIT5, //CN2_4 + 3, _BIT2, //CN2_5 + 2, _BIT0, //CN2_6 + 1, _BIT6, //CN2_7 + 0, _BIT1, //CN2_8 + + 1, _BIT8, //CN3_1 + 0, _BIT3, //CN3_2 + 0, _BIT2, //CN3_3 + 3, _BIT4, //CN3_4 + 0, _BIT4, //CN3_5 + 3, _BIT5, //CN3_6 + 0, _BIT5, //CN3_7 + 1, _BIT7, //CN3_8 + + 1, _BIT9, //CN4_1 + 1, _BIT10, //CN4_2 + 0, _BIT6, //CN4_3 + 0, _BIT11, //CN4_4 + 0, _BIT8, //CN4_5 + 1, _BIT0, //CN4_6 + 0, _BIT9, //CN4_7 + 0, _BIT7, //GLED + 1, _BIT5, //BLED + 2, _BIT0 //RLED +}; + + +// Arduino's pins assign +const unsigned int arduino_pinAssign[] = +{ + 1, _BIT6, //P1_6:D0/RX + 1, _BIT7, //P1_7:D1/TX + 0, _BIT3, //P0_3:D2 + 1, _BIT9, //P1_9:D3 + 3, _BIT4, //P3_4:D4 + 2, _BIT4, //P2_4:D5 + 2, _BIT0, //P2_0:D6 + 2, _BIT3, //P2_3:D7 + 2, _BIT2, //P2_2:D8 + 2, _BIT1, //P2_1:D9 + 0, _BIT2, //P0_2:D10 + + 0, _BIT9, //P0_9:D11 + 0, _BIT8, //P0_8:D12 + 0, _BIT6, //P0_6:D13 + + +/* 0, _BIT4, //P + 3, _BIT5, //CN3_6 + 0, _BIT5, //CN3_7 + 1, _BIT7, //CN3_8 + + 1, _BIT9, //CN4_1 + 1, _BIT10, //CN4_2 + 0, _BIT6, //CN4_3 + 0, _BIT11, //CN4_4 + 0, _BIT8, //CN4_5 + 1, _BIT0, //CN4_6 + 0, _BIT9, //CN4_7 + 0, _BIT7, //GLED + 1, _BIT5, //BLED + 2, _BIT0 //RLED +*/ +}; + + +typedef enum {INPUT, OUTPUT}pinModeState; +typedef enum {LOW, HIGH}digitalWriteState; + +void pinMode(int pin,pinModeState state); +void digitalWrite(int pin,digitalWriteState state); +int digitalRead(int pin); + + + + +#endif /* GPIO_H_ */ diff --git a/src/core/libmary.h b/src/core/libmary.h new file mode 100755 index 0000000..eedd3ab --- /dev/null +++ b/src/core/libmary.h @@ -0,0 +1,60 @@ +#ifndef LIBMARY_H_ +#define LIBMARY_H_ + +/** + @mainpage MARY-DUINO (Beta) + @section abstruct 概要 + MARY-DUINOはNXP製LPC1114を搭載したMARY基板でArduinoライクな開発が出来ることを目指すC++ライブラリです + @section intro 始めに + CQ出版発行・圓山宗智氏によるトランジスタ技術増刊「2枚入り!組み合わせ自在!超小型ARMマイコン基板」に付属している基板をArduinoライクな環境で開発する為の + ライブラリです。 + @section motivation 背景 + 「2枚入り!組み合わせ自在!超小型ARMマイコン基板」に付属している基板の開発において、よく整備されているライブラリが圓山氏により準備されており、 + とても使いやすい環境が提供されています。このライブラリではよりお手軽に開発する事を目的としてC++ライブラリをフルスクラッチで作成しており、Arduinoライクな + 開発環境を提供しています。今後ここに新たなライブラリを追加し、より使いやすい環境を随時追加してゆきます + @section environmen 環境 + arm-none-eabi-gcc-4.5.0以上またはarm-elf-gcc-4.5.0以上 + - WindowsではCodesourcery G++かLPCXpresso IDEが動く環境 + - Mac OSXではSnow Leopard(10.6.1以上)ではXcode 3.4以上がインストール、Lion(10.7)ではXCode 4.1以上がインストールされており、arm-elf-gcc-4.5.0以上がインストールされている事 + @section history 履歴 + - 2011/07/15 初版作成 + */ + +/**************************************************************************//** + * @file libmary.h + * @brief Arduino-like library for MARY(LPC1114) + * @version v.0.50 + * @date 1. August 2011. + * @author @@lynxeyed_atsu + * @note Copyright (c) 2011 Lynx-EyED's Klavier and Craft-works. <BR> + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: <BR> + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software.<BR> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ******************************************************************************/ + + +#include "LPC11xx.h" +#include "system_LPC11xx.h" +#include "delay.h" +#include "gpio.h" +#include "uart.h" + + + +// init for arduino-like settings + + + +#endif /* LIBMARY_H_ */ diff --git a/src/core/maryoled.cpp b/src/core/maryoled.cpp new file mode 100755 index 0000000..8df935c --- /dev/null +++ b/src/core/maryoled.cpp @@ -0,0 +1,484 @@ +/* mbed Nokia LCD Library + * Atsu + */ + +#include "delay.h" +#include "maryoled.h" +#include <math.h> + +/** General parameters for MARMEX_OB_oled */ + +#define MARYOLED_ROWS 15 +#define MARYOLED_COLS 16 +#define MARYOLED_WIDTH 128 +#define MARYOLED_HEIGHT 128 +#define MARYOLED_FREQUENCY 20000000 + +//MARY Pin Assign +//#define OLED_VCC_ON C21 +//#define OLED_CS C33 +//#define OLED_RES C31 + +//LPCXpresso pin Assign (MARMEX-SLOT1) +//#define OLED_VCC_ON P0_7 +//#define OLED_CS P0_2 +//#define OLED_RES P0_1 + +MARYOLED oled; + +MARYOLED::MARYOLED() //default : MARY +{ + this->OLED_VCC_ON = C21; + this->OLED_CS = C33; + this->OLED_RES = C31; + this->device = OLED; + port = marySSP0; + _row = 0; + _column = 0; + _foreground = 0x00FFFFFF; + _background = 0x00000000; + +} + +MARYOLED::~MARYOLED() +{ +} +void MARYOLED::reset(SSP_PORT port) +{ + this->port = port; + if(port==LPCXSSP0) //LPCXpresso 1114 + MAPLE + { + this->OLED_VCC_ON = P0_7; + this->OLED_CS = P0_2; + this->OLED_RES = P0_1; + } + pinMode(OLED_VCC_ON,OUTPUT); + pinMode(OLED_RES,OUTPUT); + pinMode(OLED_CS,OUTPUT); + + digitalWrite(OLED_RES,HIGH); + digitalWrite(OLED_VCC_ON,LOW); + + reset(); + return; +} +void MARYOLED::reset() { + #define GAMMA_LUT_SIZE 63 + //unsigned char gamma_LUT[ GAMMA_LUT_SIZE ]; + + //for ( int i = 0; i < GAMMA_LUT_SIZE; i++ ) + //gamma_LUT[ i ] = (unsigned char)(powf( ((float)i / 62.0), (1.0 / 0.58) ) * 178.0 + 2.0); + unsigned char gamma_LUT[63] = + { + 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, + // + 0x12, 0x13, 0x15, 0x17, + 0x19, 0x1b, 0x1d, 0x1f, + 0x21, 0x23, 0x25, 0x27, + 0x2a, 0x2d, 0x30, 0x33, + // + 0x36, 0x39, 0x3c, 0x3f, + 0x42, 0x45, 0x48, 0x4c, + 0x50, 0x54, 0x58, 0x5c, + 0x60, 0x64, 0x68, 0x6c, + // + 0x70, 0x74, 0x78, 0x7d, + 0x82, 0x87, 0x8c, 0x91, + 0x96, 0x9b, 0xa0, 0xa5, + 0xaa, 0xaf, 0xb4 + }; + + // setup the _spi interface and bring display out of reset + digitalWrite( OLED_CS, HIGH ); + digitalWrite( OLED_RES, LOW ); + + + SPI.setBitLength( 9 ); //9bit mode + SPI.setDataMode(SPI_MODE3); + SPI.setClockDivider( SPI_CLOCK_DIV2 ); + SPI.begin(port); + //ssp_begin(SPI_CLOCK_DIV1, SPI_MODE0, 9); + + delay( 100 ); //wait 100ms + digitalWrite( OLED_RES, LOW ); + delay( 100 ); + digitalWrite( OLED_RES, HIGH ); //RESET + + command( SET_DISPLAY_MODE_ALL_OFF ); + + command( SET_COMMAND_LOCK ); + data( 0x12 ); + + command( SET_COMMAND_LOCK ); + data( 0xb1 ); + + command( SET_SLEEP_MODE_ON ); + + command( FRONT_CLOCK_DRIVER_OSC_FREQ ); + data( 0xF1 ); + + command( SET_MUX_RATIO ); + data( 0x7F ); + + command( SET_DISPAY_OFFSET ); + data( 0x00 ); + + command( SET_DISPAY_START_LINE ); + data( 0x00 ); + + command( SET_REMAP_COLOR_DEPTH ); + data( 0x74 ); + + command( SET_GPIO ); + data( 0x00); + + command( FUNCTION_SELECTION ); + data( 0x01 ); + + command( SET_SEGMENT_LOW_VOLTAGE ); + data( 0xA0 ); + data( 0xB5 ); + data( 0x55 ); + + command( SET_CONTRAST_CURRENT_FOR_COLOR_ABC ); + data( 0xC8 ); + data( 0x80 ); + data( 0xC8 ); + + command( MASTER_CONTRAST_CURRENT_CONTROL ); + data( 0x0F ); + + command( LOOKUP_TABLE_FOR_GRAYSCALE_PULSE_WIDTH ); + for ( int i = 0; i < GAMMA_LUT_SIZE; i++ ) + data( gamma_LUT[ i ] ); + + //command( USE_BUILT_IN_LINEAR_LUT ); + + command( SET_RESET_PRECHARGE_PERIOD ); + data( 0x32 ); + + command( ENHANCE_DRIVING_SCHEME_CAPABILITY ); + data( 0xA4 );//data( 0x04 ); + data( 0x00 ); + data( 0x00 ); + + command( SET_PRECHARGE_VOLTAGE ); + data( 0x17 ); + + command( SET_SECOND_PRECHARGE_VOLTAGE ); + data( 0x01 ); + + command( SET_VCOMH_VOLTAGE ); + data( 0x05 ); + command( SET_DISPLAY_MODE_RESET ); + + command( SET_COLUMN_ADDRESS ); + data( 0x00 ); + data( 0x7f ); + + command( SET_ROW_ADDRESS ); + data( 0x00 ); + data( 0x7f ); + + cls(); + //WindowReset(); + + digitalWrite(OLED_VCC_ON,HIGH); + + delay( 200 ); //wait 200ms + + command( SET_SLEEP_MODE_OFF ); + return; +} + +void MARYOLED::command(int value) { + + digitalWrite(OLED_CS,LOW); + SPI.transfer(value & 0xff); + //ssp_transfer(value & 0xFF); + digitalWrite(OLED_CS,HIGH); +} + +void MARYOLED::data(int value) { + digitalWrite(OLED_CS,LOW); + SPI.transfer(value | 0x100); + //ssp_transfer(value | 0x100); + digitalWrite(OLED_CS,HIGH); +} + +void MARYOLED::_window( int x, int y, int width, int height ) +{ + int x1 = x + 0; + int y1 = y + 0; + int x2 = x1 + width - 1; + int y2 = y1 + height - 1; + + command( SET_COLUMN_ADDRESS ); + data( x1 ); + data( x2 ); + command( SET_ROW_ADDRESS ); + data( y1 ); + data( y2 ); + command( WRITE_RAM_COMMAND ); + +} + +void MARYOLED::WindowReset(void) +{ + command( SET_COLUMN_ADDRESS ); + data( 0 ); + data( 127 ); + command( SET_ROW_ADDRESS ); + data( 0 ); + data( 127 ); + command( WRITE_RAM_COMMAND ); +} + + + + +const unsigned char FONT8x8[97][8] = { + {0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00}, // columns, rows, num_bytes_per_char + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // space 0x20 + {0x30,0x78,0x78,0x30,0x30,0x00,0x30,0x00}, // ! + {0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00}, // " + {0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00}, // # + {0x18,0x3E,0x60,0x3C,0x06,0x7C,0x18,0x00}, // $ + {0x00,0x63,0x66,0x0C,0x18,0x33,0x63,0x00}, // % + {0x1C,0x36,0x1C,0x3B,0x6E,0x66,0x3B,0x00}, // & + {0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00}, // ' + {0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00}, // ( + {0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00}, // ) + {0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00}, // * + {0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00}, // + + {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30}, // , + {0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00}, // - + {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00}, // . + {0x03,0x06,0x0C,0x18,0x30,0x60,0x40,0x00}, // / (forward slash) + {0x3E,0x63,0x63,0x6B,0x63,0x63,0x3E,0x00}, // 0 0x30 + {0x18,0x38,0x58,0x18,0x18,0x18,0x7E,0x00}, // 1 + {0x3C,0x66,0x06,0x1C,0x30,0x66,0x7E,0x00}, // 2 + {0x3C,0x66,0x06,0x1C,0x06,0x66,0x3C,0x00}, // 3 + {0x0E,0x1E,0x36,0x66,0x7F,0x06,0x0F,0x00}, // 4 + {0x7E,0x60,0x7C,0x06,0x06,0x66,0x3C,0x00}, // 5 + {0x1C,0x30,0x60,0x7C,0x66,0x66,0x3C,0x00}, // 6 + {0x7E,0x66,0x06,0x0C,0x18,0x18,0x18,0x00}, // 7 + {0x3C,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00}, // 8 + {0x3C,0x66,0x66,0x3E,0x06,0x0C,0x38,0x00}, // 9 + {0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00}, // : + {0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30}, // ; + {0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00}, // < + {0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00}, // = + {0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00}, // > + {0x3C,0x66,0x06,0x0C,0x18,0x00,0x18,0x00}, // ? + {0x3E,0x63,0x6F,0x69,0x6F,0x60,0x3E,0x00}, // @ 0x40 + {0x18,0x3C,0x66,0x66,0x7E,0x66,0x66,0x00}, // A + {0x7E,0x33,0x33,0x3E,0x33,0x33,0x7E,0x00}, // B + {0x1E,0x33,0x60,0x60,0x60,0x33,0x1E,0x00}, // C + {0x7C,0x36,0x33,0x33,0x33,0x36,0x7C,0x00}, // D + {0x7F,0x31,0x34,0x3C,0x34,0x31,0x7F,0x00}, // E + {0x7F,0x31,0x34,0x3C,0x34,0x30,0x78,0x00}, // F + {0x1E,0x33,0x60,0x60,0x67,0x33,0x1F,0x00}, // G + {0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00}, // H + {0x3C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00}, // I + {0x0F,0x06,0x06,0x06,0x66,0x66,0x3C,0x00}, // J + {0x73,0x33,0x36,0x3C,0x36,0x33,0x73,0x00}, // K + {0x78,0x30,0x30,0x30,0x31,0x33,0x7F,0x00}, // L + {0x63,0x77,0x7F,0x7F,0x6B,0x63,0x63,0x00}, // M + {0x63,0x73,0x7B,0x6F,0x67,0x63,0x63,0x00}, // N + {0x3E,0x63,0x63,0x63,0x63,0x63,0x3E,0x00}, // O + {0x7E,0x33,0x33,0x3E,0x30,0x30,0x78,0x00}, // P 0x50 + {0x3C,0x66,0x66,0x66,0x6E,0x3C,0x0E,0x00}, // Q + {0x7E,0x33,0x33,0x3E,0x36,0x33,0x73,0x00}, // R + {0x3C,0x66,0x30,0x18,0x0C,0x66,0x3C,0x00}, // S + {0x7E,0x5A,0x18,0x18,0x18,0x18,0x3C,0x00}, // T + {0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x00}, // U + {0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00}, // V + {0x63,0x63,0x63,0x6B,0x7F,0x77,0x63,0x00}, // W + {0x63,0x63,0x36,0x1C,0x1C,0x36,0x63,0x00}, // X + {0x66,0x66,0x66,0x3C,0x18,0x18,0x3C,0x00}, // Y + {0x7F,0x63,0x46,0x0C,0x19,0x33,0x7F,0x00}, // Z + {0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00}, // [ + {0x60,0x30,0x18,0x0C,0x06,0x03,0x01,0x00}, // \ (back slash) + {0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00}, // ] + {0x08,0x1C,0x36,0x63,0x00,0x00,0x00,0x00}, // ^ + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF}, // _ + {0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00}, // ` 0x60 + {0x00,0x00,0x3C,0x06,0x3E,0x66,0x3B,0x00}, // a + {0x70,0x30,0x3E,0x33,0x33,0x33,0x6E,0x00}, // b + {0x00,0x00,0x3C,0x66,0x60,0x66,0x3C,0x00}, // c + {0x0E,0x06,0x3E,0x66,0x66,0x66,0x3B,0x00}, // d + {0x00,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00}, // e + {0x1C,0x36,0x30,0x78,0x30,0x30,0x78,0x00}, // f + {0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x7C}, // g + {0x70,0x30,0x36,0x3B,0x33,0x33,0x73,0x00}, // h + {0x18,0x00,0x38,0x18,0x18,0x18,0x3C,0x00}, // i + {0x06,0x00,0x06,0x06,0x06,0x66,0x66,0x3C}, // j + {0x70,0x30,0x33,0x36,0x3C,0x36,0x73,0x00}, // k + {0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00}, // l + {0x00,0x00,0x66,0x7F,0x7F,0x6B,0x63,0x00}, // m + {0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x00}, // n + {0x00,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00}, // o + {0x00,0x00,0x6E,0x33,0x33,0x3E,0x30,0x78}, // p + {0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x0F}, // q + {0x00,0x00,0x6E,0x3B,0x33,0x30,0x78,0x00}, // r + {0x00,0x00,0x3E,0x60,0x3C,0x06,0x7C,0x00}, // s + {0x08,0x18,0x3E,0x18,0x18,0x1A,0x0C,0x00}, // t + {0x00,0x00,0x66,0x66,0x66,0x66,0x3B,0x00}, // u + {0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00}, // v + {0x00,0x00,0x63,0x6B,0x7F,0x7F,0x36,0x00}, // w + {0x00,0x00,0x63,0x36,0x1C,0x36,0x63,0x00}, // x + {0x00,0x00,0x66,0x66,0x66,0x3E,0x06,0x7C}, // y + {0x00,0x00,0x7E,0x4C,0x18,0x32,0x7E,0x00}, // z + {0x0E,0x18,0x18,0x70,0x18,0x18,0x0E,0x00}, // { + {0x0C,0x0C,0x0C,0x00,0x0C,0x0C,0x0C,0x00}, // | + {0x70,0x18,0x18,0x0E,0x18,0x18,0x70,0x00}, // } + {0x3B,0x6E,0x00,0x00,0x00,0x00,0x00,0x00}, // ~ + {0x1C,0x36,0x36,0x1C,0x00,0x00,0x00,0x00} +}; // DEL + +void MARYOLED::locate(int column, int row) { + _column = column; + _row = row; +} + +void MARYOLED::newline() { + _column = 0; + _row++; + if (_row >= rows() ) { + _row = 0; + } +} + +void MARYOLED::_putp( int colour ) { + /*int cnv = 0; + + cnv = (colour >> 8) & 0xf800; + cnv |= (colour >> 5) & 0x07e0; + cnv |= (colour >> 3) & 0x001f; + + data( cnv >> 8); + data( cnv ); + */ + unsigned long data1, data2; + data1 = ((colour >> 8) & 0xff) | 0x100; + data2 = (colour & 0x0ff) | 0x100; + data(data1); + data(data2); + } +int MARYOLED::_putc(int value) { + int x = _column * 8; // FIXME: Char sizes + int y = _row * 8; + bitblit(x + 1, y + 1, 8, 8, (char*)&(FONT8x8[value - 0x1F][0])); + + _column++; + + if (_column >= MARYOLED_COLS) { + _row++; + _column = 0; + } + + if (_row >= MARYOLED_ROWS) { + _row = 0; + } + + return value; +} + +void MARYOLED::cls( void ) { + fill( 0, 0, MARYOLED_WIDTH , MARYOLED_HEIGHT, _background ); + _row = 0; + _column = 0; +} + + +void MARYOLED::window(int x, int y, int width, int height) { + // digitalWrite( OLED_CS, LOW ); + _window(x, y, width, height); + //digitalWrite( OLED_CS, HIGH ); +} + +void MARYOLED::putp(int colour) { + //digitalWrite( OLED_CS, LOW ); + _putp(colour); + //digitalWrite( OLED_CS, HIGH ); +} + + +void MARYOLED::pixel(int x, int y, int colour) { + //digitalWrite( OLED_CS, LOW ); + _window(x, y, 1, 1); + _putp(colour); + //digitalWrite( OLED_CS, HIGH ); +} + +void MARYOLED::fill( int x, int y, int width, int height, int colour ) +{ + digitalWrite( OLED_CS, LOW ); + _window( x, y, width, height ); + + for (int i = 0; i < width * height; i++ ) { + _putp( colour ); + } + + _window( 0, 0, MARYOLED_WIDTH, MARYOLED_HEIGHT ); + digitalWrite( OLED_CS, HIGH ); +} + + +void MARYOLED::blit( int x, int y, int width, int height, const int* colour ) { + digitalWrite( OLED_CS, LOW ); + _window( x, y, width, height ); + + for (int i = 0; i < width * height; i++ ) { + _putp( colour[i] ); + } + _window( 0, 0, MARYOLED_WIDTH, MARYOLED_HEIGHT ); + digitalWrite( OLED_CS, HIGH ); +} + + +void MARYOLED::bitblit( int x, int y, int width, int height, const char* bitstream ) { + digitalWrite( OLED_CS, LOW ); + _window( x, y, width, height ); + + for (int i = 0; i < height * width; i++ ) { + int byte = i / 8; + int bit = i % 8; + int colour = ((bitstream[ byte ] << bit) & 0x80) ? _foreground : _background; + _putp( colour ); + } + _window( 0, 0, _width, _height ); + digitalWrite( OLED_CS, HIGH ); +} + +void MARYOLED::foreground(int c) { + _foreground = c; + return; +} + +void MARYOLED::background(int c) { + _background = c; + return; +} + +int MARYOLED::width() { + return MARYOLED_WIDTH; +} + +int MARYOLED::height() { + return MARYOLED_HEIGHT; +} + +int MARYOLED::columns() { + return MARYOLED_COLS; +} + +int MARYOLED::rows() { + return MARYOLED_ROWS; +} + + diff --git a/src/core/maryoled.h b/src/core/maryoled.h new file mode 100755 index 0000000..3998f8d --- /dev/null +++ b/src/core/maryoled.h @@ -0,0 +1,127 @@ +/* + * MARYOLED.h + * + * Created on: 2011/08/01 + * Author: lynxeyed + */ + +#ifndef MARYOLED_H_ +#define MARYOLED_H_ + +/**************************************************************************//** + * @file maryoled.h + * @brief Arduino-like library for MARY(LPC1114) + * @version v.0.50 + * @date 1. August 2011. + * @author this library's assembled by @@dw256 and @@tedd_okano rebuild by @@lynxeyed_atsu + * @note Copyright (c) 2011 Lynx-EyED's Klavier and Craft-works. <BR> + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: <BR> + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software.<BR> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ******************************************************************************/ + +#include "SPI.h" +#include "gpio.h" + +#ifdef __cplusplus + extern "C" { +#endif + +typedef enum {OLED,Nokia6610,Nokia6100,PCF8833} LCD_DEVICES; // Defaults:OLED + +class MARYOLED { +private: + SSP_PORT port; + LCD_DEVICES device; + int OLED_VCC_ON; + int OLED_CS; + int OLED_RES; + int _row; + int _column; + int _foreground; + int _background; + int _width; + int _height; + + /** Command list for the OLED controller */ + enum { + SET_DISPLAY_MODE_ALL_OFF = 0xA4, + SET_COMMAND_LOCK = 0xFD, + SET_SLEEP_MODE_ON = 0xAE, + FRONT_CLOCK_DRIVER_OSC_FREQ = 0xB3, + SET_MUX_RATIO = 0xCA, + SET_DISPAY_OFFSET = 0xA2, + SET_DISPAY_START_LINE = 0xA1, + SET_REMAP_COLOR_DEPTH = 0xA0, + SET_GPIO = 0xB5, + FUNCTION_SELECTION = 0xAB, + SET_SEGMENT_LOW_VOLTAGE = 0xB4, + SET_CONTRAST_CURRENT_FOR_COLOR_ABC = 0xC1, + MASTER_CONTRAST_CURRENT_CONTROL = 0xC7, + LOOKUP_TABLE_FOR_GRAYSCALE_PULSE_WIDTH = 0xB8, + USE_BUILT_IN_LINEAR_LUT = 0xB9, + SET_RESET_PRECHARGE_PERIOD = 0xB1, + ENHANCE_DRIVING_SCHEME_CAPABILITY = 0xB2, + SET_PRECHARGE_VOLTAGE = 0xBB, + SET_SECOND_PRECHARGE_VOLTAGE = 0xB6, + SET_VCOMH_VOLTAGE = 0xBE, + SET_DISPLAY_MODE_RESET = 0xA6, + SET_COLUMN_ADDRESS = 0x15, + SET_ROW_ADDRESS = 0x75, + WRITE_RAM_COMMAND = 0x5C, + SET_SLEEP_MODE_OFF = 0xAF + }; + /** Constants for power() function */ + enum { + OFF = 0, /**< : to turning-OFF */ + ON /**< : to turning-ON */ + }; + + +public: + MARYOLED(); // announce the constructor to initialize + ~MARYOLED(); + + void reset(); + void reset(SSP_PORT port); + void command( int value ); + void data( int value ); + void _window( int x, int y, int width, int height ); + void locate(int column, int row); + void newline(); + void _putp( int colour ); + int _putc( int value ); + void cls( void ); + void window( int x, int y, int width, int height ); + void WindowReset(void); + void putp( int colour ); + void pixel( int x, int y, int colour ); + void fill( int x, int y, int width, int height, int colour ); + void blit( int x, int y, int width, int height, const int* colour ); + void bitblit( int x, int y, int width, int height, const char* bitstream ); + void foreground(int c); + void background(int c); + int width(); + int height(); + int columns(); + int rows(); +}; + +extern MARYOLED oled; + +#ifdef __cplusplus + } +#endif +#endif /* MARYOLED_H_ */ diff --git a/src/core/startup_mary.cpp b/src/core/startup_mary.cpp new file mode 100755 index 0000000..8ce5c39 --- /dev/null +++ b/src/core/startup_mary.cpp @@ -0,0 +1,26 @@ +/* + * startup_mary.cpp + * + * Created on: 2011/08/04 + * Author: lynxeyed + */ + +#include "libmary.h" + +void setup(void); +void loop(void); + +int main(void) +{ + + setup_systick(); + setup_TIMER32_1(); + + setup(); + + while(1) + { + loop(); + } + +} diff --git a/src/core/system_LPC11xx.cpp b/src/core/system_LPC11xx.cpp new file mode 100755 index 0000000..4d8d275 --- /dev/null +++ b/src/core/system_LPC11xx.cpp @@ -0,0 +1,452 @@ +/**************************************************************************//**
+ * @file system_LPC11xx.c
+ * @brief CMSIS Cortex-M0 Device Peripheral Access Layer Source File
+ * for the NXP LPC11xx Device Series
+ * @version V1.00
+ * @date 17. November 2009
+ *
+ * @note
+ * Copyright (C) 2009 ARM Limited. All rights reserved.
+ *
+ * @par
+ * ARM Limited (ARM) is supplying this software for use with Cortex-M
+ * processor based microcontrollers. This file can be freely distributed
+ * within development tools that are supporting such ARM based processors.
+ *
+ * @par
+ * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+ * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+ * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+ * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+ *
+ ******************************************************************************/
+
+
+#include <stdint.h>
+#include "LPC11xx.h"
+
+/*
+//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
+*/
+
+/*--------------------- Clock Configuration ----------------------------------
+//
+// <e> Clock Configuration
+// <e1> System Clock Setup
+// <e2> System Oscillator Enable
+// <o3.1> Select System Oscillator Frequency Range
+// <0=> 1 - 20 MHz
+// <1=> 15 - 25 MHz
+// </e2>
+// <e4> Watchdog Oscillator Enable
+// <o5.0..4> Select Divider for Fclkana
+// <0=> 2 <1=> 4 <2=> 6 <3=> 8
+// <4=> 10 <5=> 12 <6=> 14 <7=> 16
+// <8=> 18 <9=> 20 <10=> 22 <11=> 24
+// <12=> 26 <13=> 28 <14=> 30 <15=> 32
+// <16=> 34 <17=> 36 <18=> 38 <19=> 40
+// <20=> 42 <21=> 44 <22=> 46 <23=> 48
+// <24=> 50 <25=> 52 <26=> 54 <27=> 56
+// <28=> 58 <29=> 60 <30=> 62 <31=> 64
+// <o5.5..8> Select Watchdog Oscillator Analog Frequency (Fclkana)
+// <0=> Disabled
+// <1=> 0.5 MHz
+// <2=> 0.8 MHz
+// <3=> 1.1 MHz
+// <4=> 1.4 MHz
+// <5=> 1.6 MHz
+// <6=> 1.8 MHz
+// <7=> 2.0 MHz
+// <8=> 2.2 MHz
+// <9=> 2.4 MHz
+// <10=> 2.6 MHz
+// <11=> 2.7 MHz
+// <12=> 2.9 MHz
+// <13=> 3.1 MHz
+// <14=> 3.2 MHz
+// <15=> 3.4 MHz
+// </e4>
+// <o6> Select Input Clock for sys_pllclkin (Register: SYSPLLCLKSEL)
+// <0=> IRC Oscillator
+// <1=> System Oscillator
+// <2=> WDT Oscillator
+// <3=> Invalid
+// <e7> Use System PLL
+// <i> F_pll = M * F_in
+// <i> F_in must be in the range of 10 MHz to 25 MHz
+// <o8.0..4> M: PLL Multiplier Selection
+// <1-32><#-1>
+// <o8.5..6> P: PLL Divider Selection
+// <0=> 2
+// <1=> 4
+// <2=> 8
+// <3=> 16
+// <o8.7> DIRECT: Direct CCO Clock Output Enable
+// <o8.8> BYPASS: PLL Bypass Enable
+// </e7>
+// <o9> Select Input Clock for Main clock (Register: MAINCLKSEL)
+// <0=> IRC Oscillator
+// <1=> Input Clock to System PLL
+// <2=> WDT Oscillator
+// <3=> System PLL Clock Out
+// </e1>
+// <o10.0..7> System AHB Divider <0-255>
+// <i> 0 = is disabled
+// <o11.0> SYS Clock Enable
+// <o11.1> ROM Clock Enable
+// <o11.2> RAM Clock Enable
+// <o11.3> FLASHREG Flash Register Interface Clock Enable
+// <o11.4> FLASHARRAY Flash Array Access Clock Enable
+// <o11.5> I2C Clock Enable
+// <o11.6> GPIO Clock Enable
+// <o11.7> CT16B0 Clock Enable
+// <o11.8> CT16B1 Clock Enable
+// <o11.9> CT32B0 Clock Enable
+// <o11.10> CT32B1 Clock Enable
+// <o11.11> SSP0 Clock Enable
+// <o11.12> UART Clock Enable
+// <o11.13> ADC Clock Enable
+// <o11.15> WDT Clock Enable
+// <o11.16> IOCON Clock Enable
+// <o11.18> SSP1 Clock Enable
+//
+// <o12.0..7> SSP0 Clock Divider <0-255>
+// <i> 0 = is disabled
+// <o13.0..7> UART Clock Divider <0-255>
+// <i> 0 = is disabled
+// <o14.0..7> SSP1 Clock Divider <0-255>
+// <i> 0 = is disabled
+// </e>
+*/
+#define CLOCK_SETUP 1
+#define SYSCLK_SETUP 1
+#define SYSOSC_SETUP 1
+#define SYSOSCCTRL_Val 0x00000000
+#define WDTOSC_SETUP 0
+#define WDTOSCCTRL_Val 0x000000A0
+//#define SYSPLLCLKSEL_Val 0x00000001
+#define SYSPLLCLKSEL_Val 0x00000000 // for Mary-MB
+#define SYSPLL_SETUP 1
+#define SYSPLLCTRL_Val 0x00000023
+#define MAINCLKSEL_Val 0x00000003
+#define SYSAHBCLKDIV_Val 0x00000001
+//#define AHBCLKCTRL_Val 0x0001005F
+#define AHBCLKCTRL_Val 0x0001FFFF // for Mary-MB
+#define SSP0CLKDIV_Val 0x00000001
+#define UARTCLKDIV_Val 0x00000001
+#define SSP1CLKDIV_Val 0x00000001
+
+/*--------------------- Memory Mapping Configuration -------------------------
+//
+// <e> Memory Mapping
+// <o1.0..1> System Memory Remap (Register: SYSMEMREMAP)
+// <0=> Bootloader mapped to address 0
+// <1=> RAM mapped to address 0
+// <2=> Flash mapped to address 0
+// <3=> Flash mapped to address 0
+// </e>
+*/
+#define MEMMAP_SETUP 0
+#define SYSMEMREMAP_Val 0x00000001
+
+/*
+//-------- <<< end of configuration section >>> ------------------------------
+*/
+
+/*----------------------------------------------------------------------------
+ Check the register settings
+ *----------------------------------------------------------------------------*/
+#define CHECK_RANGE(val, min, max) ((val < min) || (val > max))
+#define CHECK_RSVD(val, mask) (val & mask)
+
+/* Clock Configuration -------------------------------------------------------*/
+#if (CHECK_RSVD((SYSOSCCTRL_Val), ~0x00000003))
+ #error "SYSOSCCTRL: Invalid values of reserved bits!"
+#endif
+
+#if (CHECK_RSVD((WDTOSCCTRL_Val), ~0x000001FF))
+ #error "WDTOSCCTRL: Invalid values of reserved bits!"
+#endif
+
+#if (CHECK_RANGE((SYSPLLCLKSEL_Val), 0, 2))
+ #error "SYSPLLCLKSEL: Value out of range!"
+#endif
+
+#if (CHECK_RSVD((SYSPLLCTRL_Val), ~0x000001FF))
+ #error "SYSPLLCTRL: Invalid values of reserved bits!"
+#endif
+
+#if (CHECK_RSVD((MAINCLKSEL_Val), ~0x00000003))
+ #error "MAINCLKSEL: Invalid values of reserved bits!"
+#endif
+
+#if (CHECK_RANGE((SYSAHBCLKDIV_Val), 0, 255))
+ #error "SYSAHBCLKDIV: Value out of range!"
+#endif
+
+#if (CHECK_RSVD((AHBCLKCTRL_Val), ~0x0001FFFF))
+ #error "AHBCLKCTRL: Invalid values of reserved bits!"
+#endif
+
+#if (CHECK_RANGE((SSP0CLKDIV_Val), 0, 255))
+ #error "SSP0CLKDIV: Value out of range!"
+#endif
+
+#if (CHECK_RANGE((UARTCLKDIV_Val), 0, 255))
+ #error "UARTCLKDIV: Value out of range!"
+#endif
+
+#if (CHECK_RANGE((SSP1CLKDIV_Val), 0, 255))
+ #error "SSP1CLKDIV: Value out of range!"
+#endif
+
+#if (CHECK_RSVD((SYSMEMREMAP_Val), ~0x00000003))
+ #error "SYSMEMREMAP: Invalid values of reserved bits!"
+#endif
+
+
+/*----------------------------------------------------------------------------
+ DEFINES
+ *----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ Define clocks
+ *----------------------------------------------------------------------------*/
+#define __XTAL (12000000UL) /* Oscillator frequency */
+#define __SYS_OSC_CLK ( __XTAL) /* Main oscillator frequency */
+#define __IRC_OSC_CLK (12000000UL) /* Internal RC oscillator frequency */
+
+
+#define __FREQSEL ((WDTOSCCTRL_Val >> 5) & 0x0F)
+#define __DIVSEL (((WDTOSCCTRL_Val & 0x1F) << 1) + 2)
+
+#if (CLOCK_SETUP) /* Clock Setup */
+ #if (SYSCLK_SETUP) /* System Clock Setup */
+ #if (WDTOSC_SETUP) /* Watchdog Oscillator Setup*/
+ #if (__FREQSEL == 0)
+ #define __WDT_OSC_CLK ( 400000 / __DIVSEL)
+ #elif (__FREQSEL == 1)
+ #define __WDT_OSC_CLK ( 500000 / __DIVSEL)
+ #elif (__FREQSEL == 2)
+ #define __WDT_OSC_CLK ( 800000 / __DIVSEL)
+ #elif (__FREQSEL == 3)
+ #define __WDT_OSC_CLK (1100000 / __DIVSEL)
+ #elif (__FREQSEL == 4)
+ #define __WDT_OSC_CLK (1400000 / __DIVSEL)
+ #elif (__FREQSEL == 5)
+ #define __WDT_OSC_CLK (1600000 / __DIVSEL)
+ #elif (__FREQSEL == 6)
+ #define __WDT_OSC_CLK (1800000 / __DIVSEL)
+ #elif (__FREQSEL == 7)
+ #define __WDT_OSC_CLK (2000000 / __DIVSEL)
+ #elif (__FREQSEL == 8)
+ #define __WDT_OSC_CLK (2200000 / __DIVSEL)
+ #elif (__FREQSEL == 9)
+ #define __WDT_OSC_CLK (2400000 / __DIVSEL)
+ #elif (__FREQSEL == 10)
+ #define __WDT_OSC_CLK (2600000 / __DIVSEL)
+ #elif (__FREQSEL == 11)
+ #define __WDT_OSC_CLK (2700000 / __DIVSEL)
+ #elif (__FREQSEL == 12)
+ #define __WDT_OSC_CLK (2900000 / __DIVSEL)
+ #elif (__FREQSEL == 13)
+ #define __WDT_OSC_CLK (3100000 / __DIVSEL)
+ #elif (__FREQSEL == 14)
+ #define __WDT_OSC_CLK (3200000 / __DIVSEL)
+ #else
+ #define __WDT_OSC_CLK (3400000 / __DIVSEL)
+ #endif
+ #else
+ #define __WDT_OSC_CLK (1600000 / 2)
+ #endif // WDTOSC_SETUP
+
+ /* sys_pllclkin calculation */
+ #if ((SYSPLLCLKSEL_Val & 0x03) == 0)
+ #define __SYS_PLLCLKIN (__IRC_OSC_CLK)
+ #elif ((SYSPLLCLKSEL_Val & 0x03) == 1)
+ #define __SYS_PLLCLKIN (__SYS_OSC_CLK)
+ #elif ((SYSPLLCLKSEL_Val & 0x03) == 2)
+ #define __SYS_PLLCLKIN (__WDT_OSC_CLK)
+ #else
+ #define __SYS_PLLCLKIN (0)
+ #endif
+
+ #if (SYSPLL_SETUP) /* System PLL Setup */
+ #define __SYS_PLLCLKOUT (__SYS_PLLCLKIN * ((SYSPLLCTRL_Val & 0x01F) + 1))
+ #else
+ #define __SYS_PLLCLKOUT (__SYS_PLLCLKIN * (1))
+ #endif // SYSPLL_SETUP
+
+ /* main clock calculation */
+ #if ((MAINCLKSEL_Val & 0x03) == 0)
+ #define __MAIN_CLOCK (__IRC_OSC_CLK)
+ #elif ((MAINCLKSEL_Val & 0x03) == 1)
+ #define __MAIN_CLOCK (__SYS_PLLCLKIN)
+ #elif ((MAINCLKSEL_Val & 0x03) == 2)
+ #define __MAIN_CLOCK (__WDT_OSC_CLK)
+ #elif ((MAINCLKSEL_Val & 0x03) == 3)
+ #define __MAIN_CLOCK (__SYS_PLLCLKOUT)
+ #else
+ #define __MAIN_CLOCK (0)
+ #endif
+
+ #define __SYSTEM_CLOCK (__MAIN_CLOCK / SYSAHBCLKDIV_Val)
+
+ #else // SYSCLK_SETUP
+ #if (SYSAHBCLKDIV_Val == 0)
+ #define __SYSTEM_CLOCK (0)
+ #else
+ #define __SYSTEM_CLOCK (__XTAL / SYSAHBCLKDIV_Val)
+ #endif
+ #endif // SYSCLK_SETUP
+
+#else
+ #define __SYSTEM_CLOCK (__XTAL)
+#endif // CLOCK_SETUP
+
+
+/*----------------------------------------------------------------------------
+ Clock Variable definitions
+ *----------------------------------------------------------------------------*/
+uint32_t SystemCoreClock = __SYSTEM_CLOCK;/*!< System Clock Frequency (Core Clock)*/
+
+
+/*----------------------------------------------------------------------------
+ Clock functions
+ *----------------------------------------------------------------------------*/
+void SystemCoreClockUpdate (void) /* Get Core Clock Frequency */
+{
+ uint32_t wdt_osc = 0;
+
+ /* Determine clock frequency according to clock register values */
+ switch ((LPC_SYSCON->WDTOSCCTRL >> 5) & 0x0F) {
+ case 0: wdt_osc = 400000; break;
+ case 1: wdt_osc = 500000; break;
+ case 2: wdt_osc = 800000; break;
+ case 3: wdt_osc = 1100000; break;
+ case 4: wdt_osc = 1400000; break;
+ case 5: wdt_osc = 1600000; break;
+ case 6: wdt_osc = 1800000; break;
+ case 7: wdt_osc = 2000000; break;
+ case 8: wdt_osc = 2200000; break;
+ case 9: wdt_osc = 2400000; break;
+ case 10: wdt_osc = 2600000; break;
+ case 11: wdt_osc = 2700000; break;
+ case 12: wdt_osc = 2900000; break;
+ case 13: wdt_osc = 3100000; break;
+ case 14: wdt_osc = 3200000; break;
+ case 15: wdt_osc = 3400000; break;
+ }
+ wdt_osc /= ((LPC_SYSCON->WDTOSCCTRL & 0x1F) << 1) + 2;
+
+ switch (LPC_SYSCON->MAINCLKSEL & 0x03) {
+ case 0: /* Internal RC oscillator */
+ SystemCoreClock = __IRC_OSC_CLK;
+ break;
+ case 1: /* Input Clock to System PLL */
+ switch (LPC_SYSCON->SYSPLLCLKSEL & 0x03) {
+ case 0: /* Internal RC oscillator */
+ SystemCoreClock = __IRC_OSC_CLK;
+ break;
+ case 1: /* System oscillator */
+ SystemCoreClock = __SYS_OSC_CLK;
+ break;
+ case 2: /* WDT Oscillator */
+ SystemCoreClock = wdt_osc;
+ break;
+ case 3: /* Reserved */
+ SystemCoreClock = 0;
+ break;
+ }
+ break;
+ case 2: /* WDT Oscillator */
+ SystemCoreClock = wdt_osc;
+ break;
+ case 3: /* System PLL Clock Out */
+ switch (LPC_SYSCON->SYSPLLCLKSEL & 0x03) {
+ case 0: /* Internal RC oscillator */
+ if (LPC_SYSCON->SYSPLLCTRL & 0x180) {
+ SystemCoreClock = __IRC_OSC_CLK;
+ } else {
+ SystemCoreClock = __IRC_OSC_CLK * ((LPC_SYSCON->SYSPLLCTRL & 0x01F) + 1);
+ }
+ break;
+ case 1: /* System oscillator */
+ if (LPC_SYSCON->SYSPLLCTRL & 0x180) {
+ SystemCoreClock = __SYS_OSC_CLK;
+ } else {
+ SystemCoreClock = __SYS_OSC_CLK * ((LPC_SYSCON->SYSPLLCTRL & 0x01F) + 1);
+ }
+ break;
+ case 2: /* WDT Oscillator */
+ if (LPC_SYSCON->SYSPLLCTRL & 0x180) {
+ SystemCoreClock = wdt_osc;
+ } else {
+ SystemCoreClock = wdt_osc * ((LPC_SYSCON->SYSPLLCTRL & 0x01F) + 1);
+ }
+ break;
+ case 3: /* Reserved */
+ SystemCoreClock = 0;
+ break;
+ }
+ break;
+ }
+
+ SystemCoreClock /= LPC_SYSCON->SYSAHBCLKDIV;
+
+}
+
+/**
+ * Initialize the system
+ *
+ * @param none
+ * @return none
+ *
+ * @brief Setup the microcontroller system.
+ * Initialize the System.
+ */
+void SystemInit (void)
+{
+#if (CLOCK_SETUP) /* Clock Setup */
+#if (SYSCLK_SETUP) /* System Clock Setup */
+#if (SYSOSC_SETUP) /* System Oscillator Setup */
+ uint32_t i;
+
+ LPC_SYSCON->PDRUNCFG &= ~(1 << 5); /* Power-up System Osc */
+ LPC_SYSCON->SYSOSCCTRL = SYSOSCCTRL_Val;
+ for (i = 0; i < 200; i++) __NOP();
+ LPC_SYSCON->SYSPLLCLKSEL = SYSPLLCLKSEL_Val; /* Select PLL Input */
+ LPC_SYSCON->SYSPLLCLKUEN = 0x01; /* Update Clock Source */
+ LPC_SYSCON->SYSPLLCLKUEN = 0x00; /* Toggle Update Register */
+ LPC_SYSCON->SYSPLLCLKUEN = 0x01;
+ while (!(LPC_SYSCON->SYSPLLCLKUEN & 0x01)); /* Wait Until Updated */
+#if (SYSPLL_SETUP) /* System PLL Setup */
+ LPC_SYSCON->SYSPLLCTRL = SYSPLLCTRL_Val;
+ LPC_SYSCON->PDRUNCFG &= ~(1 << 7); /* Power-up SYSPLL */
+ while (!(LPC_SYSCON->SYSPLLSTAT & 0x01)); /* Wait Until PLL Locked */
+#endif
+#endif
+#if (WDTOSC_SETUP) /* Watchdog Oscillator Setup*/
+ LPC_SYSCON->WDTOSCCTRL = WDTOSCCTRL_Val;
+ LPC_SYSCON->PDRUNCFG &= ~(1 << 6); /* Power-up WDT Clock */
+#endif
+ LPC_SYSCON->MAINCLKSEL = MAINCLKSEL_Val; /* Select PLL Clock Output */
+ LPC_SYSCON->MAINCLKUEN = 0x01; /* Update MCLK Clock Source */
+ LPC_SYSCON->MAINCLKUEN = 0x00; /* Toggle Update Register */
+ LPC_SYSCON->MAINCLKUEN = 0x01;
+ while (!(LPC_SYSCON->MAINCLKUEN & 0x01)); /* Wait Until Updated */
+#endif
+
+ LPC_SYSCON->SYSAHBCLKDIV = SYSAHBCLKDIV_Val;
+ LPC_SYSCON->SYSAHBCLKCTRL = AHBCLKCTRL_Val;
+ LPC_SYSCON->SSP0CLKDIV = SSP0CLKDIV_Val;
+ LPC_SYSCON->UARTCLKDIV = UARTCLKDIV_Val;
+ LPC_SYSCON->SSP1CLKDIV = SSP1CLKDIV_Val;
+#endif
+
+
+#if (MEMMAP_SETUP || MEMMAP_INIT) /* Memory Mapping Setup */
+ LPC_SYSCON->SYSMEMREMAP = SYSMEMREMAP_Val;
+#endif
+}
diff --git a/src/core/system_LPC11xx.h b/src/core/system_LPC11xx.h new file mode 100755 index 0000000..385fe38 --- /dev/null +++ b/src/core/system_LPC11xx.h @@ -0,0 +1,64 @@ +/**************************************************************************//**
+ * @file system_LPC11xx.h
+ * @brief CMSIS Cortex-M0 Device Peripheral Access Layer Header File
+ * for the NXP LPC11xx Device Series
+ * @version V1.00
+ * @date 17. November 2009
+ *
+ * @note
+ * Copyright (C) 2009 ARM Limited. All rights reserved.
+ *
+ * @par
+ * ARM Limited (ARM) is supplying this software for use with Cortex-M
+ * processor based microcontrollers. This file can be freely distributed
+ * within development tools that are supporting such ARM based processors.
+ *
+ * @par
+ * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+ * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+ * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+ * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+ *
+ ******************************************************************************/
+
+
+#ifndef __SYSTEM_LPC11xx_H
+#define __SYSTEM_LPC11xx_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
+
+
+/**
+ * Initialize the system
+ *
+ * @param none
+ * @return none
+ *
+ * @brief Setup the microcontroller system.
+ * Initialize the System and update the SystemCoreClock variable.
+ */
+extern void SystemInit (void);
+
+/**
+ * Update SystemCoreClock variable
+ *
+ * @param none
+ * @return none
+ *
+ * @brief Updates the SystemCoreClock with current core Clock
+ * retrieved from cpu registers.
+ */
+extern void SystemCoreClockUpdate (void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SYSTEM_LPC11x_H */
diff --git a/src/core/uart.cpp b/src/core/uart.cpp new file mode 100755 index 0000000..ea61c3c --- /dev/null +++ b/src/core/uart.cpp @@ -0,0 +1,206 @@ +/* + * uart.cpp + * + * Created on: 2011/07/30 + * Author: lynxeyed + */ + +#include <string.h> +#include "LPC11xx.h" +#include "uart.h" + +#ifdef __cplusplus + extern "C" { +#endif + + // Flag mask for UART_LSR register. +const unsigned long LSR_TEMT = 0x40; +const unsigned long LSR_THRE = 0x20; +const unsigned long LSR_RDR = 0x01; +const unsigned long ACR_START = 0x01; +const unsigned long IER_RLS = 0x04; +const unsigned long IER_RBR = 0x01; + +USerial Serial; + +USerial::USerial()//USerial(SERIAL_PORT port) //define constructor +{ + this->port = marySerial1; //default = marySerial1 + format = OCT; + speed = 9600; //baudrate + //begin(speed); +} + +USerial::~USerial() +{ + +} + +void USerial::begin(int speed) +{ + this->speed = speed; + // Divisor ratio + unsigned long Fdiv; + + // Configure P1[7] as TXD output. + LPC_IOCON->PIO1_7 &= ~0x07; // FUNC=000 (GPIO) + LPC_IOCON->PIO1_7 |= 0x01; // FUNC=001 (TXD) + + // Configure P1[6] as RXD input. + LPC_IOCON->PIO1_6 &= ~0x07; // FUNC=000 (GPIO) + LPC_IOCON->PIO1_6 |= 0x01; // FUNC=001 (RXD) + + // Enable UART clock + LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12); // UART=1 + + // Enable UART peripheral clock + LPC_SYSCON->UARTCLKDIV = 0x01; // DIV=1 + + // fix baud-rate + Fdiv = (SystemCoreClock * LPC_SYSCON->SYSAHBCLKDIV) / (LPC_SYSCON->UARTCLKDIV * 16 * speed); + + // Set the baud rate divisor value + LPC_UART->LCR |= 0x80; + LPC_UART->DLM = Fdiv / 256; + LPC_UART->DLL = Fdiv % 256; + LPC_UART->LCR &= ~0x80; + + // Configure UART module as + // 8 bit, 1 stop bit, no parity + // Enable and reset TX and RX FIFO. + LPC_UART->LCR = 0x03; + LPC_UART->FCR = 0x07; + +} + +void USerial::end() +{ + return; +} + +void USerial::write(const char c) //uart_putc +{ + // Wait for TX buffer empty + while (!(LPC_UART->LSR & LSR_THRE)); + // Put a character + LPC_UART->THR = c; + return; +} + +void USerial::print(const char *s) //uart_puts +{ + int n; + for (n = 0; *s; s++, n++) { + write(*s); + } + //return n; + return; +} + +void USerial::print(int val, RADIX_FORMAT format) +{ + if(format == BYTE) + { + write((char)(val & 0xff)); + return; + } + char s[32]; + int i,j; + i=j=0; // header of strings + if (val<0) + { //minus value + s[i]='-'; + val=~val+1; + i++; + j++; + } + switch(format) + { + case BIN: + while (val>0) + { // do until zero + s[i++]=radix_bin[val%format]; + val/=format; + } + break; + + case OCT: + while (val>0) + { // do until zero + s[i++]=radix_oct[val%format]; + val/=format; + } + break; + + case DEC: //RADIX = Decimal + while (val>0) + { // do until zero + s[i++]=radix_dec[val%format]; + val/=format; + } + break; + + case HEX: //RADIX = Hexadecimal + while (val>0) + { // do until zero + s[i++]=radix_hex[val%format]; + val/=format; + } + break; + default: + break; + } + s[i--]='\0'; // EOF + while (j<i) + { // reverse strings array + char t; + t=s[j]; s[j]=s[i]; s[i]=t; + j++; i--; + } + print(s); + + return ; +} + +void USerial::write(const char *s, int length) +{ + int n; + for(n=0;n<length;s++,n++) + { + write(*s); + } + return; +} + +void USerial::println(const char *s) +{ + print(s); + write ('\r'); + write ('\n'); + return; +} + + +void USerial::println(int val, RADIX_FORMAT format) +{ + print(val,format); + write ('\r'); + write ('\n'); + return; +} + +int USerial::available(void) +{ + return (LPC_UART->LSR & LSR_RDR); +} + +int USerial::read(void) +{ + // Wait for RX buffer valid + //while (!(LPC_UART->LSR & LSR_RDR)); + return LPC_UART->RBR; +} + +#ifdef __cplusplus +} //extern "C" +#endif diff --git a/src/core/uart.h b/src/core/uart.h new file mode 100755 index 0000000..c7e5125 --- /dev/null +++ b/src/core/uart.h @@ -0,0 +1,90 @@ +#ifndef UART_H_ +#define UART_H_ + +/**************************************************************************//** + * @file uart.h + * @brief Arduino-like library for MARY(LPC1114) + * @version v.0.50 + * @date 1. August 2011. + * @author @@lynxeyed_atsu + * @note Copyright (c) 2011 Lynx-EyED's Klavier and Craft-works. <BR> + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: <BR> + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software.<BR> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ******************************************************************************/ + +#include "LPC11xx.h" +#ifdef __cplusplus + extern "C" { +#endif +const char radix_bin[]="01"; +const char radix_oct[]="01234567"; +const char radix_dec[]="0123456789"; +const char radix_hex[]="0123456789ABCDEF"; + +/*! @enum SERIAL_PORT + @brief COMポート(UART)のチャンネル選択。 + @note UARTが1ポートしかないMARYでは使用していないので特に影響はないが、2ポート以上UARTが存在するLPCXpressoシリーズや + mbedシリーズとの後方互換性を考慮し用意している +*/ +typedef enum { + marySerial1, /*!< MARYのUARTポート(デフォルト) */ + mbedSerial1, /*!< mbed(LPC1768/9)のUART1ポート(将来的に対応予定) */ + mbedSerial2 /*!< mbed(LPC1768/9)のUART2ポート(将来的に対応予定) */ +} SERIAL_PORT; // Defaults:marySerial1 + +/*! @enum SERIAL_FORMAT + @brief Arduinoのprint(data, format)の第二パラメータ(format)の基数。 +*/ +typedef enum { + BYTE = 0x01, /*!< 1バイトのアスキーコードが表示される */ + BIN = 0x02, /*!< dataで与えられた数値を2進数で表示する */ + OCT = 0x08, /*!< dataで与えられた数値を8進数で表示する */ + DEC = 0x0A, /*!< dataで与えられた数値を10進数で表示する */ + HEX = 0x10 /*!< dataで与えられた数値を16進数で表示する */ +} RADIX_FORMAT; + + +class USerial { +private: + SERIAL_PORT port; + RADIX_FORMAT format; + int speed; + +public: + USerial();//USerial(SERIAL_PORT port); // announce the constructor to initialize + ~USerial(); + + void begin(int speed); + void end() ; + void print(const char *s); + void print(int val, RADIX_FORMAT format); + void println(const char *s); + void println(int val, RADIX_FORMAT format) ; + int read(void); + int available(void); + void write(const char c); + void write(const char *s,int length); +}; + + +extern USerial Serial; + +#ifdef __cplusplus + } +#endif + + +#endif /* UART_H_ */ diff --git a/src/user_application.cpp b/src/user_application.cpp new file mode 100755 index 0000000..c8656fd --- /dev/null +++ b/src/user_application.cpp @@ -0,0 +1,52 @@ +#include <libmary.h>
+#include <stdlib.h>
+#include <SPI1.h>
+
+#define S9706_GATE 6 //Low->High:光量の積算。S9706の6番->(D6に接続)
+#define S9706_RANGE P0_1 //受光感度調整。S9706の4番->(P0_1)に接続。
+
+// PIO2_1 : SCLK -> S9706の5番(CK)
+// PIO2_2 : MISO -> S9706の1番(Dout)
+
+void setup()
+{
+ pinMode(S9706_GATE,OUTPUT);
+ pinMode(S9706_RANGE,OUTPUT);
+ Serial.begin(9600);
+ SPI1.setBitLength(12); //12bit ADC
+ SPI1.setDataMode(SPI_MODE2);
+ SPI1.begin();
+ Serial.println("Start");
+}
+
+int r,g,b;
+
+void loop()
+{
+ digitalWrite(S9706_GATE,LOW);
+ digitalWrite(S9706_RANGE,HIGH);
+
+ Serial.println("積算を開始");
+ digitalWrite(S9706_GATE,HIGH);
+ delay(4);
+
+
+ Serial.println("積算を終了");
+ Serial.println("データリード開始");
+
+ digitalWrite(S9706_GATE,LOW);
+
+ r = SPI1.transfer(0xfff);
+ g = SPI1.transfer(0xfff);
+ b = SPI1.transfer(0xfff);
+
+ Serial.print("r = ");
+ Serial.println(r,DEC);
+ Serial.print("g = ");
+ Serial.println(g,DEC);
+ Serial.print("b = ");
+ Serial.println(b,DEC);
+
+ delay(1000);
+
+}
|
