The following are the different variables that can be overwritten in the user makefiles.
- Global variables
- Installation/Directory variables
- Arduino IDE variables
- Sketch related variables
- ISP programming variables
- Compiler/Executable variables
- Avrdude setting variables
- Bootloader variables
- ChipKIT variables
- ARM variables
- Ctags variables
Description:
Suppress printing of Arduino-Makefile configuration.
Defaults to 0
(unset/disabled).
Example:
ARDUINO_QUIET = 1
Requirement: Optional
Description:
Directory where the *.mk
files are stored.
Usually can be auto-detected as parent of Arduino.mk
.
Example:
ARDMK_DIR = /usr/share/arduino
Requirement: Optional
Description:
Directory where tools such as avrdude
, avr-g++
, avr-gcc
, etc. are stored in the bin/
subdirectory.
Usually can be auto-detected from $PATH
as SYSTEMPATH_AVR_TOOLS_DIR
or as BUNDLED_AVR_TOOLS_DIR
within the Arduino distribution.
Example:
AVR_TOOLS_DIR = /usr
# or
AVR_TOOLS_DIR = /usr/share/arduino/hardware/tools/avr
Requirement: Optional
Description:
Directory where the arm toolchain is installed. arm-none-eabi-*
should be
within a /bin subdirectory.
Can usually be detected from $ARDUINO_PACKAGE_DIR
/tools subdirectory when ARM
device support is installed.
Example:
ARM_TOOLS_DIR = /usr
# or
ARM_TOOLS_DIR =
/usr/share/arduino/hardware/tools/arm-none-eabi-gcc/VERSION
Requirement: Optional
Description:
Sub-directory where the arm toolchain is installed - usually the tool version.
Can usually be detected from $ARDUINO_PACKAGE_DIR
/tools subdirectory when ARM
device support is installed. Will resolve latest version if multiple found.
Example:
ARM_TOOLS_VER = 7-2017q4
Requirement: Optional
Description:
Command to reset the MCU.
Defaults to ard-reset-arduino
with the extra --caterina
flag for atmega32u4 boards.
Example:
RESET_CMD = $(HOME)/gertduino/reset
Requirement: Optional
Description:
Path to Python binary. Requires pyserial module installed. Makefile will error if unable to auto-find as utility scripts will not work. To override this, give it an empty define.
Example:
PYTHON_CMD = /usr/bin/python3
Requirement: Optional
Description:
Path to GNU grep binary. Only added for macOS, which has BSD grep by default but results in some parsing warnings. macOS users should install GNU grep using Homebrew.
Example:
GREP_CMD = /bin/grep
Requirement: Optional
Description:
Directory where the Arduino IDE and/or core files are stored. Usually can be auto-detected as AUTO_ARDUINO_DIR
.
Example:
# Linux
ARDUINO_DIR = /usr/share/arduino
# Mac OS X
ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/Java
# Mac OSX with IDE 1.5+
ARDUINO_DIR = /Applications/Arduino.app/Contents/Java
Requirement: Optional
Description:
Directory where the Arduino package support files are stored. Can auto-detect based on default OS IDE locations.
Example:
# Linux
ARDUINO_PACKAGE_DIR = $(HOME)/.arduino15/packages
# Mac OS X
ARDUINO_PACKAGE_DIR = $(HOME)/Library/Arduino15/packages
# Windows
ARDUINO_PACKAGE_DIR = $(USERPROFILE)/AppData/Local/Arduino15/packages
Requirement: Optional
Description:
Directory where the Arduino platform dependent libraries are stored. (Used only for Arduino 1.5+)
Example:
ARDUINO_PLATFORM_LIB_PATH = /usr/share/arduino/hardware/arduino/avr/libraries
Requirement: Optional
Description:
Version string for Arduino IDE and/or core.
Usually can be auto-detected as AUTO_ARDUINO_VERSION
from /usr/share/arduino/lib/version.txt
Example:
ARDUINO_VERSION = 105
Requirement: Optional
Description:
Architecture for Arduino 1.5+
Defaults to unset for 1.0 or avr
for 1.5+. This value is not literally the chip architecture but will often be
the chip series within a vendor's 'hardware' folder. For example, will default to samd
if using Sam.mk.
Example:
ARCHITECTURE = arm
Requirement: Optional
Description:
Board vendor/maintainer/series.
Defaults to arduino
.
Example:
ARDMK_VENDOR = sparkfun
Requirement: Optional
Description:
Path to sketchbook
directory.
Usually can be auto-detected from the Arduino preferences.txt
file or the default $(HOME)/sketchbook
Example:
ARDUINO_SKETCHBOOK = $(HOME)/sketches
Requirement: Optional
Description:
Path to Arduino preferences.txt
file.
Usually can be auto-detected as AUTO_ARDUINO_PREFERENCES
from the defaults:
- on Linux (1.0):
$(HOME)/.arduino/preferences.txt
- on Linux (1.5+):
$(HOME)/.arduino15/preferences.txt
- on Mac OS X (1.0):
$(HOME)/Library/Arduino/preferences.txt
- on Mac OS X (1.5+):
$(HOME)/Library/Arduino15/preferences.txt
Example:
ARDUINO_PREFERENCES_PATH = $(HOME)/sketches/preferences.txt
Requirement: Optional
Description:
Path to standard Arduino core files.
Example:
ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino/cores/arduino
Requirement: Optional
Description:
Any libraries you intend to include.
Usually can be auto-detected from the sketch. Separated by spaces. If the library has a /utility
folder (like SD
or Wire
library), then the utility folder should also be specified.
Example:
ARDUINO_LIBS = SD SD/utility Wire Wire/utility
Requirement: Optional
Description:
Device type as listed in boards.txt
or make show_boards
.
Example:
BOARD_TAG = uno or mega2560
Requirement: Mandatory
Description:
1.5+ submenu as listed in boards.txt
or make show_submenu
.
Example:
# diecimila.name=Arduino Duemilanove or Diecimila
BOARD_TAG=diecimila
# diecimila.menu.cpu.atmega168=ATmega168
BOARD_SUB=atmega168
Requirement: Mandatory for 1.5+ if using a submenu CPU
Description:
Allow selection of f_cpu and fuses specified in boards.txt
as {BOARD_TAG}.menu.clock.{BOARD_CLOCK}
.
This works for microprocessor board definitions like ATtiny that specify not only the clock speed but fuse settings as clock overrides.
It also works for f_cpu values specified in boards.txt
as {BOARD_TAG}.menu.speed.{BOARD_CLOCK}
.
For example, the Watterott ATmega328PB library https://github.com/watterott/ATmega328PB-Testing.
Example:
# Select external 16 MHz clock
BOARD_CLOCK=external16
Example:
# Select 20MHz speed
BOARD_CLOCK=20mhz
Requirement: Optional to override main board f_cpu and/or fuse settings.
Description:
Path to serial (USB) device used for uploading/serial comms.
Example:
# Linux
MONITOR_PORT = /dev/ttyUSB0
# or
MONITOR_PORT = /dev/ttyACM0
# Mac OS X
MONITOR_PORT = /dev/cu.usb*
# Windows
MONITOR_PORT = com3
Requirement: Mandatory
Description:
Skip the MONITOR_PORT existance check.
Example:
# Enable
FORCE_MONITOR_PORT = true
# Disable (default)
undefine FORCE_MONITOR_PORT
Requirement: Optional
Description:
Directory where additional libraries are stored.
Defaults to libraries
directory within user's sketchbook.
Example:
# Linux
USER_LIB_PATH = $(HOME)/sketchbook/libraries
# For a random project on *nix
USER_LIB_PATH = /path/to/my/project
Requirement: Optional
Description:
Directory where binaries and compiled files are put.
Defaults to build-$(BOARD_TAG)
in your Makefile
directory.
Example:
OBJDIR = /path/to/my/project-directory/bin
Requirement: Optional
Description:
What name you would like for generated target files.
Defaults to the name of your current working directory, but with underscores (_) instead of spaces.
Example:
TARGET = my-project
Will generate targets like my-project.hex
and my-project.elf
.
Requirement: Optional
Description:
Non-standard core for Arduino-unsupported chips like the ATtiny.
Example:
# HLT core
ALTERNATE_CORE = attiny-master
# tiny core
ALTERNATE_CORE = arduino-tiny
# tiny core 2
ALTERNATE_CORE = tiny2
Requirement: Optional
Description:
Path to non-standard core's variant files.
Example:
ARDUINO_VAR_PATH = $(HOME)/sketchbook/hardware/arduino-tiny/cores/tiny
Requirement: Optional
Description:
Name of the core inside the ALTERNATE_CORE or the standard core.
Usually can be auto-detected as build.core
from boards.txt
.
Example:
# standard Arduino core (undefine ALTERNATE_CORE)
CORE = arduino
# or
CORE = robot
# tiny core (ALTERNATE_CORE = arduino-tiny)
CORE = tiny
Requirement: Optional
Description:
Board identifier that passes to a compile option as -DARDUINO_$(BOARD).
Usually can be auto-detected as build.board
from boards.txt
.
If not found build.board entry, use upper-case converted "$(ARCHITECTURE)_$(BOARD_TAG)".
Example:
BOARD = AVR_LEONARD
Requirement: Optional
Description:
Variant of a standard board design.
Usually can be auto-detected as build.variant
from boards.txt
.
Example:
VARIANT = leonardo
Requirement: Optional
Description:
Define Teensy 3.1 usb device type. Default is USB_SERIAL
Example:
USB_TYPE = USB_SERIAL
# or
USB_TYPE = USB_HID
# or
USB_TYPE = USB_SERIAL_HID
# or
USB_TYPE = USB_MIDI
# or
USB_TYPE = USB_RAWHID
# or
USB_TYPE = USB_FLIGHTSIM
Requirement: Optional
Description:
Override USB VID
for atmega32u4 boards.
Usually can be auto-detected as build.vid
from boards.txt
Example:
USB_VID = 0x2341
Requirement: Optional
Description:
Override USB PID
for atmega32u4 boards.
Usually can be auto-detected as build.pid
from boards.txt
Example:
USB_PID = 0x8039
Requirement: Optional
Description:
CPU speed in Hz
Usually can be auto-detected as build.f_cpu
from boards.txt
, except in
some 1.5+ cores like attiny where there is a clock submenu.
Example:
F_CPU = 8000000L
Requirement: Optional
Description:
Maximum hex file size
Usually can be auto-detected as upload.maximum_size
from boards.txt
Example:
HEX_MAXIMUM_SIZE = 14336
Requirement: Optional
Description:
Microcontroller model.
Usually can be auto-detected as build.mcu
from boards.txt
Example:
MCU = atmega32u4
Requirement: Optional
Description:
Override default MCU flags.
Defaults to mmcu
Example:
MCU_FLAG_NAME = mprocessor
Requirement: Optional
Description:
Baudrate of the serial monitor.
Defaults to 9600
if it can't find it in the sketch Serial.begin()
Example:
MONITOR_BAUDRATE = 57600
Requirement: Optional
Description:
Type of ISP. Either a USB device or ArduinoISP protocol.
Example:
ISP_PROG = usbasp
# or
ISP_PROG = usbtiny
# or
ISP_PROG = stk500v2
# or
ISP_PROG = stk500v1
Requirement: Optional
Description:
Device path to ArduinoISP. Not needed for hardware ISP's. Also used to define bootloader port on SAMD devices.
Example:
# Linux
ISP_PORT = /dev/ttyACM0
Requirement: Optional
Description:
Bootloader unlock bits.
Usually can be auto-detected from boards.txt
Example:
ISP_LOCK_FUSE_PRE = 0x3f
Requirement: Optional
Description:
Bootloader lock bits.
Usually can be auto-detected from boards.txt
Example:
ISP_LOCK_FUSE_POST = 0xcf
Requirement: Optional
Description:
ISP_LOW_FUSE/ISP_EXT_FUSE
- high/low/extended fuse bits.
Usually can be auto-detected from boards.txt
Example:
ISP_HIGH_FUSE = 0xdf # or 0xff or 0x01
Requirement: Optional
Description:
Whether to upload the EEPROM file or not.
Defaults to 0
Example:
ISP_EEPROM = 1
Requirement: Optional
Description:
C compiler.
Defaults to avr-gcc
Example:
CC_NAME = pic32-gcc
Requirement: Optional
Description:
The tool prefix, which gets prepended to the tools like
- gcc
- g++
- as
- objcopy
- objdump
- ar
- size
- nm
Defaults to avr
Example:
TOOL_PREFIX = arm-none-eabi
TOOL_PREFIX = pic32
Requirement: Optional
Description:
C++ compiler.
Defaults to avr-g++
Example:
CXX_NAME = pic32-g++
Requirement: Optional
Description:
Objcopy utility.
Defaults to avr-objcopy
Example:
OBJCOPY_NAME = pic32-objcopy
Requirement: Optional
Description:
Objdump utility.
Defaults to avr-objdump
Example:
OBJDUMP_NAME = pic32-objdump
Requirement: Optional
Description:
Archive utility.
Defaults to avr-ar
unless you're using toolchain > 4.9.0 in which case we use avr-gcc-ar.
Example:
AR_NAME = pic32-ar
Requirement: Optional
Description:
Size utility.
Defaults to avr-size
Example:
SIZE_NAME = pic32-size
Requirement: Optional
Description:
Nm utility.
Defaults to avr-nm
Example:
NM_NAME = pic32-nm
Requirement: Optional
Description:
GDB utility.
Defaults to arm-none-eabi-gdb
Requirement: Optional
Description:
Linker's -O
flag
Defaults to s
, which shouldn't really be changed as it breaks SoftwareSerial
and usually results in bigger hex files.
Example:
OPTIMIZATION_LEVEL = 3
Requirement: Optional
Description:
Additional Linker lib flags, for platform support
Defaults to ""
Example:
OTHER_LIBS = -lsomeplatformlib
Requirement: Optional
Description:
Controls, exclusively, which C standard is to be used for compilation.
Defaults to undefined
on 1.0.x or -std=gnu11
on 1.5+ or if you install AVR toolchain > 4.9.0
Possible values:
- With
avr-gcc 4.3
, shipped with the 1.0 Arduino IDE:undefined
-std=c99
-std=gnu89
- This is the default for C code-std=gnu99
- With
avr-gcc 4.7, 4.8 or 4.9
, installed by you or 1.5+ IDE:undefined
-std=c99
-std=c11
-std=gnu89
-std=gnu99
-std=gnu11
- This is the default for C code
For more information, please refer to the Options Controlling C Dialect
Example:
CFLAGS_STD = -std=gnu89
Requirement: Optional
Description:
Controls, exclusively, which C++ standard is to be used for compilation.
Defaults to undefined
on 1.0 or -std=gnu++11
on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
Possible values:
- With
avr-gcc 4.3
, shipped with the 1.0 Arduino IDE:undefined
-std=c++98
-std=c++0x
-std=gnu++98
- This is the default for C code-std=gnu++0x
- With
avr-gcc 4.7, 4.8 or 4.9
, installed by you or 1.5+ IDE:undefined
-std=c++98
-std=c++11
-std=c++1y
-std=c++14
-std=gnu++98
-std=gnu++11
- This is the default for C++ code-std=gnu++1y
-std=gnu++14
For more information, please refer to the Options Controlling C Dialect
Example:
CXXFLAGS_STD = -std=gnu++98
Requirement: Optional
Description:
Flags passed to compiler for files compiled as C. Add more flags to this
variable using +=
.
Defaults to undefined
on 1.0 or -flto -fno-fat-lto-objects -fdiagnostics-color=$(DIAGNOSTICS_COLOR_WHEN)
on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
Example:
CFLAGS += -my-c-only-flag
Requirement: Optional
Description:
Flags passed to the compiler for files compiled as C++. Add more flags to this
variable using +=
.
Defaults to -fpermissive -fno-exceptions
on 1.0
or -fpermissive -fno-exceptions -fno-threadsafe-statics -flto -fno-devirtualize -fdiagnostics-color
on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
Example:
CXXFLAGS += -my-c++-onlyflag
Requirement: Optional
Description:
This variable controls the compiler's diagnostics-color setting, as defined
in CFLAGS or CXXFLAGS, on AVR toolchain > 4.9.0.
Supported values are: always
, never
and auto
.
For more details, see: [Options to Control Diagnostic Messages Formatting]
(https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#Language-Independent-Options)
Defaults to always
.
Example:
DIAGNOSTICS_COLOR_WHEN = never
# or
DIAGNOSTICS_COLOR_WHEN = auto
Requirement: Optional
Description:
Flags passed to compiler for files compiled as assembly (e.g. .S
files). Add
more flags to this variable using +=
.
Defaults to all flags required for a typical build.
Example:
ASFLAGS += -my-as-only-flag
Requirement: Optional
Description:
Flags passed to the C pre-processor (for C, C++ and assembly source files). Add
more flags to this variable using +=
.
Defaults to all flags required for a typical build.
Example:
CPPFLAGS += -DMY_DEFINE_FOR_ALL_SOURCE_TYPES
Requirement: Optional
Description:
Override the default build tool paths and names.
If OVERRIDE_EXECUTABLES is defined, all tools (CC
, CXX
, AS
,
OBJCOPY
, OBJDUMP
, AR
, SIZE
, NM
) must have their paths
explicitly defined. This may be used in the rare case where
overriding a path and/or executable name is required.
The "?=" assignment cannot be used because the executable tags
are already implicitly defined by Make (e.g. $(CC) == cc).
Example:
OVERRIDE_EXECUTABLES = 1
CC = /usr/bin/avr-gcc
CXX = /usr/bin/avr-g++
AS = /usr/bin/avr-as
OBJCOPY = /usr/bin/avr-objcopy
OBJDUMP = /usr/bin/avr-objdump
AR = /usr/bin/avr-ar
SIZE = /some_path/alternative_avr-size
NM = /some_path/alternative_avr-nm
Requirement: Optional
Description:
Command to run the serial monitor.
Defaults to screen
Example:
MONITOR_CMD = minicom
Requirement: Optional
Description:
Additional parameters for the putty -sercfg command line argument.
Interpreted as a comma-separated list of configuration options.
Example:
MONITOR_PARAMS = 8,1,n,N
Requirement: Optional
Description:
Path to shell script to be executed before build. Could be used to automatically bump revision number for example.
Defaults to pre-build-hook.sh
Example:
PRE_BUILD_HOOK = $(HOME)/bin/bump-revision.sh
Requirement: Optional
Description:
Path to avrdude
utility
Usually can be auto-detected within the parent of AVR_TOOLS_DIR
or in the $PATH
Example:
AVRDUDE = /usr/bin/avrdude
Requirement: Optional
Description:
Path to avrdude.conf
file
Usually can be auto-detected within the parent of AVR_TOOLS_DIR
Example:
AVRDUDE_CONF = /etc/avrdude.conf
# or
AVRDUDE_CONF = /usr/share/arduino/hardware/tools/avrdude.conf
Requirement: Optional
Description:
Enable autoerase flash.
By default disabled.
Example:
AVRDUDE_AUTOERASE_FLASH = yes
Requirement: Optional
Description:
Directory where tools such as avrdude
, avr-g++
, avr-gcc
etc. are stored.
Usually can be auto-detected from AVR_TOOLS_DIR/bin
Example:
AVR_TOOLS_PATH = /usr/bin
# or
AVR_TOOLS_PATH = /usr/share/arduino/hardware/tools/avr/bin
Requirement: Optional
Description:
Directory where the standard Arduino libraries are stored.
Defaults to ARDUINO_DIR/libraries
Example:
# Linux
ARDUINO_LIB_PATH = /usr/share/arduino/libraries
Requirement: Optional
Description:
Directory where the standard Arduino cores are stored.
Defaults to ARDUINO_DIR/hardware/arduino/cores/arduino
Example:
ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino/cores/robot
Requirement: Optional
Description:
Path to non-standard cores.
Defaults to ARDUINO_SKETCHBOOK/hardware/ALTERNATE_CORE
Example:
ALTERNATE_CORE_PATH = $(HOME)/sketchbook/hardware/arduino-tiny/cores/tiny
Requirement: Optional
Description:
Alternate core release version. The Arduino board support packages are within a sub-directory indicated by this define.
Defaults to package current release.
Example:
CORE_VER = 1.6.17
Requirement: Optional
Description:
Path to ARM CMSIS. Normally installed as part of ARM board support.
Defaults to ARDUINO_PACKAGE_DIR/tools/CMSIS/4.5.0/CMSIS
Example:
CMSIS_DIR = /usr/share/CMSIS
Requirement: Optional
Description:
Path to CMSIS-Atmel directory. Installed with ARM support package.
Defaults to ARDUINO_PACKAGE_DIR/tools/CMSIS-Atmel/1.1.0/CMSIS
Description:
Path to boards.txt
Defaults to ARDUINO_DIR/hardware/arduino/boards.txt
Example:
BOARD_TXT = $(HOME)/sketchbook/hardware/boards.txt
# or
BOARD_TXT = /usr/share/arduino/hardware/arduino/boards.txt
Requirement: Optional
Description:
Upload speed
Usually can be auto-detected as upload.speed
from boards.txt
Example:
AVRDUDE_ARD_BAUDRATE = 19200
Requirement: Optional
Description:
Upload protocol
Usually can be auto-detected as upload.protocol
from boards.txt
Example:
AVRDUDE_ARD_PROGRAMMER = stk500v1
Requirement: Optional
Description:
ISP speed if different to upload.speed
Defaults to same as AVRDUDE_ARD_BAUDRATE
or 19200
Example:
AVRDUDE_ISP_BAUDRATE = 19200
Requirement: Optional
Description:
Options to pass to avrdude
.
Defaults to -q -V
(quiet, don't verify). User values are not ANDed to the defaults, you have to set each option you require.
Example:
AVRDUDE_OPTS = -v
Requirement: Optional
Description:
File for bootloader.
Usually can be auto-detected as bootloader.file
from boards.txt
Example:
BOOTLOADER_FILE = optiboot_atmega328.hex
Requirement: Optional
Description:
Relative path to bootloader directory.
Usually can be auto-detected as a relative bootloader.path
from boards.txt
Deprecated in 1.5, now part of bootloader.file
Example:
BOOTLOADER_PATH = optiboot
# or
BOOTLOADER_PATH = arduino:atmega
Requirement: Optional
Description:
Absolute path to bootloader file's parent directory.
Defaults to /usr/share/arduino/hardware/arduino/bootloaders
(Linux)
Example:
BOOTLOADER_PARENT = $(HOME)/sketchbook/hardware/promicro/bootloaders
BOOTLOADER_PATH = caterina
BOOTLOADER_FILE = Caterina-promicro16.hex
Would result in an absolute path to the bootloader hex file of $(HOME)/sketchbook/hardware/promicro/bootloaders/caterina/Caterina-promicro16.hex
Requirement: Optional, unless BOOTLOADER_FILE and/or BOOTLOADER_PATH are user-defined
Description:
Size of bootloader on ARM devices, ensures correct start address when flashing application area. Normally parsed from boards.txt
Defaults to 0x2000
Requirement: Optional
Description:
Bootloader unprotect sequence for upload tool. Normally parsed from boards.txt
Defaults to at91samd bootloader 0
Requirement: Optional
Description:
Bootloader protect sequence for upload tool. Normally parsed from boards.txt
Defaults to at91samd bootloader 16384
Requirement: Optional
Description:
Bootloader protect and verify sequence for upload tool. Normally parsed from boards.txt
Defaults to at91samd bootloader
Requirement: Optional
Description:
Bootloader upload binary to use. Normally parsed from boards.txt.
Defaults to openocd
Requirement: Optional
Description:
Path to chipKIT MP IDE
Usually can be auto-detected as AUTO_MPIDE_DIR
from the defaults /usr/share/mpide
(Linux) or /Applications/Mpide.app/Contents/Resources/Java
(OSX)
Example:
MPIDE_DIR = $(HOME)/mpide
Requirement: Optional
Description:
Path to chipKIT preferences.txt
file.
Usually can be auto-detected as AUTO_MPIDE_PREFERENCES_PATH
from the defaults $(HOME)/.mpide/preferences.txt
(Linux) or $(HOME)/Library/Mpide/preferences.txt
(OSX)
Example:
MPIDE_PREFERENCES_PATH = $(HOME)/chipkit/preferences.txt
Requirement: Optional
Description:
Tool to upload binary to device. Normally parsed from boards.txt.
Defaults to openocd
Example:
UPLOAD_TOOL = gdb
Requirement: Optional
Description:
Define to set DEBUG_FLAGS
and allow stepping of code using GDB.
Defaults to undefined.
Example:
DEBUG = 1
Requirement: Optional
Description:
Server port to use for GDB debugging or upload. Default assumes server running on localhost but can re-define to use Black Magic Probe serial port.
Defaults to localhost:3333
Example:
GDB_PORT = /dev/ttyACM0
Requirement: Optional
Description:
Optional arguments to parse to GDB command.
Defaults to -ex "target extended-remote $(GDB_PORT)" -ex "monitor swdp_scan" -ex "attach 1" -ex "load" -d $(OBJDIR) $(TARGET_ELF)
Requirement: Optional
Description:
Optional arguments to parse to GDB command when uploading binary only.
Defaults to GDB_UPLOAD_OPTS = $(GDB_OPTS) -ex "set confirm off" -ex "set target-async off" -ex "set remotetimeout 30" -ex "detach" -ex "kill" -ex "quit"
Requirement: Optional
Description:
Path to bossac binary.
Can usually be detected from $ARDUINO_PACKAGE_DIR
/tools subdirectory when ARM
device support is installed.
Requirement: Optional
Description:
bossa
sub-directory - usually the tool version. Will auto-detect to highest version found.
Requirement: Optional
Description:
Flags to pass to bossac command.
Defaults to -d --info --erase --write --verify --reset
Requirement: Optional
Description:
Path to openocd binary.
Can usually be detected from $ARDUINO_PACKAGE_DIR
/tools subdirectory when ARM
device support is installed.
Requirement: Optional
Description:
openocd
sub-directory - usually the tool version. Will auto-detect to highest version found.
Requirement: Optional
Description:
Flags to pass to openocd command. If using openocd from non-Arduino distributions, one should define this with the path to the Arduino openocd script.
Defaults to -d2
Example:
OPENOCD_OPTS = $(ARDUINO_PACKAGE_DIR)/$(ARDMK_VENDOR)/tools/openocd/0.9.0-arduino6-static/share/openocd/scripts/ -f $(ARDUINO_PACKAGE_DIR)/$(ARDMK_VENDOR)/hardware/samd/1.6.17/variants/$(VARIANT)/$(OPENOCD_SCRIPT)
Requirement: Optional
Description:
Output file name for tags. Defaults to 'tags'.
Example:
TAGS_FILE = .tags
Requirement: Optional
Description:
Additional options to pass to ctags
command.
Example:
# Run ctags in verbose mode
CTAGS_OPTS = -V
Requirement: Optional
Description:
Path to the ctags
binary. Defaults to user path.
Example:
CTAGS_EXEC = /usr/local/bin/ctags
Requirement: Optional