#MK20 PLATFORM name=teensyduino version=1.8.1 rewriting=disabled build.optimize={build.optimize.debug} build.optimize.release=-Os build.optimize.debug=-O0 -g build.optimize.c.flags={build.optimize} build.optimize.cpp.flags={build.optimize} build.optimize.elf.flags={build.optimize} build.optimize.objcopy.flags={build.optimize} compiler.path={runtime.hardware.path}/../tools/ compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 compiler.elf2hex.flags=-O ihex -R .eeprom ## Preprocessor Includes recipe.preproc.includes="{compiler.path}{build.toolchain}{build.command.g++}" -M -MG -MP -x c++ -w {build.flags.cpp} {build.flags.cpu} {build.flags.defs} -DARDUINO={runtime.ide.version} -DF_CPU={build.fcpu} -D{build.usbtype} -DLAYOUT_{build.keylayout} {includes} "{source_file}" ## Preprocessor Macros recipe.preproc.macros="{compiler.path}{build.toolchain}{build.command.g++}" -E -CC -x c++ -w {compiler.cpp.flags} {build.flags.common} {build.flags.cpp} {build.flags.cpu} {build.flags.defs} -DARDUINO={runtime.ide.version} -DF_CPU={build.fcpu} -D{build.usbtype} -DLAYOUT_{build.keylayout} {includes} "{source_file}" -o "{preprocessed_file_path}" ## New Preprocessor for Arduino 1.9 tools.arduino-preprocessor.path={runtime.tools.arduino-preprocessor.path} tools.arduino-preprocessor.cmd.path={path}/arduino-preprocessor tools.arduino-preprocessor.pattern="{cmd.path}" "{source_file}" "{codecomplete}" -- -std=gnu++14 ## Compile c++ files recipe.cpp.o.pattern="{compiler.path}{build.toolchain}{build.command.g++}" -c {build.flags.optimize} {build.flags.common} {build.flags.dep} {build.flags.cpp} {build.flags.cpu} {build.flags.defs} -DARDUINO={runtime.ide.version} -DF_CPU={build.fcpu} -D{build.usbtype} -DLAYOUT_{build.keylayout} {includes} "{source_file}" -o "{object_file}" ## Compile c files recipe.c.o.pattern="{compiler.path}{build.toolchain}{build.command.gcc}" -c {build.flags.optimize} {build.flags.common} {build.flags.dep} {build.flags.c} {build.flags.cpu} {build.flags.defs} -DARDUINO={runtime.ide.version} -DF_CPU={build.fcpu} -D{build.usbtype} -DLAYOUT_{build.keylayout} {includes} "{source_file}" -o "{object_file}" ## Compile S files recipe.S.o.pattern="{compiler.path}{build.toolchain}{build.command.gcc}" -c {build.flags.optimize} {build.flags.common} {build.flags.dep} {build.flags.S} {build.flags.cpu} {build.flags.defs} -DARDUINO={runtime.ide.version} -DF_CPU={build.fcpu} -D{build.usbtype} -DLAYOUT_{build.keylayout} {includes} "{source_file}" -o "{object_file}" ## Create archives recipe.ar.pattern="{compiler.path}{build.toolchain}{build.command.ar}" rcs "{archive_file_path}" "{object_file}" ## Link recipe.c.combine.pattern="{compiler.path}{build.toolchain}{build.command.gcc}" {build.flags.optimize} {build.flags.ld} {build.flags.ldspecs} {build.flags.cpu} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" {build.flags.libs} ## Patch ELF - TODO: not supported by Arduino 1.6.6 builder recipe.elfpatch.pattern="{compiler.path}/hardware/tools/{build.elfpatch}" -mmcu={build.mcu} "{build.path}/{build.project_name}.elf" "{sketch_path}/disk" ## Create eeprom recipe.objcopy.eep.pattern="{compiler.path}{build.toolchain}{build.command.objcopy}" {compiler.objcopy.eep.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep" ## Create hex recipe.objcopy.hex.pattern="{compiler.path}{build.toolchain}{build.command.objcopy}" {compiler.elf2hex.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex" ## Create bin ####recipe.objcopy.hex.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin" ## Export hex and bin recipe.output.tmp_file={build.project_name}.hex recipe.output.save_file={build.project_name}.{build.board}.hex ####recipe.output.tmp_file={build.project_name}.bin ####recipe.output.save_file={build.project_name}.{build.board}.bin ## Compute size recipe.size.pattern="{compiler.path}{build.toolchain}{build.command.size}" -A "{build.path}/{build.project_name}.elf" recipe.size.regex.data=^(?:\.usbdescriptortable|\.dmabuffers|\.usbbuffers|\.data|\.bss|\.noinit)\s+([0-9]+).* recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).* ## ------------------------------------ ## https://wiki.segger.com/index.php?title=J-Link_Commander to set up J-link commander to do this!!! ####upload.tool=jlink_EDU ####upload.serial_ignore=true ###upload.errors_standard_output=true # Uploader/Programmers tools # ------------------- ####tools.jlink_EDU.cmd=JLink ####tools.jlink_EDU.path={runtime.ide.path}/hardware/tools/ ####tools.jlink_EDU.upload.pattern="{path}/{cmd}" -if SWD -speed 1000 -autoconnect 1 -CommanderScript "{build.project_path}\Debug\{build.project_name}.jlink" ####tools.jlink_EDU.upload.pattern="{path}/{cmd}" -if JTAG -speed 1000 -jtagconf -1,-1 -autoconnect 1 -CommanderScript "{build.project_path}\Debug\{build.project_name}.jlink" tools.gdb.openocd -f board/K20.cfg -c "{build.project_path}\Debug\{build.project_name}.hex exit" # Intellisense info not used during build # ------------------- intellisense.tools.path={runtime.ide.path}/hardware/tools/MK20 intellisense.include.paths={intellisense.tools.path}\lib\gcc\arm-none-eabi\4.7.1\include;{intellisense.tools.path}\arm-none-eabi\include;{intellisense.tools.path}\arm-none-eabi\include\sys # Platform usb serial debugging # -------------------- ##vm.debug.class_type=VM_DEBUGGER_TYPE_HARDWARESERIAL ##vm.debug.class_type.Serial20=we can define custom debug types like this ##vm.debug.build.extra_flags=VM_DEBUG_EXCLUDE_TYPE_FLOAT # Platform external debugging # -------------------- debug.tool=gdb tools.gdb.pre_init.tool=openocd tools.gdb.cmd=arm­none­eabi­gdb.exe tools.gdb.path={runtime.tools.arm­none­eabi­gcc.path}/bin tools.gdb.pattern="{path}/{cmd}" ­interpreter=mi ­d "{build.project_path}" tools.gdb.openocd.cmd=bin/openocd.exe tools.gdb.tcp=localhost:3333 tools.gdb.openocd.path={runtime.vm.ide.platforms.path}/default/tools/openocd­0.9.0 tools.gdb.openocd.params.verbose=­d2 tools.gdb.openocd.params.quiet=­d0 #build.openocdscript=board/K20.cfg #tools.gdb.openocd.pattern="{path}/{cmd}" -f "{path}\scripts\interface\jlink.cfg" -c "transport select hla_swd" ­s "{path}/scripts/" ­f "{path}/scripts/{build.openocdscript}" #tools.gdb.openocd.pattern="{path}/{cmd}" -f "{path}\scripts\interface\jlink.cfg" #tools.gdb.openocd.pattern="{path}/{cmd}" -f "{path}\scripts\interface\jlink.cfg" -c "transport select hla_swd" ­s "{path}/scripts/" ­f "{path}/scripts/{build.openocdscript}" -c "tpiu config external uart off 24000000 12000000" tools.gdb.openocd.pattern="{path}/{cmd}" \ -f "{path}\scripts\interface\jlink.cfg" \ -c "gdb_memory_map enable" \ -c "gdb_flash_program enable" \ -c "transport select hla_swd" \ ­-s "{path}/scripts/" \ ­-f "{path}/scripts/{build.openocdscript}" \ -f target/K20.cfg -f board/MK20Board.cfg