aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAtsushi Saitoh <lynxeyed@xj9.so-net.ne.jp>2012-02-04 12:38:33 +0900
committerAtsushi Saitoh <lynxeyed@xj9.so-net.ne.jp>2012-02-04 12:38:33 +0900
commit90506dd1ab7a48a4e2fbe6cf7224d27828abf869 (patch)
tree23de598d6445aba54015c9b70f2d0fbded41c044
parenteeda1597368fb49e254629e522295759d7f9c608 (diff)
new release
-rwxr-xr-x.cproject7392
-rwxr-xr-x.project82
-rwxr-xr-xRelease/Bootloader.axfbin0 -> 96234 bytes
-rwxr-xr-xRelease/Bootloader.hex126
-rwxr-xr-xRelease/eXodusino.ld127
-rwxr-xr-xRelease/eXodusino_Release_lib.ld8
-rwxr-xr-xRelease/eXodusino_Release_mem.ld12
-rwxr-xr-xRelease/exodusino.axfbin0 -> 54556 bytes
-rwxr-xr-xRelease/exodusino.binbin0 -> 13680 bytes
-rwxr-xr-xRelease/exodusino.hex858
-rwxr-xr-xRelease/exodusino.map2479
-rwxr-xr-xRelease/makefile68
-rwxr-xr-xRelease/objects.mk8
-rwxr-xr-xRelease/sources.mk31
-rwxr-xr-xRelease/src/FatFs/SD.d33
-rwxr-xr-xRelease/src/FatFs/SD.obin0 -> 11556 bytes
-rwxr-xr-xRelease/src/FatFs/pff.d30
-rwxr-xr-xRelease/src/FatFs/pff.obin0 -> 9820 bytes
-rwxr-xr-xRelease/src/FatFs/sdcard.d39
-rwxr-xr-xRelease/src/FatFs/sdcard.obin0 -> 6112 bytes
-rwxr-xr-xRelease/src/FatFs/subdir.mk30
-rwxr-xr-xRelease/src/XBee/XBee.d28
-rwxr-xr-xRelease/src/XBee/XBee.obin0 -> 73804 bytes
-rwxr-xr-xRelease/src/XBee/subdir.mk24
-rwxr-xr-xRelease/src/core/SPI.d13
-rwxr-xr-xRelease/src/core/SPI.obin0 -> 7328 bytes
-rwxr-xr-xRelease/src/core/SPI1.d15
-rwxr-xr-xRelease/src/core/SPI1.obin0 -> 7368 bytes
-rwxr-xr-xRelease/src/core/cr_cpp_config.d2
-rwxr-xr-xRelease/src/core/cr_cpp_config.obin0 -> 1916 bytes
-rwxr-xr-xRelease/src/core/cr_startup_lpc11.d4
-rwxr-xr-xRelease/src/core/cr_startup_lpc11.obin0 -> 3568 bytes
-rwxr-xr-xRelease/src/core/delay.d13
-rwxr-xr-xRelease/src/core/delay.obin0 -> 6524 bytes
-rwxr-xr-xRelease/src/core/gpio.d11
-rwxr-xr-xRelease/src/core/gpio.obin0 -> 3228 bytes
-rwxr-xr-xRelease/src/core/maryoled.d20
-rwxr-xr-xRelease/src/core/maryoled.obin0 -> 16288 bytes
-rwxr-xr-xRelease/src/core/startup_mary.d18
-rwxr-xr-xRelease/src/core/startup_mary.obin0 -> 1340 bytes
-rwxr-xr-xRelease/src/core/subdir.mk51
-rwxr-xr-xRelease/src/core/system_LPC11xx.d9
-rwxr-xr-xRelease/src/core/system_LPC11xx.obin0 -> 2188 bytes
-rwxr-xr-xRelease/src/core/uart.d11
-rwxr-xr-xRelease/src/core/uart.obin0 -> 7996 bytes
-rwxr-xr-xRelease/src/subdir.mk24
-rwxr-xr-xRelease/src/user_application.d29
-rwxr-xr-xRelease/src/user_application.obin0 -> 3132 bytes
-rwxr-xr-xsrc/FatFs/SD.cpp120
-rwxr-xr-xsrc/FatFs/SD.h74
-rwxr-xr-xsrc/FatFs/diskio.h41
-rwxr-xr-xsrc/FatFs/integer.h37
-rwxr-xr-xsrc/FatFs/pff.cpp845
-rwxr-xr-xsrc/FatFs/pff.h469
-rwxr-xr-xsrc/FatFs/sdcard.cpp287
-rwxr-xr-xsrc/TFTLCD/TFTLCD.h220
-rwxr-xr-xsrc/XBee/XBee.cpp1355
-rwxr-xr-xsrc/XBee/XBee.h964
-rwxr-xr-xsrc/core/LPC11xx.h559
-rwxr-xr-xsrc/core/SPI.cpp213
-rwxr-xr-xsrc/core/SPI.h120
-rwxr-xr-xsrc/core/SPI1.cpp220
-rwxr-xr-xsrc/core/SPI1.h77
-rwxr-xr-xsrc/core/core_cm0.h960
-rwxr-xr-xsrc/core/cr_cpp_config.cpp56
-rwxr-xr-xsrc/core/cr_startup_lpc11.cpp383
-rwxr-xr-xsrc/core/delay.cpp123
-rwxr-xr-xsrc/core/delay.h64
-rwxr-xr-xsrc/core/gpio.cpp102
-rwxr-xr-xsrc/core/gpio.h194
-rwxr-xr-xsrc/core/libmary.h60
-rwxr-xr-xsrc/core/maryoled.cpp484
-rwxr-xr-xsrc/core/maryoled.h127
-rwxr-xr-xsrc/core/startup_mary.cpp26
-rwxr-xr-xsrc/core/system_LPC11xx.cpp452
-rwxr-xr-xsrc/core/system_LPC11xx.h64
-rwxr-xr-xsrc/core/uart.cpp206
-rwxr-xr-xsrc/core/uart.h90
-rwxr-xr-xsrc/user_application.cpp52
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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ </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="&quot;eXodusino_Debug.ld&quot;" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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="&quot;eXodusino.ld&quot;" 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="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/core}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FatFs}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/XBee}&quot;"/>
+ </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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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 &quot;${plugin_state_location}/${specs_file}&quot;'" 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 &quot;${plugin_state_location}/specs.cpp&quot;'" 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 &quot;${plugin_state_location}/specs.c&quot;'" 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>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&#13;
+&lt;TargetConfig&gt;&#13;
+&lt;Properties property_0="" property_1="" property_2="" property_3="NXP" property_4="LPC1114/301" property_count="5" version="1"/&gt;&#13;
+&lt;infoList vendor="NXP"&gt;&#13;
+&lt;info chip="LPC1114/301" match_id="0x0444102b,0x2540102b" name="LPC1114/301" stub="crt_emu_lpc11_13_nxp"&gt;&#13;
+&lt;chip&gt;&#13;
+&lt;name&gt;LPC1114/301&lt;/name&gt;&#13;
+&lt;family&gt;LPC11xx&lt;/family&gt;&#13;
+&lt;vendor&gt;NXP (formerly Philips)&lt;/vendor&gt;&#13;
+&lt;reset board="None" core="Real" sys="Real"/&gt;&#13;
+&lt;clock changeable="TRUE" freq="12MHz" is_accurate="TRUE"/&gt;&#13;
+&lt;memory can_program="true" id="Flash" is_ro="true" type="Flash"/&gt;&#13;
+&lt;memory id="RAM" type="RAM"/&gt;&#13;
+&lt;memory id="Periph" is_volatile="true" type="Peripheral"/&gt;&#13;
+&lt;memoryInstance derived_from="Flash" id="MFlash32" location="0x0" size="0x8000"/&gt;&#13;
+&lt;memoryInstance derived_from="RAM" id="RamLoc8" location="0x10000000" size="0x2000"/&gt;&#13;
+&lt;prog_flash blocksz="0x1000" location="0x0" maxprgbuff="0x400" progwithcode="TRUE" size="0x8000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_SYSCTL" determined="infoFile" id="SYSCTL" location="0x40048000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_PMU" determined="infoFile" id="PMU" location="0x40038000"/&gt;&#13;
+&lt;peripheralInstance derived_from="CM0_NVIC" determined="infoFile" id="NVIC" location="0xe000e000"/&gt;&#13;
+&lt;peripheralInstance derived_from="CM0_DCR" determined="infoFile" id="DCR" location="0xe000edf0"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_GPIO" determined="infoFile" id="GPIO0" location="0x50000000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_GPIO" determined="infoFile" id="GPIO1" location="0x50010000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_GPIO" determined="infoFile" id="GPIO2" location="0x50020000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_GPIO" determined="infoFile" id="GPIO3" location="0x50030000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_IOCON" determined="infoFile" id="IOCON" location="0x40044000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC1xxx_UART_MODEM" determined="infoFile" id="UART0" location="0x40008000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_I2C" determined="infoFile" id="I2C0" location="0x40000000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_SSP" determined="infoFile" id="SSP0" location="0x40040000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_SSP" determined="infoFile" id="SSP1" location="0x40058000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_TIMER16" determined="infoFile" id="TMR160" location="0x4000c000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_TIMER16" determined="infoFile" id="TMR161" location="0x40010000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_TIMER32" determined="infoFile" id="TIMER0" location="0x40014000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_TIMER32" determined="infoFile" id="TIMER1" location="0x40018000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_WDT" determined="infoFile" id="WDT" location="0x40004000"/&gt;&#13;
+&lt;peripheralInstance derived_from="LPC11_13_ADC" determined="infoFile" id="ADC" location="0x4001c000"/&gt;&#13;
+&lt;/chip&gt;&#13;
+&lt;processor&gt;&#13;
+&lt;name gcc_name="cortex-m0"&gt;Cortex-M0&lt;/name&gt;&#13;
+&lt;family&gt;Cortex-M&lt;/family&gt;&#13;
+&lt;/processor&gt;&#13;
+&lt;link href="nxp_lpc11_13_peripheral.xme" show="embed" type="simple"/&gt;&#13;
+&lt;/info&gt;&#13;
+&lt;/infoList&gt;&#13;
+&lt;/TargetConfig&gt;</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
new file mode 100755
index 0000000..85450c3
--- /dev/null
+++ b/Release/Bootloader.axf
Binary files differ
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
new file mode 100755
index 0000000..35f24e8
--- /dev/null
+++ b/Release/exodusino.axf
Binary files differ
diff --git a/Release/exodusino.bin b/Release/exodusino.bin
new file mode 100755
index 0000000..11b95ad
--- /dev/null
+++ b/Release/exodusino.bin
Binary files differ
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
new file mode 100755
index 0000000..7decf78
--- /dev/null
+++ b/Release/src/FatFs/SD.o
Binary files differ
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
new file mode 100755
index 0000000..d9cfdb5
--- /dev/null
+++ b/Release/src/FatFs/pff.o
Binary files differ
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
new file mode 100755
index 0000000..6fc7112
--- /dev/null
+++ b/Release/src/FatFs/sdcard.o
Binary files differ
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
new file mode 100755
index 0000000..88e754a
--- /dev/null
+++ b/Release/src/XBee/XBee.o
Binary files differ
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
new file mode 100755
index 0000000..16722ee
--- /dev/null
+++ b/Release/src/core/SPI.o
Binary files differ
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
new file mode 100755
index 0000000..225ad98
--- /dev/null
+++ b/Release/src/core/SPI1.o
Binary files differ
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
new file mode 100755
index 0000000..9274bac
--- /dev/null
+++ b/Release/src/core/cr_cpp_config.o
Binary files differ
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
new file mode 100755
index 0000000..eee8663
--- /dev/null
+++ b/Release/src/core/cr_startup_lpc11.o
Binary files differ
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
new file mode 100755
index 0000000..fa91115
--- /dev/null
+++ b/Release/src/core/delay.o
Binary files differ
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
new file mode 100755
index 0000000..afb4011
--- /dev/null
+++ b/Release/src/core/gpio.o
Binary files differ
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
new file mode 100755
index 0000000..163047d
--- /dev/null
+++ b/Release/src/core/maryoled.o
Binary files differ
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
new file mode 100755
index 0000000..e4fe192
--- /dev/null
+++ b/Release/src/core/startup_mary.o
Binary files differ
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
new file mode 100755
index 0000000..9fa7fa3
--- /dev/null
+++ b/Release/src/core/system_LPC11xx.o
Binary files differ
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
new file mode 100755
index 0000000..7836a55
--- /dev/null
+++ b/Release/src/core/uart.o
Binary files differ
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
new file mode 100755
index 0000000..1dd8499
--- /dev/null
+++ b/Release/src/user_application.o
Binary files differ
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);
+
+}