mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-03 14:24:15 +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.
103 lines
5.0 KiB
Plaintext
103 lines
5.0 KiB
Plaintext
|
|
# Arduino SAM Core and platform.
|
|
# ------------------------------
|
|
#
|
|
# For more info:
|
|
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification
|
|
|
|
name=Arduino ARM (32-bits) Boards
|
|
version=1.6.4
|
|
|
|
# SAM3 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
|
|
|
|
compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
|
|
compiler.c.cmd=arm-none-eabi-gcc
|
|
compiler.c.flags=-c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -Dprintf=iprintf -MMD
|
|
compiler.c.elf.cmd=arm-none-eabi-gcc
|
|
compiler.c.elf.flags=-Os -Wl,--gc-sections
|
|
compiler.S.cmd=arm-none-eabi-gcc
|
|
compiler.S.flags=-c -g -x assembler-with-cpp -mthumb
|
|
compiler.cpp.cmd=arm-none-eabi-g++
|
|
compiler.cpp.flags=-c -g -Os {compiler.warning_flags} -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -Dprintf=iprintf -MMD
|
|
compiler.ar.cmd=arm-none-eabi-ar
|
|
compiler.ar.flags=rcs
|
|
compiler.objcopy.cmd=arm-none-eabi-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 binary
|
|
compiler.elf2hex.cmd=arm-none-eabi-objcopy
|
|
compiler.ldflags=
|
|
compiler.size.cmd=arm-none-eabi-size
|
|
compiler.define=-DARDUINO=
|
|
|
|
# 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.cpp.extra_flags=
|
|
compiler.S.extra_flags=
|
|
compiler.ar.extra_flags=
|
|
compiler.elf2hex.extra_flags=
|
|
|
|
|
|
compiler.libsam.c.flags="-I{build.system.path}/libsam" "-I{build.system.path}/CMSIS/CMSIS/Include/" "-I{build.system.path}/CMSIS/Device/ATMEL/"
|
|
|
|
# USB Flags
|
|
# ---------
|
|
build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} -DUSBCON '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}'
|
|
|
|
# Default usb manufacturer will be replaced at compile time using
|
|
# numeric vendor ID if available or by board's specific value.
|
|
build.usb_manufacturer="Unknown"
|
|
|
|
|
|
# SAM3 compile patterns
|
|
# ---------------------
|
|
|
|
## Compile c files
|
|
recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mcpu={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} {compiler.libsam.c.flags} {includes} "{source_file}" -o "{object_file}"
|
|
|
|
## Compile c++ files
|
|
recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mcpu={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} {compiler.libsam.c.flags} {includes} "{source_file}" -o "{object_file}"
|
|
|
|
## Compile S files
|
|
recipe.S.o.pattern="{compiler.path}{compiler.S.cmd}" {compiler.S.flags} -mcpu={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} {compiler.libsam.c.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} -mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/sketch/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}/sketch/{build.project_name}.elf" "-L{build.path}" -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group "{build.path}/core/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--end-group -lm -gcc
|
|
|
|
## Create output (.bin file)
|
|
recipe.objcopy.bin.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}.bin"
|
|
|
|
## Save hex
|
|
recipe.output.tmp_file={build.project_name}.bin
|
|
recipe.output.save_file={build.project_name}.{build.variant}.bin
|
|
|
|
## Compute size
|
|
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/sketch/{build.project_name}.elf"
|
|
recipe.size.regex=\.text\s+([0-9]+).*
|
|
|
|
|
|
# SAM3 Uploader tools
|
|
# -------------------
|
|
|
|
tools.bossac.path={runtime.tools.bossac.path}
|
|
tools.bossac.cmd=bossac
|
|
tools.bossac.cmd.windows=bossac.exe
|
|
|
|
tools.bossac.upload.params.verbose=-i -d
|
|
tools.bossac.upload.params.quiet=
|
|
tools.bossac.upload.pattern="{path}/{cmd}" {upload.verbose} --port={serial.port.file} -U {upload.native_usb} -e -w -v -b "{build.path}/sketch/{build.project_name}.bin" -R
|
|
|