Compilation improvements by adding variant as other obj but not working on device Arduino Zero devices with OpenOCD working Created ARM_TOOLS_DIR and define arm toolchain executables in Sam.mk Check avr-gcc on last AVR_TOOLS_DIR detect and indenting formatting GDB debugging and programming added Documentation updates and define ARDMK_VENDOR rather than include Sam.mk Expand all parse_boards when defined rather than when used Trim extra defines regex working on both macOS and Linux but need better fix Print USB ids and added debug usage to readme Add note on Arduino package dir and made board.txt work Do ARM ARDUINO_ARCH define in Arduino.mk] Add MZeroBlink to non-testable examples for now Remove \B from extra defines grep Add ARDUINO_PACKAGE_DIR for board support files Fix a typo in the README Fix typo in arduino-mk-vars.md Prevent re-including Arduino.mk from Sam.mk when make restarts for upload Add catrina to ARD_REST_OPTS if/else Remove realpath in Sam.mk for cygwin compatability SAMD bootloader support in ard-reset using --zero Enters bootloader using open/close of port at 1200 BAUD, then polls the attached devices for new port enumerating (bootloader). This is how the Arduino IDE operates Bossa support for Zero, MKR1000 etc Re-word Arm README section after Native USB development Reset for zero refactored like IDE Zero bootloader reset tested on macOS and comments added Re-word ARM bootloader and remove imports from testing Patch changes ARDMK_VENDOR->ARCHITECHTURE, show_config_vars, ignore CORE_VER if emtpy Common.mk header guard, openocd/bossac avoid separator, typos Documentation update for patch changes Move ARM tools to Sam.mk and auto-detect include Correct accidental commit of Blink Makefile change Lib fix with alternative core and documentation Append zero to ARD_RESET_OPTS rather than set Prioritise package ARM upload tools over path installed Add note in README on ARM tools versions Move openocd variant config script flag to OPTS
26 KiB
Documentation of variables
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
Global variables
ARDUINO_QUIET
Description:
Suppress printing of Arduino-Makefile configuration.
Defaults to 0
(unset/disabled).
Example:
ARDUINO_QUIET = 1
Requirement: Optional
Installation/Directory variables
ARDMK_DIR
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
AVR_TOOLS_DIR
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
ARM_TOOLS_DIR
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
RESET_CMD
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
Arduino IDE variables
ARDUINO_DIR
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
ARDUINO_PACKAGE_DIR
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
ARDUINO_PLATFORM_LIB_PATH
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
ARDUINO_VERSION
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
ARCHITECTURE
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
ARDMK_VENDOR
Description:
Board vendor/maintainer/series.
Defaults to arduino
.
Example:
ARDMK_VENDOR = sparkfun
Requirement: Optional
ARDUINO_SKETCHBOOK
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
ARDUINO_PREFERENCES_PATH
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
ARDUINO_CORE_PATH
Description:
Path to standard Arduino core files.
Example:
ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino/cores/arduino
Requirement: Optional
Sketch related variables
ARDUINO_LIBS
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
BOARD_TAG
Description:
Device type as listed in boards.txt
or make show_boards
.
Example:
BOARD_TAG = uno or mega2560
Requirement: Mandatory
BOARD_SUB
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
MONITOR_PORT
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
FORCE_MONITOR_PORT
Description:
Skip the MONITOR_PORT existance check.
Example:
# Enable
FORCE_MONITOR_PORT = true
# Disable (default)
undefine FORCE_MONITOR_PORT
Requirement: Optional
USER_LIB_PATH
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
OBJDIR
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
TARGET
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
ALTERNATE_CORE
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
ARDUINO_VAR_PATH
Description:
Path to non-standard core's variant files.
Example:
ARDUINO_VAR_PATH = $(HOME)/sketchbook/hardware/arduino-tiny/cores/tiny
Requirement: Optional
CORE
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
VARIANT
Description:
Variant of a standard board design.
Usually can be auto-detected as build.variant
from boards.txt
.
Example:
VARIANT = leonardo
Requirement: Optional
USB_TYPE
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
USB_VID
Description:
Override USB VID
for atmega32u4 boards.
Usually can be auto-detected as build.vid
from boards.txt
Example:
USB_VID = 0x2341
Requirement: Optional
USB_PID
Description:
Override USB PID
for atmega32u4 boards.
Usually can be auto-detected as build.pid
from boards.txt
Example:
USB_PID = 0x8039
Requirement: Optional
F_CPU
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
HEX_MAXIMUM_SIZE
Description:
Maximum hex file size
Usually can be auto-detected as upload.maximum_size
from boards.txt
Example:
HEX_MAXIMUM_SIZE = 14336
Requirement: Optional
MCU
Description:
Microcontroller model.
Usually can be auto-detected as build.mcu
from boards.txt
Example:
MCU = atmega32u4
Requirement: Optional
MCU_FLAG_NAME
Description:
Override default MCU flags.
Defaults to mmcu
Example:
MCU_FLAG_NAME = mprocessor
Requirement: Optional
MONITOR_BAUDRATE
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
ISP programming variables
ISP_PROG
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
ISP_PORT
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
ISP_LOCK_FUSE_PRE
Description:
Bootloader unlock bits.
Usually can be auto-detected from boards.txt
Example:
ISP_LOCK_FUSE_PRE = 0x3f
Requirement: Optional
ISP_LOCK_FUSE_POST
Description:
Bootloader lock bits.
Usually can be auto-detected from boards.txt
Example:
ISP_LOCK_FUSE_POST = 0xcf
Requirement: Optional
ISP_HIGH_FUSE
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
ISP_EEPROM
Description:
Whether to upload the EEPROM file or not.
Defaults to 0
Example:
ISP_EEPROM = 1
Requirement: Optional
Compiler/Executable variables
CC_NAME
Description:
C compiler.
Defaults to avr-gcc
Example:
CC_NAME = pic32-gcc
Requirement: Optional
CXX_NAME
Description:
C++ compiler.
Defaults to avr-g++
Example:
CXX_NAME = pic32-g++
Requirement: Optional
OBJCOPY_NAME
Description:
Objcopy utility.
Defaults to avr-objcopy
Example:
OBJCOPY_NAME = pic32-objcopy
Requirement: Optional
OBJDUMP_NAME
Description:
Objdump utility.
Defaults to avr-objdump
Example:
OBJDUMP_NAME = pic32-objdump
Requirement: Optional
AR_NAME
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
SIZE_NAME
Description:
Size utility.
Defaults to avr-size
Example:
SIZE_NAME = pic32-size
Requirement: Optional
NM_NAME
Description:
Nm utility.
Defaults to avr-nm
Example:
NM_NAME = pic32-nm
Requirement: Optional
GDB_NAME
Description:
GDB utility.
Defaults to arm-none-eabi-gdb
Requirement: Optional
OPTIMIZATION_LEVEL
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
OTHER_LIBS
Description:
Additional Linker lib flags, for platform support
Defaults to ""
Example:
OTHER_LIBS = -lsomeplatformlib
Requirement: Optional
CFLAGS_STD
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
CXXFLAGS_STD
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
CFLAGS
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
on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
Example:
CFLAGS += -my-c-only-flag
Requirement: Optional
CXXFLAGS
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
ASFLAGS
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
CPPFLAGS
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
OVERRIDE_EXECUTABLES
Description:
Override the default build tools.
If set to 1
, each tool (CC
, CXX
, AS
, OBJCOPY
, OBJDUMP
, AR
, SIZE
, NM
) must have its path explicitly defined. See chipKIT.mk
.
Example:
OVERRIDE_EXECUTABLES = 1
Requirement: Optional
MONITOR_CMD
Description:
Command to run the serial monitor.
Defaults to screen
Example:
MONITOR_CMD = minicom
Requirement: Optional
PRE_BUILD_HOOK
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
Avrdude setting variables
AVRDUDE
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
AVRDUDE_CONF
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
AVR_TOOLS_PATH
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
ARDUINO_LIB_PATH
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
ARDUINO_CORE_PATH
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
ALTERNATE_CORE_PATH
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
CORE_VER
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
CMSIS_DIR
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
CMSIS_ATMEL_DIR
Description:
Path to CMSIS-Atmel directory. Installed with ARM support package.
Defaults to ARDUINO_PACKAGE_DIR/tools/CMSIS-Atmel/1.1.0/CMSIS
Requirement: Optional
BOARDS_TXT
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
AVRDUDE_ARD_BAUDRATE
Description:
Upload speed
Usually can be auto-detected as upload.speed
from boards.txt
Example:
AVRDUDE_ARD_BAUDRATE = 19200
Requirement: Optional
AVRDUDE_ARD_PROGRAMMER
Description:
Upload protocol
Usually can be auto-detected as upload.protocol
from boards.txt
Example:
AVRDUDE_ARD_PROGRAMMER = stk500v1
Requirement: Optional
AVRDUDE_ISP_BAUDRATE
Description:
ISP speed if different to upload.speed
Defaults to same as AVRDUDE_ARD_BAUDRATE
or 19200
Example:
AVRDUDE_ISP_BAUDRATE = 19200
Requirement: Optional
AVRDUDE_OPTS
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
Bootloader variables
BOOTLOADER_FILE
Description:
File for bootloader.
Usually can be auto-detected as bootloader.file
from boards.txt
Example:
BOOTLOADER_FILE = optiboot_atmega328.hex
Requirement: Optional
BOOTLOADER_PATH
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
BOOTLOADER_PARENT
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
BOOTLOADER_SIZE
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
BOOTLOADER_UNPROTECT
Description:
Bootloader unprotect sequence for upload tool. Normally parsed from boards.txt
Defaults to at91samd bootloader 0
Requirement: Optional
BOOTLOADER_PROTECT
Description:
Bootloader protect sequence for upload tool. Normally parsed from boards.txt
Defaults to at91samd bootloader 16384
Requirement: Optional
BOOTLOADER_PROTECT_VERIFY
Description:
Bootloader protect and verify sequence for upload tool. Normally parsed from boards.txt
Defaults to at91samd bootloader
Requirement: Optional
BOOTLOADER_UPLOAD_TOOL
Description:
Bootloader upload binary to use. Normally parsed from boards.txt.
Defaults to openocd
Requirement: Optional
ChipKIT variables
MPIDE_DIR
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
MPIDE_PREFERENCES_PATH
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
ARM variables
UPLOAD_TOOL
Description:
Tool to upload binary to device. Normally parsed from boards.txt.
Defaults to openocd
Example:
UPLOAD_TOOL = gdb
Requirement: Optional
DEBUG
Description:
Define to set DEBUG_FLAGS
and allow stepping of code using GDB.
Defaults to undefined.
Example:
DEBUG = 1
Requirement: Optional
GDB_PORT
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
GDB_OPTS
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
GDB_UPLOAD_OPTS
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
BOSSA
Description:
Path to bossac binary.
Can usually be detected from $ARDUINO_PACKAGE_DIR
/tools subdirectory when ARM
device support is installed.
Requirement: Optional
BOSSA_OPTS
Description:
Flags to pass to bossac command.
Defaults to -d --info --erase --write --verify --reset
Requirement: Optional
OPENOCD
Description:
Path to openocd binary.
Can usually be detected from $ARDUINO_PACKAGE_DIR
/tools subdirectory when ARM
device support is installed.
Requirement: Optional
OPENOCD_OPTS
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
Ctags variables
TAGS_FILE
Description:
Output file name for tags. Defaults to 'tags'.
Example:
TAGS_FILE = .tags
Requirement: Optional
CTAGS_OPTS
Description:
Additional options to pass to ctags
command.
Example:
# Run ctags in verbose mode
CTAGS_OPTS = -V
Requirement: Optional
CTAGS_CMD
Description:
Location of ctags
binary. Defaults to user path.
Example:
CTAGS_CMD = /usr/local/bin/
Requirement: Optional