mirror of
https://github.com/pvvx/RTL00_WEB.git
synced 2024-11-21 21:44:21 +00:00
first commit
This commit is contained in:
commit
fa343db334
154 changed files with 18186 additions and 0 deletions
735
.cproject
Normal file
735
.cproject
Normal file
|
@ -0,0 +1,735 @@
|
|||
<?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="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<macros>
|
||||
<stringMacro name="ProjSDK" type="VALUE_TEXT" value="RTL00_SDKV35a"/>
|
||||
</macros>
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" 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.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 artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="default Makefile" id="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404" name="Debug" parent="cdt.managedbuild.config.gnu.mingw.exe.debug">
|
||||
<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404." name="/" resourcePath="">
|
||||
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.288622836" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1378006318" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.arm" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.829811693" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.suffix.340953338" name="Suffix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.suffix"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.1881808200" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.1575778284" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.352708376" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar" value="ar" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.2022992880" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy" value="objcopy" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.1165596750" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump" value="objdump" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1424938245" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size" value="size" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.1178667540" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make" value="make" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.352113456" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm" value="rm" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.useglobalpath.717194910" name="Use global path" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.useglobalpath"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.path.330006680" name="Path" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.path"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1355782894" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createlisting.1217652270" name="Create extended listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createlisting"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.567065326" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.481156355" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.cortex-m3" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture.523822563" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.1935690412" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork.1112695459" name="Thumb interwork (-mthumb-interwork)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.1279725395" name="Endianness" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.406729192" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.696330314" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.1993592845" name="Unaligned access" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.family.1684279663" name="AArch64 family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.family"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crc.1194142030" name="Feature crc" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crc"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crypto.1676576354" name="Feature crypto" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crypto"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.fp.779285692" name="Feature fp" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.fp"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.simd.329424470" name="Feature simd" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.simd"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.cmodel.52122821" name="Code model" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.cmodel"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.strictalign.143067804" name="Strict align (-mstrict-align)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.strictalign"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.target.other.1650172779" name="Other target flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.target.other"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.1995924900" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.540086527" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.1134954409" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.891002678" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.1462618410" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon.1502805699" name="No common unitialized (-fno-common)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions.489484821" name="Do not inline functions (-fno-inline-functions)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding.288487298" name="Assume freestanding environment (-ffreestanding)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin.1279479150" name="Disable builtin (-fno-builtin)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant.1026066769" name="Single precision constants (-fsingle-precision-constant)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC.1334719698" name="Position independent code (-fPIC)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.lto.660582564" name="Link-time optimizer (-flto)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.lto"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants.1426487277" name="Disable loop invariant move (-fno-move-loop-invariants)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other.1971719971" name="Other optimization flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.2013893568" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly.1293433935" name="Check syntax only (-fsyntax-only)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic.586569514" name="Pedantic (-pedantic)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors.1098067866" name="Pedantic warnings as errors (-pedantic-errors)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn.1358560314" name="Inhibit all warnings (-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.84941636" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.1774490719" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.824848678" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.13235635" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.2098345604" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.2090284278" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.569308145" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded.196823967" name="Warn if padding is included (-Wpadded)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.1295955369" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.799670807" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.251337410" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.1653200215" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors.2052940896" name="Generate errors instead of warnings (-Werror)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other.1870461853" name="Other warning flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.1201133808" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.2039694665" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof.1137517500" name="Generate prof information (-p)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof.494604134" name="Generate gprof information (-pg)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.other.378060659" name="Other debugging flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.other"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.1171651449" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
||||
<builder arguments="-s" buildPath="${workspace_loc:/${ProjName}/project/realtek_ameba1_va0_example/GCC-RELEASE}" command="mingw32-make.exe" enableAutoBuild="true" id="ilg.gnuarmeclipse.managedbuild.cross.builder.1928881956" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1867136583" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.803936844" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.1206727361" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1390387922" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.19053491" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CONFIG_PLATFORM_8195A"/>
|
||||
<listOptionValue builtIn="false" value="GCC_ARMCM3"/>
|
||||
<listOptionValue builtIn="false" value="ARDUINO_SDK"/>
|
||||
<listOptionValue builtIn="false" value="M3"/>
|
||||
<listOptionValue builtIn="false" value="F_CPU=166666666L"/>
|
||||
</option>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1624349386" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1640084941" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs.200080958" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CONFIG_PLATFORM_8195A"/>
|
||||
<listOptionValue builtIn="false" value="GCC_ARMCM3"/>
|
||||
<listOptionValue builtIn="false" value="ARDUINO_SDK"/>
|
||||
<listOptionValue builtIn="false" value="M3"/>
|
||||
<listOptionValue builtIn="false" value="F_CPU=166666666L"/>
|
||||
</option>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.421691648" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.1126132436" name="Cross ARM C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections.1106277337" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.714231139" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.978736090" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.1430020536" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.818134961" name="Cross ARM GNU Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.798774812" name="Cross ARM GNU Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1234603622" name="Cross ARM GNU Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source.81472388" name="Display source (--source|-S)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders.193012888" name="Display all headers (--all-headers|-x)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle.976059339" name="Demangle names (--demangle|-C)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers.1492594993" name="Display line numbers (--line-numbers|-l)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide.1056294869" name="Wide lines (--wide|-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.250341025" name="Cross ARM GNU Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format.459793684" name="Size format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="RTL00_SDKV35a/project|project/realtek_ameba1_va0_example/disasm_to_c_boot|component/soc/realtek/8195a/misc/gcc_utility|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_1.c|component/os/freertos/freertos_v8.1.2/Source/portable/GCC/ARM_CM4F|doc|project/realtek_ameba1_va0_example/example_sources|build|project/realtek_ameba1_va0_example/GCC-RELEASE|component/common/network/lwip/lwip_v1.5.0.beta|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_4.c|component1|component/common/network/lwip/lwip_v1.3.2|flasher|component/os/freertos/freertos_v8.1.2/Source/portable/IAR|component/os/freertos/freertos_v8.1.2/Source/portable/GCC/ARM_CM3_MPU|component/common/network/lwip/lwip_v1.4.1/port/stm32f2x7|component/os/freertos/freertos_v8.1.2/Demo|component/os/freertos/freertos_v8.1.2/Source/portable/RVDS|component/soc/realtek/8195a/misc/iar_utility|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_3.c|tools|component/common/network/ssl/polarssl-1.3.8/ssl_self_test.c|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_2.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="ilg.gnuarmeclipse.managedbuild.packs"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.release.510381534">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.release.510381534" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<macros>
|
||||
<stringMacro name="ProjSDK" type="VALUE_TEXT" value="RTL00_SDKV35a"/>
|
||||
</macros>
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" 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.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 artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="main Makefile" id="cdt.managedbuild.config.gnu.mingw.exe.release.510381534" name="Release" parent="cdt.managedbuild.config.gnu.mingw.exe.release">
|
||||
<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.release.510381534." name="/" resourcePath="">
|
||||
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1331669481" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1386009229" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.arm" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.906264076" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.suffix.1737103952" name="Suffix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.suffix"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.352021196" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.2017644748" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.1613005810" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar" value="ar" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.8514861" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy" value="objcopy" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.999950947" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump" value="objdump" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1837512864" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size" value="size" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.589946620" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make" value="make" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.196123759" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm" value="rm" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.useglobalpath.512925197" name="Use global path" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.useglobalpath"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.path.1528855341" name="Path" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.path"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1306771897" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createlisting.1287237101" name="Create extended listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createlisting"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1033045697" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.1018189258" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.cortex-m3" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture.678030981" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.136379804" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork.1373754919" name="Thumb interwork (-mthumb-interwork)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.1465940463" name="Endianness" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.2112266715" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.407311370" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.695664951" name="Unaligned access" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.family.202710632" name="AArch64 family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.family"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crc.242497342" name="Feature crc" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crc"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crypto.1974531914" name="Feature crypto" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crypto"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.fp.660200968" name="Feature fp" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.fp"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.simd.1233244294" name="Feature simd" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.simd"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.cmodel.498121486" name="Code model" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.cmodel"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.strictalign.952900779" name="Strict align (-mstrict-align)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.strictalign"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.target.other.475866598" name="Other target flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.target.other"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.2088084120" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.263056684" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.1662221277" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.1484887886" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.523628101" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon.774354347" name="No common unitialized (-fno-common)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions.1488698260" name="Do not inline functions (-fno-inline-functions)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding.2009610250" name="Assume freestanding environment (-ffreestanding)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin.2046819055" name="Disable builtin (-fno-builtin)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant.1845401859" name="Single precision constants (-fsingle-precision-constant)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC.1248248517" name="Position independent code (-fPIC)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.lto.1064738650" name="Link-time optimizer (-flto)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.lto"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants.1963895652" name="Disable loop invariant move (-fno-move-loop-invariants)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other.1363033731" name="Other optimization flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.827986487" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly.931408380" name="Check syntax only (-fsyntax-only)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic.1092080308" name="Pedantic (-pedantic)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors.1010696628" name="Pedantic warnings as errors (-pedantic-errors)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn.760232272" name="Inhibit all warnings (-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.1728302009" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.1930131691" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1156648663" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.672901268" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.1994589092" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.123169426" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.826765932" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded.156607791" name="Warn if padding is included (-Wpadded)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.1351684514" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.1949187882" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.1895179507" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.2051998707" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors.821418437" name="Generate errors instead of warnings (-Werror)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other.2067172410" name="Other warning flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.1941097436" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.30653585" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof.1627791721" name="Generate prof information (-p)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof.977946526" name="Generate gprof information (-pg)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.other.70094073" name="Other debugging flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.other"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.1505237487" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
||||
<builder arguments="-s" buildPath="${workspace_loc:/${ProjName}}" command="mingw32-make.exe" id="ilg.gnuarmeclipse.managedbuild.cross.builder.599629164" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="false" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name=""/>
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.986275098" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1946659190" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1118688937" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.722165562" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.15138288" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.1349310488" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CONFIG_PLATFORM_8195A"/>
|
||||
<listOptionValue builtIn="false" value="GCC_ARMCM3"/>
|
||||
<listOptionValue builtIn="false" value="ARDUINO_SDK"/>
|
||||
<listOptionValue builtIn="false" value="M3"/>
|
||||
<listOptionValue builtIn="false" value="F_CPU=166666666L"/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.1191413676" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1929075018" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1154716753" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs.2100617784" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CONFIG_PLATFORM_8195A"/>
|
||||
<listOptionValue builtIn="false" value="GCC_ARMCM3"/>
|
||||
<listOptionValue builtIn="false" value="ARDUINO_SDK"/>
|
||||
<listOptionValue builtIn="false" value="M3"/>
|
||||
<listOptionValue builtIn="false" value="F_CPU=166666666L"/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.1414265452" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.188668818" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.1097868112" name="Cross ARM C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections.1171742405" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.2087397299" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.1436328271" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths.1921114810" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs.2034197567" name="Libraries (-l)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.76050363" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.352595454" name="Cross ARM GNU Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.702099759" name="Cross ARM GNU Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1993138551" name="Cross ARM GNU Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source.538816325" name="Display source (--source|-S)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders.997591536" name="Display all headers (--all-headers|-x)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle.1337830561" name="Demangle names (--demangle|-C)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers.211879144" name="Display line numbers (--line-numbers|-l)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide.1093890381" name="Wide lines (--wide|-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.892122898" name="Cross ARM GNU Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format.145710658" name="Size format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.release.510381534.229944589" name="/" resourcePath="RTL00_SDKV35a">
|
||||
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1070877287" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base" unusedChildren="">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1386009229.66403643" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1386009229"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.906264076.1427666078" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.906264076"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.suffix.1737103952.912406400" name="Suffix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.suffix.1737103952"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.352021196.1017071953" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.352021196"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.2017644748.36643021" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.2017644748"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.1613005810.1016231209" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.1613005810"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.8514861.1470941810" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.8514861"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.999950947.1947200071" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.999950947"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1837512864.1038400629" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1837512864"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.589946620.1407198692" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.589946620"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.196123759.156281879" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.196123759"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.useglobalpath.512925197.795211669" name="Use global path" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.useglobalpath.512925197"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.path.1528855341.1888314690" name="Path" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.path.1528855341"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1306771897.540825015" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1306771897"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createlisting.1287237101.272965199" name="Create extended listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createlisting.1287237101"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1033045697.339166740" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1033045697"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.1018189258.960110149" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.1018189258"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture.678030981.1454173278" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture.678030981"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.136379804.1871672396" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.136379804"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork.1373754919.1145747368" name="Thumb interwork (-mthumb-interwork)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork.1373754919"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.1465940463.998461428" name="Endianness" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.1465940463"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.2112266715.1678261187" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.2112266715"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.407311370.1989193795" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.407311370"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.695664951.819280041" name="Unaligned access" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.695664951"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.family.202710632.1227421049" name="AArch64 family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.family.202710632"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crc.242497342.571905358" name="Feature crc" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crc.242497342"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crypto.1974531914.1549839989" name="Feature crypto" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crypto.1974531914"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.fp.660200968.1605824599" name="Feature fp" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.fp.660200968"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.simd.1233244294.141710043" name="Feature simd" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.simd.1233244294"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.cmodel.498121486.1393644620" name="Code model" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.cmodel.498121486"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.strictalign.952900779.264394554" name="Strict align (-mstrict-align)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.strictalign.952900779"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.target.other.475866598.1032154005" name="Other target flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.target.other.475866598"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.2088084120.496829682" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.2088084120"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.263056684.1796048106" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.263056684"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.1662221277.1894480632" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.1662221277"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.1484887886.814430096" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.1484887886"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.523628101.1798914718" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.523628101"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon.774354347.1995679856" name="No common unitialized (-fno-common)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon.774354347"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions.1488698260.144272999" name="Do not inline functions (-fno-inline-functions)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions.1488698260"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding.2009610250.183357583" name="Assume freestanding environment (-ffreestanding)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding.2009610250"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin.2046819055.520138278" name="Disable builtin (-fno-builtin)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin.2046819055"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant.1845401859.2353114" name="Single precision constants (-fsingle-precision-constant)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant.1845401859"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC.1248248517.169706172" name="Position independent code (-fPIC)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC.1248248517"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.lto.1064738650.159643828" name="Link-time optimizer (-flto)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.lto.1064738650"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants.1963895652.1392148469" name="Disable loop invariant move (-fno-move-loop-invariants)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants.1963895652"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other.1363033731.962644856" name="Other optimization flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other.1363033731"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.827986487.1521277532" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.827986487"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly.931408380.1287183253" name="Check syntax only (-fsyntax-only)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly.931408380"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic.1092080308.101535841" name="Pedantic (-pedantic)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic.1092080308"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors.1010696628.611132965" name="Pedantic warnings as errors (-pedantic-errors)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors.1010696628"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn.760232272.1621118066" name="Inhibit all warnings (-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn.760232272"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.1728302009.2003501753" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.1728302009"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.1930131691.711994977" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.1930131691"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1156648663.229813352" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1156648663"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.672901268.723923306" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.672901268"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.1994589092.1209485670" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.1994589092"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.123169426.1954204806" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.123169426"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.826765932.335308619" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.826765932"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded.156607791.1982350979" name="Warn if padding is included (-Wpadded)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded.156607791"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.1351684514.211841066" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.1351684514"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.1949187882.1769280254" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.1949187882"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.1895179507.250880478" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.1895179507"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.2051998707.636581538" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.2051998707"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors.821418437.155869018" name="Generate errors instead of warnings (-Werror)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors.821418437"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other.2067172410.400567785" name="Other warning flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other.2067172410"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.1941097436.632840437" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.1941097436"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.30653585.1170114952" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.30653585"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof.1627791721.1436404427" name="Generate prof information (-p)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof.1627791721"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof.977946526.1412845431" name="Generate gprof information (-pg)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof.977946526"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.other.70094073.566509087" name="Other debugging flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.other.70094073"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1622564502" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.986275098">
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.1333644780" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1473679944" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.15138288">
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1737601197" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1449200561" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1154716753">
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.262090898" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.135995649" name="Cross ARM C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.1097868112"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.1771072208" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.2087397299"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.1545746413" name="Cross ARM GNU Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.352595454"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.849146699" name="Cross ARM GNU Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.702099759"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1129147248" name="Cross ARM GNU Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1993138551"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.1718658696" name="Cross ARM GNU Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.892122898"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="RTL00_SDKV35a|${ProjSDK}|project/realtek_ameba1_va0_example/disasm_to_c_boot|component/soc/realtek/8195a/misc/gcc_utility|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_1.c|component/os/freertos/freertos_v8.1.2/Source/portable/GCC/ARM_CM4F|doc|project/realtek_ameba1_va0_example/example_sources|build|project/realtek_ameba1_va0_example/GCC-RELEASE|component/common/network/lwip/lwip_v1.5.0.beta|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_4.c|component1|component/common/network/lwip/lwip_v1.3.2|flasher|component/os/freertos/freertos_v8.1.2/Source/portable/IAR|component/os/freertos/freertos_v8.1.2/Source/portable/GCC/ARM_CM3_MPU|component/common/network/lwip/lwip_v1.4.1/port/stm32f2x7|component/os/freertos/freertos_v8.1.2/Demo|component/os/freertos/freertos_v8.1.2/Source/portable/RVDS|component/soc/realtek/8195a/misc/iar_utility|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_3.c|tools|component/common/network/ssl/polarssl-1.3.8/ssl_self_test.c|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_2.c" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name=""/>
|
||||
<entry excluding=".git/|.settings/|AutoMake/|build/|flasher/|LibAutoMake/|project/" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="RTL00_SDKV35a"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="ilg.gnuarmeclipse.managedbuild.packs"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235" moduleId="org.eclipse.cdt.core.settings" name="AutoMake">
|
||||
<macros>
|
||||
<stringMacro name="ProjSDK" type="VALUE_TEXT" value="RTL00_SDKV35a"/>
|
||||
</macros>
|
||||
<externalSettings>
|
||||
<externalSetting/>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="Eclipse Makefile" errorParsers="org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235" name="AutoMake" parent="cdt.managedbuild.config.gnu.mingw.exe.debug" postannouncebuildStep="Gen bins files" postbuildStep="mingw32-make.exe -f ../flasher.mk copybin1 genbin23 OBJ_DIR=. BIN_DIR=. TARGET=${ProjName} BOOTS=../../${ProjSDK}/component/soc/realtek/8195a/misc/bsp/image FLASHER_PATH=../../${ProjSDK}/flasher/ TOOLS_PATH=../../${ProjSDK}/component/soc/realtek/8195a/misc/iar_utility/common/tools/" preannouncebuildStep="" prebuildStep="">
|
||||
<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235." name="/" resourcePath="">
|
||||
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.820810393" name="Cross ARM GCC" nonInternalBuilderId="ilg.gnuarmeclipse.managedbuild.cross.builder" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1532421903" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.arm" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.1247796277" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.suffix.1109094786" name="Suffix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.suffix"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.1693842570" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.368037455" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.548129980" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar" value="ar" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.928892842" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy" value="objcopy" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.2049305935" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump" value="objdump" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1590831374" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size" value="size" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.778372793" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make" value="make" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.1982036737" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm" value="rm" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.useglobalpath.1087893518" name="Use global path" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.useglobalpath"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.path.358350159" name="Path" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.path"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1471634859" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createlisting.829775475" name="Create extended listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createlisting"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.687052112" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.229064670" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.cortex-m3" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture.1274871685" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.1753705938" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork.1185454201" name="Thumb interwork (-mthumb-interwork)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.344831861" name="Endianness" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1494945194" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1430475206" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.761494227" name="Unaligned access" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.family.236324706" name="AArch64 family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.family"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crc.691118581" name="Feature crc" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crc"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crypto.512340533" name="Feature crypto" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.crypto"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.fp.1818141507" name="Feature fp" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.fp"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.simd.552088394" name="Feature simd" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.feature.simd"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.cmodel.629831365" name="Code model" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.cmodel"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.strictalign.142677767" name="Strict align (-mstrict-align)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.aarch64.target.strictalign"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.target.other.338451914" name="Other target flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.target.other"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.1847621316" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.size" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.950065296" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.1565579932" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.1637733419" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.388135605" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon.929521784" name="No common unitialized (-fno-common)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions.484841655" name="Do not inline functions (-fno-inline-functions)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding.1365456256" name="Assume freestanding environment (-ffreestanding)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin.247659415" name="Disable builtin (-fno-builtin)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant.291097667" name="Single precision constants (-fsingle-precision-constant)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC.1612856597" name="Position independent code (-fPIC)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC" value="false" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.lto.229971232" name="Link-time optimizer (-flto)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.lto"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants.1314126454" name="Disable loop invariant move (-fno-move-loop-invariants)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other.1587251749" name="Other optimization flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other" value="-fomit-frame-pointer -fno-short-enums" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.670995525" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly.1518733381" name="Check syntax only (-fsyntax-only)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic.2117575855" name="Pedantic (-pedantic)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors.1841301234" name="Pedantic warnings as errors (-pedantic-errors)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn.520559357" name="Inhibit all warnings (-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn" value="false" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.2106052794" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.1355578963" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1541255076" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.1821835269" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.1796379869" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.2029727081" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.497097090" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded.351178826" name="Warn if padding is included (-Wpadded)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.634040430" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.1097249106" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.966690400" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.2062311727" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors.1498403655" name="Generate errors instead of warnings (-Werror)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other.1807832307" name="Other warning flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other" value="-Wno-pointer-sign" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.663173283" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.max" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.1951797542" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof.720255162" name="Generate prof information (-p)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof.1451219900" name="Generate gprof information (-pg)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.other.120412298" name="Other debugging flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.other"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.656329034" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
||||
<builder arguments="-s" autoBuildTarget="all" buildPath="${workspace_loc:/rtl00TstMinAmebaV35a}/AutoMake" cleanBuildTarget="clean" command="mingw32-make.exe" id="org.eclipse.cdt.build.core.internal.builder.697587574" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="org.eclipse.cdt.build.core.internal.builder"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1889114087" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.527575306" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1893189760" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/RTL00_SDKV35a}""/>
|
||||
</option>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.1712176846" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.119146776" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.2057322667" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.871229625" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CONFIG_PLATFORM_8195A"/>
|
||||
<listOptionValue builtIn="false" value="GCC_ARMCM3"/>
|
||||
<listOptionValue builtIn="false" value="ARDUINO_SDK"/>
|
||||
<listOptionValue builtIn="false" value="M3"/>
|
||||
<listOptionValue builtIn="false" value="F_CPU=166666666L"/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.1097260516" name="Language standard" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std" useByScannerDiscovery="true" value="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.default" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other.1918788929" name="Other compiler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other" useByScannerDiscovery="true" value="-fsigned-char -Wno-pointer-sign -fno-common -fomit-frame-pointer -fno-short-enums" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otherwarnings.1397843782" name="Other warning flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otherwarnings" useByScannerDiscovery="true" value="-Wno-pointer-sign" valueType="string"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1036286501" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1725581254" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.622689061" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs.1034580488" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CONFIG_PLATFORM_8195A"/>
|
||||
<listOptionValue builtIn="false" value="GCC_ARMCM3"/>
|
||||
<listOptionValue builtIn="false" value="ARDUINO_SDK"/>
|
||||
<listOptionValue builtIn="false" value="M3"/>
|
||||
<listOptionValue builtIn="false" value="F_CPU=166666666L"/>
|
||||
</option>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1413280155" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.2073509096" name="Cross ARM C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections.1330221263" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool command="arm-none-eabi-gcc" id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.367171641" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs.1271016801" name="Libraries (-l)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs" valueType="libs">
|
||||
<listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="_platform_new"/>
|
||||
<listOptionValue builtIn="false" value="_wlan"/>
|
||||
<listOptionValue builtIn="false" value="_p2p"/>
|
||||
<listOptionValue builtIn="false" value="_wps"/>
|
||||
<listOptionValue builtIn="false" value="_rtlstd"/>
|
||||
<listOptionValue builtIn="false" value="_websocket"/>
|
||||
<listOptionValue builtIn="false" value="_xmodem"/>
|
||||
<listOptionValue builtIn="false" value="m"/>
|
||||
<listOptionValue builtIn="false" value="c"/>
|
||||
<listOptionValue builtIn="false" value="nosys"/>
|
||||
<listOptionValue builtIn="false" value="gcc"/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths.317142608" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/RTL00_SDKV35a/LibAutoMake}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjSDK}/component/soc/realtek/8195a/misc/bsp/lib/common/GCC}""/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.111439063" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano.1329248724" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile.1284968374" name="Script files (-T)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="rlx8195A-symbol-v03-img2.ld"/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart.1476094258" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nodeflibs.2076626840" name="Do not use default libraries (-nodefaultlibs)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nodeflibs" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostdlibs.1865632827" name="No startup or default libs (-nostdlib)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostdlibs" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other.1946658101" name="Other linker flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other" value="-mcpu=cortex-m3 -mthumb -g -Os -Wl,--gc-sections -Wl,--cref -Wl,--entry=Reset_Handler -Wl,--no-enum-size-warning -Wl,--no-wchar-size-warning" valueType="string"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.196423171" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.311737518" name="Cross ARM GNU Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.1878502371" name="Cross ARM GNU Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1243114149" name="Cross ARM GNU Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source.1892656289" name="Display source (--source|-S)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders.1427543789" name="Display all headers (--all-headers|-x)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle.1923228436" name="Demangle names (--demangle|-C)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers.1957054986" name="Display line numbers (--line-numbers|-l)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide.2086194051" name="Wide lines (--wide|-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.1851158034" name="Cross ARM GNU Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format.1717049342" name="Size format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="RTL00_SDKV35a/project|project/realtek_ameba1_va0_example/disasm_to_c_boot|component/soc/realtek/8195a/misc/gcc_utility|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_1.c|component/os/freertos/freertos_v8.1.2/Source/portable/GCC/ARM_CM4F|doc|project/realtek_ameba1_va0_example/example_sources|build|project/realtek_ameba1_va0_example/GCC-RELEASE|component/common/network/lwip/lwip_v1.5.0.beta|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_4.c|component1|component/common/network/lwip/lwip_v1.3.2|flasher|component/os/freertos/freertos_v8.1.2/Source/portable/IAR|component/os/freertos/freertos_v8.1.2/Source/portable/GCC/ARM_CM3_MPU|component/common/network/lwip/lwip_v1.4.1/port/stm32f2x7|component/os/freertos/freertos_v8.1.2/Demo|component/os/freertos/freertos_v8.1.2/Source/portable/RVDS|component/soc/realtek/8195a/misc/iar_utility|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_3.c|tools|component/common/network/ssl/polarssl-1.3.8/ssl_self_test.c|component/os/freertos/freertos_v8.1.2/Source/portable/MemMang/heap_2.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
|
||||
<externalSettings containerId="RTL00_SDKV35a;cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235.1893880750" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier">
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/RTL00_SDKV35a"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/RTL00_SDKV35a/LibAutoMake"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="RTL00_SDKV35a" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
</storageModule>
|
||||
<storageModule moduleId="ilg.gnuarmeclipse.managedbuild.packs"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0.cdt.managedbuild.target.gnu.mingw.exe.478591374" name="Executable" projectType="cdt.managedbuild.target.gnu.mingw.exe"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Multiple configurations">
|
||||
<resource resourceType="PROJECT" workspacePath="/sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0"/>
|
||||
</configuration>
|
||||
<configuration configurationName="AutoMake">
|
||||
<resource resourceType="PROJECT" workspacePath="/RTL00_SDKV35a"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Debug"/>
|
||||
<configuration configurationName="Release">
|
||||
<resource resourceType="PROJECT" workspacePath="/RTL00_SDKV35a"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404;cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1640084941;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.421691648">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235;cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235.;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1725581254;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1413280155">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.510381534;cdt.managedbuild.config.gnu.mingw.exe.release.510381534.;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.15138288;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1929075018">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.510381534;cdt.managedbuild.config.gnu.mingw.exe.release.510381534.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.128381215;cdt.managedbuild.tool.gnu.c.compiler.input.793217918">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404;cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.1328486011;cdt.managedbuild.tool.gnu.c.compiler.input.1770660294">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404;cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.1871560757;cdt.managedbuild.tool.gnu.cpp.compiler.input.1539036791">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404;cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1390387922;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1624349386">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235;cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.450606865;cdt.managedbuild.tool.gnu.c.compiler.input.1191704832">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.510381534;cdt.managedbuild.config.gnu.mingw.exe.release.510381534.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release.788201990;cdt.managedbuild.tool.gnu.cpp.compiler.input.399931222">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235;cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235.;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.119146776;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1036286501">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.510381534;cdt.managedbuild.config.gnu.mingw.exe.release.510381534.;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1154716753;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.188668818">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235;cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.117920953;cdt.managedbuild.tool.gnu.cpp.compiler.input.919033704">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||
<buildTargets>
|
||||
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>mingw32-make.exe</buildCommand>
|
||||
<buildArguments>-s -j 4</buildArguments>
|
||||
<buildTarget>all</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>false</runAllBuilders>
|
||||
</target>
|
||||
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>make</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>clean</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>false</runAllBuilders>
|
||||
</target>
|
||||
<target name="flashburn" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>make</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>flashburn</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>false</runAllBuilders>
|
||||
</target>
|
||||
<target name="reset" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>make</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>reset</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>false</runAllBuilders>
|
||||
</target>
|
||||
<target name="test" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>make</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>test</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>false</runAllBuilders>
|
||||
</target>
|
||||
<target name="readfullflash" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>mingw32-make.exe</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>readfullflash</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>false</runAllBuilders>
|
||||
</target>
|
||||
<target name="runram" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>mingw32-make.exe</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>runram</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>false</runAllBuilders>
|
||||
</target>
|
||||
<target name="mp" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>mingw32-make.exe</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>mp</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>false</runAllBuilders>
|
||||
</target>
|
||||
<target name="webfs" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>mingw32-make.exe</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>webfs</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="flashwebfs" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>mingw32-make.exe</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>flashwebfs</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="flash_OTA" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>mingw32-make.exe</buildCommand>
|
||||
<buildArguments>-s</buildArguments>
|
||||
<buildTarget>flash_OTA</buildTarget>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>true</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
</buildTargets>
|
||||
</storageModule>
|
||||
</cproject>
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/AutoMake/
|
||||
/build/
|
117
.project
Normal file
117
.project
Normal file
|
@ -0,0 +1,117 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>RTL00_WEB</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
<project>RTL00_SDKV35a</project>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>2</type>
|
||||
<locationURI>PARENT-1-PROJECT_LOC/RTL00MP3/RTL00_SDKV35a</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>0</id>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>5</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-*.h</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>0</id>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>5</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-*.c</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>0</id>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>10</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-AutoMake</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>0</id>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>10</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-build</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>0</id>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>10</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-flasher</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>0</id>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>10</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-LibAutoMake</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>0</id>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>10</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-project</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>0</id>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>10</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-.git</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>0</id>
|
||||
<name>RTL00_SDKV35a</name>
|
||||
<type>10</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-.settings</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
</projectDescription>
|
3
.settings/ilg.gnuarmeclipse.managedbuild.cross.prefs
Normal file
3
.settings/ilg.gnuarmeclipse.managedbuild.cross.prefs
Normal file
|
@ -0,0 +1,3 @@
|
|||
buildTools.path=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2\\bin
|
||||
eclipse.preferences.version=1
|
||||
toolchain.path.1287942917=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2\\
|
36
.settings/language.settings.xml
Normal file
36
.settings/language.settings.xml
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<project>
|
||||
<configuration id="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404" name="Debug">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-899746928891724671" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cross ARM" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
</extension>
|
||||
</configuration>
|
||||
<configuration id="cdt.managedbuild.config.gnu.mingw.exe.release.510381534" name="Release">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-899746928891724671" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cross ARM" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
</extension>
|
||||
</configuration>
|
||||
<configuration id="cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235" name="AutoMake">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-952652788661278814" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cross ARM" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
</extension>
|
||||
</configuration>
|
||||
</project>
|
67
.settings/org.eclipse.cdt.codan.core.prefs
Normal file
67
.settings/org.eclipse.cdt.codan.core.prefs
Normal file
|
@ -0,0 +1,67 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.cdt.codan.checkers.errnoreturn=Warning
|
||||
org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
|
||||
org.eclipse.cdt.codan.checkers.errreturnvalue=Error
|
||||
org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.checkers.noreturn=Error
|
||||
org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()}
|
||||
org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true}
|
||||
org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info
|
||||
org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
|
||||
org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()}
|
||||
org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false}
|
||||
org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
||||
org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
|
||||
org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
|
||||
org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning
|
||||
org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")}
|
||||
org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error
|
||||
org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
|
52
.settings/org.eclipse.cdt.core.prefs
Normal file
52
.settings/org.eclipse.cdt.core.prefs
Normal file
|
@ -0,0 +1,52 @@
|
|||
eclipse.preferences.version=1
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/MINGW_HOME/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/MINGW_HOME/operation=append
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/MINGW_HOME/value=C\:\\MinGW
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/MSYS_HOME/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/MSYS_HOME/operation=append
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/MSYS_HOME/value=C\:\\MinGW\\msys\\1.0
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/OCD_PATH/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/OCD_PATH/operation=append
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/OCD_PATH/value=D\:\\MCU\\OpenOCD\\bin
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/PATH/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/PATH/operation=replace
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/PATH/value=${TL_PATH}\\bin;${MINGW_HOME}\\mingw64\\bin;${MINGW_HOME}\\bin;${MSYS_HOME}\\bin;${OCD_PATH};C\:/Program Files (x86)/Java/jre1.8.0_101/bin/client;C\:/Program Files (x86)/Java/jre1.8.0_101/bin;C\:/Program Files (x86)/Java/jre1.8.0_101/lib/i386;C\:\\MinGW\\mingw64\\bin;C\:\\MinGW\\msys\\1.0\\bin;C\:\\MinGW\\bin;D\:\\MCU\\STMicroelectronics\\st_toolset\\asm;C\:\\Python27;C\:\\Utils\\FarUtils;C\:\\Utils\\FarUtils\\HIEW810;C\:\\Windows;C\:\\Windows\\system32;C\:\\Windows\\System32\\Wbem;C\:\\Windows\\System32\\WindowsPowerShell\\v1.0;D\:\\MCU\\Microchip\\xc32\\v1.42\\bin;D\:\\MCU\\Microchip\\mplabc30\\v3.31\\bin;D\:\\MCU\\Microchip\\MPLAB C32 Suite\\bin;D\:\\MCU\\Microchip\\mplabc32\\v1.12\\bin;D\:\\MCU\\Microchip\\mcc18\\mpasm;D\:\\MCU\\Microchip\\mcc18\\bin;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\binC\:\\Program Files (x86)\\Git\\cmd;C\:\\Program Files (x86)\\Borland\\Delphi7\\Bin;C\:\\Program Files (x86)\\Borland\\Delphi7\\Projects\\Bpl\\;C\:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C\:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI;C\:\\Program Files (x86)\\Windows Live\\Shared;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files (x86)\\Windows Kits\\8.1\\Windows Performance Toolkit;C\:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn;C\:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn;C\:\\Program Files\\Microsoft DNX\\Dnvm;C\:\\Program Files\\IVI Foundation\\VISA\\Win64\\Bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\X86\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\X86\\bin;C\:\\Users\\PVV\\.dnx\\bin;C\:\\ProgramData\\chocolatey\\bin;C\:\\ProgramData\\Oracle\\Java\\javapath;C\:\\Program Files (x86)\\QuickTime\\QTSystem;C\:\\Program Files\\nodejs;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\bin;C\:\\Program Files (x86)\\Git\\cmd;D\:\\MentorGraphics\\Sourcery_CodeBench_Lite_for_MIPS_ELF\\bin;C\:\\Eclipse
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/TL_PATH/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/TL_PATH/operation=replace
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/TL_PATH/value=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/append=true
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/appendContributed=true
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/MINGW_HOME/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/MINGW_HOME/operation=append
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/MINGW_HOME/value=C\:\\MinGW
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/MSYS_HOME/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/MSYS_HOME/operation=append
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/MSYS_HOME/value=C\:\\MinGW\\msys\\1.0
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/OCD_PATH/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/OCD_PATH/operation=append
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/OCD_PATH/value=D\:\\MCU\\OpenOCD\\bin
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/PATH/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/PATH/operation=replace
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/PATH/value=${TL_PATH}\\bin;${MINGW_HOME}\\mingw64\\bin;${MINGW_HOME}\\bin;${MSYS_HOME}\\bin;${OCD_PATH};C\:/Program Files (x86)/Java/jre1.8.0_101/bin/client;C\:/Program Files (x86)/Java/jre1.8.0_101/bin;C\:/Program Files (x86)/Java/jre1.8.0_101/lib/i386;C\:\\MinGW\\mingw64\\bin;C\:\\MinGW\\msys\\1.0\\bin;C\:\\MinGW\\bin;D\:\\MCU\\STMicroelectronics\\st_toolset\\asm;C\:\\Python27;C\:\\Utils\\FarUtils;C\:\\Utils\\FarUtils\\HIEW810;C\:\\Windows;C\:\\Windows\\system32;C\:\\Windows\\System32\\Wbem;C\:\\Windows\\System32\\WindowsPowerShell\\v1.0;D\:\\MCU\\Microchip\\xc32\\v1.42\\bin;D\:\\MCU\\Microchip\\mplabc30\\v3.31\\bin;D\:\\MCU\\Microchip\\MPLAB C32 Suite\\bin;D\:\\MCU\\Microchip\\mplabc32\\v1.12\\bin;D\:\\MCU\\Microchip\\mcc18\\mpasm;D\:\\MCU\\Microchip\\mcc18\\bin;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\binC\:\\Program Files (x86)\\Git\\cmd;C\:\\Program Files (x86)\\Borland\\Delphi7\\Bin;C\:\\Program Files (x86)\\Borland\\Delphi7\\Projects\\Bpl\\;C\:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C\:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI;C\:\\Program Files (x86)\\Windows Live\\Shared;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files (x86)\\Windows Kits\\8.1\\Windows Performance Toolkit;C\:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn;C\:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn;C\:\\Program Files\\Microsoft DNX\\Dnvm;C\:\\Program Files\\IVI Foundation\\VISA\\Win64\\Bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\X86\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\X86\\bin;C\:\\Users\\PVV\\.dnx\\bin;C\:\\ProgramData\\chocolatey\\bin;C\:\\ProgramData\\Oracle\\Java\\javapath;C\:\\Program Files (x86)\\QuickTime\\QTSystem;C\:\\Program Files\\nodejs;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\bin;C\:\\Program Files (x86)\\Git\\cmd;D\:\\MentorGraphics\\Sourcery_CodeBench_Lite_for_MIPS_ELF\\bin;C\:\\Eclipse
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/TL_PATH/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/TL_PATH/operation=replace
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/TL_PATH/value=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/append=true
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/appendContributed=true
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/MINGW_HOME/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/MINGW_HOME/operation=append
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/MINGW_HOME/value=C\:\\MinGW
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/MSYS_HOME/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/MSYS_HOME/operation=append
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/MSYS_HOME/value=C\:\\MinGW\\msys\\1.0
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/OCD_PATH/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/OCD_PATH/operation=append
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/OCD_PATH/value=D\:\\MCU\\OpenOCD\\bin
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/PATH/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/PATH/operation=replace
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/PATH/value=${TL_PATH}\\bin;${MINGW_HOME}\\mingw64\\bin;${MINGW_HOME}\\bin;${MSYS_HOME}\\bin;${OCD_PATH};C\:/Program Files (x86)/Java/jre1.8.0_101/bin/client;C\:/Program Files (x86)/Java/jre1.8.0_101/bin;C\:/Program Files (x86)/Java/jre1.8.0_101/lib/i386;C\:\\MinGW\\mingw64\\bin;C\:\\MinGW\\msys\\1.0\\bin;C\:\\MinGW\\bin;D\:\\MCU\\STMicroelectronics\\st_toolset\\asm;C\:\\Python27;C\:\\Utils\\FarUtils;C\:\\Utils\\FarUtils\\HIEW810;C\:\\Windows;C\:\\Windows\\system32;C\:\\Windows\\System32\\Wbem;C\:\\Windows\\System32\\WindowsPowerShell\\v1.0;D\:\\MCU\\Microchip\\xc32\\v1.42\\bin;D\:\\MCU\\Microchip\\mplabc30\\v3.31\\bin;D\:\\MCU\\Microchip\\MPLAB C32 Suite\\bin;D\:\\MCU\\Microchip\\mplabc32\\v1.12\\bin;D\:\\MCU\\Microchip\\mcc18\\mpasm;D\:\\MCU\\Microchip\\mcc18\\bin;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\binC\:\\Program Files (x86)\\Git\\cmd;C\:\\Program Files (x86)\\Borland\\Delphi7\\Bin;C\:\\Program Files (x86)\\Borland\\Delphi7\\Projects\\Bpl\\;C\:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C\:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI;C\:\\Program Files (x86)\\Windows Live\\Shared;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files (x86)\\Windows Kits\\8.1\\Windows Performance Toolkit;C\:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn;C\:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn;C\:\\Program Files\\Microsoft DNX\\Dnvm;C\:\\Program Files\\IVI Foundation\\VISA\\Win64\\Bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\X86\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\X86\\bin;C\:\\Users\\PVV\\.dnx\\bin;C\:\\ProgramData\\chocolatey\\bin;C\:\\ProgramData\\Oracle\\Java\\javapath;C\:\\Program Files (x86)\\QuickTime\\QTSystem;C\:\\Program Files\\nodejs;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\bin;C\:\\Program Files (x86)\\Git\\cmd;D\:\\MentorGraphics\\Sourcery_CodeBench_Lite_for_MIPS_ELF\\bin;C\:\\Eclipse
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/TL_PATH/delimiter=;
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/TL_PATH/operation=replace
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/TL_PATH/value=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/append=true
|
||||
environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/appendContributed=true
|
25
.settings/org.eclipse.cdt.managedbuilder.core.prefs
Normal file
25
.settings/org.eclipse.cdt.managedbuilder.core.prefs
Normal file
|
@ -0,0 +1,25 @@
|
|||
eclipse.preferences.version=1
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/CPATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/CPATH/operation=remove
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/CPLUS_INCLUDE_PATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/CPLUS_INCLUDE_PATH/operation=remove
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/C_INCLUDE_PATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/C_INCLUDE_PATH/operation=remove
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/append=true
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/appendContributed=true
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/CPATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/CPATH/operation=remove
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/CPLUS_INCLUDE_PATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/CPLUS_INCLUDE_PATH/operation=remove
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/C_INCLUDE_PATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/C_INCLUDE_PATH/operation=remove
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/append=true
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/appendContributed=true
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/LIBRARY_PATH/delimiter=;
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/LIBRARY_PATH/operation=remove
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/append=true
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/appendContributed=true
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/LIBRARY_PATH/delimiter=;
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/LIBRARY_PATH/operation=remove
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/append=true
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/appendContributed=true
|
2
.settings/org.eclipse.core.resources.prefs
Normal file
2
.settings/org.eclipse.core.resources.prefs
Normal file
|
@ -0,0 +1,2 @@
|
|||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
2
.settings/org.eclipse.ltk.core.refactoring.prefs
Normal file
2
.settings/org.eclipse.ltk.core.refactoring.prefs
Normal file
|
@ -0,0 +1,2 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
|
7
DAPLink-RTL00Console.bat
Normal file
7
DAPLink-RTL00Console.bat
Normal file
|
@ -0,0 +1,7 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
cd flasher
|
||||
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "load_ram_binary RTL00Console_ROM.bin 0x10000BA8" -c "exit"
|
||||
rem -c "shutdown"
|
||||
|
||||
|
7
DAPLink-RdFullFlash.bat
Normal file
7
DAPLink-RdFullFlash.bat
Normal file
|
@ -0,0 +1,7 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
cd flasher
|
||||
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "rtl8710_flash_read_id" -c "adapter_khz 5000" -c "rtl8710_flash_read ../fullflash.bin 0 1048576" -c "shutdown"
|
||||
echo flash read fullflash.bin
|
||||
pause
|
||||
|
6
DAPLink-Reset.bat
Normal file
6
DAPLink-Reset.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
@cd flasher
|
||||
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "restart_from_falsh" -c "shutdown"
|
||||
rem
|
||||
|
6
DAPLink_WrFullFlash.bat
Normal file
6
DAPLink_WrFullFlash.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
cd flasher
|
||||
openocd -f interface/cmsis-dap.cfg -c "adapter_khz 3500" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "rtl8710_flash_read_id" -c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" -c "rtl8710_flash_write fullflash.bin 0" -c "shutdown"
|
||||
pause
|
||||
|
3
JLink-RTL00ConsoleROM.bat
Normal file
3
JLink-RTL00ConsoleROM.bat
Normal file
|
@ -0,0 +1,3 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
start JLink.exe -Device CORTEX-M3 -If SWD -Speed 4000 flasher\RTL00ConsoleROM.JLinkScript
|
3
JLink-RdFullFlash.bat
Normal file
3
JLink-RdFullFlash.bat
Normal file
|
@ -0,0 +1,3 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
JLink.exe -Device CORTEX-M3 -If SWD -Speed 10000 flasher/RTL_FFlash.JLinkScript
|
3
JLink-Reset.bat
Normal file
3
JLink-Reset.bat
Normal file
|
@ -0,0 +1,3 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
JLink.exe -Device CORTEX-M3 -If SWD -Speed 1000 flasher\RTL_Reset.JLinkScript
|
3
JLink-RunRAM.bat
Normal file
3
JLink-RunRAM.bat
Normal file
|
@ -0,0 +1,3 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
start JLink.exe -Device CORTEX-M3 -If SWD -Speed 4000 flasher\RTL_RunRAM.JLinkScript
|
6
JLinkGDB-RdFullFlash.bat
Normal file
6
JLinkGDB-RdFullFlash.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
start JLinkGDBServer.exe -device Cortex-M3 -if SWD -ir -endian little -speed 1000
|
||||
arm-none-eabi-gdb.exe -x flasher/gdb_rdflash.jlink
|
||||
taskkill /F /IM JLinkGDBServer.exe
|
||||
|
15
JLinkGDB-RunRAM.bat
Normal file
15
JLinkGDB-RunRAM.bat
Normal file
|
@ -0,0 +1,15 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
@if exist build\obj\build.axf goto run
|
||||
echo File 'build\obj\build.axf' not found!
|
||||
echo Build project...
|
||||
mingw32-make.exe -f Makefile all
|
||||
@if not exist build\obj\build.axf goto err
|
||||
:run
|
||||
start JLinkGDBServer.exe -device Cortex-M3 -if SWD -ir -endian little -speed 1000
|
||||
arm-none-eabi-gdb.exe -x flasher/gdb_run_ram.jlink
|
||||
taskkill /F /IM JLinkGDBServer.exe
|
||||
goto end
|
||||
:err
|
||||
echo Error!
|
||||
:end
|
21
JLinkGDB-WrFlash.bat
Normal file
21
JLinkGDB-WrFlash.bat
Normal file
|
@ -0,0 +1,21 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
@if %1x==x goto xxx
|
||||
set img_file=%1
|
||||
goto run
|
||||
:xxx
|
||||
set img_file=build/bin/ram_all.bin
|
||||
:run
|
||||
echo define call1>flasher/flash_file.jlink
|
||||
echo SetFirwareSize %img_file%>>flasher/flash_file.jlink
|
||||
echo end>>flasher/flash_file.jlink
|
||||
echo define call2>>flasher/flash_file.jlink
|
||||
echo FlasherWrite %img_file% 0 $Image1Size>>flasher/flash_file.jlink
|
||||
echo end>>flasher/flash_file.jlink
|
||||
echo define call3>>flasher/flash_file.jlink
|
||||
echo FlasherWrite %img_file% $Image2Addr $Image2Size>>flasher/flash_file.jlink
|
||||
echo end>>flasher/flash_file.jlink
|
||||
start JLinkGDBServer.exe -device Cortex-M3 -if SWD -ir -endian little -speed 3500
|
||||
arm-none-eabi-gdb.exe -x flasher/gdb_wrflash.jlink
|
||||
taskkill /F /IM JLinkGDBServer.exe
|
||||
|
6
JLinkGDBServer.bat
Normal file
6
JLinkGDBServer.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
start JLinkGDBServer.exe -device Cortex-M3 -if SWD -ir -endian little -speed 1000
|
||||
arm-none-eabi-gdb.exe -x flasher/gdb_init.jlink
|
||||
taskkill /F /IM JLinkGDBServer.exe
|
||||
|
15
JLinkGDB_OTA.bat
Normal file
15
JLinkGDB_OTA.bat
Normal file
|
@ -0,0 +1,15 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
@if exist build\bin\ota.bin goto run
|
||||
echo File 'build\obj\ota.bin' not found!
|
||||
echo Build project...
|
||||
mingw32-make.exe -f Makefile all
|
||||
@if not exist build\bin\ota.bin goto err
|
||||
:run
|
||||
start start JLinkGDBServer.exe -device Cortex-M3 -if SWD -ir -endian little -speed 1000
|
||||
arm-none-eabi-gdb.exe -x flasher/gdb_ota.jlink
|
||||
taskkill /F /IM JLinkGDBServer.exe
|
||||
goto end
|
||||
:err
|
||||
echo Error!
|
||||
:end
|
7
JLinkOCD-RdFullFlash.bat
Normal file
7
JLinkOCD-RdFullFlash.bat
Normal file
|
@ -0,0 +1,7 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
cd flasher
|
||||
openocd -f interface/Jlink.cfg -c "adapter_khz 3500" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "rtl8710_flash_read_id" -c "adapter_khz 3900" -c "rtl8710_flash_read ../fullflash.bin 0 1048576" -c "shutdown"
|
||||
echo flash read fullflash.bin
|
||||
pause
|
||||
|
6
JLink_RdFullFlash.bat
Normal file
6
JLink_RdFullFlash.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
openocd -f interface/Jlink.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "adapter_khz 3500" -c "rtl8710_flash_read_id" -c "rtl8710_flash_read ../fullflash.bin 0 1048576" -c "shutdown"
|
||||
echo flash read fullflash.bin
|
||||
pause
|
||||
|
4
JlinkOpenOCD.bat
Normal file
4
JlinkOpenOCD.bat
Normal file
|
@ -0,0 +1,4 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
taskkill /F /IM openocd.exe
|
||||
start openocd -f interface\Jlink.cfg -f flasher\ameba1.cfg
|
24
LICENSE
Normal file
24
LICENSE
Normal file
|
@ -0,0 +1,24 @@
|
|||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
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 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.
|
||||
|
||||
For more information, please refer to <http://unlicense.org/>
|
57
Makefile
Normal file
57
Makefile
Normal file
|
@ -0,0 +1,57 @@
|
|||
|
||||
all: ram_all
|
||||
mp: ram_all_mp
|
||||
|
||||
.PHONY: ram_all
|
||||
ram_all:
|
||||
@$(MAKE) -f sdkbuild.mk
|
||||
@$(MAKE) -f flasher.mk genbin1 genbin23
|
||||
|
||||
.PHONY: ram_all_mp
|
||||
ram_all_mp:
|
||||
@$(MAKE) -f sdkbuild.mk mp
|
||||
@$(MAKE) -f flasher.mk mp
|
||||
|
||||
.PHONY: clean clean_all
|
||||
clean:
|
||||
@$(MAKE) -f sdkbuild.mk clean
|
||||
|
||||
clean_all:
|
||||
@$(MAKE) -f sdkbuild.mk clean_all
|
||||
|
||||
.PHONY: flashburn runram reset test readfullflash flashwebfs
|
||||
flashburn:
|
||||
#JLinkGDB-WrFlash.bat
|
||||
@$(MAKE) -f flasher.mk flashburn
|
||||
|
||||
flash_OTA:
|
||||
@$(MAKE) -f flasher.mk flash_OTA
|
||||
|
||||
webfs:
|
||||
@$(MAKE) -f webfs.mk
|
||||
|
||||
flashwebfs:
|
||||
@$(MAKE) -f webfs.mk
|
||||
@$(MAKE) -f flasher.mk flashwebfs
|
||||
#JLinkGDB-WrWebFs.bat
|
||||
|
||||
runram:
|
||||
#JLink-RunRAM.bat
|
||||
@$(MAKE) --f flasher.mk runram
|
||||
|
||||
reset:
|
||||
#JLink-Reset.bat
|
||||
@$(MAKE) -f flasher.mk reset
|
||||
|
||||
test:
|
||||
JLink-RTL00ConsoleROM.bat
|
||||
#@make -f flasher.mk test
|
||||
|
||||
readfullflash:
|
||||
#JLink-RdFullFlash.bat
|
||||
@$(MAKE) -f flasher.mk readfullflash
|
||||
|
||||
.PHONY: prerequirement
|
||||
prerequirement:
|
||||
@$(file >DEPENDENCY_LIST.txt,$(DEPENDENCY_LIST))
|
||||
|
12
README.md
Normal file
12
README.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
# RTL00 Web
|
||||
---
|
||||
Проект на начальной стадии, не завершен!<br>
|
||||
<br>
|
||||
[форум](https://esp8266.ru/forum/threads/web-svalka-na-rtl871x.2403/)<br>
|
||||
---
|
||||
Used Modules:<br>
|
||||
RTL00(RTL8710AF), [F11AMIM13](http://fn-link.en.made-in-china.com/product/sSinPtAKZBke/China-RTL8711AM-Iot-Module.html) (RTL8711AM), [F11AFIM13-B1](http://fn-link.en.made-in-china.com/product/PSHnuEtJVXWh/China-RTL8711AF-IoT-Module-IEEE-802-11-B-G-N-2-4GHz-1T1R-WiFi-NFC-Module.html) (RTL8711AF)<br>
|
||||
[PADI](https://www.pine64.org/?page_id=946) (RTL8710AF), [F10AFIM13-B1](http://en.ofeixin.com/products_detail/productId=65.html) (RTL8710AF), [TinyCon2005-A-BE](http://www.ralinwi.com/product.aspx?info_lb=54&flag=1) (RTL8711AF),<br>
|
||||
[WFM-400](http://www.rayson.com/rayson/en/?pros=product&pros=product&b_cat_id=A03&m_cat_id=A0304&s_cat_id=A030401&prod_id=P0113&level=3) (RTL8711AM), [WFM-410](http://www.rayson.com/rayson/en/?pros=product&pros=product&b_cat_id=A03&m_cat_id=A0304&s_cat_id=A030401&prod_id=P0114&level=3) (RTL8711AF), [WFM-250](http://www.rayson.com/rayson/en/?pros=product&pros=product&b_cat_id=A03&m_cat_id=A0304&s_cat_id=A030401&prod_id=P0112&level=3) (RTL8195AM),<br>
|
||||
[AW-CU238, AW-CU239](https://www.buyiot.net/pd-1) (RTL8711AM), [AW-CU245, AW-CU245, AW-CU245](https://www.buyiot.net/home-1) (RTL8711AM/RTL8195AM/RTL8711AF),<br>
|
||||
[WG6611](http://www.jorjin.com/product.php?id=98) (RTL8711AM), [RAK473](http://www.rakwireless.com/en/download/RAK473/Firmware%20Upgrade) (RTL8711AM), [RAK474, RAK476](http://www.rakwireless.com/en/download/RAK473/Firmware%20Upgrade) (RTL8711AF), ...<br>
|
7
STLink-RdFullFlash.bat
Normal file
7
STLink-RdFullFlash.bat
Normal file
|
@ -0,0 +1,7 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
cd flasher
|
||||
openocd -f interface/stlink-v2.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "rtl8710_flash_read_id" -c "adapter_khz 5000" -c "rtl8710_flash_read ../fullflash.bin 0 1048576" -c "shutdown"
|
||||
echo flash read fullflash.bin
|
||||
pause
|
||||
|
6
STLink-Reset.bat
Normal file
6
STLink-Reset.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
@echo off
|
||||
call paths.bat
|
||||
@cd flasher
|
||||
openocd -f interface/stlink-v2.cfg -c "adapter_khz 1000" -f rtl8710.ocd -f cortex.ocd -c "init" -c "reset halt" -c "cortex_reboot" -c "shutdown"
|
||||
rem
|
||||
|
1
WEBFiles/$js.inc
Normal file
1
WEBFiles/$js.inc
Normal file
|
@ -0,0 +1 @@
|
|||
var $ = function(id){return document.getElementById(id);}
|
14
WEBFiles/404.htm
Normal file
14
WEBFiles/404.htm
Normal file
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>404 - Page not found</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<h3 class="top">RTL871X Built-in Web server <sup>©</sup></h3>
|
||||
<div class="content">
|
||||
<h2 class="error">404 - Page not found</h2>
|
||||
<p>Sorry, the page you are requesting was not found on this server.</p>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
</body></html>
|
10
WEBFiles/adc.htm
Normal file
10
WEBFiles/adc.htm
Normal file
|
@ -0,0 +1,10 @@
|
|||
~inc:grfx1.inc~
|
||||
<td width="50%">ADC: <span id="xdata" style="font-weight:bold">?</span></td>
|
||||
<script type="text/javascript">
|
||||
var xmlfile = 'adc.xml';
|
||||
var xmin = 24;
|
||||
var xmax = 1000;
|
||||
var millisPerPixel = 50;
|
||||
var millisPerLine = 500;
|
||||
</script>
|
||||
~inc:grfx2.inc~
|
5
WEBFiles/disk_er1.htm
Normal file
5
WEBFiles/disk_er1.htm
Normal file
|
@ -0,0 +1,5 @@
|
|||
~inc:timer.inc~
|
||||
<h2 class="error">Image Corrupt or Wrong Version!</h2>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
</body></html>
|
5
WEBFiles/disk_er2.htm
Normal file
5
WEBFiles/disk_er2.htm
Normal file
|
@ -0,0 +1,5 @@
|
|||
~inc:timer.inc~
|
||||
<h2 class="error">File to big in flash!</h2>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
</body></html>
|
5
WEBFiles/disk_er3.htm
Normal file
5
WEBFiles/disk_er3.htm
Normal file
|
@ -0,0 +1,5 @@
|
|||
~inc:timer.inc~
|
||||
<h2 class="error">Bad file!</h2>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
</body></html>
|
5
WEBFiles/disk_ok.htm
Normal file
5
WEBFiles/disk_ok.htm
Normal file
|
@ -0,0 +1,5 @@
|
|||
~inc:timer.inc~
|
||||
<h2 class="ok">Update Successful!</h2>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
</body></html>
|
BIN
WEBFiles/favicon.ico
Normal file
BIN
WEBFiles/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
4
WEBFiles/footer.inc
Normal file
4
WEBFiles/footer.inc
Normal file
|
@ -0,0 +1,4 @@
|
|||
<div class="footer">
|
||||
Version: ~sys_sysver~. WEB Connection: ~web_remote~<br>
|
||||
</div>
|
||||
<div class="copyright">(c) 2014..2017 by <a href='http://esp8266.ru/'>esp8266.ru</a></div>
|
613
WEBFiles/grf.js
Normal file
613
WEBFiles/grf.js
Normal file
|
@ -0,0 +1,613 @@
|
|||
;
|
||||
(function(exports) {
|
||||
var Util = {
|
||||
extend : function() {
|
||||
arguments[0] = arguments[0] || {};
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
for ( var key in arguments[i]) {
|
||||
if (arguments[i].hasOwnProperty(key)) {
|
||||
if (typeof (arguments[i][key]) === 'object') {
|
||||
if (arguments[i][key] instanceof Array) {
|
||||
arguments[0][key] = arguments[i][key]
|
||||
} else {
|
||||
arguments[0][key] = Util.extend(
|
||||
arguments[0][key], arguments[i][key])
|
||||
}
|
||||
} else {
|
||||
arguments[0][key] = arguments[i][key]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return arguments[0]
|
||||
}
|
||||
};
|
||||
function TimeSeries(options) {
|
||||
this.options = Util.extend({}, TimeSeries.defaultOptions, options);
|
||||
this.clear()
|
||||
}
|
||||
TimeSeries.defaultOptions = {
|
||||
resetBoundsInterval : 3000,
|
||||
resetBounds : true
|
||||
};
|
||||
TimeSeries.prototype.clear = function() {
|
||||
this.data = [];
|
||||
this.maxValue = Number.NaN;
|
||||
this.minValue = Number.NaN
|
||||
};
|
||||
TimeSeries.prototype.resetBounds = function() {
|
||||
if (this.data.length) {
|
||||
this.maxValue = this.data[0][1];
|
||||
this.minValue = this.data[0][1];
|
||||
for (var i = 1; i < this.data.length; i++) {
|
||||
var value = this.data[i][1];
|
||||
if (value > this.maxValue) {
|
||||
this.maxValue = value
|
||||
}
|
||||
if (value < this.minValue) {
|
||||
this.minValue = value
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.maxValue = Number.NaN;
|
||||
this.minValue = Number.NaN
|
||||
}
|
||||
};
|
||||
TimeSeries.prototype.append = function(timestamp, value,
|
||||
sumRepeatedTimeStampValues) {
|
||||
var i = this.data.length - 1;
|
||||
while (i >= 0 && this.data[i][0] > timestamp) {
|
||||
i--
|
||||
}
|
||||
if (i === -1) {
|
||||
this.data.splice(0, 0, [ timestamp, value ])
|
||||
} else if (this.data.length > 0 && this.data[i][0] === timestamp) {
|
||||
if (sumRepeatedTimeStampValues) {
|
||||
this.data[i][1] += value;
|
||||
value = this.data[i][1]
|
||||
} else {
|
||||
this.data[i][1] = value
|
||||
}
|
||||
} else if (i < this.data.length - 1) {
|
||||
this.data.splice(i + 1, 0, [ timestamp, value ])
|
||||
} else {
|
||||
this.data.push([ timestamp, value ])
|
||||
}
|
||||
this.maxValue = isNaN(this.maxValue) ? value : Math.max(this.maxValue,
|
||||
value);
|
||||
this.minValue = isNaN(this.minValue) ? value : Math.min(this.minValue,
|
||||
value)
|
||||
};
|
||||
TimeSeries.prototype.dropOldData = function(oldestValidTime,
|
||||
maxDataSetLength) {
|
||||
var removeCount = 0;
|
||||
while (this.data.length - removeCount >= maxDataSetLength
|
||||
&& this.data[removeCount + 1][0] < oldestValidTime) {
|
||||
removeCount++
|
||||
}
|
||||
if (removeCount !== 0) {
|
||||
this.data.splice(0, removeCount)
|
||||
}
|
||||
};
|
||||
function SmoothieChart(options) {
|
||||
this.options = Util.extend({}, SmoothieChart.defaultChartOptions,
|
||||
options);
|
||||
this.seriesSet = [];
|
||||
this.currentValueRange = 1;
|
||||
this.currentVisMinValue = 0;
|
||||
this.lastRenderTimeMillis = 0
|
||||
}
|
||||
SmoothieChart.defaultChartOptions = {
|
||||
millisPerPixel : 20,
|
||||
enableDpiScaling : true,
|
||||
yMinFormatter : function(min, precision) {
|
||||
return parseFloat(min).toFixed(precision)
|
||||
},
|
||||
yMaxFormatter : function(max, precision) {
|
||||
return parseFloat(max).toFixed(precision)
|
||||
},
|
||||
maxValueScale : 1,
|
||||
interpolation : 'bezier',
|
||||
scaleSmoothing : 0.125,
|
||||
maxDataSetLength : 2,
|
||||
grid : {
|
||||
fillStyle : '#000000',
|
||||
strokeStyle : '#777777',
|
||||
lineWidth : 1,
|
||||
sharpLines : false,
|
||||
millisPerLine : 1000,
|
||||
verticalSections : 2,
|
||||
borderVisible : true
|
||||
},
|
||||
labels : {
|
||||
fillStyle : '#ffffff',
|
||||
disabled : false,
|
||||
fontSize : 10,
|
||||
fontFamily : 'monospace',
|
||||
precision : 2
|
||||
},
|
||||
horizontalLines : []
|
||||
};
|
||||
SmoothieChart.AnimateCompatibility = (function() {
|
||||
var requestAnimationFrame = function(callback, element) {
|
||||
var requestAnimationFrame = window.requestAnimationFrame
|
||||
|| window.webkitRequestAnimationFrame
|
||||
|| window.mozRequestAnimationFrame
|
||||
|| window.oRequestAnimationFrame
|
||||
|| window.msRequestAnimationFrame || function(callback) {
|
||||
return window.setTimeout(function() {
|
||||
callback(new Date().getTime())
|
||||
}, 16)
|
||||
};
|
||||
return requestAnimationFrame.call(window, callback, element)
|
||||
}, cancelAnimationFrame = function(id) {
|
||||
var cancelAnimationFrame = window.cancelAnimationFrame
|
||||
|| function(id) {
|
||||
clearTimeout(id)
|
||||
};
|
||||
return cancelAnimationFrame.call(window, id)
|
||||
};
|
||||
return {
|
||||
requestAnimationFrame : requestAnimationFrame,
|
||||
cancelAnimationFrame : cancelAnimationFrame
|
||||
}
|
||||
})();
|
||||
SmoothieChart.defaultSeriesPresentationOptions = {
|
||||
lineWidth : 1,
|
||||
strokeStyle : '#ffffff'
|
||||
};
|
||||
SmoothieChart.prototype.addTimeSeries = function(timeSeries, options) {
|
||||
this.seriesSet.push({
|
||||
timeSeries : timeSeries,
|
||||
options : Util.extend({},
|
||||
SmoothieChart.defaultSeriesPresentationOptions, options)
|
||||
});
|
||||
if (timeSeries.options.resetBounds
|
||||
&& timeSeries.options.resetBoundsInterval > 0) {
|
||||
timeSeries.resetBoundsTimerId = setInterval(function() {
|
||||
timeSeries.resetBounds()
|
||||
}, timeSeries.options.resetBoundsInterval)
|
||||
}
|
||||
};
|
||||
SmoothieChart.prototype.removeTimeSeries = function(timeSeries) {
|
||||
var numSeries = this.seriesSet.length;
|
||||
for (var i = 0; i < numSeries; i++) {
|
||||
if (this.seriesSet[i].timeSeries === timeSeries) {
|
||||
this.seriesSet.splice(i, 1);
|
||||
break
|
||||
}
|
||||
}
|
||||
if (timeSeries.resetBoundsTimerId) {
|
||||
clearInterval(timeSeries.resetBoundsTimerId)
|
||||
}
|
||||
};
|
||||
SmoothieChart.prototype.getTimeSeriesOptions = function(timeSeries) {
|
||||
var numSeries = this.seriesSet.length;
|
||||
for (var i = 0; i < numSeries; i++) {
|
||||
if (this.seriesSet[i].timeSeries === timeSeries) {
|
||||
return this.seriesSet[i].options
|
||||
}
|
||||
}
|
||||
};
|
||||
SmoothieChart.prototype.bringToFront = function(timeSeries) {
|
||||
var numSeries = this.seriesSet.length;
|
||||
for (var i = 0; i < numSeries; i++) {
|
||||
if (this.seriesSet[i].timeSeries === timeSeries) {
|
||||
var set = this.seriesSet.splice(i, 1);
|
||||
this.seriesSet.push(set[0]);
|
||||
break
|
||||
}
|
||||
}
|
||||
};
|
||||
SmoothieChart.prototype.streamTo = function(canvas, delayMillis) {
|
||||
this.canvas = canvas;
|
||||
this.delay = delayMillis;
|
||||
this.start()
|
||||
};
|
||||
SmoothieChart.prototype.start = function() {
|
||||
if (this.frame) {
|
||||
return
|
||||
}
|
||||
if (this.options.enableDpiScaling && window
|
||||
&& window.devicePixelRatio !== 1) {
|
||||
var canvasWidth = this.canvas.getAttribute('width');
|
||||
var canvasHeight = this.canvas.getAttribute('height');
|
||||
this.canvas.setAttribute('width', canvasWidth
|
||||
* window.devicePixelRatio);
|
||||
this.canvas.setAttribute('height', canvasHeight
|
||||
* window.devicePixelRatio);
|
||||
this.canvas.style.width = canvasWidth + 'px';
|
||||
this.canvas.style.height = canvasHeight + 'px';
|
||||
this.canvas.getContext('2d').scale(window.devicePixelRatio,
|
||||
window.devicePixelRatio)
|
||||
}
|
||||
var animate = function() {
|
||||
this.frame = SmoothieChart.AnimateCompatibility
|
||||
.requestAnimationFrame(function() {
|
||||
this.render();
|
||||
animate()
|
||||
}.bind(this))
|
||||
}.bind(this);
|
||||
animate()
|
||||
};
|
||||
SmoothieChart.prototype.stop = function() {
|
||||
if (this.frame) {
|
||||
SmoothieChart.AnimateCompatibility.cancelAnimationFrame(this.frame);
|
||||
delete this.frame
|
||||
}
|
||||
};
|
||||
SmoothieChart.prototype.updateValueRange = function() {
|
||||
var chartOptions = this.options, chartMaxValue = Number.NaN, chartMinValue = Number.NaN;
|
||||
for (var d = 0; d < this.seriesSet.length; d++) {
|
||||
var timeSeries = this.seriesSet[d].timeSeries;
|
||||
if (!isNaN(timeSeries.maxValue)) {
|
||||
chartMaxValue = !isNaN(chartMaxValue) ? Math.max(chartMaxValue,
|
||||
timeSeries.maxValue) : timeSeries.maxValue
|
||||
}
|
||||
if (!isNaN(timeSeries.minValue)) {
|
||||
chartMinValue = !isNaN(chartMinValue) ? Math.min(chartMinValue,
|
||||
timeSeries.minValue) : timeSeries.minValue
|
||||
}
|
||||
}
|
||||
if (chartOptions.maxValue != null) {
|
||||
chartMaxValue = chartOptions.maxValue
|
||||
} else {
|
||||
chartMaxValue *= chartOptions.maxValueScale
|
||||
}
|
||||
if (chartOptions.minValue != null) {
|
||||
chartMinValue = chartOptions.minValue
|
||||
}
|
||||
if (this.options.yRangeFunction) {
|
||||
var range = this.options.yRangeFunction({
|
||||
min : chartMinValue,
|
||||
max : chartMaxValue
|
||||
});
|
||||
chartMinValue = range.min;
|
||||
chartMaxValue = range.max
|
||||
}
|
||||
if (!isNaN(chartMaxValue) && !isNaN(chartMinValue)) {
|
||||
var targetValueRange = chartMaxValue - chartMinValue;
|
||||
var valueRangeDiff = (targetValueRange - this.currentValueRange);
|
||||
var minValueDiff = (chartMinValue - this.currentVisMinValue);
|
||||
this.isAnimatingScale = Math.abs(valueRangeDiff) > 0.1
|
||||
|| Math.abs(minValueDiff) > 0.1;
|
||||
this.currentValueRange += chartOptions.scaleSmoothing
|
||||
* valueRangeDiff;
|
||||
this.currentVisMinValue += chartOptions.scaleSmoothing
|
||||
* minValueDiff
|
||||
}
|
||||
this.valueRange = {
|
||||
min : chartMinValue,
|
||||
max : chartMaxValue
|
||||
}
|
||||
};
|
||||
SmoothieChart.prototype.render = function(canvas, time) {
|
||||
var nowMillis = new Date().getTime();
|
||||
if (!this.isAnimatingScale) {
|
||||
var maxIdleMillis = Math.min(1000 / 6, this.options.millisPerPixel);
|
||||
if (nowMillis - this.lastRenderTimeMillis < maxIdleMillis) {
|
||||
return
|
||||
}
|
||||
}
|
||||
this.lastRenderTimeMillis = nowMillis;
|
||||
canvas = canvas || this.canvas;
|
||||
time = time || nowMillis - (this.delay || 0);
|
||||
time -= time % this.options.millisPerPixel;
|
||||
var context = canvas.getContext('2d'), chartOptions = this.options, dimensions = {
|
||||
top : 0,
|
||||
left : 0,
|
||||
width : canvas.clientWidth,
|
||||
height : canvas.clientHeight
|
||||
}, oldestValidTime = time
|
||||
- (dimensions.width * chartOptions.millisPerPixel), valueToYPixel = function(
|
||||
value) {
|
||||
var offset = value - this.currentVisMinValue;
|
||||
return this.currentValueRange === 0 ? dimensions.height
|
||||
: dimensions.height
|
||||
- (Math.round((offset / this.currentValueRange)
|
||||
* dimensions.height))
|
||||
}.bind(this), timeToXPixel = function(t) {
|
||||
return Math.round(dimensions.width
|
||||
- ((time - t) / chartOptions.millisPerPixel))
|
||||
};
|
||||
this.updateValueRange();
|
||||
context.font = chartOptions.labels.fontSize + 'px '
|
||||
+ chartOptions.labels.fontFamily;
|
||||
context.save();
|
||||
context.translate(dimensions.left, dimensions.top);
|
||||
context.beginPath();
|
||||
context.rect(0, 0, dimensions.width, dimensions.height);
|
||||
context.clip();
|
||||
context.save();
|
||||
context.fillStyle = chartOptions.grid.fillStyle;
|
||||
context.clearRect(0, 0, dimensions.width, dimensions.height);
|
||||
context.fillRect(0, 0, dimensions.width, dimensions.height);
|
||||
context.restore();
|
||||
context.save();
|
||||
context.lineWidth = chartOptions.grid.lineWidth;
|
||||
context.strokeStyle = chartOptions.grid.strokeStyle;
|
||||
if (chartOptions.grid.millisPerLine > 0) {
|
||||
context.beginPath();
|
||||
for (var t = time - (time % chartOptions.grid.millisPerLine); t >= oldestValidTime; t -= chartOptions.grid.millisPerLine) {
|
||||
var gx = timeToXPixel(t);
|
||||
if (chartOptions.grid.sharpLines) {
|
||||
gx -= 0.5
|
||||
}
|
||||
context.moveTo(gx, 0);
|
||||
context.lineTo(gx, dimensions.height)
|
||||
}
|
||||
context.stroke();
|
||||
context.closePath()
|
||||
}
|
||||
for (var v = 1; v < chartOptions.grid.verticalSections; v++) {
|
||||
var gy = Math.round(v * dimensions.height
|
||||
/ chartOptions.grid.verticalSections);
|
||||
if (chartOptions.grid.sharpLines) {
|
||||
gy -= 0.5
|
||||
}
|
||||
context.beginPath();
|
||||
context.moveTo(0, gy);
|
||||
context.lineTo(dimensions.width, gy);
|
||||
context.stroke();
|
||||
context.closePath()
|
||||
}
|
||||
if (chartOptions.grid.borderVisible) {
|
||||
context.beginPath();
|
||||
context.strokeRect(0, 0, dimensions.width, dimensions.height);
|
||||
context.closePath()
|
||||
}
|
||||
context.restore();
|
||||
if (chartOptions.horizontalLines && chartOptions.horizontalLines.length) {
|
||||
for (var hl = 0; hl < chartOptions.horizontalLines.length; hl++) {
|
||||
var line = chartOptions.horizontalLines[hl], hly = Math
|
||||
.round(valueToYPixel(line.value)) - 0.5;
|
||||
context.strokeStyle = line.color || '#ffffff';
|
||||
context.lineWidth = line.lineWidth || 1;
|
||||
context.beginPath();
|
||||
context.moveTo(0, hly);
|
||||
context.lineTo(dimensions.width, hly);
|
||||
context.stroke();
|
||||
context.closePath()
|
||||
}
|
||||
}
|
||||
for (var d = 0; d < this.seriesSet.length; d++) {
|
||||
context.save();
|
||||
var timeSeries = this.seriesSet[d].timeSeries, dataSet = timeSeries.data, seriesOptions = this.seriesSet[d].options;
|
||||
timeSeries.dropOldData(oldestValidTime,
|
||||
chartOptions.maxDataSetLength);
|
||||
context.lineWidth = seriesOptions.lineWidth;
|
||||
context.strokeStyle = seriesOptions.strokeStyle;
|
||||
context.beginPath();
|
||||
var firstX = 0, lastX = 0, lastY = 0;
|
||||
for (var i = 0; i < dataSet.length && dataSet.length !== 1; i++) {
|
||||
var x = timeToXPixel(dataSet[i][0]), y = valueToYPixel(dataSet[i][1]);
|
||||
if (i === 0) {
|
||||
firstX = x;
|
||||
context.moveTo(x, y)
|
||||
} else {
|
||||
switch (chartOptions.interpolation) {
|
||||
case "linear":
|
||||
case "line": {
|
||||
context.lineTo(x, y);
|
||||
break
|
||||
}
|
||||
case "bezier":
|
||||
default: {
|
||||
context.bezierCurveTo(Math.round((lastX + x) / 2),
|
||||
lastY, Math.round((lastX + x)) / 2, y, x, y);
|
||||
break
|
||||
}
|
||||
case "step": {
|
||||
context.lineTo(x, lastY);
|
||||
context.lineTo(x, y);
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
lastX = x;
|
||||
lastY = y
|
||||
}
|
||||
if (dataSet.length > 1) {
|
||||
if (seriesOptions.fillStyle) {
|
||||
context.lineTo(dimensions.width + seriesOptions.lineWidth
|
||||
+ 1, lastY);
|
||||
context.lineTo(dimensions.width + seriesOptions.lineWidth
|
||||
+ 1, dimensions.height + seriesOptions.lineWidth
|
||||
+ 1);
|
||||
context.lineTo(firstX, dimensions.height
|
||||
+ seriesOptions.lineWidth);
|
||||
context.fillStyle = seriesOptions.fillStyle;
|
||||
context.fill()
|
||||
}
|
||||
if (seriesOptions.strokeStyle
|
||||
&& seriesOptions.strokeStyle !== 'none') {
|
||||
context.stroke()
|
||||
}
|
||||
context.closePath()
|
||||
}
|
||||
context.restore()
|
||||
}
|
||||
if (!chartOptions.labels.disabled && !isNaN(this.valueRange.min)
|
||||
&& !isNaN(this.valueRange.max)) {
|
||||
var maxValueString = chartOptions.yMaxFormatter(
|
||||
this.valueRange.max, chartOptions.labels.precision), minValueString = chartOptions
|
||||
.yMinFormatter(this.valueRange.min,
|
||||
chartOptions.labels.precision);
|
||||
context.fillStyle = chartOptions.labels.fillStyle;
|
||||
context.fillText(maxValueString, dimensions.width
|
||||
- context.measureText(maxValueString).width - 2,
|
||||
chartOptions.labels.fontSize);
|
||||
context.fillText(minValueString, dimensions.width
|
||||
- context.measureText(minValueString).width - 2,
|
||||
dimensions.height - 2)
|
||||
}
|
||||
if (chartOptions.timestampFormatter
|
||||
&& chartOptions.grid.millisPerLine > 0) {
|
||||
var textUntilX = dimensions.width
|
||||
- context.measureText(minValueString).width + 4;
|
||||
for (var t = time - (time % chartOptions.grid.millisPerLine); t >= oldestValidTime; t -= chartOptions.grid.millisPerLine) {
|
||||
var gx = timeToXPixel(t);
|
||||
if (gx < textUntilX) {
|
||||
var tx = new Date(t), ts = chartOptions
|
||||
.timestampFormatter(tx), tsWidth = context
|
||||
.measureText(ts).width;
|
||||
textUntilX = gx - tsWidth - 2;
|
||||
context.fillStyle = chartOptions.labels.fillStyle;
|
||||
context.fillText(ts, gx - tsWidth, dimensions.height - 2)
|
||||
}
|
||||
}
|
||||
}
|
||||
context.restore()
|
||||
};
|
||||
SmoothieChart.timeFormatter = function(date) {
|
||||
function pad2(number) {
|
||||
return (number < 10 ? '0' : '') + number
|
||||
}
|
||||
return pad2(date.getHours()) + ':' + pad2(date.getMinutes()) + ':'
|
||||
+ pad2(date.getSeconds())
|
||||
};
|
||||
exports.TimeSeries = TimeSeries;
|
||||
exports.SmoothieChart = SmoothieChart
|
||||
})(typeof exports === 'undefined' ? this : exports);
|
||||
var line1 = new TimeSeries();
|
||||
var newval = 0;
|
||||
function addpoint(xmlData) {
|
||||
if (xmlData) {
|
||||
newval = eval(getXMLValue(xmlData, 'value'));
|
||||
line1.append(new Date().getTime(), newval);
|
||||
document.getElementById('xdata').innerHTML = newval;
|
||||
if (newval > xmax)
|
||||
document.getElementById('xdata').style.color = '#0000A0';
|
||||
else if (newval < xmin)
|
||||
document.getElementById('xdata').style.color = '#A00000';
|
||||
else
|
||||
document.getElementById('xdata').style.color = '#00A000'
|
||||
} else
|
||||
line1.append(new Date().getTime(), newval)
|
||||
}
|
||||
var smoothie = new SmoothieChart({
|
||||
interpolation : 'linear',
|
||||
minValue : 0,
|
||||
millisPerPixel : millisPerPixel,
|
||||
grid : {
|
||||
strokeStyle : 'rgb(100, 110, 150)',
|
||||
fillStyle : 'rgb(50, 55, 75)',
|
||||
lineWidth : 1,
|
||||
millisPerLine : millisPerLine,
|
||||
verticalSections : 6
|
||||
},
|
||||
labels : {
|
||||
precision : 0
|
||||
}
|
||||
});
|
||||
smoothie.addTimeSeries(line1, {
|
||||
strokeStyle : 'rgb(255, 0, 200)',
|
||||
fillStyle : 'rgba(255, 0, 200, 0.3)',
|
||||
lineWidth : 3
|
||||
});
|
||||
smoothie.streamTo(document.getElementById("mycanvas"), nextimeout);
|
||||
setTimeout("newAJAXCommand(xmlfile, addpoint, true)", 100);
|
||||
function slider(elemId, sliderWidth, range1, range2, step) {
|
||||
var knobWidth = 17;
|
||||
var knobHeight = 21;
|
||||
var sliderHeight = 21;
|
||||
var offsX, tmp;
|
||||
var d = document;
|
||||
var isIE = d.all || window.opera;
|
||||
var point = (sliderWidth - knobWidth - 3) / (range2 - range1);
|
||||
var slider = d.createElement('DIV');
|
||||
slider.id = elemId + '_slider';
|
||||
slider.className = 'slider';
|
||||
d.getElementById(elemId).appendChild(slider);
|
||||
var knob = d.createElement('DIV');
|
||||
knob.id = elemId + '_knob';
|
||||
knob.className = 'knob';
|
||||
slider.appendChild(knob);
|
||||
knob.style.left = 0;
|
||||
knob.style.width = knobWidth + 'px';
|
||||
knob.style.height = knobHeight + 'px';
|
||||
slider.style.width = sliderWidth + 'px';
|
||||
slider.style.height = sliderHeight + 'px';
|
||||
var sliderOffset = slider.offsetLeft;
|
||||
tmp = slider.offsetParent;
|
||||
while (tmp.tagName != 'BODY') {
|
||||
sliderOffset += tmp.offsetLeft;
|
||||
tmp = tmp.offsetParent
|
||||
}
|
||||
if (isIE) {
|
||||
knob.onmousedown = startCoord;
|
||||
slider.onclick = sliderClick;
|
||||
knob.onmouseup = endCoord;
|
||||
slider.onmouseup = endCoord
|
||||
} else {
|
||||
knob.addEventListener("mousedown", startCoord, true);
|
||||
slider.addEventListener("click", sliderClick, true);
|
||||
knob.addEventListener("mouseup", endCoord, true);
|
||||
slider.addEventListener("mouseup", endCoord, true)
|
||||
}
|
||||
function setValue(x) {
|
||||
if (x < 0)
|
||||
knob.style.left = 0;
|
||||
else if (x > sliderWidth - knobWidth - 3)
|
||||
knob.style.left = (sliderWidth - 3 - knobWidth) + 'px';
|
||||
else {
|
||||
if (step == 0)
|
||||
knob.style.left = x + 'px';
|
||||
else
|
||||
knob.style.left = Math.round(x / (step * point)) * step * point
|
||||
+ 'px'
|
||||
}
|
||||
nextimeout = getValue();
|
||||
d.getElementById('toutid').value = nextimeout;
|
||||
document.getElementById('toutid').innerHTML = nextimeout
|
||||
}
|
||||
function setValue2(x) {
|
||||
if (x < range1 || x > range2)
|
||||
alert('Value is not included into a slider range!');
|
||||
else
|
||||
setValue((x - range1) * point);
|
||||
nextimeout = getValue();
|
||||
d.getElementById('toutid').value = nextimeout;
|
||||
document.getElementById('toutid').innerHTML = nextimeout
|
||||
}
|
||||
function getValue() {
|
||||
return Math.round(parseInt(knob.style.left) / point) + range1
|
||||
}
|
||||
function sliderClick(e) {
|
||||
var x;
|
||||
if (isIE) {
|
||||
if (event.srcElement != slider)
|
||||
return;
|
||||
x = event.offsetX - Math.round(knobWidth / 2)
|
||||
} else
|
||||
x = e.pageX - sliderOffset - knobWidth / 2;
|
||||
setValue(x)
|
||||
}
|
||||
function startCoord(e) {
|
||||
if (isIE) {
|
||||
offsX = event.clientX - parseInt(knob.style.left);
|
||||
slider.onmousemove = mov
|
||||
} else {
|
||||
slider.addEventListener("mousemove", mov, true)
|
||||
}
|
||||
}
|
||||
function mov(e) {
|
||||
var x;
|
||||
if (isIE)
|
||||
x = event.clientX - offsX;
|
||||
else
|
||||
x = e.pageX - sliderOffset - knobWidth / 2;
|
||||
setValue(x)
|
||||
}
|
||||
function endCoord() {
|
||||
if (isIE)
|
||||
slider.onmousemove = null;
|
||||
else
|
||||
slider.removeEventListener("mousemove", mov, true)
|
||||
}
|
||||
this.setValue = setValue2;
|
||||
this.getValue = getValue
|
||||
}
|
||||
var mysl1 = new slider('sl', 333, 20, 10020, 0);
|
||||
mysl1.setValue(500);
|
||||
document.getElementById('toutid').innerHTML = mysl1.getValue();
|
13
WEBFiles/grfx1.inc
Normal file
13
WEBFiles/grfx1.inc
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>RTL871X</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
~inc:menu.inc~
|
||||
<style>
|
||||
.slider {background-repeat: repeat-x; background-image: url(data:image/gif;base64,R0lGODlhAgAVALIBADg4OHh4eGtra0ZGRjU1NUJCQhcXFwAAACH5BAUAAAcALAAAAAACABUAAAMNeLoqHm4MQkoxhumtEwA7);}
|
||||
.knob {position: relative; background-image: url(data:image/gif;base64,R0lGODlhEwAVAPcAAAAXSwEWSwAZTAEYTAAaTQIZTQsiVAErcwEucgA3iQE4iBQ+igBDlABFkgFQmwFRmgFcowFfpRFusRNvshpysh1yszNUmyV6uyd7uyd8vCl9vSl+vip+vix9vjNxrjJ9tDJ/tT57tC5/wFF/oSyAvi+AvzuHuzyFuj2Euj+IvSuAwCyAwC6CwDOFwTeJxTiKxDqKxzmKyTqMyDqOzDuPzT2Pyz6OzUKIvEeJvVOBo0mPwkuPwEyOwEKRzEWRy0mRw06Sw0ySxU2Txk+TxEiX0Eub1kqc1kqb2kuc202e3VCRx1iXw1mYxFqZxFuaxV2axk+h3VCg3VCi3lSg2lWh21qo5luq5V2p412t6F6w7F+w8WKdx2KayWOdy2OeymSdyGWeyWafymieyn2Yw2mgyWihzHGy3Ha23GGz7Wm07WCx8GKy8Wq28G+89G+/9HC98XO/83O+9XPA9nXB83TC83XB9XbC9H3H9Iafx4Ku0YOw0YWw04Wy04ax04ay1Yaz1Iey1ILL9IPM9YPO9ofP9YbQ94fR9ojQ9ojS9YnS9ZLc95Pd9pTb95fd95Pd+Jff+Jje+Jfi95nh95jg+L/O46Xt+abs+Knv+6ru+6zu+qvx+63x+qzy+rL4+rX5/Lf4/LT8+7b8/Lr8+7/7/MHN48DP4sDP5MLO5MH7/MH7/cD8/MX7/cv9/M78+s/9/dD8+9v9/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAALEALAAAAAATABUAAAj+AGMJHEiwoEGBBgQQGBAAQAEBBQoYOLhgDCVTpU6dMsWRFB4LBRF4yMPHz58+fQDt4dNHT4gDBBWA2EKmDJgvXsSA6RKGy4cEBBugYPLECZMmTpwgbbLkBAOCDkzw0AFkiA4lQn7sCAIkxQOCESpgIKHhwooNKlZ0EJGBAgSCEji4gFHDxowZNGjEkPGixQSCJXoQMYJEShIpUKQciVLEBwuCN6ZcwZIFjZo1WdRoqWKFCg6CI9i8eTPHDh05burAidMmTY6CZwYREpSoECFEhg4FumPmYCRFkx41kvTIESRGiw4KBMXJEqZKlzJt0qR84CpRnjp9CpWqOkFXqEYSqWrlvaArVq/KG4Slvr175QEBADs=);}
|
||||
</style>
|
||||
<div class="content"><table cellspacing="2" cellpadding="0" border="0" style="font-size:16pt"><tr>
|
6
WEBFiles/grfx2.inc
Normal file
6
WEBFiles/grfx2.inc
Normal file
|
@ -0,0 +1,6 @@
|
|||
<td style="font-size:10pt">
|
||||
<div id="sl"></div>GET TimeOuts <span id="toutid" style="font-weight:bold">?</span> ms'</td></tr></table>
|
||||
<canvas id="mycanvas" width="620pt" height="200pt"></canvas></div>
|
||||
<script src="site.js" type="text/javascript"></script>
|
||||
<script src="grf.js" type="text/javascript"></script>
|
||||
~inc:footer.inc~</body></html>
|
9
WEBFiles/heap.htm
Normal file
9
WEBFiles/heap.htm
Normal file
|
@ -0,0 +1,9 @@
|
|||
~inc:grfx1.inc~
|
||||
<td width="50%">Heap Size: <span id="xdata" style="font-weight:bold">?</span> bytes</td>
|
||||
<script type="text/javascript">
|
||||
var xmlfile = 'heap.xml';
|
||||
var xmin = 16384;
|
||||
var xmax = 30000;
|
||||
var millisPerPixel = 500;
|
||||
var millisPerLine = 10000;
|
||||
</script>~inc:grfx2.inc~
|
1
WEBFiles/heap.xml
Normal file
1
WEBFiles/heap.xml
Normal file
|
@ -0,0 +1 @@
|
|||
<response><name>Heap Size</name><value>~sys_heap~</value></response>
|
20
WEBFiles/index.htm
Normal file
20
WEBFiles/index.htm
Normal file
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>RTL871X</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head><body>
|
||||
~inc:menu.inc~
|
||||
<div class="content">
|
||||
<h2 class="title">✯<a href="/help/webvars.htm">Info</a>✯</h2>
|
||||
<p class="center">
|
||||
Name: ~wifi_ap_ssid~ Password: ~wifi_ap_psw~<br>
|
||||
Web connect: ~web_remote~,<br>
|
||||
WEB ver: ~sys_webver~, SDK ver: ~sys_sdkver~.<br>
|
||||
ChipID: ~sys_cid~.<br><br>
|
||||
DevTime: <span id='sntptime'>SNTP disable</span><br>
|
||||
PowerStartTime: <span id='starttime'>?</span><br><br>
|
||||
</p></div>
|
||||
~inc:footer.inc~
|
||||
~inc:time.inc~
|
||||
</body></html>
|
BIN
WEBFiles/logo.gif
Normal file
BIN
WEBFiles/logo.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 393 B |
26
WEBFiles/menu.inc
Normal file
26
WEBFiles/menu.inc
Normal file
|
@ -0,0 +1,26 @@
|
|||
<h3 class="top">RTL871x Built-in Web server <sup>©</sup></h3>
|
||||
<div class="menu">
|
||||
<div>
|
||||
<a href="/index.htm">Main</a>
|
||||
<a href="/websock.htm">WebSocket</a>
|
||||
<a href="/protect/wifi.htm">WiFi settings</a>
|
||||
<a href="/protect/scan.htm">WiFi Scan</a>
|
||||
<a href="/protect/upload.htm">WebFS Upload</a>
|
||||
<a href="/protect/setup.htm">System Setup</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="/protect/gpio.htm">GPIO</a>
|
||||
<a href="/protect/hexdmpb.htm">HexDump Bytes</a>
|
||||
<a href="/protect/hexdmpd.htm">HexDump DWord</a>
|
||||
<a href="/protect/tstfuncs.htm">Download Bin</a>
|
||||
<a href="/protect/dsleep.htm">Deep Sleep</a>
|
||||
<a href="/protect/debug.htm">Debug and Test</a>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
for (var i = 0; i < document.links.length; i++) {
|
||||
if (document.links[i].href == document.URL) {
|
||||
document.links[i].className = 'active';
|
||||
}
|
||||
}
|
||||
</script>
|
4
WEBFiles/protect/chiprams.xml
Normal file
4
WEBFiles/protect/chiprams.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<response>
|
||||
<ramaddr>~start~</ramaddr>
|
||||
<ramdata>~xml_ram~</ramdata>
|
||||
</response>
|
70
WEBFiles/protect/cookie.js
Normal file
70
WEBFiles/protect/cookie.js
Normal file
|
@ -0,0 +1,70 @@
|
|||
function getCookie(name) {
|
||||
var prefix = name + "=";
|
||||
var cookieStartIndex = document.cookie.indexOf(prefix);
|
||||
if (cookieStartIndex == -1)
|
||||
return null;
|
||||
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex
|
||||
+ prefix.length);
|
||||
if (cookieEndIndex == -1)
|
||||
cookieEndIndex = document.cookie.length;
|
||||
return unescape(document.cookie.substring(cookieStartIndex + prefix.length,
|
||||
cookieEndIndex));
|
||||
}
|
||||
function setCookie(name, value) {
|
||||
document.cookie = name + "=" + escape(value) + "; path=/";
|
||||
}
|
||||
function setCookieElem(name, defv) {
|
||||
var val = getCookie(name);
|
||||
if (val == null || val.charAt(0) != '0' || val.charAt(1) != 'x') {
|
||||
val = defv;
|
||||
setCookie(name, val);
|
||||
}
|
||||
document.getElementById(name).value = val;
|
||||
}
|
||||
function NewCookie(add) {
|
||||
var val = parseInt(document.getElementById('start').value, 16) & 0xFFFFFFF0;
|
||||
if (val == NaN)
|
||||
setCookieElem('start', '0x40000000');
|
||||
else {
|
||||
val += add;
|
||||
setCookie('start', '0x' + val.toString(16));
|
||||
var nval = val + 256;
|
||||
setCookie('stop', '0x' + nval.toString(16));
|
||||
document.getElementById('start').value = '0x' + val.toString(16);
|
||||
document.getElementById('pmem').contentWindow.location.reload();
|
||||
}
|
||||
}
|
||||
setCookieElem('start', '0x40000000');
|
||||
setCookieElem('set_ramaddr', '0x3FFF0000');
|
||||
setCookieElem('set_ramdata', '0x12345678');
|
||||
function UpTxt(xD, n, v) {
|
||||
var x = getXMLValue(xD, n, v);
|
||||
if (x == '?')
|
||||
document.getElementById("id_" + n).style.color = "#833";
|
||||
else
|
||||
document.getElementById("id_" + n).style.color = "#333";
|
||||
document.getElementById("id_" + n).innerHTML = x + v;
|
||||
}
|
||||
function UpdateValuesRam(xD) {
|
||||
if (xD) {
|
||||
UpTxt(xD, "ramaddr", "");
|
||||
UpTxt(xD, "ramdata", "");
|
||||
}
|
||||
}
|
||||
function SendRamVal(x) {
|
||||
var addr = parseInt(document.getElementById('set_ramaddr').value, 16);
|
||||
var val = parseInt(document.getElementById('set_ramdata').value, 16);
|
||||
if (addr != NaN && val != NaN) {
|
||||
document.getElementById('set_ramaddr').value = '0x' + addr.toString(16);
|
||||
setCookie('set_ramaddr','0x' + addr.toString(16));
|
||||
document.getElementById('set_ramdata').value = '0x' + val.toString(16);
|
||||
setCookie('set_ramdata','0x' + val.toString(16));
|
||||
if (x != 0)
|
||||
newAJAXCommand('chiprams.xml?start=0x' + addr.toString(16),
|
||||
UpdateValuesRam, 0);
|
||||
else
|
||||
newAJAXCommand('chiprams.xml?sys_ram0x' + addr.toString(16) + '=0x'
|
||||
+ val.toString(16) + '&start=0x' + addr.toString(16),
|
||||
UpdateValuesRam, 0);
|
||||
}
|
||||
}
|
25
WEBFiles/protect/debug.htm
Normal file
25
WEBFiles/protect/debug.htm
Normal file
|
@ -0,0 +1,25 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>RTL871X Debug and Tests</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head><body>
|
||||
~inc:menu.inc~
|
||||
<div class="content">
|
||||
<h2 class="title">Debug and Tests</h2>
|
||||
<p class="center">
|
||||
Chart <a href="/heap.htm">'heap'</a>, <a href="/tst.htm">ST-AP RSSI</a><br><br>
|
||||
<a href='/timeout.htm?sys_restart=12345'>System Restart</a><br><br>
|
||||
Counter erase the last flash sector config: ~sys_rdec0x980FE000~<br><br>
|
||||
</p>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h2 class="title">System constants?</h2>
|
||||
<table class="form">
|
||||
</tr></form>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
</body>
|
||||
</html>
|
30
WEBFiles/protect/dsleep.htm
Normal file
30
WEBFiles/protect/dsleep.htm
Normal file
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>RTL871X</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<script src="/site.js"></script>
|
||||
</head>
|
||||
<body onload="allowAJAX=true;" onunload="allowAJAX=false;">
|
||||
~inc:menu.inc~
|
||||
<div class="content">
|
||||
<h2 class="title">Test DeepSleep</h2>
|
||||
<table class="form">
|
||||
</tr>
|
||||
<td class="label">DeepSleep Time(ms):</td>
|
||||
<td><input type="text" id="ds_time" size="12" maxlength="10" value="3000"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">DeepSleep Mode:</td>
|
||||
<td class="left"><input type="button" onclick="DeepSleep()" value="Go" class="button"></td>
|
||||
</tr>
|
||||
</form>
|
||||
</table>
|
||||
<p class="center">
|
||||
Reset event = ~sys_res_event~ (1-power, 2-reset, 3-software, 4-wdt)<br>
|
||||
</p>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
</body>
|
||||
</html>
|
||||
|
1
WEBFiles/protect/fullflash.bin
Normal file
1
WEBFiles/protect/fullflash.bin
Normal file
|
@ -0,0 +1 @@
|
|||
~bin_flash_all~
|
41
WEBFiles/protect/hexdmpb.htm
Normal file
41
WEBFiles/protect/hexdmpb.htm
Normal file
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
|
||||
<title>RTL871X HexDump Byte</title>
|
||||
<link rel="stylesheet" href="../style.css">
|
||||
<script src="/site.js"></script>
|
||||
</head><body onload="allowAJAX=true;" onlnload="allowAJAX=false;">
|
||||
~inc:menu.inc~
|
||||
<div class="content">
|
||||
<h2 class="title">HexDump Bytes</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td>RAM Start addr</td>
|
||||
<td><input type="text" id="start" size="12" maxlength="10" value="0x1FFF0000"></td>
|
||||
<td><input type="button" onClick="NewCookie(-256)" value="-0x100" class="button"></td>
|
||||
<td><input type="button" onClick="NewCookie(0)" value="Show" class="button"></td>
|
||||
<td><input type="button" onClick="NewCookie(+256)" value="+0x100" class="button"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<iframe id='pmem' name='pmem' src="/protect/hexdmpb.txt" border="0" width="620" height="270"></iframe>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Write addr, value:</td>
|
||||
<td><input type="text" id="set_ramaddr" size="12" maxlength="10" value="0x1FFF0000"></td>
|
||||
<td><input type="text" id="set_ramdata" size="12" maxlength="10" value="0x12345678"></td>
|
||||
<td><input type="button" onClick="SendRamVal(0)" value="Write" class="button"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Read addr, value:</td>
|
||||
<td id="id_ramaddr">?</td>
|
||||
<td id="id_ramdata">?</td>
|
||||
<td><input type="button" onClick="SendRamVal(1)" value="Read" class="button"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footer">
|
||||
Protected area: 0x9A000000..0xFFFFFFFF !<br>
|
||||
<a href='/protect/hexdmpb.txt?start=0x98000000&stop=0x98100000'>HEX Dump Flash 1024k</a>
|
||||
</div>
|
||||
<script src="cookie.js"></script>
|
||||
</body></html>
|
1
WEBFiles/protect/hexdmpb.txt
Normal file
1
WEBFiles/protect/hexdmpb.txt
Normal file
|
@ -0,0 +1 @@
|
|||
~hexdmpb~
|
41
WEBFiles/protect/hexdmpd.htm
Normal file
41
WEBFiles/protect/hexdmpd.htm
Normal file
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
|
||||
<title>RTL871X HexDump DWord</title>
|
||||
<link rel="stylesheet" href="../style.css">
|
||||
<script src="/site.js"></script>
|
||||
</head><body onload="allowAJAX=true;" onlnload="allowAJAX=false;">
|
||||
~inc:menu.inc~
|
||||
<div class="content">
|
||||
<h2 class="title">HexDump DWord</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td>RAM Start addr   </td>
|
||||
<td><input type="text" id="start" size="12" maxlength="10" value="0x1FFF0000"></td>
|
||||
<td><input type=button onClick="NewCookie(-256)" value="-0x100" class="button"></td>
|
||||
<td><input type=button onClick="NewCookie(0)" value="Show" class="button"></td>
|
||||
<td><input type=button onClick="NewCookie(+256)" value="+0x100" class="button"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<iframe id='pmem' name='pmem' src="/protect/hexdmpd.txt" border="0" width="620" height="270"></iframe>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Write addr, value:</td>
|
||||
<td><input type="text" id="set_ramaddr" size="12" maxlength="10" value="0x1FFF0000"></td>
|
||||
<td><input type="text" id="set_ramdata" size="12" maxlength="10" value="0x12345678"></td>
|
||||
<td><input type="button" onClick="SendRamVal(0)" value="Write" class="button"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Read addr, value:</td>
|
||||
<td id="id_ramaddr">?</td>
|
||||
<td id="id_ramdata">?</td>
|
||||
<td><input type="button" onClick="SendRamVal(1)" value="Read" class="button"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footer">
|
||||
Protected area: 0x9A000000..0xFFFFFFFF !<br>
|
||||
<a href='/protect/hexdmpd.txt?start=0x98000000&stop=0x98100000'>HEX Dump Flash 1024k</a>
|
||||
</div>
|
||||
<script src="cookie.js"></script>
|
||||
</body></html>
|
1
WEBFiles/protect/hexdmpd.txt
Normal file
1
WEBFiles/protect/hexdmpd.txt
Normal file
|
@ -0,0 +1 @@
|
|||
~hexdmpd~
|
1
WEBFiles/protect/ram.bin
Normal file
1
WEBFiles/protect/ram.bin
Normal file
|
@ -0,0 +1 @@
|
|||
~bin_ram~
|
98
WEBFiles/protect/scan.htm
Normal file
98
WEBFiles/protect/scan.htm
Normal file
|
@ -0,0 +1,98 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>WiFi Scan</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
~inc:menu.inc~
|
||||
<div class="content">
|
||||
<h2 class="title">
|
||||
<div id="scanResult">Stations scanning...</div>
|
||||
</h2>
|
||||
<table id="aps" class="scan">
|
||||
<tr><th>SSID</th><th>BSSID</th><th>Auth</th><th>Ch</th><th>RSSI</th><th>Hd</th></tr>
|
||||
</table>
|
||||
<form id="stform" style="display: none" method='post' action='/timeout.htm'>
|
||||
<table class="form">
|
||||
<tr>
|
||||
<td class="label">Select or input SSID:<input type='hidden' name='wifi_rdcfg' value='0x1C00'></td>
|
||||
<td><input name='wifi_st_ssid' maxlength='31' value='~wifi_st_ssid~' id='inputssid'></td>
|
||||
<td class="label">Type password:</td>
|
||||
<td><input name='wifi_st_psw' maxlength='63' value='~wifi_st_psw~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">BSSID:</td>
|
||||
<td><input name='wifi_st_bssid' maxlength='31' value='~wifi_st_bssid~' id='inputbsid'></td>
|
||||
<td class="label">AutoConnect:</td>
|
||||
<td><input type='hidden' name='wifi_st_aucn' value='0'>
|
||||
<input type='checkbox' name='wifi_st_aucn' value='1'></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p class="center">
|
||||
<input type='submit' value='Set Config' class="button">
|
||||
<input type='hidden' name='wifi_newcfg' value='0x21C00'>
|
||||
</p>
|
||||
</form>
|
||||
<div id="connection"></div>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
</body>
|
||||
<script src="/site.js"></script>
|
||||
<script src="/scripts.js"></script>
|
||||
<script type="text/javascript">
|
||||
var AUTH = {
|
||||
0: "OPEN",
|
||||
1: "WEP",
|
||||
2: "WPA-PSK",
|
||||
3: "WPA2-PSK",
|
||||
4: "WPA-WPA2-PSK",
|
||||
5: "MAX"};
|
||||
var cfg = { wifi_st_aucn: "~wifi_st_aucn~" };
|
||||
setFormValues(document.forms[0], cfg);
|
||||
var startTime = new Date();
|
||||
newAJAXCommand('/web.cgi?wifi_scan=1');
|
||||
setTimeout("newAJAXCommand('scan.xml', updateScan)", 2500);
|
||||
function updateScan(xmlData) {
|
||||
if(!xmlData) return;
|
||||
var total = getXMLValue(xmlData, 'total');
|
||||
if (total==0) {
|
||||
if((new Date()-startTime)>10000) {
|
||||
startTime = new Date();
|
||||
$('scanResult').innerHTML="Scan failed. Try again.";
|
||||
newAJAXCommand('/web.cgi?wifi_scan=1');
|
||||
}
|
||||
else newAJAXCommand('scan.xml', updateScan);
|
||||
return;
|
||||
}
|
||||
$('scanResult').innerHTML="Scan completed. " + total + " station(s) found.";
|
||||
for(i = 0; i < total; i++){
|
||||
var ap=xmlData.getElementsByTagName('ap')[i];
|
||||
var ch=getXMLValue(ap, 'ch');
|
||||
var au=getXMLValue(ap, 'au');
|
||||
var bsid=getXMLValue(ap, 'bs');
|
||||
var ssid=getXMLValue(ap, 'ss');
|
||||
var rs=getXMLValue(ap, 'rs');
|
||||
var hd=getXMLValue(ap, 'hd');
|
||||
r=document.all.aps.insertRow();
|
||||
c=r.insertCell(0);c.innerHTML="<a href=# >"+ssid+"</a>";c.ssid=ssid;c.bsid=bsid;c.onclick=onApClick;
|
||||
c=r.insertCell(1);c.innerHTML="<a href=# >"+bsid+"</a>";c.ssid=ssid;c.bsid=bsid;c.onclick=onApClick;c.ondblclick=onInfo;c.title='DoubleClick = MF info';
|
||||
(r.insertCell(2)).innerHTML=AUTH[au];
|
||||
(r.insertCell(3)).innerText=ch;
|
||||
(r.insertCell(4)).innerText=rs;
|
||||
(r.insertCell(5)).innerText=hd;
|
||||
}
|
||||
$('stform').style.display='';
|
||||
}
|
||||
function onApClick() {
|
||||
$('inputssid').value=this.ssid;
|
||||
$('inputbsid').value=this.bsid;
|
||||
}
|
||||
function onInfo() {
|
||||
s = this.bsid;
|
||||
s=s.substring(0,8);s=s.replace(':','');
|
||||
document.location.href = "http://standards.ieee.org/cgi-bin/ouisearch?"+s.replace(':','');
|
||||
}
|
||||
</script>
|
||||
</html>
|
1
WEBFiles/protect/scan.xml
Normal file
1
WEBFiles/protect/scan.xml
Normal file
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="windows-1251"?><response>~wifi_scan~</response>
|
89
WEBFiles/protect/setup.htm
Normal file
89
WEBFiles/protect/setup.htm
Normal file
|
@ -0,0 +1,89 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>RTL871X Setup</title>
|
||||
<link rel="stylesheet" href="../style.css">
|
||||
<script src="/scripts.js"></script>
|
||||
<script src="/site.js"></script>
|
||||
</head><body>
|
||||
~inc:menu.inc~
|
||||
<div class="content">
|
||||
<h2 class="title">System Setup</h2>
|
||||
<form method="post" action="">
|
||||
<table class="form">
|
||||
<tr>
|
||||
<td class="label">WEB (HTTP) port:</td>
|
||||
<td><input title='4..65535, 0 - close' name='cfg_web_port' maxlength='5' value='~cfg_web_port~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">WEB recved timeout:</td>
|
||||
<td><input title='1...65535 sec, 0 - not limited' name='cfg_web_twrec' maxlength='5' value='~cfg_web_twrec~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">WEB close timeout:</td>
|
||||
<td><input title='1...65535 sec, 0 - not limited' name='cfg_web_twcls' maxlength='5' value='~cfg_web_twcls~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">LogUART Printf() enable:</td>
|
||||
<td>
|
||||
<input type="hidden" name='cfg_debug' value='0'>
|
||||
<input title='rtl_printf enable. If Off - High speed upload (>1Mbytes/s).' type='checkbox' name='cfg_debug' value='1'>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Web pcb close enable:</td>
|
||||
<td>
|
||||
<input type="hidden" name='cfg_web_twd' value='0'>
|
||||
<input title='(Proxy) Close web connection and deletes TIME_WAIT pcb' type='checkbox' name='cfg_web_twd' value='1'>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Checking pin WiFi cfg reset:</td>
|
||||
<td>
|
||||
<input type="hidden" name='cfg_pinclr' value='0'>
|
||||
<input title='Checking reset configuration level on GPIO3 at startup (25 ms)' type='checkbox' name='cfg_pinclr' value='1'>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">NetBIOS enable:</td>
|
||||
<td>
|
||||
<input type="hidden" name='cfg_netbios' value='0'>
|
||||
<input title='NetBIOS AP name = "a~wifi_ap_ssid~", Station = "s~wifi_ap_ssid~"' type='checkbox' name='cfg_netbios' value='1'>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">SNTP enable:</td>
|
||||
<td>
|
||||
<input type="hidden" name='cfg_sntp' value='0'>
|
||||
<input title='SNTP: pool.ntp.org' type='checkbox' name='cfg_sntp' value='1'>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Captive Portal AP:</td>
|
||||
<td>
|
||||
<input type="hidden" name='cfg_cdns' value='0'>
|
||||
<input type='checkbox' name='cfg_cdns' value='1'>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p class="center">
|
||||
<input type='hidden' name='uart_save' value='2'>
|
||||
<input type='hidden' name='cfg_save' value='1'>
|
||||
<input type='submit' value='Set Config' class="button">
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
<script type="text/javascript">
|
||||
var cfg = {
|
||||
cfg_debug:"~cfg_debug~",
|
||||
cfg_web_twd:"~cfg_web_twd~",
|
||||
cfg_pinclr:"~cfg_pinclr~",
|
||||
cfg_netbios:"~cfg_netbios~",
|
||||
cfg_sntp:"~cfg_sntp~",
|
||||
cfg_cdns:"~cfg_cdns~",
|
||||
cfg_mdb_reop:"~cfg_mdb_reop~"
|
||||
}
|
||||
setFormValues(document.forms[0], cfg);
|
||||
</script>
|
||||
</body></html>
|
91
WEBFiles/protect/tstfuncs.htm
Normal file
91
WEBFiles/protect/tstfuncs.htm
Normal file
|
@ -0,0 +1,91 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>RTL871X Download bin</title>
|
||||
<link rel="stylesheet" href="../style.css">
|
||||
<script src="/scripts.js"></script>
|
||||
</head><body>
|
||||
~inc:menu.inc~
|
||||
<div class="content">
|
||||
<h2 class="title">Download bin</h2>
|
||||
<form method="post"><table class="scan">
|
||||
<tr>
|
||||
<td>ROM-BIOS:</td>
|
||||
<td><a href='ram.bin?start=0x00000000&stop=0x00080000'>0x00000000..0x00080000</a></td>
|
||||
<td>512 kbytes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SRAM:</td>
|
||||
<td><a href='ram.bin?start=0x10000000&stop=0x10070000'>0x10000000..0x10070000</a></td>
|
||||
<td>448 kbytes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TCM-RAM:</td>
|
||||
<td><a href='ram.bin?start=0x1FFF0000&stop=0x20000000'>0x1FFF0000..0x20000000</a></td>
|
||||
<td>64 kbytes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SDRAM:</td>
|
||||
<td><a href='ram.bin?start=0x30000000&stop=0x30200000'>0x30000000..0x30200000</a></td>
|
||||
<td>2048 kbytes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FLASH Bus:</td>
|
||||
<td><a href='ram.bin?start=0x98000000&stop=0x98100000'>0x98000000..0x98100000</a></td>
|
||||
<td>1024 kbytes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>I/O SoC:</td>
|
||||
<td><a href='ram.bin?start=0x40000000&stop=0x40080000'>0x40000000..0x40080000</a></td>
|
||||
<td>.. kbytes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ARM:</td>
|
||||
<td><a href='ram.bin?start=0xEF000000&stop=0xEFFFFFFF'>0xEF000000..0xEFFFFFFF</a></td>
|
||||
<td>.. kbytes</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table class="form">
|
||||
<tr>
|
||||
<td class="label">Start addr</td>
|
||||
<td><input type="text" id="rams" size=12 maxlength=10 value="0x3FF00000"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">End addr</td>
|
||||
<td><input type="text" id="rame" size=12 maxlength=10 value="0x40800000"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p class="center"><input type="button" onClick="NewCookie()" value="Download ram.bin" class="button"></p>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
<script type="text/javascript">
|
||||
function getCookie(name){
|
||||
var prefix = name + "=";
|
||||
var cookieStartIndex = document.cookie.indexOf(prefix);
|
||||
if (cookieStartIndex == -1) return null;
|
||||
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
|
||||
if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
|
||||
return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
|
||||
}
|
||||
function setCookie(name, value){
|
||||
document.cookie = name + "=" + escape(value) + "; path=/";
|
||||
}
|
||||
function setCookieElem(name, defv){
|
||||
var value = getCookie(name);
|
||||
if(value == null) {
|
||||
value = defv;
|
||||
setCookie(name,value);
|
||||
}
|
||||
document.getElementById(name).value=value;
|
||||
}
|
||||
function NewCookie(){
|
||||
setCookie('rams',document.getElementById('rams').value);
|
||||
setCookie('raml',document.getElementById('rame').value);
|
||||
window.location.href='ram.bin?start='+document.getElementById('rams').value+'&stop='+document.getElementById('rame').value;
|
||||
}
|
||||
setCookieElem('rams','0x10000000');
|
||||
setCookieElem('rame','0x10070000');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
23
WEBFiles/protect/upload.htm
Normal file
23
WEBFiles/protect/upload.htm
Normal file
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>RTL871X WebFS Image Upload</title>
|
||||
<link rel="stylesheet" href="../style.css">
|
||||
</head><body>
|
||||
~inc:menu.inc~
|
||||
<form method='post' action='/fsupload' enctype='multipart/form-data' class="content">
|
||||
<h2 class="title">WebFS Image Upload</h2>
|
||||
<p class="center">
|
||||
Select WEBFiles.bin file...<br><br>
|
||||
<input type='file' name='file'><br><br>
|
||||
<input type='submit' value='Upload' class="button">
|
||||
</p>
|
||||
</form>
|
||||
<div class="content"><p class="center">
|
||||
Curent Disk has ~wfs_files~ files, Disk Size: ~wfs_size~ bytes.<br>
|
||||
Disk Addres: ~wfs_addr~, Max Disk Size: ~wfs_max_size~ bytes, Max 250 files.<br><br>
|
||||
Flash ID: ~sys_fid~, Size: ~sys_fsize~ bytes.<br>
|
||||
<a href='/protect/fullflash.bin'>Download fullflash.bin</a><br><br>
|
||||
</p></div>
|
||||
~inc:footer.inc~
|
||||
</body></html>
|
192
WEBFiles/protect/wifi.htm
Normal file
192
WEBFiles/protect/wifi.htm
Normal file
|
@ -0,0 +1,192 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
|
||||
<title>RTL871X WiFi</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<script src="/scripts.js"></script>
|
||||
</head><body>
|
||||
~inc:menu.inc~
|
||||
<div class="content">
|
||||
<form method='post' action='/timeout.htm'>
|
||||
<input type='hidden' name='wifi_rdcfg' value='0xffffffff'>
|
||||
<table class="form">
|
||||
<tr>
|
||||
<td colspan="2"><h2 class="title">WiFi SoftAP</h2></td>
|
||||
<td colspan="2"><h2 class="title">WiFi Station</h2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">WiFi Mode:</td>
|
||||
<td><select name='wifi_mode'>
|
||||
<option value='1'>STATION_MODE</option>
|
||||
<option value='2'>SOFTAP_MODE</option>
|
||||
<option value='3'>STATIONAP_MODE</option>
|
||||
</select></td>
|
||||
<td class="label">SSID:</td>
|
||||
<td><input name='wifi_st_ssid' maxlength='31' value='~wifi_st_ssid~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">AP SSID:</td>
|
||||
<td><input name='wifi_ap_ssid' maxlength='31' value='~wifi_ap_ssid~'></td>
|
||||
<td class="label">Password:</td>
|
||||
<td><input name='wifi_st_psw' maxlength='63' value='~wifi_st_psw~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Hidden SSID:</td>
|
||||
<td>
|
||||
<input type='hidden' name='wifi_ap_hssid' value='0'>
|
||||
<input type='checkbox' name='wifi_ap_hssid' value='1'>
|
||||
</td>
|
||||
<td class="label">BSSID:</td>
|
||||
<td><input name='wifi_st_bssid' maxlength='17' value='~wifi_st_bssid~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">AP Password:</td>
|
||||
<td><input name='wifi_ap_psw' maxlength='63' value='~wifi_ap_psw~'></td>
|
||||
<td class="label">Use BSSID:</td>
|
||||
<td>
|
||||
<input type='hidden' name='wifi_st_sbss' value='0'>
|
||||
<input type='checkbox' name='wifi_st_sbss' value='1'>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Channel:</td>
|
||||
<td><select name='wifi_ap_chl'>
|
||||
<option value='0'>auto</option>
|
||||
</select></td>
|
||||
<td class="label">Auth Mode:</td>
|
||||
<td><select name='wifi_st_auth'>
|
||||
<option value='0'>OPEN</option>
|
||||
<option value='1'>WEP_PSK</option>
|
||||
<option value='32769'>WEP_SHAREDK</option>
|
||||
<option value='2097154'>WPA_TKIP_PSK</option>
|
||||
<option value='2097156'>WPA_AES_PSK</option>
|
||||
<option value='4194306'>WPA2_TKIP_PSK</option>
|
||||
<option value='4194308'>WPA2_AES_PSK</option>
|
||||
<option value='4194310'>WPA2_MIXED_PSK</option>
|
||||
<option value='6291456'>WPA_WPA2_MIXED</option>
|
||||
<option value='268435456'>WPS_OPEN</option>
|
||||
<option value='268435460'>WPS_SECURE</option>
|
||||
<option value='2147483647'>UNKNOWN</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">IEEE PHY:</td>
|
||||
<td><select name='wifi_phy'>
|
||||
<option value='1'>802.11b</option>
|
||||
<option value='3'>802.11g</option>
|
||||
<option value='11'>802.11n</option>
|
||||
</select></td>
|
||||
<td class="label">IP:</td>
|
||||
<td><input type='text' title='Static ip, if dhcp: off' name='wifi_st_ip' maxlength='31' value='~wifi_st_ip~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Auth Mode:</td>
|
||||
<td><select name='wifi_ap_auth'>
|
||||
<option value='0'>OPEN</option>
|
||||
<option value='1'>WPA_WPA2_PSK</option>
|
||||
</select></td>
|
||||
<td class="label">Subnet Mask:</td>
|
||||
<td><input name='wifi_st_msk' maxlength='31' value='~wifi_st_msk~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">IP:</td>
|
||||
<td><input name='wifi_ap_ip' maxlength='31' value='~wifi_ap_ip~'></td>
|
||||
<td class="label">Gateway:</td>
|
||||
<td><input name='wifi_st_gw' maxlength='31' value='~wifi_st_gw~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Subnet Mask:</td>
|
||||
<td><input type='text' name='wifi_ap_msk' maxlength='31' value='~wifi_ap_msk~'></td>
|
||||
<td class="label">AutoReConnect:</td>
|
||||
<td><input name='wifi_st_arec' title='Reconnect Count 1..255.' maxlength='4' value='~wifi_st_arec~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Gateway:</td>
|
||||
<td><input name='wifi_ap_gw' maxlength='31' value='~wifi_ap_gw~'></td>
|
||||
<td class="label">ReConnectPause:</td>
|
||||
<td><input name='wifi_st_rect' title='Reconnect pause 1..255 sec.' maxlength='4' value='~wifi_st_rect~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">MAC:</td>
|
||||
<td><input name='wifi_ap_mac' maxlength='17' value='~wifi_ap_mac~'></td>
|
||||
<td class="label">MAC:</td>
|
||||
<td><input name='wifi_st_mac' maxlength='17' value='~wifi_st_mac~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">DHCP:</td>
|
||||
<td>
|
||||
<input type='hidden' name='wifi_ap_dhcp' value='0'>
|
||||
<input type='checkbox' name='wifi_ap_dhcp' value='1'>
|
||||
</td>
|
||||
<td class="label">DHCP:</td>
|
||||
<td><select name='wifi_st_dhcp'>
|
||||
<option value='0'>DHCP Off</option>
|
||||
<option value='1'>DHCP On</option>
|
||||
<option value='2'>Static IP</option>
|
||||
<option value='3'>Auto fix</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Country Code:</td>
|
||||
<td><input name='wifi_country' maxlength='10' value='~wifi_country~'></td>
|
||||
<td class="label">RSSI:</td>
|
||||
<td>~wifi_st_rssi~ dB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">RF Tx Power:</td>
|
||||
<td><select name='wifi_txpow'>
|
||||
<option value='0'>100%</option>
|
||||
<option value='1'>75%</option>
|
||||
<option value='2'>50%</option>
|
||||
<option value='3'>25%</option>
|
||||
<option value='4'>12.5%</option>
|
||||
</select></td>
|
||||
<td class="label">Sleep Mode:</td>
|
||||
<td><select name='wifi_sleep'>
|
||||
<option value='0'>Off</option>
|
||||
<option value='1'>On</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Max connections:</td>
|
||||
<td><input title='1..3, Default: 3.' name='wifi_ap_mcns' maxlength='1' value='~wifi_ap_mcns~'></td>
|
||||
<td class="label">Beacon (ms):</td>
|
||||
<td><input title='100...60000' name='wifi_ap_bint' maxlength='5' value='~wifi_ap_bint~'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">AP Host Name:</td>
|
||||
<td><input title='DHCP, NetBIOS name' name='wifi_ap_hostname' maxlength='16' value='~wifi_ap_hostname~'></td>
|
||||
<td class="label">ST Host Name:</td>
|
||||
<td><input title='DHCP, NetBIOS name' name='wifi_st_hostname' maxlength='16' value='~wifi_st_hostname~'></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p class="center">
|
||||
<input type='submit' value='Set Config' class="button">
|
||||
<input type='hidden' name='wifi_newcfg' value='0xffff'>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
<script type="text/javascript">
|
||||
var chlnum = document.forms[0].wifi_ap_chl;
|
||||
for (var i=1; i < 14; i++) {
|
||||
chlnum.options[i] = new Option(((i<10)?'0':'')+i,i);
|
||||
}
|
||||
var cfg = {
|
||||
wifi_ap_chl:"~wifi_ap_chl~",
|
||||
wifi_ap_auth:"~wifi_ap_auth~",
|
||||
wifi_phy:"~wifi_bgn~",
|
||||
wifi_mode:"~wifi_mode~",
|
||||
wifi_sleep:"~wifi_sleep~",
|
||||
wifi_st_autn:"~wifi_st_auth~",
|
||||
wifi_st_sbss:"~wifi_st_sbss~",
|
||||
wifi_ap_hssid:"~wifi_ap_hssid~",
|
||||
wifi_ap_dhcp:"~wifi_ap_dhcp~",
|
||||
wifi_txpow:"~wifi_txpow~",
|
||||
wifi_st_dhcp:"~wifi_st_dhcp~"
|
||||
}
|
||||
setFormValues(document.forms[0], cfg);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
BIN
WEBFiles/rtl.gif
Normal file
BIN
WEBFiles/rtl.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 750 B |
BIN
WEBFiles/rtl1.gif
Normal file
BIN
WEBFiles/rtl1.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
33
WEBFiles/scripts.js
Normal file
33
WEBFiles/scripts.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
var setFormValues = function(form, cfg) {
|
||||
var name, field;
|
||||
for (name in cfg){
|
||||
if (form[name]) {
|
||||
field = form[name];
|
||||
if (field[1] && field[1].type === 'checkbox') {
|
||||
field = field[1];
|
||||
}
|
||||
if (field.type === 'checkbox'){
|
||||
field.checked = cfg[name] === '1' ? true : false;
|
||||
} else {
|
||||
field.value = cfg[name];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var $ = function(id) {
|
||||
return document.getElementById(id);
|
||||
}
|
||||
var reloadTimer={
|
||||
s:10,
|
||||
reload:function(start) {
|
||||
if(start) {
|
||||
this.s = start;
|
||||
}
|
||||
$('timer').innerHTML = this.s < 10 ? '0' + this.s : this.s;
|
||||
if (this.s == 0){
|
||||
document.location.href = document.referrer != '' ? document.referrer : '/';
|
||||
}
|
||||
this.s--;
|
||||
setTimeout('reloadTimer.reload()', 1000);
|
||||
}
|
||||
}
|
95
WEBFiles/site.js
Normal file
95
WEBFiles/site.js
Normal file
|
@ -0,0 +1,95 @@
|
|||
/* Java for WEB device */
|
||||
var ajaxList = new Array(); // Stores a queue of AJAX events to process
|
||||
var nextimeout = 500;
|
||||
function newAJAXCommand(url, container, repeat, data) {
|
||||
// Set up our object
|
||||
var newAjax = new Object();
|
||||
var theTimer = new Date();
|
||||
newAjax.url = url;
|
||||
newAjax.container = container;
|
||||
newAjax.repeat = repeat;
|
||||
newAjax.ajaxReq = null;
|
||||
// Create and send the request
|
||||
if (window.XMLHttpRequest) {
|
||||
newAjax.ajaxReq = new XMLHttpRequest();
|
||||
newAjax.ajaxReq.open((data == null) ? "GET" : "POST", newAjax.url, true);
|
||||
newAjax.ajaxReq.send(data);
|
||||
// If we're using IE6 style (maybe 5.5 compatible too)
|
||||
} else if (window.ActiveXObject) {
|
||||
newAjax.ajaxReq = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
if (newAjax.ajaxReq) {
|
||||
newAjax.ajaxReq.open((data == null) ? "GET" : "POST", newAjax.url, true);
|
||||
newAjax.ajaxReq.send(data);
|
||||
}
|
||||
}
|
||||
newAjax.lastCalled = theTimer.getTime();
|
||||
// Store in our array
|
||||
ajaxList.push(newAjax);
|
||||
}
|
||||
function pollAJAX() {
|
||||
var curAjax = new Object();
|
||||
var theTimer = new Date();
|
||||
var elapsed;
|
||||
// Read off the ajaxList objects one by one
|
||||
for (i = ajaxList.length; i > 0; i--) {
|
||||
curAjax = ajaxList.shift();
|
||||
if (!curAjax)
|
||||
continue;
|
||||
elapsed = theTimer.getTime() - curAjax.lastCalled;
|
||||
// If we suceeded
|
||||
if (curAjax.ajaxReq.readyState == 4 && curAjax.ajaxReq.status == 200) {
|
||||
// If it has a container, write the result
|
||||
if (typeof (curAjax.container) == 'function')
|
||||
curAjax.container(curAjax.ajaxReq.responseXML.documentElement);
|
||||
else if (typeof (curAjax.container) == 'string')
|
||||
document.getElementById(curAjax.container).innerHTML = curAjax.ajaxReq.responseText;
|
||||
// (otherwise do nothing for null values)
|
||||
curAjax.ajaxReq.abort();
|
||||
curAjax.ajaxReq = null;
|
||||
// If it's a repeatable request, then do so
|
||||
if (curAjax.repeat) {
|
||||
if (elapsed >= curAjax.repeat)
|
||||
elapsed = 100;
|
||||
else
|
||||
elapsed = curAjax.repeat - elapsed;
|
||||
setTimeout("newAJAXCommand('" + curAjax.url + "',"
|
||||
+ curAjax.container + "," + curAjax.repeat + ")",
|
||||
elapsed);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
// If we've waited over 4 second, then we timed out
|
||||
if ((curAjax.ajaxReq.readyState == 4 && curAjax.ajaxReq.status == 404)
|
||||
|| (elapsed > 4000)) {
|
||||
// Invoke the user function with null input
|
||||
if (typeof (curAjax.container) == 'function')
|
||||
curAjax.container(null);
|
||||
else
|
||||
// Alert the user
|
||||
alert("Command failed.\nConnection to device was lost.");
|
||||
curAjax.ajaxReq.abort();
|
||||
curAjax.ajaxReq = null;
|
||||
// If it's a repeatable request, then do so
|
||||
if (curAjax.repeat)
|
||||
setTimeout("newAJAXCommand('" + curAjax.url + "',"
|
||||
+ curAjax.container + "," + curAjax.repeat + ")", 200);
|
||||
continue;
|
||||
}
|
||||
// Otherwise, just keep waiting
|
||||
ajaxList.push(curAjax);
|
||||
}
|
||||
// Call ourselves again in 10ms?
|
||||
setTimeout("pollAJAX()", nextimeout);
|
||||
}// End pollAjax
|
||||
function getXMLValue(xmlData, field) {
|
||||
try {
|
||||
if (xmlData.getElementsByTagName(field)[0].firstChild.nodeValue)
|
||||
return xmlData.getElementsByTagName(field)[0].firstChild.nodeValue;
|
||||
else
|
||||
return null;
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
//kick off the AJAX Updater
|
||||
setTimeout("pollAJAX()", nextimeout);
|
97
WEBFiles/slider.js
Normal file
97
WEBFiles/slider.js
Normal file
|
@ -0,0 +1,97 @@
|
|||
function slider(elemId, sliderWidth, range1, range2, step) {
|
||||
var knobWidth = 17;
|
||||
var knobHeight = 21;
|
||||
var sliderHeight = 21;
|
||||
var offsX, tmp;
|
||||
var d = document;
|
||||
var isIE = d.all || window.opera;
|
||||
var point = (sliderWidth - knobWidth - 3) / (range2 - range1);
|
||||
var slider = d.createElement('DIV');
|
||||
slider.id = elemId + '_slider';
|
||||
slider.className = 'slider';
|
||||
d.getElementById(elemId).appendChild(slider);
|
||||
var knob = d.createElement('DIV');
|
||||
knob.id = elemId + '_knob';
|
||||
knob.className = 'knob';
|
||||
slider.appendChild(knob);
|
||||
knob.style.left = 0;
|
||||
knob.style.width = knobWidth + 'px';
|
||||
knob.style.height = knobHeight + 'px';
|
||||
slider.style.width = sliderWidth + 'px';
|
||||
slider.style.height = sliderHeight + 'px';
|
||||
var sliderOffset = slider.offsetLeft;
|
||||
tmp = slider.offsetParent;
|
||||
while (tmp.tagName != 'BODY') {
|
||||
sliderOffset += tmp.offsetLeft;
|
||||
tmp = tmp.offsetParent
|
||||
}
|
||||
if (isIE) {
|
||||
knob.onmousedown = startCoord;
|
||||
slider.onclick = sliderClick;
|
||||
knob.onmouseup = endCoord;
|
||||
slider.onmouseup = endCoord
|
||||
} else {
|
||||
knob.addEventListener("mousedown", startCoord, true);
|
||||
slider.addEventListener("click", sliderClick, true);
|
||||
knob.addEventListener("mouseup", endCoord, true);
|
||||
slider.addEventListener("mouseup", endCoord, true)
|
||||
}
|
||||
function setValue(x) {
|
||||
if (x < 0)
|
||||
knob.style.left = 0;
|
||||
else if (x > sliderWidth - knobWidth - 3)
|
||||
knob.style.left = (sliderWidth - 3 - knobWidth) + 'px';
|
||||
else {
|
||||
if (step == 0)
|
||||
knob.style.left = x + 'px';
|
||||
else
|
||||
knob.style.left = Math.round(x / (step * point)) * step * point
|
||||
+ 'px'
|
||||
}
|
||||
NewTimeScale(getValue())
|
||||
}
|
||||
function setValue2(x) {
|
||||
if (x < range1 || x > range2)
|
||||
alert('Value is not included into a slider range!');
|
||||
else
|
||||
setValue((x - range1) * point);
|
||||
NewTimeScale(getValue())
|
||||
}
|
||||
function getValue() {
|
||||
return Math.round(parseInt(knob.style.left) / point) + range1
|
||||
}
|
||||
function sliderClick(e) {
|
||||
var x;
|
||||
if (isIE) {
|
||||
if (event.srcElement != slider)
|
||||
return;
|
||||
x = event.offsetX - Math.round(knobWidth / 2)
|
||||
} else
|
||||
x = e.pageX - sliderOffset - knobWidth / 2;
|
||||
setValue(x)
|
||||
}
|
||||
function startCoord(e) {
|
||||
if (isIE) {
|
||||
offsX = event.clientX - parseInt(knob.style.left);
|
||||
slider.onmousemove = mov
|
||||
} else {
|
||||
slider.addEventListener("mousemove", mov, true)
|
||||
}
|
||||
}
|
||||
function mov(e) {
|
||||
var x;
|
||||
if (isIE)
|
||||
x = event.clientX - offsX;
|
||||
else
|
||||
x = e.pageX - sliderOffset - knobWidth / 2;
|
||||
setValue(x)
|
||||
}
|
||||
function endCoord() {
|
||||
if (isIE)
|
||||
slider.onmousemove = null;
|
||||
else
|
||||
slider.removeEventListener("mousemove", mov, true)
|
||||
}
|
||||
this.setValue = setValue2;
|
||||
this.getValue = getValue
|
||||
}
|
808
WEBFiles/smoothie.js
Normal file
808
WEBFiles/smoothie.js
Normal file
|
@ -0,0 +1,808 @@
|
|||
// MIT License:
|
||||
//
|
||||
// Copyright (c) 2010-2013, Joe Walnes
|
||||
// 2013-2014, Drew Noakes
|
||||
//
|
||||
// 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:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// 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.
|
||||
|
||||
/**
|
||||
* Smoothie Charts - http://smoothiecharts.org/
|
||||
* (c) 2010-2013, Joe Walnes
|
||||
* 2013-2014, Drew Noakes
|
||||
*
|
||||
* v1.0: Main charting library, by Joe Walnes
|
||||
* v1.1: Auto scaling of axis, by Neil Dunn
|
||||
* v1.2: fps (frames per second) option, by Mathias Petterson
|
||||
* v1.3: Fix for divide by zero, by Paul Nikitochkin
|
||||
* v1.4: Set minimum, top-scale padding, remove timeseries, add optional timer to reset bounds, by Kelley Reynolds
|
||||
* v1.5: Set default frames per second to 50... smoother.
|
||||
* .start(), .stop() methods for conserving CPU, by Dmitry Vyal
|
||||
* options.interpolation = 'bezier' or 'line', by Dmitry Vyal
|
||||
* options.maxValue to fix scale, by Dmitry Vyal
|
||||
* v1.6: minValue/maxValue will always get converted to floats, by Przemek Matylla
|
||||
* v1.7: options.grid.fillStyle may be a transparent color, by Dmitry A. Shashkin
|
||||
* Smooth rescaling, by Kostas Michalopoulos
|
||||
* v1.8: Set max length to customize number of live points in the dataset with options.maxDataSetLength, by Krishna Narni
|
||||
* v1.9: Display timestamps along the bottom, by Nick and Stev-io
|
||||
* (https://groups.google.com/forum/?fromgroups#!topic/smoothie-charts/-Ywse8FCpKI%5B1-25%5D)
|
||||
* Refactored by Krishna Narni, to support timestamp formatting function
|
||||
* v1.10: Switch to requestAnimationFrame, removed the now obsoleted options.fps, by Gergely Imreh
|
||||
* v1.11: options.grid.sharpLines option added, by @drewnoakes
|
||||
* Addressed warning seen in Firefox when seriesOption.fillStyle undefined, by @drewnoakes
|
||||
* v1.12: Support for horizontalLines added, by @drewnoakes
|
||||
* Support for yRangeFunction callback added, by @drewnoakes
|
||||
* v1.13: Fixed typo (#32), by @alnikitich
|
||||
* v1.14: Timer cleared when last TimeSeries removed (#23), by @davidgaleano
|
||||
* Fixed diagonal line on chart at start/end of data stream, by @drewnoakes
|
||||
* v1.15: Support for npm package (#18), by @dominictarr
|
||||
* Fixed broken removeTimeSeries function (#24) by @davidgaleano
|
||||
* Minor performance and tidying, by @drewnoakes
|
||||
* v1.16: Bug fix introduced in v1.14 relating to timer creation/clearance (#23), by @drewnoakes
|
||||
* TimeSeries.append now deals with out-of-order timestamps, and can merge duplicates, by @zacwitte (#12)
|
||||
* Documentation and some local variable renaming for clarity, by @drewnoakes
|
||||
* v1.17: Allow control over font size (#10), by @drewnoakes
|
||||
* Timestamp text won't overlap, by @drewnoakes
|
||||
* v1.18: Allow control of max/min label precision, by @drewnoakes
|
||||
* Added 'borderVisible' chart option, by @drewnoakes
|
||||
* Allow drawing series with fill but no stroke (line), by @drewnoakes
|
||||
* v1.19: Avoid unnecessary repaints, and fixed flicker in old browsers having multiple charts in document (#40), by @asbai
|
||||
* v1.20: Add SmoothieChart.getTimeSeriesOptions and SmoothieChart.bringToFront functions, by @drewnoakes
|
||||
* v1.21: Add 'step' interpolation mode, by @drewnoakes
|
||||
* v1.22: Add support for different pixel ratios. Also add optional y limit formatters, by @copacetic
|
||||
* v1.23: Fix bug introduced in v1.22 (#44), by @drewnoakes
|
||||
* v1.24: Fix bug introduced in v1.23, re-adding parseFloat to y-axis formatter defaults, by @siggy_sf
|
||||
* v1.25: Fix bug seen when adding a data point to TimeSeries which is older than the current data, by @Nking92
|
||||
* Draw time labels on top of series, by @comolosabia
|
||||
* Add TimeSeries.clear function, by @drewnoakes
|
||||
* v1.26: Add support for resizing on high device pixel ratio screens, by @copacetic
|
||||
* v1.27: Fix bug introduced in v1.26 for non whole number devicePixelRatio values, by @zmbush
|
||||
* v1.28: Add 'minValueScale' option, by @megawac
|
||||
*/
|
||||
|
||||
;(function(exports) {
|
||||
|
||||
var Util = {
|
||||
extend: function() {
|
||||
arguments[0] = arguments[0] || {};
|
||||
for (var i = 1; i < arguments.length; i++)
|
||||
{
|
||||
for (var key in arguments[i])
|
||||
{
|
||||
if (arguments[i].hasOwnProperty(key))
|
||||
{
|
||||
if (typeof(arguments[i][key]) === 'object') {
|
||||
if (arguments[i][key] instanceof Array) {
|
||||
arguments[0][key] = arguments[i][key];
|
||||
} else {
|
||||
arguments[0][key] = Util.extend(arguments[0][key], arguments[i][key]);
|
||||
}
|
||||
} else {
|
||||
arguments[0][key] = arguments[i][key];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return arguments[0];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Initialises a new <code>TimeSeries</code> with optional data options.
|
||||
*
|
||||
* Options are of the form (defaults shown):
|
||||
*
|
||||
* <pre>
|
||||
* {
|
||||
* resetBounds: true, // enables/disables automatic scaling of the y-axis
|
||||
* resetBoundsInterval: 3000 // the period between scaling calculations, in millis
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* Presentation options for TimeSeries are specified as an argument to <code>SmoothieChart.addTimeSeries</code>.
|
||||
*
|
||||
* @constructor
|
||||
*/
|
||||
function TimeSeries(options) {
|
||||
this.options = Util.extend({}, TimeSeries.defaultOptions, options);
|
||||
this.clear();
|
||||
}
|
||||
|
||||
TimeSeries.defaultOptions = {
|
||||
resetBoundsInterval: 3000,
|
||||
resetBounds: false // true
|
||||
};
|
||||
|
||||
/**
|
||||
* Clears all data and state from this TimeSeries object.
|
||||
*/
|
||||
TimeSeries.prototype.clear = function() {
|
||||
this.data = [];
|
||||
this.maxValue = Number.NaN; // The maximum value ever seen in this TimeSeries.
|
||||
this.minValue = Number.NaN; // The minimum value ever seen in this TimeSeries.
|
||||
};
|
||||
|
||||
/**
|
||||
* Recalculate the min/max values for this <code>TimeSeries</code> object.
|
||||
*
|
||||
* This causes the graph to scale itself in the y-axis.
|
||||
*/
|
||||
TimeSeries.prototype.resetBounds = function() {
|
||||
if (this.data.length) {
|
||||
// Walk through all data points, finding the min/max value
|
||||
this.maxValue = this.data[0][1];
|
||||
this.minValue = this.data[0][1];
|
||||
for (var i = 1; i < this.data.length; i++) {
|
||||
var value = this.data[i][1];
|
||||
if (value > this.maxValue) {
|
||||
this.maxValue = value;
|
||||
}
|
||||
if (value < this.minValue) {
|
||||
this.minValue = value;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// No data exists, so set min/max to NaN
|
||||
this.maxValue = Number.NaN;
|
||||
this.minValue = Number.NaN;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Adds a new data point to the <code>TimeSeries</code>, preserving chronological order.
|
||||
*
|
||||
* @param timestamp the position, in time, of this data point
|
||||
* @param value the value of this data point
|
||||
* @param sumRepeatedTimeStampValues if <code>timestamp</code> has an exact match in the series, this flag controls
|
||||
* whether it is replaced, or the values summed (defaults to false.)
|
||||
*/
|
||||
TimeSeries.prototype.append = function(timestamp, value, sumRepeatedTimeStampValues) {
|
||||
// Rewind until we hit an older timestamp
|
||||
var i = this.data.length - 1;
|
||||
while (i >= 0 && this.data[i][0] > timestamp) {
|
||||
i--;
|
||||
}
|
||||
|
||||
if (i === -1) {
|
||||
// This new item is the oldest data
|
||||
this.data.splice(0, 0, [timestamp, value]);
|
||||
} else if (this.data.length > 0 && this.data[i][0] === timestamp) {
|
||||
// Update existing values in the array
|
||||
if (sumRepeatedTimeStampValues) {
|
||||
// Sum this value into the existing 'bucket'
|
||||
// this.data[i][1] += value;
|
||||
// value = this.data[i][1];
|
||||
//
|
||||
this.data[i][1] = (value + this.data[i][1])/2.0;
|
||||
value = this.data[i];
|
||||
} else {
|
||||
// Replace the previous value
|
||||
this.data[i][1] = value;
|
||||
}
|
||||
} else if (i < this.data.length - 1) {
|
||||
// Splice into the correct position to keep timestamps in order
|
||||
this.data.splice(i + 1, 0, [timestamp, value]);
|
||||
} else {
|
||||
// Add to the end of the array
|
||||
this.data.push([timestamp, value]);
|
||||
}
|
||||
|
||||
this.maxValue = isNaN(this.maxValue) ? value : Math.max(this.maxValue, value);
|
||||
this.minValue = isNaN(this.minValue) ? value : Math.min(this.minValue, value);
|
||||
};
|
||||
|
||||
TimeSeries.prototype.dropOldData = function(oldestValidTime, maxDataSetLength) {
|
||||
// We must always keep one expired data point as we need this to draw the
|
||||
// line that comes into the chart from the left, but any points prior to that can be removed.
|
||||
var removeCount = 0;
|
||||
while (this.data.length - removeCount >= maxDataSetLength && this.data[removeCount + 1][0] < oldestValidTime) {
|
||||
removeCount++;
|
||||
}
|
||||
if (removeCount !== 0) {
|
||||
this.data.splice(0, removeCount);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Initialises a new <code>SmoothieChart</code>.
|
||||
*
|
||||
* Options are optional, and should be of the form below. Just specify the values you
|
||||
* need and the rest will be given sensible defaults as shown:
|
||||
*
|
||||
* <pre>
|
||||
* {
|
||||
* minValue: undefined, // specify to clamp the lower y-axis to a given value
|
||||
* maxValue: undefined, // specify to clamp the upper y-axis to a given value
|
||||
* maxValueScale: 1, // allows proportional padding to be added above the chart. for 10% padding, specify 1.1.
|
||||
* minValueScale: 1, // allows proportional padding to be added below the chart. for 10% padding, specify 1.1.
|
||||
* yRangeFunction: undefined, // function({min: , max: }) { return {min: , max: }; }
|
||||
* scaleSmoothing: 0.125, // controls the rate at which y-value zoom animation occurs
|
||||
* millisPerPixel: 20, // sets the speed at which the chart pans by
|
||||
* enableDpiScaling: true, // support rendering at different DPI depending on the device
|
||||
* yMinFormatter: function(min, precision) { // callback function that formats the min y value label
|
||||
* return parseFloat(min).toFixed(precision);
|
||||
* },
|
||||
* yMaxFormatter: function(max, precision) { // callback function that formats the max y value label
|
||||
* return parseFloat(max).toFixed(precision);
|
||||
* },
|
||||
* maxDataSetLength: 2,
|
||||
* interpolation: 'bezier' // one of 'bezier', 'linear', or 'step'
|
||||
* timestampFormatter: null, // optional function to format time stamps for bottom of chart
|
||||
* // you may use SmoothieChart.timeFormatter, or your own: function(date) { return ''; }
|
||||
* scrollBackwards: false, // reverse the scroll direction of the chart
|
||||
* horizontalLines: [], // [ { value: 0, color: '#ffffff', lineWidth: 1 } ]
|
||||
* grid:
|
||||
* {
|
||||
* fillStyle: '#000000', // the background colour of the chart
|
||||
* lineWidth: 1, // the pixel width of grid lines
|
||||
* strokeStyle: '#777777', // colour of grid lines
|
||||
* millisPerLine: 1000, // distance between vertical grid lines
|
||||
* sharpLines: false, // controls whether grid lines are 1px sharp, or softened
|
||||
* verticalSections: 2, // number of vertical sections marked out by horizontal grid lines
|
||||
* borderVisible: true // whether the grid lines trace the border of the chart or not
|
||||
* },
|
||||
* labels
|
||||
* {
|
||||
* disabled: false, // enables/disables labels showing the min/max values
|
||||
* fillStyle: '#ffffff', // colour for text of labels,
|
||||
* fontSize: 15,
|
||||
* fontFamily: 'sans-serif',
|
||||
* precision: 2
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @constructor
|
||||
*/
|
||||
function SmoothieChart(options) {
|
||||
this.options = Util.extend({}, SmoothieChart.defaultChartOptions, options);
|
||||
this.seriesSet = [];
|
||||
this.currentValueRange = 1;
|
||||
this.currentVisMinValue = 0;
|
||||
this.lastRenderTimeMillis = 0;
|
||||
}
|
||||
|
||||
SmoothieChart.defaultChartOptions = {
|
||||
millisPerPixel: 20,
|
||||
enableDpiScaling: true,
|
||||
yMinFormatter: function(min, precision) {
|
||||
return parseFloat(min).toFixed(precision);
|
||||
},
|
||||
yMaxFormatter: function(max, precision) {
|
||||
return parseFloat(max).toFixed(precision);
|
||||
},
|
||||
maxValueScale: 1,
|
||||
minValueScale: 1,
|
||||
interpolation: 'bezier',
|
||||
scaleSmoothing: 0.125,
|
||||
maxDataSetLength: 2,
|
||||
scrollBackwards: false,
|
||||
grid: {
|
||||
fillStyle: '#000000',
|
||||
strokeStyle: '#777777',
|
||||
lineWidth: 1,
|
||||
sharpLines: false,
|
||||
millisPerLine: 1000,
|
||||
verticalSections: 2,
|
||||
borderVisible: true
|
||||
},
|
||||
labels: {
|
||||
fillStyle: '#ffffff',
|
||||
disabled: false,
|
||||
fontSize: 10,
|
||||
fontFamily: 'monospace',
|
||||
precision: 2
|
||||
},
|
||||
horizontalLines: []
|
||||
};
|
||||
|
||||
// Based on http://inspirit.github.com/jsfeat/js/compatibility.js
|
||||
SmoothieChart.AnimateCompatibility = (function() {
|
||||
var requestAnimationFrame = function(callback, element) {
|
||||
var requestAnimationFrame =
|
||||
window.requestAnimationFrame ||
|
||||
window.webkitRequestAnimationFrame ||
|
||||
window.mozRequestAnimationFrame ||
|
||||
window.oRequestAnimationFrame ||
|
||||
window.msRequestAnimationFrame ||
|
||||
function(callback) {
|
||||
return window.setTimeout(function() {
|
||||
callback(new Date().getTime());
|
||||
}, 16);
|
||||
};
|
||||
return requestAnimationFrame.call(window, callback, element);
|
||||
},
|
||||
cancelAnimationFrame = function(id) {
|
||||
var cancelAnimationFrame =
|
||||
window.cancelAnimationFrame ||
|
||||
function(id) {
|
||||
clearTimeout(id);
|
||||
};
|
||||
return cancelAnimationFrame.call(window, id);
|
||||
};
|
||||
|
||||
return {
|
||||
requestAnimationFrame: requestAnimationFrame,
|
||||
cancelAnimationFrame: cancelAnimationFrame
|
||||
};
|
||||
})();
|
||||
|
||||
SmoothieChart.defaultSeriesPresentationOptions = {
|
||||
lineWidth: 1,
|
||||
strokeStyle: '#ffffff'
|
||||
};
|
||||
|
||||
/**
|
||||
* Adds a <code>TimeSeries</code> to this chart, with optional presentation options.
|
||||
*
|
||||
* Presentation options should be of the form (defaults shown):
|
||||
*
|
||||
* <pre>
|
||||
* {
|
||||
* lineWidth: 1,
|
||||
* strokeStyle: '#ffffff',
|
||||
* fillStyle: undefined
|
||||
* }
|
||||
* </pre>
|
||||
*/
|
||||
SmoothieChart.prototype.addTimeSeries = function(timeSeries, options) {
|
||||
this.seriesSet.push({timeSeries: timeSeries, options: Util.extend({}, SmoothieChart.defaultSeriesPresentationOptions, options)});
|
||||
if (timeSeries.options.resetBounds && timeSeries.options.resetBoundsInterval > 0) {
|
||||
timeSeries.resetBoundsTimerId = setInterval(
|
||||
function() {
|
||||
timeSeries.resetBounds();
|
||||
},
|
||||
timeSeries.options.resetBoundsInterval
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Removes the specified <code>TimeSeries</code> from the chart.
|
||||
*/
|
||||
SmoothieChart.prototype.removeTimeSeries = function(timeSeries) {
|
||||
// Find the correct timeseries to remove, and remove it
|
||||
var numSeries = this.seriesSet.length;
|
||||
for (var i = 0; i < numSeries; i++) {
|
||||
if (this.seriesSet[i].timeSeries === timeSeries) {
|
||||
this.seriesSet.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// If a timer was operating for that timeseries, remove it
|
||||
if (timeSeries.resetBoundsTimerId) {
|
||||
// Stop resetting the bounds, if we were
|
||||
clearInterval(timeSeries.resetBoundsTimerId);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets render options for the specified <code>TimeSeries</code>.
|
||||
*
|
||||
* As you may use a single <code>TimeSeries</code> in multiple charts with different formatting in each usage,
|
||||
* these settings are stored in the chart.
|
||||
*/
|
||||
SmoothieChart.prototype.getTimeSeriesOptions = function(timeSeries) {
|
||||
// Find the correct timeseries to remove, and remove it
|
||||
var numSeries = this.seriesSet.length;
|
||||
for (var i = 0; i < numSeries; i++) {
|
||||
if (this.seriesSet[i].timeSeries === timeSeries) {
|
||||
return this.seriesSet[i].options;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Brings the specified <code>TimeSeries</code> to the top of the chart. It will be rendered last.
|
||||
*/
|
||||
SmoothieChart.prototype.bringToFront = function(timeSeries) {
|
||||
// Find the correct timeseries to remove, and remove it
|
||||
var numSeries = this.seriesSet.length;
|
||||
for (var i = 0; i < numSeries; i++) {
|
||||
if (this.seriesSet[i].timeSeries === timeSeries) {
|
||||
var set = this.seriesSet.splice(i, 1);
|
||||
this.seriesSet.push(set[0]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Instructs the <code>SmoothieChart</code> to start rendering to the provided canvas, with specified delay.
|
||||
*
|
||||
* @param canvas the target canvas element
|
||||
* @param delayMillis an amount of time to wait before a data point is shown. This can prevent the end of the series
|
||||
* from appearing on screen, with new values flashing into view, at the expense of some latency.
|
||||
*/
|
||||
SmoothieChart.prototype.streamTo = function(canvas, delayMillis) {
|
||||
this.canvas = canvas;
|
||||
this.delay = delayMillis;
|
||||
this.start();
|
||||
};
|
||||
|
||||
/**
|
||||
* Make sure the canvas has the optimal resolution for the device's pixel ratio.
|
||||
*/
|
||||
SmoothieChart.prototype.resize = function() {
|
||||
// TODO this function doesn't handle the value of enableDpiScaling changing during execution
|
||||
if (!this.options.enableDpiScaling || !window || window.devicePixelRatio === 1)
|
||||
return;
|
||||
|
||||
var dpr = window.devicePixelRatio;
|
||||
var width = parseInt(this.canvas.getAttribute('width'));
|
||||
var height = parseInt(this.canvas.getAttribute('height'));
|
||||
|
||||
if (!this.originalWidth || (Math.floor(this.originalWidth * dpr) !== width)) {
|
||||
this.originalWidth = width;
|
||||
this.canvas.setAttribute('width', (Math.floor(width * dpr)).toString());
|
||||
this.canvas.style.width = width + 'px';
|
||||
this.canvas.getContext('2d').scale(dpr, dpr);
|
||||
}
|
||||
|
||||
if (!this.originalHeight || (Math.floor(this.originalHeight * dpr) !== height)) {
|
||||
this.originalHeight = height;
|
||||
this.canvas.setAttribute('height', (Math.floor(height * dpr)).toString());
|
||||
this.canvas.style.height = height + 'px';
|
||||
this.canvas.getContext('2d').scale(dpr, dpr);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Starts the animation of this chart.
|
||||
*/
|
||||
SmoothieChart.prototype.start = function() {
|
||||
if (this.frame) {
|
||||
// We're already running, so just return
|
||||
return;
|
||||
}
|
||||
|
||||
// Renders a frame, and queues the next frame for later rendering
|
||||
var animate = function() {
|
||||
this.frame = SmoothieChart.AnimateCompatibility.requestAnimationFrame(function() {
|
||||
this.render();
|
||||
animate();
|
||||
}.bind(this));
|
||||
}.bind(this);
|
||||
|
||||
animate();
|
||||
};
|
||||
|
||||
/**
|
||||
* Stops the animation of this chart.
|
||||
*/
|
||||
SmoothieChart.prototype.stop = function() {
|
||||
if (this.frame) {
|
||||
SmoothieChart.AnimateCompatibility.cancelAnimationFrame(this.frame);
|
||||
delete this.frame;
|
||||
}
|
||||
};
|
||||
|
||||
SmoothieChart.prototype.updateValueRange = function() {
|
||||
// Calculate the current scale of the chart, from all time series.
|
||||
var chartOptions = this.options,
|
||||
chartMaxValue = Number.NaN,
|
||||
chartMinValue = Number.NaN;
|
||||
|
||||
for (var d = 0; d < this.seriesSet.length; d++) {
|
||||
// TODO(ndunn): We could calculate / track these values as they stream in.
|
||||
var timeSeries = this.seriesSet[d].timeSeries;
|
||||
if (!isNaN(timeSeries.maxValue)) {
|
||||
chartMaxValue = !isNaN(chartMaxValue) ? Math.max(chartMaxValue, timeSeries.maxValue) : timeSeries.maxValue;
|
||||
}
|
||||
|
||||
if (!isNaN(timeSeries.minValue)) {
|
||||
chartMinValue = !isNaN(chartMinValue) ? Math.min(chartMinValue, timeSeries.minValue) : timeSeries.minValue;
|
||||
}
|
||||
}
|
||||
|
||||
// Scale the chartMaxValue to add padding at the top if required
|
||||
if (chartOptions.maxValue != null) {
|
||||
chartMaxValue = chartOptions.maxValue;
|
||||
} else {
|
||||
chartMaxValue *= chartOptions.maxValueScale;
|
||||
}
|
||||
|
||||
// Set the minimum if we've specified one
|
||||
if (chartOptions.minValue != null) {
|
||||
chartMinValue = chartOptions.minValue;
|
||||
} else {
|
||||
chartMinValue -= Math.abs(chartMinValue * chartOptions.minValueScale - chartMinValue);
|
||||
}
|
||||
|
||||
// If a custom range function is set, call it
|
||||
if (this.options.yRangeFunction) {
|
||||
var range = this.options.yRangeFunction({min: chartMinValue, max: chartMaxValue});
|
||||
chartMinValue = range.min;
|
||||
chartMaxValue = range.max;
|
||||
}
|
||||
|
||||
if (!isNaN(chartMaxValue) && !isNaN(chartMinValue)) {
|
||||
var targetValueRange = chartMaxValue - chartMinValue;
|
||||
var valueRangeDiff = (targetValueRange - this.currentValueRange);
|
||||
var minValueDiff = (chartMinValue - this.currentVisMinValue);
|
||||
this.isAnimatingScale = Math.abs(valueRangeDiff) > 0.01 || Math.abs(minValueDiff) > 0.01;
|
||||
this.currentValueRange += chartOptions.scaleSmoothing * valueRangeDiff;
|
||||
this.currentVisMinValue += chartOptions.scaleSmoothing * minValueDiff;
|
||||
}
|
||||
|
||||
this.valueRange = { min: chartMinValue, max: chartMaxValue };
|
||||
};
|
||||
|
||||
SmoothieChart.prototype.render = function(canvas, time) {
|
||||
var nowMillis = new Date().getTime();
|
||||
|
||||
if (!this.isAnimatingScale) {
|
||||
// We're not animating. We can use the last render time and the scroll speed to work out whether
|
||||
// we actually need to paint anything yet. If not, we can return immediately.
|
||||
|
||||
// Render at least every 1/6th of a second. The canvas may be resized, which there is
|
||||
// no reliable way to detect.
|
||||
var maxIdleMillis = Math.min(1000/6, this.options.millisPerPixel);
|
||||
|
||||
if (nowMillis - this.lastRenderTimeMillis < maxIdleMillis) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this.resize();
|
||||
|
||||
this.lastRenderTimeMillis = nowMillis;
|
||||
|
||||
canvas = canvas || this.canvas;
|
||||
time = time || nowMillis - (this.delay || 0);
|
||||
|
||||
// Round time down to pixel granularity, so motion appears smoother.
|
||||
time -= time % this.options.millisPerPixel;
|
||||
|
||||
var context = canvas.getContext('2d'),
|
||||
chartOptions = this.options,
|
||||
dimensions = { top: 0, left: 0, width: canvas.clientWidth, height: canvas.clientHeight },
|
||||
// Calculate the threshold time for the oldest data points.
|
||||
oldestValidTime = time - (dimensions.width * chartOptions.millisPerPixel),
|
||||
valueToYPixel = function(value) {
|
||||
var offset = value - this.currentVisMinValue;
|
||||
return this.currentValueRange === 0
|
||||
? dimensions.height
|
||||
: dimensions.height - (Math.round((offset / this.currentValueRange) * dimensions.height));
|
||||
}.bind(this),
|
||||
timeToXPixel = function(t) {
|
||||
if(chartOptions.scrollBackwards) {
|
||||
return Math.round((time - t) / chartOptions.millisPerPixel);
|
||||
}
|
||||
return Math.round(dimensions.width - ((time - t) / chartOptions.millisPerPixel));
|
||||
};
|
||||
|
||||
this.updateValueRange();
|
||||
|
||||
context.font = chartOptions.labels.fontSize + 'px ' + chartOptions.labels.fontFamily;
|
||||
|
||||
// Save the state of the canvas context, any transformations applied in this method
|
||||
// will get removed from the stack at the end of this method when .restore() is called.
|
||||
context.save();
|
||||
|
||||
// Move the origin.
|
||||
context.translate(dimensions.left, dimensions.top);
|
||||
|
||||
// Create a clipped rectangle - anything we draw will be constrained to this rectangle.
|
||||
// This prevents the occasional pixels from curves near the edges overrunning and creating
|
||||
// screen cheese (that phrase should need no explanation).
|
||||
context.beginPath();
|
||||
context.rect(0, 0, dimensions.width, dimensions.height);
|
||||
context.clip();
|
||||
|
||||
// Clear the working area.
|
||||
context.save();
|
||||
context.fillStyle = chartOptions.grid.fillStyle;
|
||||
context.clearRect(0, 0, dimensions.width, dimensions.height);
|
||||
context.fillRect(0, 0, dimensions.width, dimensions.height);
|
||||
context.restore();
|
||||
|
||||
// Grid lines...
|
||||
context.save();
|
||||
context.lineWidth = chartOptions.grid.lineWidth;
|
||||
context.strokeStyle = chartOptions.grid.strokeStyle;
|
||||
// Vertical (time) dividers.
|
||||
if (chartOptions.grid.millisPerLine > 0) {
|
||||
context.beginPath();
|
||||
for (var t = time - (time % chartOptions.grid.millisPerLine);
|
||||
t >= oldestValidTime;
|
||||
t -= chartOptions.grid.millisPerLine) {
|
||||
var gx = timeToXPixel(t);
|
||||
if (chartOptions.grid.sharpLines) {
|
||||
gx -= 0.5;
|
||||
}
|
||||
context.moveTo(gx, 0);
|
||||
context.lineTo(gx, dimensions.height);
|
||||
}
|
||||
context.stroke();
|
||||
context.closePath();
|
||||
}
|
||||
|
||||
// Horizontal (value) dividers.
|
||||
for (var v = 1; v < chartOptions.grid.verticalSections; v++) {
|
||||
var gy = Math.round(v * dimensions.height / chartOptions.grid.verticalSections);
|
||||
if (chartOptions.grid.sharpLines) {
|
||||
gy -= 0.5;
|
||||
}
|
||||
context.beginPath();
|
||||
context.moveTo(0, gy);
|
||||
context.lineTo(dimensions.width, gy);
|
||||
context.stroke();
|
||||
context.closePath();
|
||||
}
|
||||
// Bounding rectangle.
|
||||
if (chartOptions.grid.borderVisible) {
|
||||
context.beginPath();
|
||||
context.strokeRect(0, 0, dimensions.width, dimensions.height);
|
||||
context.closePath();
|
||||
}
|
||||
context.restore();
|
||||
|
||||
// Draw any horizontal lines...
|
||||
if (chartOptions.horizontalLines && chartOptions.horizontalLines.length) {
|
||||
for (var hl = 0; hl < chartOptions.horizontalLines.length; hl++) {
|
||||
var line = chartOptions.horizontalLines[hl],
|
||||
hly = Math.round(valueToYPixel(line.value)) - 0.5;
|
||||
context.strokeStyle = line.color || '#ffffff';
|
||||
context.lineWidth = line.lineWidth || 1;
|
||||
context.beginPath();
|
||||
context.moveTo(0, hly);
|
||||
context.lineTo(dimensions.width, hly);
|
||||
context.stroke();
|
||||
context.closePath();
|
||||
}
|
||||
}
|
||||
|
||||
// For each data set...
|
||||
for (var d = 0; d < this.seriesSet.length; d++) {
|
||||
context.save();
|
||||
var timeSeries = this.seriesSet[d].timeSeries,
|
||||
dataSet = timeSeries.data,
|
||||
seriesOptions = this.seriesSet[d].options;
|
||||
|
||||
// Delete old data that's moved off the left of the chart.
|
||||
timeSeries.dropOldData(oldestValidTime, chartOptions.maxDataSetLength);
|
||||
|
||||
// Set style for this dataSet.
|
||||
context.lineWidth = seriesOptions.lineWidth;
|
||||
context.strokeStyle = seriesOptions.strokeStyle;
|
||||
// Draw the line...
|
||||
context.beginPath();
|
||||
// Retain lastX, lastY for calculating the control points of bezier curves.
|
||||
var firstX = 0, lastX = 0, lastY = 0;
|
||||
for (var i = 0; i < dataSet.length && dataSet.length !== 1; i++) {
|
||||
var x = timeToXPixel(dataSet[i][0]),
|
||||
y = valueToYPixel(dataSet[i][1]);
|
||||
|
||||
if (i === 0) {
|
||||
firstX = x;
|
||||
context.moveTo(x, y);
|
||||
} else {
|
||||
switch (chartOptions.interpolation) {
|
||||
case "linear":
|
||||
case "line": {
|
||||
context.lineTo(x,y);
|
||||
break;
|
||||
}
|
||||
case "bezier":
|
||||
default: {
|
||||
// Great explanation of Bezier curves: http://en.wikipedia.org/wiki/Bezier_curve#Quadratic_curves
|
||||
//
|
||||
// Assuming A was the last point in the line plotted and B is the new point,
|
||||
// we draw a curve with control points P and Q as below.
|
||||
//
|
||||
// A---P
|
||||
// |
|
||||
// |
|
||||
// |
|
||||
// Q---B
|
||||
//
|
||||
// Importantly, A and P are at the same y coordinate, as are B and Q. This is
|
||||
// so adjacent curves appear to flow as one.
|
||||
//
|
||||
context.bezierCurveTo( // startPoint (A) is implicit from last iteration of loop
|
||||
Math.round((lastX + x) / 2), lastY, // controlPoint1 (P)
|
||||
Math.round((lastX + x)) / 2, y, // controlPoint2 (Q)
|
||||
x, y); // endPoint (B)
|
||||
break;
|
||||
}
|
||||
case "step": {
|
||||
context.lineTo(x,lastY);
|
||||
context.lineTo(x,y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lastX = x; lastY = y;
|
||||
}
|
||||
|
||||
if (dataSet.length > 1) {
|
||||
if (seriesOptions.fillStyle) {
|
||||
// Close up the fill region.
|
||||
context.lineTo(dimensions.width + seriesOptions.lineWidth + 1, lastY);
|
||||
context.lineTo(dimensions.width + seriesOptions.lineWidth + 1, dimensions.height + seriesOptions.lineWidth + 1);
|
||||
context.lineTo(firstX, dimensions.height + seriesOptions.lineWidth);
|
||||
context.fillStyle = seriesOptions.fillStyle;
|
||||
context.fill();
|
||||
}
|
||||
|
||||
if (seriesOptions.strokeStyle && seriesOptions.strokeStyle !== 'none') {
|
||||
context.stroke();
|
||||
}
|
||||
context.closePath();
|
||||
}
|
||||
context.restore();
|
||||
}
|
||||
|
||||
// Draw the axis values on the chart.
|
||||
if (!chartOptions.labels.disabled && !isNaN(this.valueRange.min) && !isNaN(this.valueRange.max)) {
|
||||
var maxValueString = chartOptions.yMaxFormatter(this.valueRange.max, chartOptions.labels.precision),
|
||||
minValueString = chartOptions.yMinFormatter(this.valueRange.min, chartOptions.labels.precision),
|
||||
labelPos = chartOptions.scrollBackwards ? 0 : dimensions.width - context.measureText(maxValueString).width - 2;
|
||||
context.fillStyle = chartOptions.labels.fillStyle;
|
||||
context.fillText(maxValueString, labelPos, chartOptions.labels.fontSize);
|
||||
context.fillText(minValueString, labelPos, dimensions.height - 2);
|
||||
}
|
||||
|
||||
// Display timestamps along x-axis at the bottom of the chart.
|
||||
if (chartOptions.timestampFormatter && chartOptions.grid.millisPerLine > 0) {
|
||||
var textUntilX = chartOptions.scrollBackwards
|
||||
? context.measureText(minValueString).width
|
||||
: dimensions.width - context.measureText(minValueString).width + 4;
|
||||
for (var t = time - (time % chartOptions.grid.millisPerLine);
|
||||
t >= oldestValidTime;
|
||||
t -= chartOptions.grid.millisPerLine) {
|
||||
var gx = timeToXPixel(t);
|
||||
// Only draw the timestamp if it won't overlap with the previously drawn one.
|
||||
if ((!chartOptions.scrollBackwards && gx < textUntilX) || (chartOptions.scrollBackwards && gx > textUntilX)) {
|
||||
// Formats the timestamp based on user specified formatting function
|
||||
// SmoothieChart.timeFormatter function above is one such formatting option
|
||||
var tx = new Date(t),
|
||||
ts = chartOptions.timestampFormatter(tx),
|
||||
tsWidth = context.measureText(ts).width;
|
||||
|
||||
textUntilX = chartOptions.scrollBackwards
|
||||
? gx + tsWidth + 2
|
||||
: gx - tsWidth - 2;
|
||||
|
||||
context.fillStyle = chartOptions.labels.fillStyle;
|
||||
if(chartOptions.scrollBackwards) {
|
||||
context.fillText(ts, gx, dimensions.height - 2);
|
||||
} else {
|
||||
context.fillText(ts, gx - tsWidth, dimensions.height - 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
context.restore(); // See .save() above.
|
||||
};
|
||||
/*
|
||||
// Sample timestamp formatting function
|
||||
SmoothieChart.timeFormatter = function(date) {
|
||||
function pad2(number) { return (number < 10 ? '0' : '') + number }
|
||||
return pad2(date.getHours()) + ':' + pad2(date.getMinutes()) + ':' + pad2(date.getSeconds());
|
||||
};
|
||||
*/
|
||||
exports.TimeSeries = TimeSeries;
|
||||
exports.SmoothieChart = SmoothieChart;
|
||||
|
||||
})(typeof exports === 'undefined' ? this : exports);
|
||||
|
||||
|
235
WEBFiles/style.css
Normal file
235
WEBFiles/style.css
Normal file
|
@ -0,0 +1,235 @@
|
|||
body{
|
||||
margin:4px auto;
|
||||
width:640px;
|
||||
color:black;
|
||||
background:#fff;
|
||||
font-size:14px;
|
||||
font-family:"Lucida Grande", Tahoma, sans-serif;
|
||||
}
|
||||
img,table{
|
||||
border:0;
|
||||
}
|
||||
.top{
|
||||
color:#888;
|
||||
background:url(logo.gif) no-repeat 0 0;
|
||||
padding:3px 0 0 45px;
|
||||
margin:0 0 10px 0;
|
||||
}
|
||||
.top img{
|
||||
vertical-align:middle;
|
||||
}
|
||||
h2.error{
|
||||
color:red;
|
||||
}
|
||||
h2.ok{
|
||||
color:green;
|
||||
}
|
||||
h2.title{
|
||||
text-align:center;
|
||||
}
|
||||
.menu{
|
||||
border-top:#fab548 5px solid;
|
||||
background:#f1f1ed url(rtl.gif) no-repeat 10px 10px;
|
||||
padding:5px 5px 5px 120px;
|
||||
margin:0 0 10px 0;
|
||||
min-height:120px;
|
||||
border-radius:5px;
|
||||
}
|
||||
.menu div{
|
||||
width:220px;
|
||||
float:left;
|
||||
margin-right:10px;
|
||||
}
|
||||
.menu a,
|
||||
.menu a:link{
|
||||
display:block;
|
||||
font-weight:bold;
|
||||
text-decoration:none;
|
||||
color:#1486ba;
|
||||
padding:0 5px 1px 10px;
|
||||
font-size:13px;
|
||||
border-radius:5px;
|
||||
margin:0 0 1px 0;
|
||||
border-bottom:#d6d9da 1px solid;
|
||||
}
|
||||
.menu a:visited{
|
||||
color:#777;
|
||||
}
|
||||
.menu a.active{
|
||||
color:#777;
|
||||
background:#d6d9da;
|
||||
}
|
||||
.menu a:hover{
|
||||
color:#842;
|
||||
background:#d6d9da;
|
||||
}
|
||||
table.form select{
|
||||
width:143px;
|
||||
}
|
||||
table.form{
|
||||
width:100%;
|
||||
}
|
||||
table.form td{
|
||||
font-size:13px;
|
||||
padding:0;
|
||||
}
|
||||
table.form .label{
|
||||
width:45%;
|
||||
font-weight:bold;
|
||||
text-align:right;
|
||||
padding-right:10px;
|
||||
}
|
||||
table.form .left{
|
||||
width:45%;
|
||||
font-weight:bold;
|
||||
text-align:left;
|
||||
padding-left:10px;
|
||||
}
|
||||
table.scan{
|
||||
border-collapse:separate;
|
||||
border-spacing: 0;
|
||||
border:#aaa 2px solid;
|
||||
text-align:center;
|
||||
font-size:14px;
|
||||
width:100%;
|
||||
margin:0 0 10px 0;
|
||||
background:#fff;
|
||||
border-radius:5px;
|
||||
}
|
||||
table.scan th{
|
||||
color:#247;
|
||||
border:#aaa 1px solid;
|
||||
font-size:15px;
|
||||
padding:2px 2px;
|
||||
background:#fec;
|
||||
}
|
||||
table.scan td{
|
||||
border:#aaa 1px solid;
|
||||
padding:2px 2px;
|
||||
}
|
||||
table.scan td.s:hover{
|
||||
background:#eef;
|
||||
}
|
||||
table.scan a:link{
|
||||
display:block;
|
||||
font-weight:bold;
|
||||
text-decoration:none;
|
||||
color:#444;
|
||||
border-radius:5px;
|
||||
}
|
||||
table.scan a:visited{
|
||||
color:#444;
|
||||
}
|
||||
table.scan a.active,
|
||||
table.scan a:hover{
|
||||
color:#21e;
|
||||
background:#d6d9da;
|
||||
}
|
||||
table.mdbtab{
|
||||
border-collapse:separate;
|
||||
border-spacing: 0;
|
||||
border:#aaa 2px solid;
|
||||
text-align:center;
|
||||
font-size:12px;
|
||||
width:100%;
|
||||
margin:0 0 10px 0;
|
||||
background:#fff;
|
||||
border-radius:5px;
|
||||
}
|
||||
table.mdbtab th{
|
||||
color:#247;
|
||||
border:#aaa 1px solid;
|
||||
font-size:12px;
|
||||
padding:2px 2px;
|
||||
background:#fec;
|
||||
}
|
||||
table.mdbtab td{
|
||||
border:#aaa 1px solid;
|
||||
padding:2px 2px;
|
||||
}
|
||||
table.mdbtab td.s:hover{
|
||||
background:#eef;
|
||||
}
|
||||
table.mdbtab a:link{
|
||||
display:block;
|
||||
font-weight:bold;
|
||||
text-decoration:none;
|
||||
color:#444;
|
||||
border-radius:5px;
|
||||
}
|
||||
table.mdbtab a:visited{
|
||||
color:#444;
|
||||
}
|
||||
table.mdbtab a.active,
|
||||
table.mdbtab a:hover{
|
||||
color:#21e;
|
||||
background:#d6d9da;
|
||||
}
|
||||
.content{
|
||||
background:#f1f1ed;
|
||||
border-radius:5px;
|
||||
border-top:#1486ba 5px solid;
|
||||
padding:10px;
|
||||
margin:0 0 10px 0;
|
||||
}
|
||||
.footer{
|
||||
border-top:#75be45 5px solid;;
|
||||
background:#d6d9da;
|
||||
border-radius:5px;
|
||||
padding:10px;
|
||||
font-size:12px;
|
||||
margin:0 0 5px 0;
|
||||
}
|
||||
.copyright{
|
||||
font-size:11px;
|
||||
padding:0 0 0 10px;
|
||||
text-align:right;
|
||||
}
|
||||
.button:visited,
|
||||
.button{
|
||||
cursor:pointer;
|
||||
display:inline-block;
|
||||
font-weight:bold;
|
||||
text-align:center;
|
||||
text-decoration:none;
|
||||
white-space:nowrap;
|
||||
border-radius:5px;
|
||||
background-image: linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1));
|
||||
background-color:#f0f0eb;
|
||||
color:#312c2a;
|
||||
border:1px solid #aaa;
|
||||
border-color: rgba(0,0,0,0.3);
|
||||
border-bottom-color: #777;
|
||||
border-bottom-color: rgba(0,0,0,0.5);
|
||||
box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.7), inset 0 0 0.08em rgba(255,255,255,0.5);
|
||||
text-shadow: 0 1px 0 rgba(255,255,255,0.8);
|
||||
padding:3px 15px;
|
||||
}
|
||||
.button:focus,
|
||||
.button:hover{
|
||||
background-color:#ffffff;
|
||||
background-image: linear-gradient(rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15));
|
||||
}
|
||||
#timer{
|
||||
color:red;
|
||||
}
|
||||
.center{
|
||||
text-align:center;
|
||||
}
|
||||
hr{
|
||||
border:0;
|
||||
height:1px;
|
||||
background:#333;
|
||||
background-image:-webkit-linear-gradient(left, #ccc, #333, #ccc);
|
||||
background-image:-moz-linear-gradient(left, #ccc, #333, #ccc);
|
||||
background-image:-ms-linear-gradient(left, #ccc, #333, #ccc);
|
||||
background-image: -o-linear-gradient(left, #ccc, #333, #ccc);
|
||||
}
|
||||
select,
|
||||
input,
|
||||
iframe{
|
||||
border-collapse:separate;
|
||||
border-spacing: 0;
|
||||
background:#fff;
|
||||
border-radius:5px;
|
||||
}
|
9
WEBFiles/time.inc
Normal file
9
WEBFiles/time.inc
Normal file
|
@ -0,0 +1,9 @@
|
|||
<script type="text/javascript">
|
||||
var x = ~sntp_time~*1000;
|
||||
if(x){
|
||||
var d = new Date(x);
|
||||
document.getElementById('sntptime').innerHTML= d.toLocaleDateString()+" "+d.toLocaleTimeString();
|
||||
}
|
||||
var d = new Date(new Date()-(~sys_mactime~/1000));
|
||||
document.getElementById('starttime').innerHTML= d.toLocaleDateString()+" "+d.toLocaleTimeString();
|
||||
</script>
|
16
WEBFiles/timeout.htm
Normal file
16
WEBFiles/timeout.htm
Normal file
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>RTL871X WIFI</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<script src="scripts.js"></script>
|
||||
</head><body onload="reloadTimer.reload(10)">
|
||||
<h3 class="top">RTL871X Built-in Web server <sup>©</sup></h3>
|
||||
<div class="content">
|
||||
<h3>Timeout <span id='timer'>?</span> sec...</h3>
|
||||
* Redirect: <a href='http://~sys_url~/'>http://~sys_url~/</a> *<br><br>
|
||||
<a href='index.htm'>Main</a>
|
||||
</div>
|
||||
~inc:footer.inc~
|
||||
</body>
|
||||
</html>
|
12
WEBFiles/timer.inc
Normal file
12
WEBFiles/timer.inc
Normal file
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<title>RTL871X WIFI</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<script src="/scripts.js"></script>
|
||||
</head><body onload="reloadTimer.reload(10)">
|
||||
<h3 class="top">RTL871X Built-in Web server <sup>©</sup></h3>
|
||||
<div class="content">
|
||||
<h3>Timeout <span id='timer'>?</span> sec...</h3>
|
||||
Redirect: <a href='/index.htm'>Main</a>
|
||||
|
9
WEBFiles/tst.htm
Normal file
9
WEBFiles/tst.htm
Normal file
|
@ -0,0 +1,9 @@
|
|||
~inc:grfx1.inc~
|
||||
<td width="50%">Test: <span id="xdata" style="font-weight:bold">?</span></td>
|
||||
<script type="text/javascript">
|
||||
var xmlfile = 'tst.xml';
|
||||
var xmin = -380;
|
||||
var xmax = -360;
|
||||
var millisPerPixel = 200;
|
||||
var millisPerLine = 5000;
|
||||
</script>~inc:grfx2.inc~
|
1
WEBFiles/tst.xml
Normal file
1
WEBFiles/tst.xml
Normal file
|
@ -0,0 +1 @@
|
|||
<response><name>Test</name><value>~wifi_st_rssi~</value><measure>?</measure></response>
|
116
WEBFiles/websock.htm
Normal file
116
WEBFiles/websock.htm
Normal file
|
@ -0,0 +1,116 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<meta charset="charset=windows-1251" />
|
||||
<link href="ws2.css" rel="stylesheet" type="text/css" />
|
||||
<title>WebSocket Test</title></head>
|
||||
<body><h2>WebSocket Test</h2>
|
||||
<form name="publish">
|
||||
<input type="button" id="OpCl" value="Open">
|
||||
<input type="text" name="message" value="hellomsg">
|
||||
<input type="submit" id="SndM" value="Send" disabled="1"><br>
|
||||
</form>
|
||||
<div id="console-div">
|
||||
Log messages
|
||||
<div id="consoleLog"></div>
|
||||
<button id="clear">Clear Log</button>
|
||||
</div></body>
|
||||
<script language="javascript" type="text/javascript">
|
||||
var $ = function(id){return document.getElementById(id);}
|
||||
var wsUri = "ws://"+window.location.host.toString()+"/web.cgi";
|
||||
var ws, wstt, wsopen = 0;
|
||||
$("OpCl").onclick = function() {
|
||||
if(wsopen) {
|
||||
ws.close();
|
||||
$("OpCl").value = "Open";
|
||||
}
|
||||
else {
|
||||
ws = new WebSocket(wsUri);
|
||||
log("CONNECT: " + ws.url);
|
||||
ws.onopen = function(evt) {
|
||||
$("OpCl").value = "Close";
|
||||
$("SndM").disabled = false;
|
||||
log("CONNECTED");
|
||||
wstt = setTimeout(wsping, 2500);
|
||||
};
|
||||
ws.onclose = function(evt) {
|
||||
log("CLOSED: ("+evt.code+") "+evt.reason);
|
||||
clearTimeout(wstt);
|
||||
wsopen = 0;
|
||||
$("SndM").disabled = true;
|
||||
};
|
||||
ws.onerror = function(event) {
|
||||
logError("ERROR (" + event.data +", "+ event.code +", "+ event.reason + ")");
|
||||
wsopen = 0;
|
||||
$("SndM").disabled = true;
|
||||
};
|
||||
// îáðàáîò÷èê âõîäÿùèõ ñîîáùåíèé
|
||||
ws.onmessage = function(evt) {
|
||||
var data = evt.data;
|
||||
if (typeof(data) == "string") {
|
||||
//text
|
||||
if(data != "ws:pong") logResponse("RECEIVED TEXT: " + data);
|
||||
}
|
||||
else if (data.byteLength) {
|
||||
//arraybuffer
|
||||
var u = new Uint8Array(data);
|
||||
var bytes = [];
|
||||
for (var i=0; i<u.byteLength; i++) {
|
||||
bytes.push(u[i]);
|
||||
}
|
||||
logResponse("RECEIVED ARRAY BUFFER: " + bytes);
|
||||
}
|
||||
else if (data.size) {
|
||||
//blob
|
||||
var cb = function(result) {
|
||||
logResponse("RECEIVED BLOB: " + result);
|
||||
};
|
||||
}
|
||||
else {
|
||||
logResponse("RECEIVED UNKNOWN TYPE: " + data);
|
||||
}
|
||||
clearTimeout(wstt);
|
||||
wstt = setTimeout(wsping, 2500);
|
||||
}
|
||||
wsopen = 1;
|
||||
}
|
||||
}
|
||||
function wsping() {ws.send("ws:ping"); wstt = setTimeout(wsping, 2500);}
|
||||
var consoleLog = $("consoleLog");
|
||||
$("clear").onclick = function() {
|
||||
while (consoleLog.childNodes.length > 0) {
|
||||
consoleLog.removeChild(consoleLog.lastChild);
|
||||
}
|
||||
}
|
||||
var log = function(message) {
|
||||
var pre = document.createElement("pre");
|
||||
pre.style.wordWrap = "break-word";
|
||||
pre.innerHTML = message;
|
||||
consoleLog.appendChild(pre);
|
||||
consoleLog.scrollTop = consoleLog.scrollHeight;
|
||||
while (consoleLog.childNodes.length > 25) {
|
||||
consoleLog.removeChild(consoleLog.firstChild);
|
||||
}
|
||||
}
|
||||
var logResponse = function(msg) {
|
||||
log("<span style='color:blue'>"+msg+"</span>");
|
||||
}
|
||||
var logSend = function(msg) {
|
||||
log("<span style='color:green'>"+msg+"</span>");
|
||||
}
|
||||
var logError = function(msg) {
|
||||
log("<span style='color:red'>"+msg+"</span>");
|
||||
}
|
||||
document.forms.publish.onsubmit = function() {
|
||||
clearTimeout(wstt);
|
||||
try {
|
||||
var text = this.message.value;
|
||||
logSend("SEND TEXT: "+text);
|
||||
ws.send(text);
|
||||
} catch (e) {
|
||||
logError("EXCEPTION: "+e);
|
||||
}
|
||||
wstt = setTimeout(wsping, 2500);
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
</html>
|
12
WEBFiles/ws2.css
Normal file
12
WEBFiles/ws2.css
Normal file
|
@ -0,0 +1,12 @@
|
|||
#consoleLog {
|
||||
overflow-y: scroll;
|
||||
width: 480px;
|
||||
height: 800px;
|
||||
border: solid 1px #aaaaaa;
|
||||
background-color: #ffffff;
|
||||
padding-left: 5px; }
|
||||
#consoleLog > pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0; }
|
||||
#consoleLog > pre:nth-child(even) {
|
||||
background-color: #fafafa; }
|
307
flasher.mk
Normal file
307
flasher.mk
Normal file
|
@ -0,0 +1,307 @@
|
|||
# RTL8710 Flasher v0.0.alfa
|
||||
# pvvx 21.09.2016
|
||||
-include paths.mk
|
||||
#---------------------------
|
||||
#FLASHER = stlink-v2-1
|
||||
#FLASHER = stlink-v2
|
||||
FLASHER ?= Jlink
|
||||
JLINK_PATH ?= D:/MCU/SEGGER/JLink_V612i/
|
||||
#---------------------------
|
||||
# Default
|
||||
#---------------------------
|
||||
# TARGET dirs
|
||||
TARGET ?= build
|
||||
OBJ_DIR ?= build/obj
|
||||
BIN_DIR ?= build/bin
|
||||
ELFFILE ?= $(OBJ_DIR)/$(TARGET).axf
|
||||
#---------------------------
|
||||
# Compilation tools
|
||||
CROSS_COMPILE ?= $(GCC_PATH)arm-none-eabi-
|
||||
AR ?= $(CROSS_COMPILE)ar
|
||||
CC ?= $(CROSS_COMPILE)gcc
|
||||
AS ?= $(CROSS_COMPILE)as
|
||||
NM ?= $(CROSS_COMPILE)nm
|
||||
LD ?= $(CROSS_COMPILE)gcc
|
||||
GDB ?= $(CROSS_COMPILE)gdb
|
||||
SIZE ?= $(CROSS_COMPILE)size
|
||||
OBJCOPY ?= $(CROSS_COMPILE)objcopy
|
||||
OBJDUMP ?= $(CROSS_COMPILE)objdump
|
||||
|
||||
# Make bunary tools
|
||||
TOOLS_PATH ?= component/soc/realtek/8195a/misc/iar_utility/common/tools/
|
||||
ifneq ($(shell uname), Linux)
|
||||
EXE = .exe
|
||||
endif
|
||||
PICK = $(TOOLS_PATH)pick$(EXE)
|
||||
PADDING = $(TOOLS_PATH)padding$(EXE)
|
||||
CHCKSUM = $(TOOLS_PATH)checksum$(EXE)
|
||||
|
||||
# openocd tools
|
||||
OPENOCD = $(OPENOCD_PATH)openocd
|
||||
|
||||
JLINK_GDB ?= JLinkGDBServer.exe
|
||||
JLINK_EXE ?= JLink.exe
|
||||
|
||||
ifeq ($(FLASHER), Jlink)
|
||||
# Jlink FLASHER_SPEED ..4000 kHz
|
||||
FLASHER_SPEED = 3500
|
||||
else
|
||||
ifeq ($(FLASHER),stlink-v2)
|
||||
# stlink-v2 FLASHER_SPEED ..1800 kHz
|
||||
FLASHER_SPEED = 1800
|
||||
else
|
||||
# over FLASHER_SPEED ..500 kHz ?
|
||||
FLASHER_SPEED = 500
|
||||
endif
|
||||
endif
|
||||
|
||||
# COMPILED_BOOT if defined -> extract image1, boot head in elf
|
||||
COMPILED_BOOT=1
|
||||
# COMPILED_BOOT_BIN if !defined -> use source startup boot
|
||||
#COMPILED_BOOT_BIN=1
|
||||
# PADDINGSIZE defined -> image2 OTA
|
||||
PADDINGSIZE =44k
|
||||
|
||||
NMAPFILE = $(OBJ_DIR)/$(TARGET).nmap
|
||||
|
||||
#FLASHER_PATH ?= flasher/
|
||||
|
||||
#RAM_IMAGE?= $(BIN_DIR)/ram.bin
|
||||
|
||||
RAM1_IMAGE ?= $(BIN_DIR)/ram_1.bin
|
||||
RAM1P_IMAGE ?= $(BIN_DIR)/ram_1.p.bin
|
||||
RAM1R_IMAGE ?= $(BIN_DIR)/ram_1.r.bin
|
||||
|
||||
RAM2_IMAGE = $(BIN_DIR)/ram_2.bin
|
||||
RAM2P_IMAGE = $(BIN_DIR)/ram_2.p.bin
|
||||
RAM2NS_IMAGE = $(BIN_DIR)/ram_2.ns.bin
|
||||
|
||||
RAM3_IMAGE = $(BIN_DIR)/sdram.bin
|
||||
RAM3P_IMAGE = $(BIN_DIR)/sdram.p.bin
|
||||
|
||||
FLASH_IMAGE = $(BIN_DIR)/ram_all.bin
|
||||
OTA_IMAGE = $(BIN_DIR)/ota.bin
|
||||
|
||||
#all: FLASH_IMAGE = $(BIN_DIR)/ram_all.bin
|
||||
#all: OTA_IMAGE = $(BIN_DIR)/ota.bin
|
||||
mp: FLASH_IMAGE = $(BIN_DIR)/ram_all_mp.bin
|
||||
mp: OTA_IMAGE = $(BIN_DIR)/ota_mp.bin
|
||||
|
||||
TST_IMAGE = $(BIN_DIR)/ram_2.bin
|
||||
|
||||
.PHONY: genbin1 genbin23 flashburn reset test readfullflash flashwebfs flash_OTA
|
||||
.NOTPARALLEL: all mp genbin1 genbin23 flashburn reset test readfullflash _endgenbin flashwebfs flash_OTA
|
||||
|
||||
all: $(ELFFILE) $(OTA_IMAGE) $(FLASH_IMAGE) _endgenbin
|
||||
mp: $(ELFFILE) $(OTA_IMAGE) $(FLASH_IMAGE) _endgenbin
|
||||
|
||||
genbin1: $(ELFFILE) $(RAM1P_IMAGE)
|
||||
|
||||
genbin23: $(ELFFILE) $(OTA_IMAGE) $(FLASH_IMAGE) _endgenbin
|
||||
|
||||
|
||||
_endgenbin:
|
||||
@echo "-----------------------------------------------------------"
|
||||
@echo "Image ($(OTA_IMAGE)) size $(shell printf '%d\n' $$(( $$(stat --printf="%s" $(OTA_IMAGE)) )) ) bytes"
|
||||
@echo "Image ($(FLASH_IMAGE)) size $(shell printf '%d\n' $$(( $$(stat --printf="%s" $(FLASH_IMAGE)) )) ) bytes"
|
||||
@echo "==========================================================="
|
||||
|
||||
ifeq ($(FLASHER_TYPE), Jlink)
|
||||
|
||||
reset:
|
||||
@$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed 1000 $(FLASHER_PATH)RTL_Reset.JLinkScript
|
||||
|
||||
runram:
|
||||
@$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed 1000 $(FLASHER_PATH)RTL_RunRAM.JLinkScript
|
||||
|
||||
readfullflash:
|
||||
@$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed 1000 $(FLASHER_PATH)RTL_FFlash.JLinkScript
|
||||
|
||||
|
||||
flashburn:
|
||||
@echo define call1>$(FLASHER_PATH)flash_file.jlink
|
||||
@echo SetFirwareSize build/bin/ram_all.bin>>$(FLASHER_PATH)flash_file.jlink
|
||||
@echo end>>$(FLASHER_PATH)flash_file.jlink
|
||||
@echo define call2>>$(FLASHER_PATH)flash_file.jlink
|
||||
@echo FlasherWrite build/bin/ram_all.bin 0 '$$'Image1Size>>$(FLASHER_PATH)flash_file.jlink
|
||||
@echo end>>$(FLASHER_PATH)flash_file.jlink
|
||||
@echo define call3>>$(FLASHER_PATH)flash_file.jlink
|
||||
@echo FlasherWrite build/bin/ram_all.bin '$$'Image2Addr '$$'Image2Size>>$(FLASHER_PATH)flash_file.jlink
|
||||
@echo end>>$(FLASHER_PATH)flash_file.jlink
|
||||
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000
|
||||
@$(GDB) -x $(FLASHER_PATH)gdb_wrflash.jlink
|
||||
#@taskkill /F /IM $(JLINK_GDBSRV)
|
||||
|
||||
flashwebfs:
|
||||
@echo define call1>$(FLASHER_PATH)file_info.jlink
|
||||
@echo set '$$'ImageSize = $(shell printf '0x%X\n' $$(stat --printf="%s" $(BIN_DIR)/WEBFiles.bin))>>$(FLASHER_PATH)file_info.jlink
|
||||
@echo set '$$'ImageAddr = 0x0D0000>>$(FLASHER_PATH)file_info.jlink
|
||||
@echo end>>$(FLASHER_PATH)file_info.jlink
|
||||
@echo define call2>>$(FLASHER_PATH)file_info.jlink
|
||||
@echo FlasherWrite $(BIN_DIR)/WEBFiles.bin '$$'ImageAddr '$$'ImageSize>>$(FLASHER_PATH)file_info.jlink
|
||||
@echo end>>$(FLASHER_PATH)file_info.jlink
|
||||
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000
|
||||
@$(GDB) -x $(FLASHER_PATH)gdb_wrfile.jlink
|
||||
#@taskkill /F /IM $(JLINK_GDBSRV)
|
||||
|
||||
flash_OTA:
|
||||
@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000
|
||||
@$(GDB) -x $(FLASHER_PATH)gdb_ota.jlink
|
||||
#@taskkill /F /IM $(JLINK_GDBSRV)
|
||||
|
||||
else
|
||||
|
||||
flashburn:
|
||||
@$(OPENOCD) -f interface/$(FLASHER).cfg -c "transport select swd" -f $(FLASHER_PATH)rtl8710.ocd -c "init" -c "adapter_khz $(FLASHER_SPEED)" -c "reset halt" \
|
||||
-c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" \
|
||||
-c "rtl8710_flash_write $(RAM1P_IMAGE) 0" \
|
||||
-c "rtl8710_flash_write $(RAM2P_IMAGE) 0xb000" \
|
||||
-c "rtl8710_reboot" -c "reset run" -c shutdown
|
||||
|
||||
flashimage2p:
|
||||
@$(OPENOCD) -f interface/$(FLASHER).cfg -c "transport select swd" -f $(FLASHER_PATH)rtl8710.ocd -c "init" -c "adapter_khz $(FLASHER_SPEED)" -c "reset halt" \
|
||||
-c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" \
|
||||
-c "rtl8710_flash_write $(RAM2P_IMAGE) 0xb000" \
|
||||
-c "rtl8710_reboot" -c "reset run" -c shutdown
|
||||
|
||||
flashwebfs:
|
||||
@$(OPENOCD) -f interface/$(FLASHER).cfg -c "transport select swd" -f $(FLASHER_PATH)rtl8710.ocd -c "init" -c "adapter_khz $(FLASHER_SPEED)" -c "reset halt" \
|
||||
-c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" \
|
||||
-c "rtl8710_flash_write $(BIN_DIR)/webpages.espfs 0xd0000" \
|
||||
-c "rtl8710_reboot" -c "reset run" -c shutdown
|
||||
|
||||
|
||||
reset:
|
||||
# @$(JLINK_PATH)$(JLINK_EXE) -Device CORTEX-M3 -If SWD -Speed $(FLASHER_SPEED) flasher/RTLreset.JLinkScript
|
||||
@$(OPENOCD) -f interface/$(FLASHER).cfg -c "transport select swd" -f $(FLASHER_PATH)rtl8710.ocd -c "init" -c "adapter_khz $(FLASHER_SPEED)" -c "reset halt" \
|
||||
-c "rtl8710_reboot" -c shutdown
|
||||
|
||||
runram:
|
||||
# @$(JLINK_PATH)$(JLINK_GDB) -device Cortex-M3 -if SWD -ir -endian little -speed $(FLASHER_SPEED)
|
||||
# @$(GDB) -x flasher/gdb_run_ram.jlink
|
||||
# @taskkill.exe -F -IM $(JLINK_GDB)
|
||||
@$(OPENOCD) -f interface/$(FLASHER).cfg -c "transport select swd" -f $(FLASHER_PATH)rtl8710.ocd -c "init" -c "adapter_khz $(FLASHER_SPEED)" -c "reset halt" \
|
||||
-c "load_image $(RAM1R_IMAGE) 0x10000bc8 bin" \
|
||||
-c "load_image $(RAM2_IMAGE) 0x10006000 bin" \
|
||||
-c "mww 0x40000210 0x20200113" \
|
||||
-c "reset run" -c shutdown
|
||||
|
||||
endif
|
||||
|
||||
$(NMAPFILE): $(ELFFILE)
|
||||
@echo "==========================================================="
|
||||
@echo "Build names map file"
|
||||
@echo $@
|
||||
@$(NM) $< | sort > $@
|
||||
# @echo "==========================================================="
|
||||
|
||||
$(FLASH_IMAGE): $(RAM1P_IMAGE) $(RAM2P_IMAGE) $(RAM3P_IMAGE)
|
||||
@echo "==========================================================="
|
||||
@echo "Make Flash image ($(FLASH_IMAGE))"
|
||||
# @echo "==========================================================="
|
||||
@mkdir -p $(BIN_DIR)
|
||||
@rm -f $(FLASH_IMAGE)
|
||||
@cat $(RAM1P_IMAGE) > $(FLASH_IMAGE)
|
||||
# @chmod 777 $(FLASH_IMAGE)
|
||||
ifdef PADDINGSIZE
|
||||
@$(PADDING) $(PADDINGSIZE) 0xFF $(FLASH_IMAGE)
|
||||
endif
|
||||
@cat $(RAM2P_IMAGE) >> $(FLASH_IMAGE)
|
||||
@cat $(RAM3P_IMAGE) >> $(FLASH_IMAGE)
|
||||
# @echo "Image ($(FLASH_IMAGE)) size $(shell printf '%d\n' $$(( $$(stat --printf="%s" $(FLASH_IMAGE)) )) ) bytes"
|
||||
# @echo "==========================================================="
|
||||
# @rm $(BIN_DIR)/ram_*.p.bin
|
||||
|
||||
$(OTA_IMAGE): $(RAM2NS_IMAGE) $(RAM3_IMAGE)
|
||||
@echo "==========================================================="
|
||||
@echo "Make OTA image ($(OTA_IMAGE))"
|
||||
@rm -f $(OTA_IMAGE)
|
||||
@cat $(RAM2NS_IMAGE) > $(OTA_IMAGE)
|
||||
@cat $(RAM3P_IMAGE) >> $(OTA_IMAGE)
|
||||
# @chmod 777 $(OTA_IMAGE)
|
||||
@$(CHCKSUM) $(OTA_IMAGE) || true
|
||||
# @echo "==========================================================="
|
||||
|
||||
$(RAM1P_IMAGE): $(ELFFILE) $(NMAPFILE)
|
||||
@echo "==========================================================="
|
||||
@echo "Create image1r ($(RAM1R_IMAGE))"
|
||||
# @echo "===========================================================" .bootloader
|
||||
ifdef COMPILED_BOOT
|
||||
@mkdir -p $(BIN_DIR)
|
||||
@rm -f $(RAM1_IMAGE) $(RAM1R_IMAGE)
|
||||
ifdef COMPILED_BOOT_BIN
|
||||
@$(eval RAM1_START_ADDR := $(shell grep _binary_build_bin_ram_1_r_bin_start $(NMAPFILE) | awk '{print $$1}'))
|
||||
@$(eval RAM1_END_ADDR := $(shell grep _binary_build_bin_ram_1_r_bin_end $(NMAPFILE) | awk '{print $$1}'))
|
||||
else
|
||||
@$(eval RAM1_START_ADDR := $(shell grep __ram_image1_text_start__ $(NMAPFILE) | awk '{print $$1}'))
|
||||
@$(eval RAM1_END_ADDR := $(shell grep __ram_image1_text_end__ $(NMAPFILE) | awk '{print $$1}'))
|
||||
endif
|
||||
$(if $(RAM1_START_ADDR),,$(error "Not found __ram_image1_text_start__!"))
|
||||
$(if $(RAM1_END_ADDR),,$(error "Not found __ram_image1_text_end__!"))
|
||||
ifeq ($(RAM1_START_ADDR),$(RAM1_END_ADDR))
|
||||
ifdef COMPILED_BOOT_BIN
|
||||
$(OBJCOPY) --change-section-address .boot.head=0x10000ba8 -j .boot.head -j .bootloader -Obinary $(ELFFILE) $(RAM1P_IMAGE)
|
||||
else
|
||||
# $(OBJCOPY) -j .rom_ram -Obinary $(ELFFILE) $(RAM_IMAGE)
|
||||
$(OBJCOPY) -j .ram.start.table -j .ram_image1.text -Obinary $(ELFFILE) $(RAM1R_IMAGE)
|
||||
$(PICK) 0x$(RAM1_START_ADDR) 0x$(RAM1_END_ADDR) $(RAM1R_IMAGE) $(RAM1P_IMAGE) head+reset_offset 0x0B000
|
||||
endif
|
||||
else
|
||||
$(error "BOOT-image size = 0")
|
||||
# $(error Flasher: COMPILE_BOOT = No)
|
||||
endif
|
||||
else
|
||||
@if [ -s $(RAM1R_IMAGE) ]; then echo "Use external $(RAM1R_IMAGE)!"; fi
|
||||
endif
|
||||
|
||||
$(RAM2P_IMAGE): $(ELFFILE) $(NMAPFILE)
|
||||
@echo "==========================================================="
|
||||
@echo "Create image2p ($(RAM2P_IMAGE))"
|
||||
# @echo "==========================================================="
|
||||
@mkdir -p $(BIN_DIR)
|
||||
@rm -f $(RAM2_IMAGE) $(RAM2P_IMAGE)
|
||||
@$(eval RAM2_START_ADDR = $(shell grep __ram_image2_text $(NMAPFILE) | grep _start__ | awk '{print $$1}'))
|
||||
@$(eval RAM2_END_ADDR = $(shell grep __ram_image2_text $(NMAPFILE) | grep _end__ | awk '{print $$1}'))
|
||||
$(if $(RAM2_START_ADDR),,$(error "Not found __ram_image2_text_start__!"))
|
||||
$(if $(RAM2_END_ADDR),,$(error "Not found __ram_image2_text_end__!"))
|
||||
@$(OBJCOPY) -j .image2.start.table -j .ram_image2.text -j .ram_image2.rodata -j .ram.data -Obinary $(ELFFILE) $(RAM2_IMAGE)
|
||||
@$(PICK) 0x$(RAM2_START_ADDR) 0x$(RAM2_END_ADDR) $(RAM2_IMAGE) $(RAM2P_IMAGE) body+reset_offset+sig
|
||||
|
||||
$(RAM2NS_IMAGE):$(ELFFILE) $(NMAPFILE)
|
||||
@echo "==========================================================="
|
||||
@echo "Create image2ns ($(RAM2NS_IMAGE))"
|
||||
# @echo "==========================================================="
|
||||
mkdir -p $(BIN_DIR)
|
||||
rm -f $(RAM2_IMAGE) $(RAM2NS_IMAGE)
|
||||
$(eval RAM2_START_ADDR = $(shell grep __ram_image2_text $(NMAPFILE) | grep _start__ | awk '{print $$1}'))
|
||||
$(eval RAM2_END_ADDR = $(shell grep __ram_image2_text $(NMAPFILE) | grep _end__ | awk '{print $$1}'))
|
||||
$(if $(RAM2_START_ADDR),,$(error "Not found __ram_image2_text_start__!"))
|
||||
$(if $(RAM2_END_ADDR),,$(error "Not found __ram_image2_text_end__!"))
|
||||
$(OBJCOPY) -j .image2.start.table -j .ram_image2.text -j .ram_image2.rodata -j .ram.data -Obinary $(ELFFILE) $(RAM2_IMAGE)
|
||||
$(PICK) 0x$(RAM2_START_ADDR) 0x$(RAM2_END_ADDR) $(RAM2_IMAGE) $(RAM2NS_IMAGE) body+reset_offset
|
||||
|
||||
$(RAM3_IMAGE): $(ELFFILE) $(NMAPFILE)
|
||||
@echo "==========================================================="
|
||||
@echo "Create image3 (SDRAM, $(RAM3P_IMAGE))"
|
||||
# @echo "==========================================================="
|
||||
@mkdir -p $(BIN_DIR)
|
||||
@rm -f $(RAM3_IMAGE) $(RAM3P_IMAGE)
|
||||
@$(eval RAM3_START_ADDR = $(shell grep __sdram_data_ $(NMAPFILE) | grep _start__ | awk '{print $$1}'))
|
||||
@$(eval RAM3_END_ADDR = $(shell grep __sdram_data_ $(NMAPFILE) | grep _end__ | awk '{print $$1}'))
|
||||
$(if $(RAM3_START_ADDR),,$(error "Not found __sdram_data_start__!"))
|
||||
$(if $(RAM3_END_ADDR),,$(error "Not found __sdram_data_end__!"))
|
||||
#ifneq ($(RAM3_START_ADDR),$(RAM3_END_ADDR))
|
||||
@echo $(RAM3_START_ADDR) $(RAM3_END_ADDR)
|
||||
@$(OBJCOPY) -j .image3 -j .sdr_text -j .sdr_rodata -j .sdr_data -Obinary $(ELFFILE) $(RAM3_IMAGE)
|
||||
$(PICK) 0x$(RAM3_START_ADDR) 0x$(RAM3_END_ADDR) $(RAM3_IMAGE) $(RAM3P_IMAGE) body+reset_offset
|
||||
#else
|
||||
# @rm -f $(RAM3_IMAGE) $(RAM3P_IMAGE)
|
||||
# @echo "SDRAM not used (size = 0)"
|
||||
#endif
|
||||
|
||||
$(ELFFILE):
|
||||
$(error Falsher: file $@ not found)
|
||||
|
||||
clean:
|
||||
@rm -f $(BIN_DIR)/*.bin
|
||||
|
6
flasher/RTL00ConsoleROM.JLinkScript
Normal file
6
flasher/RTL00ConsoleROM.JLinkScript
Normal file
|
@ -0,0 +1,6 @@
|
|||
h
|
||||
loadbin flasher/RTL00Console_ROM.bin 0x10000ba8
|
||||
r
|
||||
w4 0x40000210,0x4011117
|
||||
g
|
||||
q
|
BIN
flasher/RTL00Console_ROM.bin
Normal file
BIN
flasher/RTL00Console_ROM.bin
Normal file
Binary file not shown.
119
flasher/RTL8710.jflash
Normal file
119
flasher/RTL8710.jflash
Normal file
|
@ -0,0 +1,119 @@
|
|||
AppVersion = 47812
|
||||
[GENERAL]
|
||||
ConnectMode = 0
|
||||
CurrentFile = "fullflash.bin"
|
||||
DataFileSAddr = 0x98000000
|
||||
GUIMode = 0
|
||||
HostName = ""
|
||||
TargetIF = 1
|
||||
USBPort = 0
|
||||
USBSerialNo = 0x00000000
|
||||
[JTAG]
|
||||
IRLen = 0
|
||||
MultipleTargets = 0
|
||||
NumDevices = 0
|
||||
Speed0 = 400
|
||||
Speed1 = 12000
|
||||
TAP_Number = 0
|
||||
UseAdaptive0 = 0
|
||||
UseAdaptive1 = 0
|
||||
UseMaxSpeed0 = 0
|
||||
UseMaxSpeed1 = 0
|
||||
[CPU]
|
||||
CheckCoreID = 0
|
||||
ChipName = "RTL8710AF"
|
||||
ClockSpeed = 0x00000000
|
||||
Core = 0x030000FF
|
||||
CoreID = 0x00000000
|
||||
CoreIDMask = 0x0F000FFF
|
||||
DeviceFamily = 0x00000003
|
||||
EndianMode = 0
|
||||
HasInternalFlash = 0
|
||||
InitStep0_Action = "Reset"
|
||||
InitStep0_Comment = "Reset and Halt"
|
||||
InitStep0_Value0 = 0x00000000
|
||||
InitStep0_Value1 = 0x00000005
|
||||
InitStep1_Action = "Go"
|
||||
InitStep1_Comment = ""
|
||||
InitStep1_Value0 = 0x00000000
|
||||
InitStep1_Value1 = 0x00000000
|
||||
InitStep2_Action = "Reset"
|
||||
InitStep2_Comment = "Reset and halt target"
|
||||
InitStep2_Value0 = 0x00000000
|
||||
InitStep2_Value1 = 0x00000005
|
||||
InitStep3_Action = "Write Register"
|
||||
InitStep3_Comment = "Only T=1"
|
||||
InitStep3_Value0 = 0x00000010
|
||||
InitStep3_Value1 = 0x01000000
|
||||
InitStep4_Action = "Write 32bit"
|
||||
InitStep4_Comment = "Setup SystemCoreClock"
|
||||
InitStep4_Value0 = 0x40000014
|
||||
InitStep4_Value1 = 0x00000001
|
||||
InitStep5_Action = "Delay"
|
||||
InitStep5_Comment = ""
|
||||
InitStep5_Value0 = 0x00000000
|
||||
InitStep5_Value1 = 0x00000005
|
||||
InitStep6_Action = "Write 32bit"
|
||||
InitStep6_Comment = "Write Page Size"
|
||||
InitStep6_Value0 = 0x1FFFFFF0
|
||||
InitStep6_Value1 = 0x00000100
|
||||
InitStep7_Action = "Write 32bit"
|
||||
InitStep7_Comment = "Write Sector Size"
|
||||
InitStep7_Value0 = 0x1FFFFFF4
|
||||
InitStep7_Value1 = 0x00001000
|
||||
InitStep8_Action = "Write 32bit"
|
||||
InitStep8_Comment = "Write Block Size"
|
||||
InitStep8_Value0 = 0x1FFFFFF8
|
||||
InitStep8_Value1 = 0x00010000
|
||||
InitStep9_Action = "Write 32bit"
|
||||
InitStep9_Comment = "Write Block Count"
|
||||
InitStep9_Value0 = 0x1FFFFFFC
|
||||
InitStep9_Value1 = 0x00000010
|
||||
NumExitSteps = 0
|
||||
NumInitSteps = 10
|
||||
RAMAddr = 0x10000000
|
||||
RAMSize = 0x00010000
|
||||
ScriptFile = ""
|
||||
UseAutoSpeed = 0x00000001
|
||||
UseRAM = 1
|
||||
UseScriptFile = 0
|
||||
[FLASH]
|
||||
aSectorSel[0] =
|
||||
AutoDetect = 1
|
||||
BankName = ""
|
||||
BankSelMode = 1
|
||||
BaseAddr = 0x98000000
|
||||
CheckId = 3
|
||||
CustomRAMCode = "RTL8710AF.hex"
|
||||
DeviceName = "Auto detected flash memory"
|
||||
EndBank = 8191
|
||||
NumBanks = 1
|
||||
OrgNumBits = 16
|
||||
OrgNumChips = 1
|
||||
StartBank = 0
|
||||
UseCustomRAMCode = 1
|
||||
[PRODUCTION]
|
||||
AutoPerformsErase = 1
|
||||
AutoPerformsHardLock = 0
|
||||
AutoPerformsHardUnlock = 0
|
||||
AutoPerformsProgram = 1
|
||||
AutoPerformsSecure = 0
|
||||
AutoPerformsSoftLock = 0
|
||||
AutoPerformsSoftUnlock = 1
|
||||
AutoPerformsStartApp = 0
|
||||
AutoPerformsUnsecure = 0
|
||||
AutoPerformsVerify = 1
|
||||
EnableProductionMode = 0
|
||||
EnableTargetPower = 0
|
||||
EraseType = 2
|
||||
ProductionDelay = 0x000001F4
|
||||
ProductionThreshold = 0x00000BB8
|
||||
ProgramSN = 0
|
||||
SerialFile = ""
|
||||
SNAddr = 0x00000000
|
||||
SNInc = 0x00000001
|
||||
SNLen = 0x00000004
|
||||
SNListFile = ""
|
||||
SNValue = 0x00000001
|
||||
TargetPowerDelay = 0x00000014
|
||||
VerifyType = 1
|
130
flasher/RTL8710AF.hex
Normal file
130
flasher/RTL8710AF.hex
Normal file
|
@ -0,0 +1,130 @@
|
|||
:100000007D0439057F05FF056506D506D706000086
|
||||
:10001000D44908707047D44800680005FBD0D14827
|
||||
:100020000078C0B2704710B5D048006850F44070F6
|
||||
:10003000CE490860CE48006850F01000CC490860F6
|
||||
:10004000CC480468062000F0B7F934F00600C9492E
|
||||
:100050000860C848006850F00100C64908600020E8
|
||||
:10006000C54908600020C54908600120C4490860EE
|
||||
:100070000220C44908600020C34908600020C34929
|
||||
:1000800008600020C249086010BD2DE9F04104005D
|
||||
:100090000D001600B6B2002E01D1002048E0B6B225
|
||||
:1000A000112E01DB102006004FF4407000F084F99F
|
||||
:1000B00080465FF4401000F07FF95FF4403000F0BC
|
||||
:1000C0007BF95FF4402000F077F9032010FA08F084
|
||||
:1000D00010F44070AF490860B6B2AF480660032024
|
||||
:1000E000FFF796FF200CC0B2FFF792FF200AC0B2C4
|
||||
:1000F000FFF78EFF2000C0B2FFF78AFF01209E4964
|
||||
:100100000860002007003800310080B289B28842C0
|
||||
:1001100005D2FFF780FFBFB2E8557F1CF3E79F4889
|
||||
:100120000068C007FBD4002093490860300080B20B
|
||||
:10013000BDE8F08138B54FF4407000F03DF905009E
|
||||
:100140005FF4401000F038F95FF4403000F034F90B
|
||||
:100150005FF4402000F030F90320A84010F4407014
|
||||
:100160008C49086003208C4908600120824908609E
|
||||
:100170009F20FFF74DFFFFF74EFF0400FFF74BFFF7
|
||||
:1001800054EA00200400FFF746FF54EA0040040050
|
||||
:1001900082480068C007FBD400207749086020002F
|
||||
:1001A00032BD38B54FF4407000F006F905005FF439
|
||||
:1001B000401000F001F95FF4403000F0FDF85FF40A
|
||||
:1001C000402000F0F9F80320A84010F44070714975
|
||||
:1001D0000860012070490860012067490860052017
|
||||
:1001E000FFF716FFFFF717FF04006C480068C00711
|
||||
:1001F000FBD40020604908602000C0B232BD38B591
|
||||
:1002000004004FF4407000F0D7F805005FF4401090
|
||||
:1002100000F0D2F85FF4403000F0CEF85FF44020F8
|
||||
:1002200000F0CAF80120A84010F440705949086055
|
||||
:100230000120514908602000C0B2FFF7E9FE57488D
|
||||
:100240000068C007FBD400204B49086031BD38B5B9
|
||||
:1002500004004FF4407000F0AFF805005FF4401068
|
||||
:1002600000F0AAF85FF4403000F0A6F85FF44020F8
|
||||
:1002700000F0A2F80120A84010F440704549086041
|
||||
:1002800001203D4908602020FFF7C2FE200CC0B2CB
|
||||
:10029000FFF7BEFE200AC0B2FFF7BAFE2000C0B2D0
|
||||
:1002A000FFF7B6FE3D480068C007FBD40020324986
|
||||
:1002B000086031BD2DE9F04104000D001600B6B212
|
||||
:1002C000002E01D100204BE0B6B2B6F5807F02DDF2
|
||||
:1002D0004FF4807006004FF4407000F06DF88046D7
|
||||
:1002E0005FF4401000F068F85FF4403000F064F80C
|
||||
:1002F0005FF4402000F060F8012010FA08F010F4DC
|
||||
:1003000040702449086001201B4908600220FFF763
|
||||
:100310007FFE200CC0B2FFF77BFE200AC0B2FFF7C1
|
||||
:1003200077FE2000C0B2FFF773FE00200700380000
|
||||
:10033000310080B289B2884205D2BFB2E85DFFF7D2
|
||||
:1003400067FE7F1CF3E7154800684007FBD513489C
|
||||
:100350000068C007FBD4002007490860300080B265
|
||||
:10036000BDE8F08160600040246000403002004041
|
||||
:1003700010020040C0020040086000402C600040B5
|
||||
:100380001060004014600040186000401C60004095
|
||||
:100390004C60004000600040046000402860004065
|
||||
:1003A00080B5FFF7FEFEC007FBD401BD80B5FFF7A7
|
||||
:1003B000F8FE8007FBD501BD90FAA0F0B0FA80F0FE
|
||||
:1003C00070470000010051EA510151EA910151EAE0
|
||||
:1003D000111151EA112151EA1141064A7A441432AD
|
||||
:1003E000DFF8B03203FB01F3DB0E52F823201000DC
|
||||
:1003F000704700BF80030000DFF89C02006850F0E7
|
||||
:100400004070DFF894120860DFF89002006850F442
|
||||
:100410008070DFF888120860FF20DFF8841208601F
|
||||
:10042000FF20DFF880120860704780B500F054F9B3
|
||||
:1004300001BD0120DFF870120860704780B571B609
|
||||
:1004400072B6FFF7F6FFFFF7D7FFFFF7EEFF01BD2C
|
||||
:1004500080B5FFF7E8FDFFF7A3FFFFF76BFEFFF79F
|
||||
:100460009FFF92480068FFF7ADFF914908609148EF
|
||||
:100470000068FFF7A7FF9049086001BDF8B50400C8
|
||||
:100480000D0016008D4800688D49884204D18D48C2
|
||||
:1004900000688D49884209D08948884908608A489F
|
||||
:1004A00088490860FFF7CAFFFFF7D2FF814800685C
|
||||
:1004B00086490968864A12685143B1FBF0F27368B5
|
||||
:1004C00040271F807A4F3F689F700027DF70012709
|
||||
:1004D0001F7101275F7100279F710127DF710127BD
|
||||
:1004E0001F7200275F7201279F7201271F6100277B
|
||||
:1004F000DFF8DCC1DCF800C067451CD2DFF8CCC1F6
|
||||
:10050000DCF800C00CFB07FC5FF00C0E0EFB07FED6
|
||||
:100510009E44CEF814C05FF00C0C0CFB07FC9C440E
|
||||
:10052000CCF818205FF00C0C0CFB07FC9C44CCF8BA
|
||||
:100530001C007F1CDCE7F1BD2DE9F04704000D0035
|
||||
:1005400016007769D6F81080D6F80490002F14D0E2
|
||||
:10055000200000F0C0F8112F02D35FF0100A00E075
|
||||
:10056000BA46524692B249464046FFF78EFD1AEB14
|
||||
:100570000808D144B7EB0A07E8E7BDE8F0872DE9A2
|
||||
:10058000F84F04000D0016000020286077694848E5
|
||||
:100590000068B84638FA00F8D6F810904448006869
|
||||
:1005A00039FA00F9D6F804A0B8F1000F25D0B7F554
|
||||
:1005B000807F02D94FF4807B00E0BB46FFF7F0FE5E
|
||||
:1005C0000620FFF71CFEFFF7F1FE5A4692B2514695
|
||||
:1005D0003648006800FB09F0FFF76CFEFFF7E0FE0D
|
||||
:1005E0000420FFF70CFEFFF7DBFEDA44B7EB0B0746
|
||||
:1005F000B8F1010819F10109D6E7BDE8F18F2DE93D
|
||||
:10060000F84304000D00160030692B490968C84002
|
||||
:10061000070070698046002028602648006800FBBB
|
||||
:1006200007F08146B8F1000F1AD0200000F053F80F
|
||||
:10063000FFF7B6FE0620FFF7E2FDFFF7B7FE4846DC
|
||||
:10064000FFF705FEFFF7ACFE0420FFF7D8FDFFF72C
|
||||
:10065000A7FE1848006810EB0909B8F10108E1E7A6
|
||||
:10066000BDE8F18310B504001448006814498842BD
|
||||
:1006700004D1144800681449884209D010480F4931
|
||||
:10068000086011480F490860FFF7D8FEFFF7E0FE49
|
||||
:1006900010BD0000DDACC407300200401C02004069
|
||||
:1006A000200300402403004014000040F0FFFF1F1F
|
||||
:1006B000E0FFFF1FF4FFFF1FE4FFFF1FE8FFFF1F26
|
||||
:1006C000AA55AA55ECFFFF1F55AA55AAF8FFFF1F10
|
||||
:1006D000FCFFFF1F7047704710B51E48006850F4BC
|
||||
:1006E00040501C4908601C48006850F480501A496A
|
||||
:1006F00008601A4800684006FBD5194804685FF492
|
||||
:100700004000FFF759FE34F44000154908601448D2
|
||||
:10071000006850F4801012490860002011490860F8
|
||||
:100720001148006850F080000F49086044200F49CC
|
||||
:10073000086000200B49086003240320FFF73CFEFB
|
||||
:1007400014FA00F010F0030007490860002008497F
|
||||
:10075000086010BD3002004010020040143000401C
|
||||
:10076000C0020040043000400C3000400030004027
|
||||
:1007700008300040000000000900000001000000F7
|
||||
:100780000A0000000D00000015000000020000003B
|
||||
:100790001D0000000B0000000E0000001000000013
|
||||
:1007A0001200000016000000190000000300000005
|
||||
:1007B0001E000000080000000C00000014000000F3
|
||||
:1007C0001C0000000F0000001100000018000000D5
|
||||
:1007D00007000000130000001B00000017000000CD
|
||||
:1007E000060000001A0000000500000004000000E0
|
||||
:0407F0001F000000E6
|
||||
:0400000500000000F7
|
||||
:00000001FF
|
153
flasher/RTL8710AF.jflash
Normal file
153
flasher/RTL8710AF.jflash
Normal file
|
@ -0,0 +1,153 @@
|
|||
AppVersion = 61001
|
||||
FileVersion = 2
|
||||
[GENERAL]
|
||||
ConnectMode = 0
|
||||
CurrentFile = ""
|
||||
DataFileSAddr = 0x00000000
|
||||
GUIMode = 0
|
||||
HostName = ""
|
||||
TargetIF = 1
|
||||
USBPort = 0
|
||||
USBSerialNo = 0x00000000
|
||||
[JTAG]
|
||||
IRLen = 0
|
||||
MultipleTargets = 0
|
||||
NumDevices = 0
|
||||
Speed0 = 6000
|
||||
Speed1 = 6000
|
||||
TAP_Number = 0
|
||||
UseAdaptive0 = 0
|
||||
UseAdaptive1 = 0
|
||||
UseMaxSpeed0 = 0
|
||||
UseMaxSpeed1 = 0
|
||||
[CPU]
|
||||
NumInitSteps = 18
|
||||
InitStep0_Action = "Reset"
|
||||
InitStep0_Value0 = 0x00000000
|
||||
InitStep0_Value1 = 0x00000000
|
||||
InitStep0_Comment = "Reset and halt target"
|
||||
InitStep1_Action = "Read 32bit"
|
||||
InitStep1_Value0 = 0x40000230
|
||||
InitStep1_Value1 = 0x00000000
|
||||
InitStep1_Comment = "enable spi flash peripheral clock"
|
||||
InitStep2_Action = "Var OR"
|
||||
InitStep2_Value0 = 0x00000000
|
||||
InitStep2_Value1 = 0x00000300
|
||||
InitStep2_Comment = ""
|
||||
InitStep3_Action = "Var Write 32bit"
|
||||
InitStep3_Value0 = 0x40000230
|
||||
InitStep3_Value1 = 0x00000000
|
||||
InitStep3_Comment = ""
|
||||
InitStep4_Action = "Read 32bit"
|
||||
InitStep4_Value0 = 0x40000210
|
||||
InitStep4_Value1 = 0x00000000
|
||||
InitStep4_Comment = "enable spi flash peripheral"
|
||||
InitStep5_Action = "Var OR"
|
||||
InitStep5_Value0 = 0x00000000
|
||||
InitStep5_Value1 = 0x00000010
|
||||
InitStep5_Comment = ""
|
||||
InitStep6_Action = "Var Write 32bit"
|
||||
InitStep6_Value0 = 0x40000210
|
||||
InitStep6_Value1 = 0x00000000
|
||||
InitStep6_Comment = ""
|
||||
InitStep7_Action = "Read 32bit"
|
||||
InitStep7_Value0 = 0x400002C0
|
||||
InitStep7_Value1 = 0x00000000
|
||||
InitStep7_Comment = "select spi flash pinout (0 - internal), enable spi flash pins"
|
||||
InitStep8_Action = "Var AND"
|
||||
InitStep8_Value0 = 0x00000000
|
||||
InitStep8_Value1 = 0xFFFFFFF8
|
||||
InitStep8_Comment = ""
|
||||
InitStep9_Action = "Var OR"
|
||||
InitStep9_Value0 = 0x00000000
|
||||
InitStep9_Value1 = 0x00000001
|
||||
InitStep9_Comment = ""
|
||||
InitStep10_Action = "Var Write 32bit"
|
||||
InitStep10_Value0 = 0x400002C0
|
||||
InitStep10_Value1 = 0x00000000
|
||||
InitStep10_Comment = ""
|
||||
InitStep11_Action = "Write 32bit"
|
||||
InitStep11_Value0 = 0x40006008
|
||||
InitStep11_Value1 = 0x00000000
|
||||
InitStep11_Comment = "disable SPI FLASH operation"
|
||||
InitStep12_Action = "Write 32bit"
|
||||
InitStep12_Value0 = 0x4000602C
|
||||
InitStep12_Value1 = 0x00000000
|
||||
InitStep12_Comment = "disable all interrupts"
|
||||
InitStep13_Action = "Write 32bit"
|
||||
InitStep13_Value0 = 0x40006010
|
||||
InitStep13_Value1 = 0x00000001
|
||||
InitStep13_Comment = "use first 'slave select' pin"
|
||||
InitStep14_Action = "Write 32bit"
|
||||
InitStep14_Value0 = 0x40006014
|
||||
InitStep14_Value1 = 0x00000002
|
||||
InitStep14_Comment = "baud rate, default value"
|
||||
InitStep15_Action = "Write 32bit"
|
||||
InitStep15_Value0 = 0x40006018
|
||||
InitStep15_Value1 = 0x00000000
|
||||
InitStep15_Comment = "tx fifo threshold"
|
||||
InitStep16_Action = "Write 32bit"
|
||||
InitStep16_Value0 = 0x4000601C
|
||||
InitStep16_Value1 = 0x00000000
|
||||
InitStep16_Comment = "rx fifo threshold"
|
||||
InitStep17_Action = "Write 32bit"
|
||||
InitStep17_Value0 = 0x4000604C
|
||||
InitStep17_Value1 = 0x00000000
|
||||
InitStep17_Comment = "disable DMA"
|
||||
NumExitSteps = 1
|
||||
ExitStep0_Action = "Write 32bit"
|
||||
ExitStep0_Value0 = 0x40000210
|
||||
ExitStep0_Value1 = 0x00211157
|
||||
ExitStep0_Comment = "Boot from Flash"
|
||||
UseScriptFile = 0
|
||||
ScriptFile = ""
|
||||
UseRAM = 1
|
||||
RAMAddr = 0x10000000
|
||||
RAMSize = 0x00060000
|
||||
CheckCoreID = 1
|
||||
CoreID = 0x2BA01477
|
||||
CoreIDMask = 0xFFFFFFFF
|
||||
UseAutoSpeed = 0x00000001
|
||||
ClockSpeed = 0x00000000
|
||||
EndianMode = 0
|
||||
ChipName = "Cortex-M3"
|
||||
[FLASH]
|
||||
aRangeSel[1] = 0-18
|
||||
BankSelMode = 1
|
||||
BaseAddr = 0x98000000
|
||||
CheckId = 0
|
||||
CustomRAMCode = "D:\MCU\SEGGER\JLink_V610a\Samples\JFlash\ProjectFiles\Atmel\AT91SAM9261_DataFlash_SPI0\RAMCodeV2_AT91SAM9261_DataFlash_SPI0_LE.mot"
|
||||
DeviceName = "Am29F800BB"
|
||||
NumBanks = 1
|
||||
OrgNumBits = 16
|
||||
OrgNumChips = 1
|
||||
[PRODUCTION]
|
||||
AutoBlankCheck = 1
|
||||
AutoDisconnect = 0
|
||||
AutoMode = 0
|
||||
AutoPerformsErase = 0
|
||||
AutoPerformsProgram = 0
|
||||
AutoPerformsSecure = 0
|
||||
AutoPerformsStartApp = 0
|
||||
AutoPerformsUnsecure = 0
|
||||
AutoPerformsVerify = 1
|
||||
EnableTargetPower = 0
|
||||
EraseType = 2
|
||||
MonitorVTref = 0
|
||||
MonitorVTrefMax = 0x0000157C
|
||||
MonitorVTrefMin = 0x000003E8
|
||||
OverrideTimeouts = 0
|
||||
ProgramSN = 0
|
||||
SerialFile = ""
|
||||
SkipBlankOnRead = 0
|
||||
SNAddr = 0x00000000
|
||||
SNInc = 0x00000001
|
||||
SNLen = 0x00000008
|
||||
SNListFile = ""
|
||||
SNValue = 0x00000001
|
||||
StartAppType = 0
|
||||
TargetPowerDelay = 0x00000014
|
||||
TimeoutErase = 0x00003A98
|
||||
TimeoutProgram = 0x00002710
|
||||
TimeoutVerify = 0x00002710
|
||||
VerifyType = 1
|
17
flasher/RTL_FFlash.JLinkScript
Normal file
17
flasher/RTL_FFlash.JLinkScript
Normal file
|
@ -0,0 +1,17 @@
|
|||
h
|
||||
r
|
||||
w4 0x40000230,0x0000D3C4
|
||||
w4 0x40000210,0x00200113
|
||||
w4 0x400002C0,0x00110001
|
||||
w4 0x40006008,0
|
||||
w4 0x4000602C,0
|
||||
w4 0x40006010,1
|
||||
w4 0x40006014,2
|
||||
w4 0x40006018,0
|
||||
w4 0x4000601C,0
|
||||
w4 0x4000604C,0
|
||||
savebin fullflash.bin 0x98000000 0x100000
|
||||
w4 0x40000210,0x211157
|
||||
r
|
||||
g
|
||||
q
|
9
flasher/RTL_Reset.JLinkScript
Normal file
9
flasher/RTL_Reset.JLinkScript
Normal file
|
@ -0,0 +1,9 @@
|
|||
r0
|
||||
trst0
|
||||
r1
|
||||
trst1
|
||||
h
|
||||
r
|
||||
w4 0x40000210,0x111157
|
||||
g
|
||||
q
|
12
flasher/RTL_RunRAM.JLinkScript
Normal file
12
flasher/RTL_RunRAM.JLinkScript
Normal file
|
@ -0,0 +1,12 @@
|
|||
r0
|
||||
trst0
|
||||
r1
|
||||
trst1
|
||||
h
|
||||
r
|
||||
loadbin build/bin/ram_1.r.bin 0x10000bc8
|
||||
loadbin build/bin/ram_2.bin 0x10006000
|
||||
r
|
||||
w4 0x40000210,0x20111157
|
||||
g
|
||||
q
|
124
flasher/ameba1.cfg
Normal file
124
flasher/ameba1.cfg
Normal file
|
@ -0,0 +1,124 @@
|
|||
# Main file for Ameba1 series Cortex-M3 parts
|
||||
#
|
||||
# !!!!!!
|
||||
#
|
||||
|
||||
set CHIPNAME rtl8195a
|
||||
set CHIPSERIES ameba1
|
||||
|
||||
# Adapt based on what transport is active.
|
||||
source [find target/swj-dp.tcl]
|
||||
|
||||
if { [info exists CHIPNAME] } {
|
||||
set _CHIPNAME $CHIPNAME
|
||||
} else {
|
||||
error "CHIPNAME not set. Please do not include ameba1.cfg directly."
|
||||
}
|
||||
|
||||
if { [info exists CHIPSERIES] } {
|
||||
# Validate chip series is supported
|
||||
if { $CHIPSERIES != "ameba1" } {
|
||||
error "Unsupported chip series specified."
|
||||
}
|
||||
set _CHIPSERIES $CHIPSERIES
|
||||
} else {
|
||||
error "CHIPSERIES not set. Please do not include ameba1.cfg directly."
|
||||
}
|
||||
|
||||
if { [info exists CPUTAPID] } {
|
||||
# Allow user override
|
||||
set _CPUTAPID $CPUTAPID
|
||||
} else {
|
||||
# Ameba1 use a Cortex M3 core.
|
||||
if { $_CHIPSERIES == "ameba1" } {
|
||||
if { [using_jtag] } {
|
||||
set _CPUTAPID 0x4ba00477
|
||||
} {
|
||||
set _CPUTAPID 0x2ba01477
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID
|
||||
|
||||
set _TARGETNAME $_CHIPNAME.cpu
|
||||
target create $_TARGETNAME cortex_m -chain-position $_TARGETNAME
|
||||
|
||||
|
||||
# Run with *real slow* clock by default since the
|
||||
# boot rom could have been playing with the PLL, so
|
||||
# we have no idea what clock the target is running at.
|
||||
adapter_khz 1000
|
||||
|
||||
# delays on reset lines
|
||||
adapter_nsrst_delay 200
|
||||
if {[using_jtag]} {
|
||||
jtag_ntrst_delay 200
|
||||
}
|
||||
|
||||
|
||||
# Ameba1 (Cortex M3 core) support SYSRESETREQ
|
||||
if {![using_hla]} {
|
||||
# if srst is not fitted use SYSRESETREQ to
|
||||
# perform a soft reset
|
||||
cortex_m reset_config sysresetreq
|
||||
}
|
||||
|
||||
$_TARGETNAME configure -event reset-init {ameba1_init}
|
||||
|
||||
# Ameba1 SDRAM enable
|
||||
proc ameba1_init { } {
|
||||
# init System
|
||||
mww 0x40000014 0x00000021
|
||||
sleep 10
|
||||
mww 0x40000304 0x1fc00002
|
||||
sleep 10
|
||||
mww 0x40000250 0x00000400
|
||||
sleep 10
|
||||
mww 0x40000340 0x00000000
|
||||
sleep 10
|
||||
mww 0x40000230 0x0000dcc4
|
||||
sleep 10
|
||||
mww 0x40000210 0x00011117
|
||||
sleep 10
|
||||
mww 0x40000210 0x00011157
|
||||
sleep 10
|
||||
mww 0x400002c0 0x00110011
|
||||
sleep 10
|
||||
mww 0x40000320 0xffffffff
|
||||
sleep 10
|
||||
# init SDRAM
|
||||
mww 0x40000040 0x00fcc702
|
||||
sleep 10
|
||||
mdw 0x40000040
|
||||
mww 0x40005224 0x00000001
|
||||
sleep 10
|
||||
mww 0x40005004 0x00000208
|
||||
sleep 10
|
||||
mww 0x40005008 0xffffd000
|
||||
sleep 13
|
||||
mww 0x40005020 0x00000022
|
||||
sleep 13
|
||||
mww 0x40005010 0x09006201
|
||||
sleep 13
|
||||
mww 0x40005014 0x00002611
|
||||
sleep 13
|
||||
mww 0x40005018 0x00068413
|
||||
sleep 13
|
||||
mww 0x4000501c 0x00000042
|
||||
sleep 13
|
||||
mww 0x4000500c 0x700 ;# set Idle
|
||||
sleep 20
|
||||
mww 0x40005000 0x1 ;# start init
|
||||
sleep 100
|
||||
mdw 0x40005000
|
||||
mww 0x4000500c 0x600 ;# enter memory mode
|
||||
sleep 30
|
||||
|
||||
mww 0x40005008 0x00000000 ;# 0xf00
|
||||
;# mww 0x40005008 0x00000f00
|
||||
sleep 3
|
||||
mww 0x40000300 0x0006005e ;# 0x5e
|
||||
;# mww 0x40000300 0x0000005e
|
||||
sleep 3
|
||||
}
|
99
flasher/cortex.ocd
Normal file
99
flasher/cortex.ocd
Normal file
|
@ -0,0 +1,99 @@
|
|||
proc cortex_bootstrap {start} {
|
||||
# disable interrupts
|
||||
reg faultmask 0x01
|
||||
set vectors ""
|
||||
mem2array vectors 32 $start 2
|
||||
reg sp $vectors(0)
|
||||
reg pc $vectors(1)
|
||||
resume
|
||||
}
|
||||
|
||||
proc cortex_reboot {} {
|
||||
set ddd [ format "0x%08x" [ rtl8710_flasher_mrw [ expr 0x40000210 ] ] ]
|
||||
# set aaa [ format "0x%08x" [ expr 0x40000210 ] ]
|
||||
echo "CLK_CTRL1 = $ddd"
|
||||
# echo "# Set processor clock to default before system reset"
|
||||
set ddd [ format "0x%08x" [ rtl8710_flasher_mrw [ expr 0x40000014 ] ] ]
|
||||
# set aaa [ format "0x%08x" [ expr 0x40000014 ] ]
|
||||
echo "SOC_FUNC_EN = $ddd"
|
||||
# mww 0x40000014 0x00000021
|
||||
sleep 10
|
||||
echo "# Reboot (system reset)"
|
||||
mww 0xE000ED0C 0x05FA0007
|
||||
}
|
||||
|
||||
proc init_system {} {
|
||||
# Set processor clock to default before system reset
|
||||
# CLK_CTRL1
|
||||
# mww 0x40000014 0x00000011
|
||||
mww 0x40000014 0x00000021
|
||||
sleep 10
|
||||
# PESOC_SOC_CTRL
|
||||
# mww 0x40000304 0x1fc00001
|
||||
mww 0x40000304 0x1fc00002
|
||||
sleep 10
|
||||
# PESOC_CLK_SEL
|
||||
mww 0x40000250 0x00000400
|
||||
sleep 10
|
||||
# GPIO_PULL_CTRL4
|
||||
mww 0x40000340 0x00000000
|
||||
sleep 10
|
||||
# PESOC_CLK_CTRL
|
||||
# mww 0x40000230 0x0000d3c4
|
||||
mww 0x40000230 0x0000dcc4
|
||||
sleep 10
|
||||
# SOC_FUNC_EN: FUN|OCP|LXBUS|FLASH|CPU|LOG_UART|GTIMER|SECURITY_ENGINE
|
||||
# mww 0x40000210 0x00211117
|
||||
mww 0x40000210 0x00011117
|
||||
sleep 10
|
||||
# SOC_FUNC_EN: FUN|OCP|LXBUS|FLASH|CPU|LOG_UART|GTIMER|SECURITY_ENGINE + MEM_CTRL
|
||||
mww 0x40000210 0x00011157
|
||||
sleep 10
|
||||
# CPU_PERIPHERAL_CTRL SPI_FLASH_PIN_EN|SDR_PIN_EN|SWD_PIN_EN|LOG_UART_PIN_EN ?
|
||||
# mww 0x400002c0 0x00110000
|
||||
mww 0x400002c0 0x00110011
|
||||
sleep 10
|
||||
# GPIO_SHTDN_CTRL
|
||||
# mww 0x40000320 0x00000033
|
||||
mww 0x40000320 0xffffffff
|
||||
sleep 10
|
||||
|
||||
mww 0x40005008 0x00000000
|
||||
sleep 10
|
||||
# PESOC_MEM_CTRL
|
||||
mww 0x40000300 0x0006005e
|
||||
sleep 10
|
||||
|
||||
# set baudrate to 38400
|
||||
# mww 0x40003010 0x00000080
|
||||
# mww 0x40003008 0x00000022
|
||||
# mww 0x4000300C 0x00000000
|
||||
# mww 0x40003010 0x00000000
|
||||
}
|
||||
|
||||
proc boot_from_flash {} {
|
||||
echo "# skip sdram init, it has been init in openocd config"
|
||||
mww 0x40000210 0x211157
|
||||
}
|
||||
|
||||
proc boot_from_ram {} {
|
||||
echo "# boot from ram, igonore loading flash"
|
||||
mww 0x40000210 0x8011157
|
||||
}
|
||||
|
||||
proc restart_from_falsh {} {
|
||||
init
|
||||
init_system
|
||||
boot_from_flash
|
||||
cortex_reboot
|
||||
}
|
||||
|
||||
proc load_ram_binary { local_filename address } {
|
||||
# set address 0x10000BC8
|
||||
init
|
||||
reset halt
|
||||
set size [file size $local_filename]
|
||||
load_image $local_filename $address bin $address $size
|
||||
boot_from_ram
|
||||
resume
|
||||
}
|
7
flasher/file_info.jlink
Normal file
7
flasher/file_info.jlink
Normal file
|
@ -0,0 +1,7 @@
|
|||
define call1
|
||||
set $ImageSize = 0xF1E0
|
||||
set $ImageAddr = 0x0D0000
|
||||
end
|
||||
define call2
|
||||
FlasherWrite build/bin/WEBFiles.bin $ImageAddr $ImageSize
|
||||
end
|
9
flasher/flash_file.jlink
Normal file
9
flasher/flash_file.jlink
Normal file
|
@ -0,0 +1,9 @@
|
|||
define call1
|
||||
SetFirwareSize build/bin/ram_all.bin
|
||||
end
|
||||
define call2
|
||||
FlasherWrite build/bin/ram_all.bin 0 $Image1Size
|
||||
end
|
||||
define call3
|
||||
FlasherWrite build/bin/ram_all.bin $Image2Addr $Image2Size
|
||||
end
|
198
flasher/gdb_flasher.jlink
Normal file
198
flasher/gdb_flasher.jlink
Normal file
|
@ -0,0 +1,198 @@
|
|||
####################################
|
||||
# J-LINK GDB SERVER initialization #
|
||||
####################################
|
||||
define InitJlink
|
||||
printf "Jlink Init:\n"
|
||||
set verbose off
|
||||
set complaints 0
|
||||
set confirm off
|
||||
set exec-done-display off
|
||||
show exec-done-display
|
||||
set trace-commands off
|
||||
#set debug aix-thread off
|
||||
#set debug dwarf2-die 0
|
||||
set debug displaced off
|
||||
set debug expression 0
|
||||
set debug frame 0
|
||||
set debug infrun 0
|
||||
set debug observer 0
|
||||
set debug overload 0
|
||||
#set debugvarobj 0
|
||||
set pagination off
|
||||
set print address off
|
||||
set print symbol-filename off
|
||||
set print symbol off
|
||||
set print pretty off
|
||||
set print object off
|
||||
#set debug notification off
|
||||
set debug parser off
|
||||
set debug remote 0
|
||||
target remote localhost:2331
|
||||
set remotetimeout 10000
|
||||
monitor device Cortex-M3
|
||||
monitor endian little
|
||||
monitor reset
|
||||
# Set max speed
|
||||
monitor speed 4000
|
||||
set mem inaccessible-by-default off
|
||||
# Setup GDB FOR FASTER DOWNLOADS
|
||||
set remote memory-write-packet-size 8192
|
||||
set remote memory-write-packet-size fixed
|
||||
end
|
||||
#############
|
||||
# Boot_Flash
|
||||
define SetBootFlash
|
||||
printf "SetBoot = Flash:\n"
|
||||
monitor long 0x40000210 = 0x211157
|
||||
end
|
||||
# Boot RAM start_addr0() Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x80000000 )
|
||||
define SetBootCall0
|
||||
printf "SetBoot = Call0:\n"
|
||||
monitor long 0x40000210 = 0x80111157
|
||||
end
|
||||
# Boot RAM start_addr1() Run if ( v40000210 & 0x20000000 )
|
||||
define SetBootCall1
|
||||
printf "SetBoot = Call1:\n"
|
||||
monitor long 0x40000210 = 0x20111157
|
||||
end
|
||||
# Boot RAM start_addr2() Run if ( v40000210 & 0x10000000 )
|
||||
define SetBootCall2
|
||||
printf "SetBoot = Call2:\n"
|
||||
monitor long 0x40000210 = 0x10111157
|
||||
end
|
||||
# Boot RAM start_addr3() Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x8000000 )
|
||||
define SetBootCall3
|
||||
printf "SetBoot = Call3:\n"
|
||||
monitor long 0x40000210 = 0x8111157
|
||||
end
|
||||
# Boot RAM start_addr4() Init console, Run if ( v40000210 & 0x4000000 )
|
||||
define SetBootCall4
|
||||
printf "SetBoot = Call4:\n"
|
||||
monitor long 0x40000210 = 0x4111157
|
||||
end
|
||||
# CPU CLK 166 MHz?
|
||||
define SetClk166MHz
|
||||
printf "SetCLK 166.66MHz:\n"
|
||||
monitor long 0x40000014 = 0x00000011
|
||||
end
|
||||
# CPU CLK 83 MHz?
|
||||
define SetClk83MHz
|
||||
printf "SetCLK 83.33MHz:\n"
|
||||
monitor long 0x40000014 = 0x00000021
|
||||
end
|
||||
###############
|
||||
# System Init #
|
||||
###############
|
||||
define SystemInit
|
||||
printf "System Init:\n"
|
||||
monitor long 0x40000304 = 0x1FC00002
|
||||
monitor long 0x40000250 = 0x400
|
||||
monitor long 0x40000340 = 0x0
|
||||
monitor long 0x40000230 = 0xdcc4
|
||||
monitor long 0x40000210 = 0x11117
|
||||
monitor long 0x40000210 = 0x11157
|
||||
monitor long 0x400002c0 = 0x110011
|
||||
monitor long 0x40000320 = 0xffffffff
|
||||
end
|
||||
############
|
||||
# SPI Init #
|
||||
############
|
||||
define SPI_Init
|
||||
printf "Init SPI:\n"
|
||||
#enable spi flash peripheral clock
|
||||
set $Temp = {int}(0x40000230)
|
||||
set $Temp = ($Temp | 0x300)
|
||||
set {int}(0x40000230) = $Temp
|
||||
#enable spi flash peripheral
|
||||
set $Temp = {int}(0x40000210)
|
||||
set $Temp = ($Temp | 0x10)
|
||||
set {int}(0x40000210) = $Temp
|
||||
#select spi flash pinout (0 - internal), enable spi flash pins
|
||||
set $Temp = {int}(0x400002C0)
|
||||
set $Temp = (($Temp & 0xFFFFFFF8) | 1)
|
||||
set {int}(0x400002C0) = $Temp
|
||||
#disable SPI FLASH operation
|
||||
monitor long 0x40006008 = 0
|
||||
#disable all interrupts
|
||||
monitor long 0x4000602C = 0
|
||||
#use first "slave select" pin
|
||||
monitor long 0x40006010 = 1
|
||||
#baud rate, default value
|
||||
monitor long 0x40006014 = 2
|
||||
#tx fifo threshold
|
||||
monitor long 0x40006018 = 0
|
||||
#rx fifo threshold
|
||||
monitor long 0x4000601C = 0
|
||||
#disable DMA
|
||||
monitor long 0x4000604C = 0
|
||||
set $SPI_FLASH_BASE = 0x98000000
|
||||
end
|
||||
###################
|
||||
# SetFirwareSize #
|
||||
###################
|
||||
define SetFirwareSize
|
||||
set $rambuffer = 0x10000300
|
||||
printf "Get ImagesSize:\n"
|
||||
restore $arg0 binary $rambuffer 0 0x20
|
||||
set $Image1Size = {int}($rambuffer+0x10) + 32
|
||||
set $Image1LoadAddr = {int}($rambuffer+0x14)
|
||||
set $Image2Addr = {short}($rambuffer+0x18) * 1024
|
||||
if $Image1Size != 0 && $Image1Size < 0x1000000
|
||||
if $Image2Addr == 0
|
||||
set $Image2Addr = $Image1Size
|
||||
end
|
||||
printf "Image1Size = %d\n", $Image1Size
|
||||
printf "Image1LoadAddr = 0x%08x\n", $Image1LoadAddr
|
||||
printf "Image2FlashAddr = 0x%08x\n", $Image2Addr
|
||||
set $parms1 = $rambuffer - $Image2Addr
|
||||
set $parms3 = $Image2Addr + 0x08
|
||||
restore $arg0 binary $parms1 $Image2Addr $parms3
|
||||
set $Image2Size = {int}($rambuffer)
|
||||
set $Image2LoadAddr = {int}($rambuffer+0x4)
|
||||
if $Image2Size != 0xFFFFFFFF && $Image2Size != 0
|
||||
set $Image2Size = $Image2Size + 16
|
||||
printf "Image2Size = %d\n", $Image2Size
|
||||
printf "Image2LoadAddr = 0x%08x\n", $Image2LoadAddr
|
||||
set $FirmwareSize = $Image2Addr + $Image2Size
|
||||
printf "FirmwareSize = %d\n", $FirmwareSize
|
||||
else
|
||||
set $Image2Size = 0
|
||||
printf "Image2 - None\n"
|
||||
set $FirmwareSize = $Image1Size
|
||||
printf "FirmwareSize = %d\n", $FirmwareSize
|
||||
end
|
||||
else
|
||||
set $Image1Size = 0
|
||||
set $Image2Size = 0
|
||||
set $Image2Addr = 0
|
||||
set $FirmwareSize = 0
|
||||
printf "Image not format Firmware!\n"
|
||||
end
|
||||
end
|
||||
#####################
|
||||
# Flash Images Info #
|
||||
#####################
|
||||
define FlashImagesInfo
|
||||
printf "Flash Info:\n"
|
||||
set $Image1Size = {int}($SPI_FLASH_BASE + 0x10) + 32
|
||||
set $Image1LoadAddr = {int}($SPI_FLASH_BASE + 0x14)
|
||||
if $Image1LoadAddr == 0xFFFFFFFF
|
||||
printf "Image1 - None\n"
|
||||
else
|
||||
set $Image2FlashAddr = {short}($SPI_FLASH_BASE + 0x18) * 1024
|
||||
if $Image2FlashAddr == 0
|
||||
$Image2FlashAddr = $Image1Size
|
||||
end
|
||||
set $Image2Size = {int}($Image2FlashAddr + $SPI_FLASH_BASE)
|
||||
set $Image2LoadAddr = {int}($Image2FlashAddr + $SPI_FLASH_BASE + 0x4)
|
||||
printf "Image1Size = %d\n", $Image1Size
|
||||
printf "Image1LoadAddr = 0x%08x\n", $Image1LoadAddr
|
||||
printf "Image2FlashAddr = 0x%08x\n", $Image2FlashAddr
|
||||
if $Image2Size != 0xFFFFFFFF
|
||||
printf "Image2Size = %d\n", $Image2Size
|
||||
printf "Image2LoadAddr = 0x%08x\n", $Image2LoadAddr
|
||||
else
|
||||
printf "Image2 - None\n"
|
||||
end
|
||||
end
|
||||
end
|
30
flasher/gdb_init.jlink
Normal file
30
flasher/gdb_init.jlink
Normal file
|
@ -0,0 +1,30 @@
|
|||
#
|
||||
# J-LINK GDB SERVER initialization
|
||||
#
|
||||
target remote localhost:2331
|
||||
set remotetimeout 10000
|
||||
monitor device Cortex-M3
|
||||
monitor endian little
|
||||
monitor reset
|
||||
# Set max speed
|
||||
monitor speed 4000
|
||||
set mem inaccessible-by-default off
|
||||
# Setup GDB FOR FASTER DOWNLOADS
|
||||
#set remote memory-write-packet-size 4096
|
||||
#set remote memory-write-packet-size fixed
|
||||
# Boot Flash
|
||||
monitor long 0x40000210 = 0x211157
|
||||
# Boot RAM start_addr0() Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x80000000 )
|
||||
#monitor long 0x40000210 = 0x80011117
|
||||
# Boot RAM start_addr1() Run if ( v40000210 & 0x20000000 )
|
||||
#monitor long 0x40000210 = 0x20011117
|
||||
# Boot RAM start_addr2() Run if ( v40000210 & 0x10000000 )
|
||||
#monitor long 0x40000210 = 0x10011117
|
||||
# Boot RAM start_addr3() Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x8000000 )
|
||||
#monitor long 0x40000210 = 0x8011117
|
||||
# Boot RAM start_addr4() Init console, Run if ( v40000210 & 0x4000000 )
|
||||
monitor long 0x40000210 = 0x4011117
|
||||
# CPU CLK 166 MHz?
|
||||
# monitor long 0x40000014 = 0x00000011
|
||||
# CPU CLK 83 MHz?
|
||||
#monitor long 0x40000014 = 0x00000021
|
374
flasher/gdb_ota.jlink
Normal file
374
flasher/gdb_ota.jlink
Normal file
|
@ -0,0 +1,374 @@
|
|||
####################################
|
||||
# J-LINK GDB SERVER initialization #
|
||||
####################################
|
||||
define InitJlink
|
||||
printf "Jlink Init:\n"
|
||||
set verbose off
|
||||
set complaints 0
|
||||
set confirm off
|
||||
set exec-done-display off
|
||||
show exec-done-display
|
||||
set trace-commands off
|
||||
#set debug aix-thread off
|
||||
#set debug dwarf2-die 0
|
||||
set debug displaced off
|
||||
set debug expression 0
|
||||
set debug frame 0
|
||||
set debug infrun 0
|
||||
set debug observer 0
|
||||
set debug overload 0
|
||||
#set debugvarobj 0
|
||||
set pagination off
|
||||
set print address off
|
||||
set print symbol-filename off
|
||||
set print symbol off
|
||||
set print pretty off
|
||||
set print object off
|
||||
#set debug notification off
|
||||
set debug parser off
|
||||
set debug remote 0
|
||||
target remote localhost:2331
|
||||
set remotetimeout 10000
|
||||
monitor device Cortex-M3
|
||||
monitor endian little
|
||||
monitor reset
|
||||
# Set max speed
|
||||
monitor speed 4000
|
||||
set mem inaccessible-by-default off
|
||||
# Setup GDB FOR FASTER DOWNLOADS
|
||||
set remote memory-write-packet-size 8192
|
||||
set remote memory-write-packet-size fixed
|
||||
end
|
||||
#############
|
||||
# Boot_Flash
|
||||
define SetBootFlash
|
||||
printf "SetBoot = Flash:\n"
|
||||
monitor long 0x40000210 = 0x211157
|
||||
end
|
||||
# Boot RAM start_addr0() Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x80000000 )
|
||||
define SetBootCall0
|
||||
printf "SetBoot = Call0:\n"
|
||||
monitor long 0x40000210 = 0x80011117
|
||||
end
|
||||
# Boot RAM start_addr1() Run if ( v40000210 & 0x20000000 )
|
||||
define SetBootCall1
|
||||
printf "SetBoot = Call1:\n"
|
||||
monitor long 0x40000210 = 0x20011117
|
||||
end
|
||||
# Boot RAM start_addr2() Run if ( v40000210 & 0x10000000 )
|
||||
define SetBootCall2
|
||||
printf "SetBoot = Call2:\n"
|
||||
monitor long 0x40000210 = 0x10011117
|
||||
end
|
||||
# Boot RAM start_addr3() Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x8000000 )
|
||||
define SetBootCall3
|
||||
printf "SetBoot = Call3:\n"
|
||||
monitor long 0x40000210 = 0x8011117
|
||||
end
|
||||
# Boot RAM start_addr4() Init console, Run if ( v40000210 & 0x4000000 )
|
||||
define SetBootCall4
|
||||
printf "SetBoot = Call4:\n"
|
||||
monitor long 0x40000210 = 0x4011117
|
||||
end
|
||||
# CPU CLK 166 MHz?
|
||||
define SetClk166MHz
|
||||
printf "SetCLK 166.66MHz:\n"
|
||||
monitor long 0x40000014 = 0x00000011
|
||||
end
|
||||
# CPU CLK 83 MHz?
|
||||
define SetClk83MHz
|
||||
printf "SetCLK 83.33MHz:\n"
|
||||
monitor long 0x40000014 = 0x00000021
|
||||
end
|
||||
###############
|
||||
# System Init #
|
||||
###############
|
||||
define SystemInit
|
||||
printf "System Init:\n"
|
||||
monitor long 0x40000304 = 0x1FC00002
|
||||
monitor long 0x40000250 = 0x400
|
||||
monitor long 0x40000340 = 0x0
|
||||
monitor long 0x40000230 = 0xdcc4
|
||||
monitor long 0x40000210 = 0x11117
|
||||
monitor long 0x40000210 = 0x11157
|
||||
monitor long 0x400002c0 = 0x110011
|
||||
monitor long 0x40000320 = 0xffffffff
|
||||
end
|
||||
############
|
||||
# SPI Init #
|
||||
############
|
||||
define SPI_Init
|
||||
printf "Init SPI:\n"
|
||||
#enable spi flash peripheral clock
|
||||
set $Temp = {int}(0x40000230)
|
||||
set $Temp = ($Temp | 0x300)
|
||||
set {int}(0x40000230) = $Temp
|
||||
#enable spi flash peripheral
|
||||
set $Temp = {int}(0x40000210)
|
||||
set $Temp = ($Temp | 0x10)
|
||||
set {int}(0x40000210) = $Temp
|
||||
#select spi flash pinout (0 - internal), enable spi flash pins
|
||||
set $Temp = {int}(0x400002C0)
|
||||
set $Temp = (($Temp & 0xFFFFFFF8) | 1)
|
||||
set {int}(0x400002C0) = $Temp
|
||||
#disable SPI FLASH operation
|
||||
monitor long 0x40006008 = 0
|
||||
#disable all interrupts
|
||||
monitor long 0x4000602C = 0
|
||||
#use first "slave select" pin
|
||||
monitor long 0x40006010 = 1
|
||||
#baud rate, default value
|
||||
monitor long 0x40006014 = 2
|
||||
#tx fifo threshold
|
||||
monitor long 0x40006018 = 0
|
||||
#rx fifo threshold
|
||||
monitor long 0x4000601C = 0
|
||||
#disable DMA
|
||||
monitor long 0x4000604C = 0
|
||||
set $SPI_FLASH_BASE = 0x98000000
|
||||
end
|
||||
###################
|
||||
# GetOtaSize #
|
||||
###################
|
||||
define GetOtaSize
|
||||
set $rambuffer = 0x10000300
|
||||
printf "Get ImagesSize:\n"
|
||||
set $ImageOtaSize = 0
|
||||
restore $arg0 binary $rambuffer 0 4
|
||||
set $ImageAddSize = {int}($rambuffer+0)
|
||||
if $ImageAddSize != 0
|
||||
printf "Image2Size = %d\n", $ImageAddSize
|
||||
set $ImageOtaSize = $ImageOtaSize + $ImageAddSize + 16
|
||||
set $parms1 = $rambuffer - $ImageOtaSize
|
||||
set $parms3 = $ImageOtaSize + 4
|
||||
restore $arg0 binary $parms1 $ImageOtaSize $parms3
|
||||
set $ImageAddSize = {int}($rambuffer+0)
|
||||
if $ImageAddSize < 0x200000
|
||||
printf "ImageSdramSize = %d\n", $ImageAddSize
|
||||
set $ImageOtaSize = $ImageOtaSize + $ImageAddSize + 20
|
||||
end
|
||||
else
|
||||
printf "Image2Size = %d !\n", $ImageOtaSize
|
||||
end
|
||||
end
|
||||
#####################
|
||||
# Flash Images Info #
|
||||
#####################
|
||||
define FlashImagesInfo
|
||||
printf "Flash Info:\n"
|
||||
set $Image1Size = {int}($SPI_FLASH_BASE + 0x10) + 32
|
||||
set $Image1LoadAddr = {int}($SPI_FLASH_BASE + 0x14)
|
||||
if $Image1LoadAddr == 0xFFFFFFFF
|
||||
printf "Image1 - None\n"
|
||||
else
|
||||
set $Image2FlashAddr = {short}($SPI_FLASH_BASE + 0x18) * 1024
|
||||
if $Image2FlashAddr == 0
|
||||
$Image2FlashAddr = $Image1Size
|
||||
end
|
||||
set $Image2Size = {int}($Image2FlashAddr + $SPI_FLASH_BASE)
|
||||
set $Image2LoadAddr = {int}($Image2FlashAddr + $SPI_FLASH_BASE + 0x4)
|
||||
printf "Image1Size = %d\n", $Image1Size
|
||||
printf "Image1LoadAddr = 0x%08x\n", $Image1LoadAddr
|
||||
printf "Image2FlashAddr = 0x%08x\n", $Image2FlashAddr
|
||||
if $Image2Size != 0xFFFFFFFF
|
||||
printf "Image2Size = %d\n", $Image2Size
|
||||
printf "Image2LoadAddr = 0x%08x\n", $Image2LoadAddr
|
||||
else
|
||||
printf "Image2 - None\n"
|
||||
end
|
||||
end
|
||||
set $ImageOtaAddr = {int}($SPI_FLASH_BASE + 0x9000)
|
||||
if $ImageOtaAddr != 0x80000
|
||||
printf "ImageOtaAddr = 0x%08x - Invalid!\n", $ImageOtaAddr
|
||||
else
|
||||
printf "ImageOtaAddr = 0x%08x\n", $ImageOtaAddr
|
||||
end
|
||||
end
|
||||
###############
|
||||
# FlasherInit #
|
||||
###############
|
||||
define FlasherInit
|
||||
set $rtl8710_flasher_capacity = 0
|
||||
set $rtl8710_flasher_auto_erase = 1
|
||||
set $rtl8710_flasher_auto_verify = 1
|
||||
set $rtl8710_flasher_firmware_ptr = 0x10001000
|
||||
set $rtl8710_flasher_buffer = 0x10008000
|
||||
set $rtl8710_flasher_buffer_size = 421888
|
||||
set $rtl8710_flasher_sector_size = 4096
|
||||
set $rtl8710_flasher_auto_erase_sector = 0xFFFFFFFF
|
||||
end
|
||||
###############
|
||||
# FlasherWait #
|
||||
###############
|
||||
define FlasherWait
|
||||
set $fresult = {int}($rtl8710_flasher_buffer)
|
||||
while ($fresult != 0)
|
||||
set $fresult = {int}($rtl8710_flasher_buffer)
|
||||
end
|
||||
end
|
||||
###############
|
||||
# FlasherLoad #
|
||||
###############
|
||||
define FlasherLoad
|
||||
if $rtl8710_flasher_capacity == 0
|
||||
printf "initializing RTL8710 flasher\n"
|
||||
restore $arg0 binary $rtl8710_flasher_firmware_ptr 0 968
|
||||
monitor reset
|
||||
set $pc = $rtl8710_flasher_firmware_ptr
|
||||
set $sp = 0x1ffffffc
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
#continue
|
||||
monitor go
|
||||
FlasherWait
|
||||
set $id = {int}($rtl8710_flasher_buffer + 0x0C)
|
||||
set $rtl8710_flasher_capacity = 1 << (($id >> 16) & 0x0ff)
|
||||
if ($id == 0x1420c2)
|
||||
printf "Flash ID = 0x%08x : MX25L8006E (%d kbytes)\n", $id, $rtl8710_flasher_capacity>>10
|
||||
else
|
||||
printf "Flash ID = 0x%08x : (%d kbytes)\n", $id, $rtl8710_flasher_capacity>>10
|
||||
end
|
||||
printf "RTL8710 flasher initialized\n"
|
||||
else
|
||||
printf "reinitializing RTL8710 flasher\n"
|
||||
end
|
||||
end
|
||||
##################
|
||||
# FlasherRdBlock #
|
||||
##################
|
||||
define FlasherRdBlock
|
||||
#printf "FlashRdBlock 0x%08x, 0x%08x\n", $arg0, $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 3
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x14) = $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x08)
|
||||
if $status > 0
|
||||
error "read error, offset 0x%08x", $arg0
|
||||
end
|
||||
end
|
||||
##################
|
||||
# FlasherWrBlock #
|
||||
##################
|
||||
define FlasherWrBlock
|
||||
#printf "FlashWrBlock 0x%08x, 0x%08x\n", $arg0, $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 4
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x14) = $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x08)
|
||||
if $status > 0
|
||||
error "write error, offset 0x%08x", $arg0
|
||||
end
|
||||
end
|
||||
##################
|
||||
# FlasherVrBlock #
|
||||
##################
|
||||
define FlasherVrBlock
|
||||
#printf "FlashVrBlock 0x%08x, 0x%08x\n", $arg0, $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 5
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x14) = $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x08)
|
||||
if $status > 0
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x0C)
|
||||
set $status = {int}($status + $arg0)
|
||||
error "verify error, offset 0x%08x", $status
|
||||
end
|
||||
end
|
||||
#################
|
||||
# FlashSecErase #
|
||||
#################
|
||||
define FlashSecErase
|
||||
#printf "FlashSecErase 0x%08x, 0x%08x\n", $rtl8710_flasher_buffer, $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 2
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
end
|
||||
################
|
||||
# FlasherWrite #
|
||||
################
|
||||
define FlasherWrite
|
||||
set $sector = 0
|
||||
set $offset = 0
|
||||
set $size = $arg2
|
||||
while $offset < $size
|
||||
set $len = $size - $offset
|
||||
if $len > $rtl8710_flasher_buffer_size
|
||||
set $len = $rtl8710_flasher_buffer_size
|
||||
end
|
||||
set $flash_offset = $arg1 + $offset
|
||||
printf "write offset 0x%08x\n", $flash_offset
|
||||
set $parms1 = $rtl8710_flasher_buffer + 0x20 - $offset
|
||||
set $parms2 = $offset
|
||||
set $parms3 = $offset + $len
|
||||
restore $arg0 binary $parms1 $parms2 $parms3
|
||||
if $rtl8710_flasher_auto_erase != 0
|
||||
set $count_i = $flash_offset
|
||||
while $count_i < ($flash_offset + $len)
|
||||
set $sector = $count_i/$rtl8710_flasher_sector_size
|
||||
if $rtl8710_flasher_auto_erase_sector != $sector
|
||||
set $parms1 = $sector * $rtl8710_flasher_sector_size
|
||||
printf "erase sector %d at 0x%08x\n", $sector, $parms1
|
||||
FlashSecErase $parms1
|
||||
set $rtl8710_flasher_auto_erase_sector = $sector
|
||||
end
|
||||
set $count_i = $count_i + 1
|
||||
end
|
||||
end
|
||||
FlasherWrBlock $flash_offset $len
|
||||
printf "write %d bytes at 0x%08x\n", $len, $flash_offset
|
||||
if $rtl8710_flasher_auto_verify != 0
|
||||
printf "verify offset 0x%08x len %d\n", $flash_offset, $len
|
||||
FlasherVrBlock $flash_offset $len
|
||||
end
|
||||
set $offset = $offset + $rtl8710_flasher_buffer_size
|
||||
end
|
||||
end
|
||||
#########################################
|
||||
InitJlink
|
||||
SystemInit
|
||||
SetClk166MHz
|
||||
SPI_Init
|
||||
GetOtaSize build/bin/ota.bin
|
||||
if $ImageOtaSize != 0
|
||||
FlasherInit
|
||||
FlasherLoad flasher/rtl8710_flasher.bin
|
||||
set $FixOtaAddr = 0x80000
|
||||
set $pbuffer = $rtl8710_flasher_buffer + 0x20
|
||||
FlasherRdBlock 0x9000 0x1000
|
||||
set $ImageOtaAddr = {int}($pbuffer)
|
||||
if $ImageOtaAddr != $FixOtaAddr
|
||||
printf "ImageOtaAddr = 0x%08x - Invalid!\n", $ImageOtaAddr
|
||||
set {int}($pbuffer) = $FixOtaAddr
|
||||
set $Temp = $ImageOtaAddr & $FixOtaAddr
|
||||
if $Temp != $FixOtaAddr
|
||||
printf "FlashSecErase at 0x9000\n"
|
||||
FlashSecErase 0x9000
|
||||
printf "Write offset 0x9000 4096 bytes\n"
|
||||
FlasherWrBlock 0x9000 0x1000
|
||||
else
|
||||
printf "Write offset 0x9000 4 bytes\n"
|
||||
FlasherWrBlock 0x9000 0x0004
|
||||
end
|
||||
end
|
||||
FlasherWrite build/bin/ota.bin $FixOtaAddr $ImageOtaSize
|
||||
restore build/bin/ota.bin binary $pbuffer 0 0x1000
|
||||
set {int}($pbuffer + 0x08) = 0x35393138
|
||||
set {int}($pbuffer + 0x0C) = 0x31313738
|
||||
FlasherWrBlock $FixOtaAddr 0x10
|
||||
FlashImagesInfo
|
||||
end
|
||||
monitor reset
|
||||
SetBootFlash
|
||||
monitor go
|
||||
quit
|
17
flasher/gdb_rdflash.jlink
Normal file
17
flasher/gdb_rdflash.jlink
Normal file
|
@ -0,0 +1,17 @@
|
|||
# GDB Jlink read fullflash
|
||||
# Init
|
||||
source -v flasher/gdb_flasher.jlink
|
||||
InitJlink
|
||||
SystemInit
|
||||
SPI_Init
|
||||
monitor speed 12000
|
||||
#FlashInfo
|
||||
# Read FullFlash
|
||||
printf "Read FullFlash:\n"
|
||||
set $dumpstartaddr = $SPI_FLASH_BASE
|
||||
set $dumpendaddr = $SPI_FLASH_BASE + 0x100000
|
||||
printf "Start addr of dumping = 0x%08x\n", $dumpstartaddr
|
||||
printf "End addr of dumping = 0x%08x\n", $dumpendaddr
|
||||
dump binary memory ../fullflash.bin $dumpstartaddr $dumpendaddr
|
||||
printf "FullFlash saved in ./build/bin/fullflash.bin - OK.\n"
|
||||
quit
|
11
flasher/gdb_run_ram.jlink
Normal file
11
flasher/gdb_run_ram.jlink
Normal file
|
@ -0,0 +1,11 @@
|
|||
#
|
||||
# J-LINK GDB SERVER initialization
|
||||
#
|
||||
source -v flasher/gdb_flasher.jlink
|
||||
InitJlink
|
||||
load build/obj/build.axf
|
||||
SetBootCall4
|
||||
monitor reset
|
||||
monitor go
|
||||
quit
|
||||
|
156
flasher/gdb_wrfile.jlink
Normal file
156
flasher/gdb_wrfile.jlink
Normal file
|
@ -0,0 +1,156 @@
|
|||
###############
|
||||
# FlasherInit #
|
||||
###############
|
||||
define FlasherInit
|
||||
set $rtl8710_flasher_capacity = 0
|
||||
set $rtl8710_flasher_auto_erase = 1
|
||||
set $rtl8710_flasher_auto_verify = 1
|
||||
set $rtl8710_flasher_firmware_ptr = 0x10001000
|
||||
set $rtl8710_flasher_buffer = 0x10008000
|
||||
set $rtl8710_flasher_buffer_size = 421888
|
||||
set $rtl8710_flasher_sector_size = 4096
|
||||
set $rtl8710_flasher_auto_erase_sector = 0xFFFFFFFF
|
||||
end
|
||||
###############
|
||||
# FlasherWait #
|
||||
###############
|
||||
define FlasherWait
|
||||
set $fresult = {int}($rtl8710_flasher_buffer)
|
||||
while ($fresult != 0)
|
||||
set $fresult = {int}($rtl8710_flasher_buffer)
|
||||
end
|
||||
end
|
||||
###############
|
||||
# FlasherLoad #
|
||||
###############
|
||||
define FlasherLoad
|
||||
if $rtl8710_flasher_capacity == 0
|
||||
printf "initializing RTL8710 flasher\n"
|
||||
restore $arg0 binary $rtl8710_flasher_firmware_ptr 0 968
|
||||
monitor reset
|
||||
set $pc = $rtl8710_flasher_firmware_ptr
|
||||
set $sp = 0x1ffffffc
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
#continue
|
||||
monitor go
|
||||
FlasherWait
|
||||
set $id = {int}($rtl8710_flasher_buffer + 0x0C)
|
||||
set $rtl8710_flasher_capacity = 1 << (($id >> 16) & 0x0ff)
|
||||
if ($id == 0x1420c2)
|
||||
printf "Flash ID = 0x%08x : MX25L8006E (%d kbytes)\n", $id, $rtl8710_flasher_capacity>>10
|
||||
else
|
||||
printf "Flash ID = 0x%08x : (%d kbytes)\n", $id, $rtl8710_flasher_capacity>>10
|
||||
end
|
||||
printf "RTL8710 flasher initialized\n"
|
||||
else
|
||||
printf "reinitializing RTL8710 flasher\n"
|
||||
end
|
||||
end
|
||||
##################
|
||||
# FlasherWrBlock #
|
||||
##################
|
||||
define FlasherWrBlock
|
||||
#printf "FlashWrBlock 0x%08x, 0x%08x\n", $arg0, $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 4
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x14) = $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x08)
|
||||
if $status > 0
|
||||
error "write error, offset 0x%08x", $arg0
|
||||
end
|
||||
end
|
||||
##################
|
||||
# FlasherVrBlock #
|
||||
##################
|
||||
define FlasherVrBlock
|
||||
#printf "FlashVrBlock 0x%08x, 0x%08x\n", $arg0, $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 5
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x14) = $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x08)
|
||||
if $status > 0
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x0C)
|
||||
set $status = {int}($status + $arg0)
|
||||
error "verify error, offset 0x%08x", $status
|
||||
end
|
||||
end
|
||||
#################
|
||||
# FlashSecErase #
|
||||
#################
|
||||
define FlashSecErase
|
||||
#printf "FlashSecErase 0x%08x, 0x%08x\n", $rtl8710_flasher_buffer, $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 2
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
end
|
||||
################
|
||||
# FlasherWrite #
|
||||
################
|
||||
define FlasherWrite
|
||||
set $sector = 0
|
||||
set $offset = 0
|
||||
set $size = $arg2
|
||||
while $offset < $size
|
||||
set $len = $size - $offset
|
||||
if $len > $rtl8710_flasher_buffer_size
|
||||
set $len = $rtl8710_flasher_buffer_size
|
||||
end
|
||||
set $flash_offset = $arg1 + $offset
|
||||
printf "write offset 0x%08x\n", $flash_offset
|
||||
set $parms1 = $rtl8710_flasher_buffer + 0x20 - $offset
|
||||
set $parms2 = $offset
|
||||
set $parms3 = $offset + $len
|
||||
restore $arg0 binary $parms1 $parms2 $parms3
|
||||
if $rtl8710_flasher_auto_erase != 0
|
||||
set $count_i = $flash_offset
|
||||
while $count_i < ($flash_offset + $len)
|
||||
set $sector = $count_i/$rtl8710_flasher_sector_size
|
||||
if $rtl8710_flasher_auto_erase_sector != $sector
|
||||
set $parms1 = $sector * $rtl8710_flasher_sector_size
|
||||
printf "erase sector %d at 0x%08x\n", $sector, $parms1
|
||||
FlashSecErase $parms1
|
||||
set $rtl8710_flasher_auto_erase_sector = $sector
|
||||
end
|
||||
set $count_i = $count_i + 1
|
||||
end
|
||||
end
|
||||
FlasherWrBlock $flash_offset $len
|
||||
printf "wrote %d bytes at 0x%08x\n", $len, $flash_offset
|
||||
if $rtl8710_flasher_auto_verify != 0
|
||||
printf "verify offset 0x%08x len %d\n", $flash_offset, $len
|
||||
FlasherVrBlock $flash_offset $len
|
||||
end
|
||||
set $offset = $offset + $rtl8710_flasher_buffer_size
|
||||
end
|
||||
end
|
||||
#########################################
|
||||
source -v flasher/gdb_flasher.jlink
|
||||
source -v flasher/file_info.jlink
|
||||
InitJlink
|
||||
SystemInit
|
||||
SetClk83MHz
|
||||
SPI_Init
|
||||
FlasherInit
|
||||
FlasherLoad flasher/rtl8710_flasher.bin
|
||||
call1
|
||||
if $ImageSize != 0
|
||||
set $ImageEnd = $ImageSize + $ImageAddr + 0x4000
|
||||
if $rtl8710_flasher_capacity >= $ImageEnd
|
||||
printf "Write Image size %d to Flash addr 0x%08x:\n", $ImageSize, $ImageAddr
|
||||
call2
|
||||
else
|
||||
printf "Error: Image size is too big!\n"
|
||||
end
|
||||
else
|
||||
printf "Error: Image size is zero!\n"
|
||||
end
|
||||
quit
|
164
flasher/gdb_wrflash.jlink
Normal file
164
flasher/gdb_wrflash.jlink
Normal file
|
@ -0,0 +1,164 @@
|
|||
###############
|
||||
# FlasherInit #
|
||||
###############
|
||||
define FlasherInit
|
||||
set $rtl8710_flasher_capacity = 0
|
||||
set $rtl8710_flasher_auto_erase = 1
|
||||
set $rtl8710_flasher_auto_verify = 1
|
||||
set $rtl8710_flasher_firmware_ptr = 0x10001000
|
||||
set $rtl8710_flasher_buffer = 0x10008000
|
||||
set $rtl8710_flasher_buffer_size = 421888
|
||||
set $rtl8710_flasher_sector_size = 4096
|
||||
set $rtl8710_flasher_auto_erase_sector = 0xFFFFFFFF
|
||||
end
|
||||
###############
|
||||
# FlasherWait #
|
||||
###############
|
||||
define FlasherWait
|
||||
set $fresult = {int}($rtl8710_flasher_buffer)
|
||||
while ($fresult != 0)
|
||||
set $fresult = {int}($rtl8710_flasher_buffer)
|
||||
end
|
||||
end
|
||||
###############
|
||||
# FlasherLoad #
|
||||
###############
|
||||
define FlasherLoad
|
||||
if $rtl8710_flasher_capacity == 0
|
||||
printf "initializing RTL8710 flasher\n"
|
||||
restore $arg0 binary $rtl8710_flasher_firmware_ptr 0 968
|
||||
monitor reset
|
||||
set $pc = $rtl8710_flasher_firmware_ptr
|
||||
set $sp = 0x1ffffffc
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
#continue
|
||||
monitor go
|
||||
FlasherWait
|
||||
set $id = {int}($rtl8710_flasher_buffer + 0x0C)
|
||||
set $rtl8710_flasher_capacity = 1 << (($id >> 16) & 0x0ff)
|
||||
if ($id == 0x1420c2)
|
||||
printf "Flash ID = 0x%08x : MX25L8006E (%d kbytes)\n", $id, $rtl8710_flasher_capacity>>10
|
||||
else
|
||||
printf "Flash ID = 0x%08x : (%d kbytes)\n", $id, $rtl8710_flasher_capacity>>10
|
||||
end
|
||||
printf "RTL8710 flasher initialized\n"
|
||||
else
|
||||
printf "reinitializing RTL8710 flasher\n"
|
||||
end
|
||||
end
|
||||
##################
|
||||
# FlasherWrBlock #
|
||||
##################
|
||||
define FlasherWrBlock
|
||||
#printf "FlashWrBlock 0x%08x, 0x%08x\n", $arg0, $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 4
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x14) = $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x08)
|
||||
if $status > 0
|
||||
error "write error, offset 0x%08x", $arg0
|
||||
end
|
||||
end
|
||||
##################
|
||||
# FlasherVrBlock #
|
||||
##################
|
||||
define FlasherVrBlock
|
||||
#printf "FlashVrBlock 0x%08x, 0x%08x\n", $arg0, $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 5
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x14) = $arg1
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x08)
|
||||
if $status > 0
|
||||
set $status = {int}($rtl8710_flasher_buffer + 0x0C)
|
||||
set $status = {int}($status + $arg0)
|
||||
error "verify error, offset 0x%08x", $status
|
||||
end
|
||||
end
|
||||
#################
|
||||
# FlashSecErase #
|
||||
#################
|
||||
define FlashSecErase
|
||||
#printf "FlashSecErase 0x%08x, 0x%08x\n", $rtl8710_flasher_buffer, $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x04) = 2
|
||||
set {int}($rtl8710_flasher_buffer + 0x08) = 0
|
||||
set {int}($rtl8710_flasher_buffer + 0x10) = $arg0
|
||||
set {int}($rtl8710_flasher_buffer + 0x00) = 1
|
||||
FlasherWait
|
||||
end
|
||||
################
|
||||
# FlasherWrite #
|
||||
################
|
||||
define FlasherWrite
|
||||
set $sector = 0
|
||||
set $offset = 0
|
||||
set $size = $arg2
|
||||
while $offset < $size
|
||||
set $len = $size - $offset
|
||||
if $len > $rtl8710_flasher_buffer_size
|
||||
set $len = $rtl8710_flasher_buffer_size
|
||||
end
|
||||
set $flash_offset = $arg1 + $offset
|
||||
printf "write offset 0x%08x\n", $flash_offset
|
||||
set $parms1 = $rtl8710_flasher_buffer + 0x20 - $flash_offset
|
||||
set $parms2 = $flash_offset
|
||||
set $parms3 = $flash_offset + $len
|
||||
restore $arg0 binary $parms1 $parms2 $parms3
|
||||
if $rtl8710_flasher_auto_erase != 0
|
||||
set $count_i = $flash_offset
|
||||
while $count_i < ($flash_offset + $len)
|
||||
set $sector = $count_i/$rtl8710_flasher_sector_size
|
||||
if $rtl8710_flasher_auto_erase_sector != $sector
|
||||
set $parms1 = $sector * $rtl8710_flasher_sector_size
|
||||
printf "erase sector %d at 0x%08x\n", $sector, $parms1
|
||||
FlashSecErase $parms1
|
||||
set $rtl8710_flasher_auto_erase_sector = $sector
|
||||
end
|
||||
set $count_i = $count_i + 1
|
||||
end
|
||||
end
|
||||
FlasherWrBlock $flash_offset $len
|
||||
printf "wrote %d bytes at 0x%08x\n", $len, $flash_offset
|
||||
if $rtl8710_flasher_auto_verify != 0
|
||||
printf "verify offset 0x%08x len %d\n", $flash_offset, $len
|
||||
FlasherVrBlock $flash_offset $len
|
||||
end
|
||||
set $offset = $offset + $rtl8710_flasher_buffer_size
|
||||
end
|
||||
end
|
||||
#########################################
|
||||
source -v flasher/gdb_flasher.jlink
|
||||
source -v flasher/flash_file.jlink
|
||||
InitJlink
|
||||
SystemInit
|
||||
SetClk166MHz
|
||||
SPI_Init
|
||||
FlashImagesInfo
|
||||
#SetFirwareSize $wr_flile
|
||||
call1
|
||||
if $FirmwareSize == 0
|
||||
error "FirmwareSize = 0!"
|
||||
end
|
||||
FlasherInit
|
||||
FlasherLoad flasher/rtl8710_flasher.bin
|
||||
if $Image1Size != 0
|
||||
printf "Write Image1 size %d to Flash addr 0x00000000:\n", $Image1Size
|
||||
#FlasherWrite $wr_flile 0 $Image1Size
|
||||
call2
|
||||
if $Image2Size != 0 && $Image2Addr >= $Image1Size
|
||||
printf "Write Image2 size %d to Flash addr 0x%08x:\n", $Image2Size, $Image2Addr
|
||||
#FlasherWrite $wr_flile $Image2Addr $Image2Size
|
||||
call3
|
||||
end
|
||||
end
|
||||
FlashImagesInfo
|
||||
monitor reset
|
||||
SetBootFlash
|
||||
monitor go
|
||||
quit
|
340
flasher/rtl8710.ocd
Normal file
340
flasher/rtl8710.ocd
Normal file
|
@ -0,0 +1,340 @@
|
|||
#
|
||||
# OpenOCD script for RTL8710
|
||||
# Copyright (C) 2016 Rebane, rebane@alkohol.ee
|
||||
#
|
||||
set CHIPNAME rtl8195a
|
||||
set CHIPSERIES ameba1
|
||||
|
||||
# Adapt based on what transport is active.
|
||||
|
||||
source [find target/swj-dp.tcl]
|
||||
|
||||
if { [info exists CHIPNAME] } {
|
||||
set _CHIPNAME $CHIPNAME
|
||||
} else {
|
||||
set _CHIPNAME rtl8710
|
||||
}
|
||||
|
||||
if { [info exists ENDIAN] } {
|
||||
set _ENDIAN $ENDIAN
|
||||
} else {
|
||||
set _ENDIAN little
|
||||
}
|
||||
|
||||
if { [info exists WORKAREASIZE] } {
|
||||
set _WORKAREASIZE $WORKAREASIZE
|
||||
} else {
|
||||
set _WORKAREASIZE 0x800
|
||||
}
|
||||
|
||||
if { [info exists CPUTAPID] } {
|
||||
set _CPUTAPID $CPUTAPID
|
||||
} else {
|
||||
set _CPUTAPID 0x2ba01477
|
||||
}
|
||||
|
||||
swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID
|
||||
|
||||
set _TARGETNAME $_CHIPNAME.cpu
|
||||
target create $_TARGETNAME cortex_m -endian $_ENDIAN -chain-position $_TARGETNAME
|
||||
|
||||
$_TARGETNAME configure -work-area-phys 0x10001000 -work-area-size $_WORKAREASIZE -work-area-backup 0
|
||||
|
||||
# adapter_khz 500
|
||||
adapter_nsrst_delay 100
|
||||
|
||||
if {![using_hla]} {
|
||||
cortex_m reset_config sysresetreq vectreset
|
||||
}
|
||||
|
||||
set rtl8710_flasher_firmware_ptr 0x10001000
|
||||
set rtl8710_flasher_buffer 0x10008000
|
||||
set rtl8710_flasher_buffer_size 262144
|
||||
set rtl8710_flasher_sector_size 4096
|
||||
|
||||
array set rtl8710_flasher_code {
|
||||
0 0xB671B57F 1 0x25FF4B58 2 0x6B196B1A 3 0x7040F042 4 0x69D96318 5 0xF4414E55
|
||||
6 0x69D97480 7 0xF8D361DC 8 0xF8C32120 9 0xF8D35120 10 0xF8C31124 11 0x47B05124
|
||||
12 0x47B04E4F 13 0x47984B4F 14 0x60104A4F 15 0x484F47B0 16 0x60012100 17 0x2C006804
|
||||
18 0x4D4DD0FC 19 0xB93E682E 20 0x60264C49 21 0x47B04E46 22 0x47984B46 23 0xE7ED6020
|
||||
24 0x2B01682B 25 0x4E42D109 26 0x4C4647B0 27 0x47A02006 28 0x47904A45 29 0x47A020C7
|
||||
30 0x682AE00D 31 0xD10E2A02 32 0x47B04E3B 33 0x20064C3F 34 0x483F47A0 35 0x493F4780
|
||||
36 0x68084D3F 37 0x47B047A8 38 0x47A02004 39 0x6828E7CE 40 0xD1132803 41 0x47A04C32
|
||||
42 0x24004838 43 0x4E396805 44 0x68311960 45 0xD206428C 46 0x4B384A37 47 0x221018A1
|
||||
48 0x34104798 49 0x4D2AE7F3 50 0xE7B847A8 51 0x29046829 52 0x2400D11B 53 0x6806482F
|
||||
54 0xD2B042B4 55 0x47A84D24 56 0x20064E28 57 0x4B2847B0 58 0x49284798 59 0x680A4B2A
|
||||
60 0x18A018E1 61 0xF44F4B2A 62 0x47987280 63 0x200447A8 64 0xF50447B0 65 0x47A87480
|
||||
66 0x682CE7E4 67 0xD1232C05 68 0x47984B17 69 0x4D1F2400 70 0x4294682A 71 0x481BD28F
|
||||
72 0x68012210 73 0x18604E1D 74 0x47B04669 75 0x1B19682B 76 0xBF282910 77 0x23002110
|
||||
78 0xD011428B 79 0xF81D4A16 80 0x18A05003 81 0x42B55CC6 82 0x3301D101 83 0x4A15E7F4
|
||||
84 0x60112101 85 0xE7726054 86 0x25014E12 87 0xE76E6035 88 0x47A84D03 89 0xE7D63410
|
||||
90 0x40000200 91 0x100011BD 92 0x100013DD 93 0x10001289 94 0x1000800C 95 0x10008000
|
||||
96 0x10008004 97 0x1000130D 98 0x100013ED 99 0x10008010 100 0x10001335 101 0x10008014
|
||||
102 0x10008020 103 0x10001221 104 0x10001375 105 0x10008008 106 0x6A5A4B03 107 0xD0FB0512
|
||||
108 0x0060F893 109 0xBF004770 110 0x40006000 111 0x6B194B17 112 0xF4416B1A 113 0x63187040
|
||||
114 0x69186919 115 0x0110F041 116 0xF8D36119 117 0x220000C0 118 0x0106F020 119 0x00C0F8D3
|
||||
120 0x10C0F8C3 121 0x00C0F8D3 122 0x0101F040 123 0x00C0F8D3 124 0x10C0F8C3 125 0x43BCF503
|
||||
126 0x609A6899 127 0x20016AD9 128 0x691962DA 129 0x69596118 130 0x61592102 131 0x619A6999
|
||||
132 0x61DA69D9 133 0x64DA6CD9 134 0xBF004770 135 0x40000200 136 0x460EB570 137 0xB34A4614
|
||||
138 0xF3C04B15 139 0x681A4507 140 0x7240F44F 141 0x685A601A 142 0xF3C02103 143 0x2C102207
|
||||
144 0x2410BF28 145 0x605CB2C0 146 0x1060F883 147 0x5060F883 148 0xF8832101 149 0xF8832060
|
||||
150 0x689A0060 151 0x60992500 152 0x47984B08 153 0x35015570 154 0x42A2B2AA 155 0x4804D3F8
|
||||
156 0xF0116A81 157 0xD1FA0301 158 0x60836881 159 0xBD704620 160 0x40006000 161 0x100011A9
|
||||
162 0x4C10B5F8 163 0x68232003 164 0x7340F44F 165 0x68636023 166 0x60602101 167 0x68A3229F
|
||||
168 0x60A14D0B 169 0x2060F884 170 0x460647A8 171 0x460747A8 172 0x040347A8 173 0x2707EA43
|
||||
174 0x0006EA47 175 0x4B036AA1 176 0x0201F011 177 0x6899D1FA 178 0xBDF8609A 179 0x40006000
|
||||
180 0x100011A9 181 0x4C0BB510 182 0x68232001 183 0x7340F44F 184 0x68636023 185 0x60602105
|
||||
186 0x60A068A2 187 0xF8844A06 188 0x47901060 189 0x4B036AA1 190 0x0201F011 191 0x6899D1FA
|
||||
192 0xBD10609A 193 0x40006000 194 0x100011A9 195 0x21014B08 196 0xF44F681A 197 0x601A7280
|
||||
198 0x6099689A 199 0x0060F883 200 0x48036A9A 201 0x0101F012 202 0x6883D1FA 203 0x47706081
|
||||
204 0x40006000 205 0x21014B0E 206 0xF44F681A 207 0x601A7280 208 0x2220689A 209 0xF8836099
|
||||
210 0xF3C02060 211 0xF3C04107 212 0xB2C02207 213 0x1060F883 214 0x2060F883 215 0x0060F883
|
||||
216 0x4A036A99 217 0x0001F011 218 0x6893D1FA 219 0x47706090 220 0x40006000 221 0xB36AB530
|
||||
222 0x25014B17 223 0xF44F681C 224 0x601C7480 225 0x2402689C 226 0xF883609D 227 0xF3C04060
|
||||
228 0xF3C04507 229 0xB2C02407 230 0x5060F883 231 0x7F80F5B2 232 0xF44FBF28 233 0xF8837280
|
||||
234 0xF8834060 235 0x20000060 236 0x4C095C0D 237 0xF8843001 238 0xB2855060 239 0xD3F74295
|
||||
240 0x07496A99 241 0x6AA0D5FC 242 0xF0104B03 243 0xD1FA0101 244 0x60996898 245 0xBD304610
|
||||
246 0x40006000 247 0x4B02B508 248 0x07C04798 249 0xBD08D4FB 250 0x100012D5 251 0x4B04B508
|
||||
252 0xF0004798 253 0xB2C10002 254 0xD0F82900 255 0xBF00BD08 256 0x100012D5
|
||||
}
|
||||
|
||||
set rtl8710_flasher_command_read_id 0
|
||||
set rtl8710_flasher_command_mass_erase 1
|
||||
set rtl8710_flasher_command_sector_erase 2
|
||||
set rtl8710_flasher_command_read 3
|
||||
set rtl8710_flasher_command_write 4
|
||||
set rtl8710_flasher_command_verify 5
|
||||
|
||||
set rtl8710_flasher_ready 0
|
||||
set rtl8710_flasher_capacity 0
|
||||
set rtl8710_flasher_auto_erase 0
|
||||
set rtl8710_flasher_auto_verify 0
|
||||
set rtl8710_flasher_auto_erase_sector 0xFFFFFFFF
|
||||
|
||||
proc rtl8710_flasher_init {} {
|
||||
global rtl8710_flasher_firmware_ptr
|
||||
global rtl8710_flasher_buffer
|
||||
global rtl8710_flasher_capacity
|
||||
global rtl8710_flasher_ready
|
||||
global rtl8710_flasher_code
|
||||
|
||||
if {[expr {$rtl8710_flasher_ready == 0}]} {
|
||||
echo "initializing RTL8710 flasher"
|
||||
halt
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x08}] 0x00000000
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x00}] 0x00000001
|
||||
array2mem rtl8710_flasher_code 32 $rtl8710_flasher_firmware_ptr [array size rtl8710_flasher_code]
|
||||
reg faultmask 0x01
|
||||
reg sp 0x20000000
|
||||
reg pc $rtl8710_flasher_firmware_ptr
|
||||
resume
|
||||
rtl8710_flasher_wait
|
||||
set id [rtl8710_flasher_mrw [expr {$rtl8710_flasher_buffer + 0x0C}]]
|
||||
set rtl8710_flasher_capacity [expr {2 ** [expr {($id >> 16) & 0xFF}]}]
|
||||
set rtl8710_flasher_ready 1
|
||||
echo "RTL8710 flasher initialized"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
proc rtl8710_flasher_mrw {reg} {
|
||||
set value ""
|
||||
mem2array value 32 $reg 1
|
||||
return $value(0)
|
||||
}
|
||||
|
||||
proc rtl8710_flasher_wait {} {
|
||||
global rtl8710_flasher_buffer
|
||||
while {[rtl8710_flasher_mrw [expr {$rtl8710_flasher_buffer + 0x00}]]} { }
|
||||
}
|
||||
|
||||
proc rtl8710_flasher_load_block {local_filename offset len} {
|
||||
global rtl8710_flasher_buffer
|
||||
load_image $local_filename [expr {$rtl8710_flasher_buffer + 0x20 - $offset}] bin [expr {$rtl8710_flasher_buffer + 0x20}] $len
|
||||
}
|
||||
|
||||
proc rtl8710_flasher_read_block {offset len} {
|
||||
global rtl8710_flasher_buffer
|
||||
global rtl8710_flasher_command_read
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x04}] $rtl8710_flasher_command_read
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x08}] 0x00000000
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x10}] $offset
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x14}] $len
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x00}] 0x00000001
|
||||
rtl8710_flasher_wait
|
||||
set status [rtl8710_flasher_mrw [expr {$rtl8710_flasher_buffer + 0x08}]]
|
||||
if {[expr {$status > 0}]} {
|
||||
error "read error, offset $offset"
|
||||
}
|
||||
}
|
||||
|
||||
proc rtl8710_flasher_write_block {offset len} {
|
||||
global rtl8710_flasher_buffer
|
||||
global rtl8710_flasher_command_write
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x04}] $rtl8710_flasher_command_write
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x08}] 0x00000000
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x10}] $offset
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x14}] $len
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x00}] 0x00000001
|
||||
rtl8710_flasher_wait
|
||||
set status [rtl8710_flasher_mrw [expr {$rtl8710_flasher_buffer + 0x08}]]
|
||||
if {[expr {$status > 0}]} {
|
||||
error "write error, offset $offset"
|
||||
}
|
||||
}
|
||||
|
||||
proc rtl8710_flasher_verify_block {offset len} {
|
||||
global rtl8710_flasher_buffer
|
||||
global rtl8710_flasher_command_verify
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x04}] $rtl8710_flasher_command_verify
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x08}] 0x00000000
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x10}] $offset
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x14}] $len
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x00}] 0x00000001
|
||||
rtl8710_flasher_wait
|
||||
set status [rtl8710_flasher_mrw [expr {$rtl8710_flasher_buffer + 0x08}]]
|
||||
if {[expr {$status > 0}]} {
|
||||
set status [rtl8710_flasher_mrw [expr {$rtl8710_flasher_buffer + 0x0C}]]
|
||||
set status [expr {$status + $offset}]
|
||||
error "verify error, offset $status"
|
||||
}
|
||||
}
|
||||
|
||||
proc rtl8710_flash_read_id {} {
|
||||
global rtl8710_flasher_buffer
|
||||
global rtl8710_flasher_capacity
|
||||
global rtl8710_flasher_command_read_id
|
||||
rtl8710_flasher_init
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x04}] $rtl8710_flasher_command_read_id
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x08}] 0x00000000
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x00}] 0x00000001
|
||||
rtl8710_flasher_wait
|
||||
set id [rtl8710_flasher_mrw [expr {$rtl8710_flasher_buffer + 0x0C}]]
|
||||
set manufacturer_id [format "0x%02X" [expr {$id & 0xFF}]]
|
||||
set memory_type [format "0x%02X" [expr {($id >> 8) & 0xFF}]]
|
||||
set memory_capacity [expr {2 ** [expr {($id >> 16) & 0xFF}]}]
|
||||
echo "manufacturer ID: $manufacturer_id, memory type: $memory_type, memory capacity: $memory_capacity bytes"
|
||||
}
|
||||
|
||||
proc rtl8710_flash_mass_erase {} {
|
||||
global rtl8710_flasher_buffer
|
||||
global rtl8710_flasher_command_mass_erase
|
||||
rtl8710_flasher_init
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x04}] $rtl8710_flasher_command_mass_erase
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x08}] 0x00000000
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x00}] 0x00000001
|
||||
rtl8710_flasher_wait
|
||||
}
|
||||
|
||||
proc rtl8710_flash_sector_erase {offset} {
|
||||
global rtl8710_flasher_buffer
|
||||
global rtl8710_flasher_command_sector_erase
|
||||
rtl8710_flasher_init
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x04}] $rtl8710_flasher_command_sector_erase
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x08}] 0x00000000
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x10}] $offset
|
||||
mww [expr {$rtl8710_flasher_buffer + 0x00}] 0x00000001
|
||||
rtl8710_flasher_wait
|
||||
}
|
||||
|
||||
proc rtl8710_flash_read {local_filename loc size} {
|
||||
global rtl8710_flasher_buffer
|
||||
global rtl8710_flasher_buffer_size
|
||||
rtl8710_flasher_init
|
||||
for {set offset 0} {$offset < $size} {set offset [expr {$offset + $rtl8710_flasher_buffer_size}]} {
|
||||
set len [expr {$size - $offset}]
|
||||
if {[expr {$len > $rtl8710_flasher_buffer_size}]} {
|
||||
set len $rtl8710_flasher_buffer_size
|
||||
}
|
||||
set flash_offset [expr {$loc + $offset}]
|
||||
echo "read offset $flash_offset"
|
||||
rtl8710_flasher_read_block $flash_offset $len
|
||||
dump_image _rtl8710_flasher.bin [expr {$rtl8710_flasher_buffer + 0x20}] $len
|
||||
exec dd conv=notrunc if=_rtl8710_flasher.bin "of=$local_filename" bs=1 "seek=$offset"
|
||||
echo "read $len bytes"
|
||||
}
|
||||
}
|
||||
|
||||
proc rtl8710_flash_write {local_filename loc} {
|
||||
global rtl8710_flasher_buffer_size
|
||||
global rtl8710_flasher_sector_size
|
||||
global rtl8710_flasher_auto_erase
|
||||
global rtl8710_flasher_auto_verify
|
||||
global rtl8710_flasher_auto_erase_sector
|
||||
rtl8710_flasher_init
|
||||
set sector 0
|
||||
set size [file size $local_filename]
|
||||
for {set offset 0} {$offset < $size} {set offset [expr {$offset + $rtl8710_flasher_buffer_size}]} {
|
||||
set len [expr {$size - $offset}]
|
||||
if {[expr {$len > $rtl8710_flasher_buffer_size}]} {
|
||||
set len $rtl8710_flasher_buffer_size
|
||||
}
|
||||
set flash_offset [expr {$loc + $offset}]
|
||||
echo "write offset $flash_offset"
|
||||
rtl8710_flasher_load_block $local_filename $offset $len
|
||||
if {[expr {$rtl8710_flasher_auto_erase != 0}]} {
|
||||
for {set i $flash_offset} {$i < [expr {$flash_offset + $len}]} {incr i} {
|
||||
set sector [expr {$i / $rtl8710_flasher_sector_size}]
|
||||
if {[expr {$rtl8710_flasher_auto_erase_sector != $sector}]} {
|
||||
echo "erase sector $sector"
|
||||
rtl8710_flash_sector_erase [expr {$sector * $rtl8710_flasher_sector_size}]
|
||||
set rtl8710_flasher_auto_erase_sector $sector
|
||||
}
|
||||
}
|
||||
}
|
||||
rtl8710_flasher_write_block $flash_offset $len
|
||||
echo "wrote $len bytes"
|
||||
if {[expr {$rtl8710_flasher_auto_verify != 0}]} {
|
||||
echo "verify offset $flash_offset"
|
||||
rtl8710_flasher_verify_block $flash_offset $len
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proc rtl8710_flash_verify {local_filename loc} {
|
||||
global rtl8710_flasher_buffer_size
|
||||
rtl8710_flasher_init
|
||||
set size [file size $local_filename]
|
||||
for {set offset 0} {$offset < $size} {set offset [expr {$offset + $rtl8710_flasher_buffer_size}]} {
|
||||
set len [expr {$size - $offset}]
|
||||
if {[expr {$len > $rtl8710_flasher_buffer_size}]} {
|
||||
set len $rtl8710_flasher_buffer_size
|
||||
}
|
||||
set flash_offset [expr {$loc + $offset}]
|
||||
echo "read offset $flash_offset"
|
||||
rtl8710_flasher_load_block $local_filename $offset $len
|
||||
echo "verify offset $flash_offset"
|
||||
rtl8710_flasher_verify_block $flash_offset $len
|
||||
}
|
||||
}
|
||||
|
||||
proc rtl8710_flash_auto_erase {on} {
|
||||
global rtl8710_flasher_auto_erase
|
||||
if {[expr {$on != 0}]} {
|
||||
set rtl8710_flasher_auto_erase 1
|
||||
echo "auto erase on"
|
||||
} else {
|
||||
set rtl8710_flasher_auto_erase 0
|
||||
echo "auto erase off"
|
||||
}
|
||||
}
|
||||
|
||||
proc rtl8710_flash_auto_verify {on} {
|
||||
global rtl8710_flasher_auto_verify
|
||||
if {[expr {$on != 0}]} {
|
||||
set rtl8710_flasher_auto_verify 1
|
||||
echo "auto verify on"
|
||||
} else {
|
||||
set rtl8710_flasher_auto_verify 0
|
||||
echo "auto verify off"
|
||||
}
|
||||
}
|
||||
|
||||
proc rtl8710_reboot {} {
|
||||
echo "# Set processor clock to default before system reset"
|
||||
mww 0x40000014 0x00000021
|
||||
sleep 10
|
||||
echo "# Reboot (system reset)"
|
||||
mww 0xE000ED0C 0x05FA0007
|
||||
}
|
||||
|
BIN
flasher/rtl8710_flasher.bin
Normal file
BIN
flasher/rtl8710_flasher.bin
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue