ArduinoCore-avr/platform.txt

131 lines
7.5 KiB
Plaintext
Raw Normal View History

2013-03-21 01:20:29 -07:00
# Arduino AVR Core and platform.
# ------------------------------
#
2013-03-21 01:20:29 -07:00
# For more info:
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification
2013-03-21 01:20:29 -07:00
name=Arduino AVR Boards
2018-09-10 02:45:34 -07:00
version=1.6.23
2013-03-21 01:20:29 -07:00
# AVR compile variables
# ---------------------
compiler.warning_flags=-w
compiler.warning_flags.none=-w
compiler.warning_flags.default=
compiler.warning_flags.more=-Wall
compiler.warning_flags.all=-Wall -Wextra
# Default "compiler.path" is correct, change only if you want to override the initial value
compiler.path={runtime.tools.avr-gcc.path}/bin/
compiler.c.cmd=avr-gcc
2016-06-16 04:05:24 -07:00
compiler.c.flags=-c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects
compiler.c.elf.flags={compiler.warning_flags} -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections
compiler.c.elf.cmd=avr-gcc
compiler.S.flags=-c -g -x assembler-with-cpp -flto -MMD
compiler.cpp.cmd=avr-g++
compiler.cpp.flags=-c -g -Os {compiler.warning_flags} -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto
2016-06-16 04:05:24 -07:00
compiler.ar.cmd=avr-gcc-ar
compiler.ar.flags=rcs
compiler.objcopy.cmd=avr-objcopy
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
compiler.elf2hex.cmd=avr-objcopy
compiler.ldflags=
compiler.size.cmd=avr-size
# This can be overridden in boards.txt
build.extra_flags=
# These can be overridden in platform.local.txt
compiler.c.extra_flags=
compiler.c.elf.extra_flags=
compiler.S.extra_flags=
compiler.cpp.extra_flags=
compiler.ar.extra_flags=
compiler.objcopy.eep.extra_flags=
compiler.elf2hex.extra_flags=
# AVR compile patterns
# --------------------
## Compile c files
recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
## Compile c++ files
recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
## Compile S files
recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.S.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.S.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
## Create archives
2016-04-04 10:27:47 -07:00
# archive_file_path is needed for backwards compatibility with IDE 1.6.5 or older, IDE 1.6.6 or newer overrides this value
archive_file_path={build.path}/{archive_file}
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}"
## Combine gc-sections, archives, and objects
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm
## Create output files (.eep and .hex)
recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep"
recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"
## Save hex
recipe.output.tmp_file={build.project_name}.hex
recipe.output.save_file={build.project_name}.{build.variant}.hex
## Compute size
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
recipe.size.regex=^(?:\.text|\.data|\.bootloader)\s+([0-9]+).*
recipe.size.regex.data=^(?:\.data|\.bss|\.noinit)\s+([0-9]+).*
recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).*
## Preprocessor
preproc.includes.flags=-w -x c++ -M -MG -MP
recipe.preproc.includes="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {preproc.includes.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}"
preproc.macros.flags=-w -x c++ -E -CC
recipe.preproc.macros="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {preproc.macros.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{preprocessed_file_path}"
# AVR Uploader/Programmers tools
2013-03-21 01:20:29 -07:00
# ------------------------------
2015-03-02 08:28:55 -08:00
tools.avrdude.path={runtime.tools.avrdude.path}
2015-03-02 08:41:37 -08:00
tools.avrdude.cmd.path={path}/bin/avrdude
tools.avrdude.config.path={path}/etc/avrdude.conf
2016-12-19 09:32:22 -08:00
tools.avrdude.network_cmd={runtime.tools.arduinoOTA.path}/bin/arduinoOTA
tools.avrdude.upload.params.verbose=-v
tools.avrdude.upload.params.quiet=-q -q
Set default values for Arduino AVR Boards upload.verify and program.verify Arduino AVR Boards 1.6.11 added the {upload.verify} property to the tools.avrdude.upload recipe and {program.verify} to the tools.avrdude.program recipe to support the File > Preferences > Verify code after upload setting. In Arduino IDE versions 1.6.8 and previous upload.verify is set to true or false depending on the preferences setting which causes Upload to an AVR board with Arduino IDE 1.6.8 or older and Arduino AVR Boards 1.6.11 or newer to generate AVRDUDE commands like: avrdude -CC:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino2/etc/avrdude.conf -v true -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:C:\Users\per\AppData\Local\Temp\buildece560c1024a4a94b7c3b05be61aa2fc.tmp/sketch_sep28a.ino.hex:i program.verify is unset, which causes Upload Using Programmer to an AVR board with Arduino IDE 1.6.8 or older and Arduino AVR Boards 1.6.11 or newer to generate AVRDUDE commands like: avrdude -CC:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino6/etc/avrdude.conf -v {program.verify} -patmega328p -cusbasp -Pusb -Uflash:w:C:\Users\per\AppData\Local\Temp\build77ff2e21c5523c5895e8d065447461cb.tmp/sketch_sep28a.ino.hex:i AVRDUDE 6.0.1 is able to ignore the spurious item in the command and successfully upload but when used with AVRDUDE 6.3.0 this causes upload to fail: avrdude: no programmer has been specified on the command line or the config file Specify a programmer using the -c option and try again This means that Arduino AVR Boards 1.6.12 and 1.6.14 are not backwards compatible with Arduino IDE 1.6.8 and previous. Setting a default empty value for the upload.verify and program.verify properties in platform.txt causes Arduino IDE 1.6.8 and older to generate an AVRDUDE command identical to that generated with Arduino AVR Boards 1.6.10 or older(meaning that, as previously, the preferences setting has no effect): avrdude -CC:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino2/etc/avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:C:\Users\per\AppData\Local\Temp\buildece560c1024a4a94b7c3b05be61aa2fc.tmp/sketch_sep28a.ino.hex:i Arduino IDE 1.6.9 and newer overrides the default values of upload.verify and program.verify, therefore this change has no effect on the AVRDUDE command generated and verification is controlled by the preferences setting as usual. Tested back to Arduino IDE 1.6.2, the oldest IDE version that supports Boards Manager updates.
2016-09-28 19:10:27 -07:00
# tools.avrdude.upload.verify is needed for backwards compatibility with IDE 1.6.8 or older, IDE 1.6.9 or newer overrides this value
tools.avrdude.upload.verify=
tools.avrdude.upload.params.noverify=-V
tools.avrdude.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} {upload.verify} -p{build.mcu} -c{upload.protocol} "-P{serial.port}" -b{upload.speed} -D "-Uflash:w:{build.path}/{build.project_name}.hex:i"
tools.avrdude.program.params.verbose=-v
tools.avrdude.program.params.quiet=-q -q
Set default values for Arduino AVR Boards upload.verify and program.verify Arduino AVR Boards 1.6.11 added the {upload.verify} property to the tools.avrdude.upload recipe and {program.verify} to the tools.avrdude.program recipe to support the File > Preferences > Verify code after upload setting. In Arduino IDE versions 1.6.8 and previous upload.verify is set to true or false depending on the preferences setting which causes Upload to an AVR board with Arduino IDE 1.6.8 or older and Arduino AVR Boards 1.6.11 or newer to generate AVRDUDE commands like: avrdude -CC:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino2/etc/avrdude.conf -v true -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:C:\Users\per\AppData\Local\Temp\buildece560c1024a4a94b7c3b05be61aa2fc.tmp/sketch_sep28a.ino.hex:i program.verify is unset, which causes Upload Using Programmer to an AVR board with Arduino IDE 1.6.8 or older and Arduino AVR Boards 1.6.11 or newer to generate AVRDUDE commands like: avrdude -CC:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino6/etc/avrdude.conf -v {program.verify} -patmega328p -cusbasp -Pusb -Uflash:w:C:\Users\per\AppData\Local\Temp\build77ff2e21c5523c5895e8d065447461cb.tmp/sketch_sep28a.ino.hex:i AVRDUDE 6.0.1 is able to ignore the spurious item in the command and successfully upload but when used with AVRDUDE 6.3.0 this causes upload to fail: avrdude: no programmer has been specified on the command line or the config file Specify a programmer using the -c option and try again This means that Arduino AVR Boards 1.6.12 and 1.6.14 are not backwards compatible with Arduino IDE 1.6.8 and previous. Setting a default empty value for the upload.verify and program.verify properties in platform.txt causes Arduino IDE 1.6.8 and older to generate an AVRDUDE command identical to that generated with Arduino AVR Boards 1.6.10 or older(meaning that, as previously, the preferences setting has no effect): avrdude -CC:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino2/etc/avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:C:\Users\per\AppData\Local\Temp\buildece560c1024a4a94b7c3b05be61aa2fc.tmp/sketch_sep28a.ino.hex:i Arduino IDE 1.6.9 and newer overrides the default values of upload.verify and program.verify, therefore this change has no effect on the AVRDUDE command generated and verification is controlled by the preferences setting as usual. Tested back to Arduino IDE 1.6.2, the oldest IDE version that supports Boards Manager updates.
2016-09-28 19:10:27 -07:00
# tools.avrdude.program.verify is needed for backwards compatibility with IDE 1.6.8 or older, IDE 1.6.9 or newer overrides this value
tools.avrdude.program.verify=
tools.avrdude.program.params.noverify=-V
tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} {program.verify} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{build.path}/{build.project_name}.hex:i"
tools.avrdude.erase.params.verbose=-v
2012-05-25 08:31:55 -07:00
tools.avrdude.erase.params.quiet=-q -q
tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Ulock:w:{bootloader.unlock_bits}:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m
2012-05-25 08:31:55 -07:00
tools.avrdude.bootloader.params.verbose=-v
tools.avrdude.bootloader.params.quiet=-q -q
tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{runtime.platform.path}/bootloaders/{bootloader.file}:i" -Ulock:w:{bootloader.lock_bits}:m
tools.avrdude_remote.upload.pattern=/usr/bin/run-avrdude /tmp/sketch.hex {upload.verbose} -p{build.mcu}
tools.avrdude.upload.network_pattern="{network_cmd}" -address {serial.port} -port {upload.network.port} -sketch "{build.path}/{build.project_name}.hex" -upload {upload.network.endpoint_upload} -sync {upload.network.endpoint_sync} -reset {upload.network.endpoint_reset} -sync_exp {upload.network.sync_return}
# USB Default Flags
# Default blank usb manufacturer will be filled in at compile time
# - from numeric vendor ID, set to Unknown otherwise
2015-03-06 03:46:21 -08:00
build.usb_manufacturer="Unknown"
2017-05-31 06:27:36 -07:00
build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}'