mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-11 22:24:13 +01:00
7fd6244621
This uses the gnu11 standard, which is C11 with GNU extensions. Previously, gnu89 was being used, which is pretty ancient by now. C99 brings some important improvements, some of which were already available and used even without this option. C11 is more recent and brings more minor improvements. Most notable feature is the static_assert statement, allowing checking invariants at compiletime using the full C expressions.
114 lines
5.8 KiB
Plaintext
114 lines
5.8 KiB
Plaintext
|
|
# Arduino AVR Core and platform.
|
|
# ------------------------------
|
|
#
|
|
# For more info:
|
|
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification
|
|
|
|
name=Arduino AVR Boards
|
|
version=1.6.7
|
|
|
|
# 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 overidde the initial value
|
|
compiler.path={runtime.tools.avr-gcc.path}/bin/
|
|
compiler.c.cmd=avr-gcc
|
|
compiler.c.flags=-c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD
|
|
# -w flag added to avoid printing a wrong warning http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59396
|
|
# This is fixed in gcc 4.8.3 and will be removed as soon as we update the toolchain
|
|
compiler.c.elf.flags={compiler.warning_flags} -Os -Wl,--gc-sections
|
|
compiler.c.elf.cmd=avr-gcc
|
|
compiler.S.flags=-c -g -x assembler-with-cpp
|
|
compiler.cpp.cmd=avr-g++
|
|
compiler.cpp.flags=-c -g -Os {compiler.warning_flags} -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD
|
|
compiler.ar.cmd=avr-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 overriden 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
|
|
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{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}/sketch/{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}/sketch/{build.project_name}.elf" "{build.path}/sketch/{build.project_name}.eep"
|
|
recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/sketch/{build.project_name}.elf" "{build.path}/sketch/{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}/sketch/{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]+).*
|
|
|
|
|
|
# AVR Uploader/Programmers tools
|
|
# ------------------------------
|
|
|
|
tools.avrdude.path={runtime.tools.avrdude.path}
|
|
tools.avrdude.cmd.path={path}/bin/avrdude
|
|
tools.avrdude.config.path={path}/etc/avrdude.conf
|
|
|
|
tools.avrdude.upload.params.verbose=-v
|
|
tools.avrdude.upload.params.quiet=-q -q
|
|
tools.avrdude.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} -p{build.mcu} -c{upload.protocol} -P{serial.port} -b{upload.speed} -D "-Uflash:w:{build.path}/sketch/{build.project_name}.hex:i"
|
|
|
|
tools.avrdude.program.params.verbose=-v
|
|
tools.avrdude.program.params.quiet=-q -q
|
|
tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{build.path}/sketch/{build.project_name}.hex:i"
|
|
|
|
tools.avrdude.erase.params.verbose=-v
|
|
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
|
|
|
|
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
|
|
|
|
|
|
# USB Default Flags
|
|
# Default blank usb manufacturer will be filled it at compile time
|
|
# - from numeric vendor ID, set to Unknown otherwise
|
|
build.usb_manufacturer="Unknown"
|
|
build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}'
|