From f80486609505876fb0f103c3c1d03aba8f6a0f79 Mon Sep 17 00:00:00 2001 From: John Whittington Date: Tue, 2 Jan 2018 17:35:47 +0000 Subject: SAMD Cortex M0 device support (Zero, MKR1000, etc) 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 --- examples/MZeroBlink/MZeroBlink.ino | 19 +++++++++++++++++++ examples/MZeroBlink/Makefile | 24 ++++++++++++++++++++++++ examples/ZeroBlink/Makefile | 30 ++++++++++++++++++++++++++++++ examples/ZeroBlink/ZeroBlink.ino | 19 +++++++++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 examples/MZeroBlink/MZeroBlink.ino create mode 100644 examples/MZeroBlink/Makefile create mode 100644 examples/ZeroBlink/Makefile create mode 100644 examples/ZeroBlink/ZeroBlink.ino (limited to 'examples') diff --git a/examples/MZeroBlink/MZeroBlink.ino b/examples/MZeroBlink/MZeroBlink.ino new file mode 100644 index 0000000..f9a59a9 --- /dev/null +++ b/examples/MZeroBlink/MZeroBlink.ino @@ -0,0 +1,19 @@ +/* + Blink + Turns on an LED on for one second, then off for one second, repeatedly. + + This example code is in the public domain. + */ + +void setup() { + // initialize the digital pin as an output. + // Pin 13 has an LED connected on most Arduino boards: + pinMode(13, OUTPUT); +} + +void loop() { + digitalWrite(13, HIGH); // set the LED on + delay(1000); // wait for a second + digitalWrite(13, LOW); // set the LED off + delay(1000); // wait for a second +} diff --git a/examples/MZeroBlink/Makefile b/examples/MZeroBlink/Makefile new file mode 100644 index 0000000..29cb90b --- /dev/null +++ b/examples/MZeroBlink/Makefile @@ -0,0 +1,24 @@ +# Arduino M0 Pro Programming Port +BOARD_TAG = mzero_pro_bl_dbg + +# Define debug if you want to use gdb +#DEBUG = 1 + +# Define port if using Black Magic Probe rather than default localhost:3333 +#GDB_PORT = /dev/ttyACM0 + +# Define ARM toolchain dir if not using Arduino supplied +#ARM_TOOLS_DIR = /usr + +# Define AVR toolchain dir if not using Arduino supplied and using native port +#AVR_TOOLS_DIR = /usr + +# Define Arduino support package installation path where SAM device support has been installed +# Linux +# ARDUINO_PACKAGE_DIR := $(HOME)/.arduino15/packages +# macOS +# ARDUINO_PACKAGE_DIR := $(HOME)/Library/Arduino15/packages +# Windows +# ARDUINO_PACKAGE_DIR := "C:/Users/$(USER)/AppData/Local/Arduino15/packages" + +include ../../Sam.mk diff --git a/examples/ZeroBlink/Makefile b/examples/ZeroBlink/Makefile new file mode 100644 index 0000000..60c8435 --- /dev/null +++ b/examples/ZeroBlink/Makefile @@ -0,0 +1,30 @@ +# Arduino Zero Native Port (should work with Feather, MKR1000 etc.) +# BOOTLOADER: The bootloader on these devices loaded when reset is pressed twice +# or the port is opened/closed at 1200 BAUD. If there is no program on the device, +# you may have to manually enter bootloader by toggling reset twice. +# see http://www.avdweb.nl/arduino/samd21/virus.html +BOARD_TAG = arduino_zero_native + +# Define alternative core path if using another board supplier +#ALTERNATE_CORE_PATH = $(HOME)/Arduino/hardware/sparkfun/samd + +# Define monitor port and isp port (bootloader port). +# Will automatically detect if Linux/macOS but MUST be defined on Windows +#MONITOR_PORT = com40 # CDC serial +#ISP_PORT = com39 # bootloader + +# Define ARM toolchain dir if not using Arduino supplied +#ARM_TOOLS_DIR = /usr + +# Define AVR toolchain dir if not using Arduino supplied and using native port +#AVR_TOOLS_DIR = /usr + +# Define Arduino support package installation path where SAM device support has been installed +# Linux +#ARDUINO_PACKAGE_DIR := $(HOME)/.arduino15/packages +# macOS +#ARDUINO_PACKAGE_DIR := $(HOME)/Library/Arduino15/packages +# Windows +#ARDUINO_PACKAGE_DIR := "C:/Users/$(USER)/AppData/Local/Arduino15/packages" + +include ../../Sam.mk diff --git a/examples/ZeroBlink/ZeroBlink.ino b/examples/ZeroBlink/ZeroBlink.ino new file mode 100644 index 0000000..f9a59a9 --- /dev/null +++ b/examples/ZeroBlink/ZeroBlink.ino @@ -0,0 +1,19 @@ +/* + Blink + Turns on an LED on for one second, then off for one second, repeatedly. + + This example code is in the public domain. + */ + +void setup() { + // initialize the digital pin as an output. + // Pin 13 has an LED connected on most Arduino boards: + pinMode(13, OUTPUT); +} + +void loop() { + digitalWrite(13, HIGH); // set the LED on + delay(1000); // wait for a second + digitalWrite(13, LOW); // set the LED off + delay(1000); // wait for a second +} -- cgit v1.2.3