]> git.donarmstrong.com Git - tmk_firmware.git/commitdiff
Add Makefile.lufa to keyboard/hhkb and hbkb.
authortmk <nobody@nowhere>
Sat, 30 Jun 2012 04:26:09 +0000 (13:26 +0900)
committertmk <nobody@nowhere>
Sat, 30 Jun 2012 04:26:09 +0000 (13:26 +0900)
14 files changed:
common/bootloader.c
keyboard/hbkb/Makefile [changed from file to symlink]
keyboard/hbkb/Makefile.lufa [new file with mode: 0644]
keyboard/hbkb/Makefile.pjrc [new file with mode: 0644]
keyboard/hbkb/config.h
keyboard/hhkb/Makefile.lufa [new file with mode: 0644]
keyboard/hhkb/Makefile.pjrc
keyboard/hhkb/config.h [new file with mode: 0644]
keyboard/hhkb/config_pjrc.h [deleted file]
keyboard/hhkb/matrix.c
keyboard/macway/Makefile.lufa
keyboard/macway/Makefile.pjrc
protocol/pjrc.mk
rules.mk

index cb971c7043771fbcbde4849c1e92bd5757387176..e45295cd5f793429e321a68514c21fca3b2d304c 100644 (file)
@@ -9,6 +9,7 @@
  * http://www.fourwalledcubicle.com/files/LUFA/Doc/120219/html/_page__software_bootloader_start.html
  */
 
+// TODO: support usbasp
 /* Boot Section Size in bytes
  * Teensy halfKay   512
  * Atmel DFU loader 4096
deleted file mode 100644 (file)
index 26be322e0155e9facd36c4b9086cf4694788c225..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,56 +0,0 @@
-# Target file name (without extension).
-TARGET = hbk
-
-# Directory common source filess exist
-TOP_DIR = ../..
-
-# Directory keyboard dependent files exist
-TARGET_DIR = .
-
-# keyboard dependent files
-SRC =  main.c \
-       keymap.c \
-       matrix.c \
-       led.c
-
-CONFIG_H = config.h
-
-
-# MCU name, you MUST set this to match the board you are using
-# type "make clean" after changing this, so all files will be rebuilt
-#MCU = at90usb162       # Teensy 1.0
-MCU = atmega32u4       # Teensy 2.0
-#MCU = at90usb646       # Teensy++ 1.0
-#MCU = at90usb1286      # Teensy++ 2.0
-
-
-# Processor frequency.
-#   Normally the first thing your program should do is set the clock prescaler,
-#   so your program will run at the correct speed.  You should also set this
-#   variable to same clock speed.  The _delay_ms() macro uses this, and many
-#   examples use this variable to calculate timings.  Do not add a "UL" here.
-F_CPU = 16000000
-
-
-# Build Options
-#   comment out to disable the options.
-#
-MOUSEKEY_ENABLE = yes  # Mouse keys
-#PS2_MOUSE_ENABLE = yes        # PS/2 mouse(TrackPoint) support
-EXTRAKEY_ENABLE = yes  # Audio control and System control
-#NKRO_ENABLE = yes     # USB Nkey Rollover
-
-
-
-#---------------- Programming Options --------------------------
-#PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
-PROGRAM_CMD = /opt/dfu-programmer-0.5.2/bin/dfu-programmer $(MCU) erase && \
-             /opt/dfu-programmer-0.5.2/bin/dfu-programmer $(MCU) flash $(TARGET).hex && \
-             /opt/dfu-programmer-0.5.2/bin/dfu-programmer $(MCU) start
-
-
-
-include $(TOP_DIR)/protocol/pjrc.mk
-include $(TOP_DIR)/protocol.mk
-include $(TOP_DIR)/common.mk
-include $(TOP_DIR)/rules.mk
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..f00d036da3b3c37005cae5cfaa8489be117b92e7
--- /dev/null
@@ -0,0 +1 @@
+Makefile.lufa
\ No newline at end of file
diff --git a/keyboard/hbkb/Makefile.lufa b/keyboard/hbkb/Makefile.lufa
new file mode 100644 (file)
index 0000000..c73a0ca
--- /dev/null
@@ -0,0 +1,119 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+#                Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+#               (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+#            have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+#             have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+#               (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+#                (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging, 
+#              with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+#                   bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# Target file name (without extension).
+TARGET = hbkb_lufa
+
+# Directory common source filess exist
+TOP_DIR = ../..
+
+# Directory keyboard dependent files exist
+TARGET_DIR = .
+
+
+# List C source files here. (C dependencies are automatically generated.)
+SRC += keymap.c \
+       matrix.c \
+       led.c
+
+CONFIG_H = config.h
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+#     This will define a symbol, F_CPU, in all source code files equal to the
+#     processor frequency in Hz. You can then use this symbol in your source code to
+#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+#     automatically to create a 32-bit value in your source code.
+#
+#     This will be an integer division of F_USB below, as it is sourced by
+#     F_USB after it has run through any CPU prescalers. Note that this value
+#     does not *change* the processor frequency - it should merely be updated to
+#     reflect the processor speed set externally so that the code can use accurate
+#     software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+#     This will define a symbol, F_USB, in all source code files equal to the
+#     input clock frequency (before any prescaling is performed) in Hz. This value may
+#     differ from F_CPU if prescaling is used on the latter, and is required as the
+#     raw input clock is fed directly to the PLL sections of the AVR for high speed
+#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+#     at the end, this will be done automatically to create a 32-bit value in your
+#     source code.
+#
+#     If no clock division is performed on the input clock inside the AVR (via the
+#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+
+# Build Options
+#   comment out to disable the options.
+#
+MOUSEKEY_ENABLE = yes  # Mouse keys
+EXTRAKEY_ENABLE = yes  # Audio control and System control
+#NKRO_ENABLE = yes     # USB Nkey Rollover
+#PS2_MOUSE_ENABLE = yes        # PS/2 mouse(TrackPoint) support
+
+
+# Boot Section Size in bytes
+#   Teensy halfKay   512
+#   Atmel DFU loader 4096
+#   LUFA bootloader  4096
+OPT_DEFS += -DBOOT_SIZE=4096
+
+
+# Search Path
+VPATH += $(TARGET_DIR)
+VPATH += $(TOP_DIR)
+
+include $(TOP_DIR)/protocol/lufa.mk
+include $(TOP_DIR)/common.mk
+include $(TOP_DIR)/rules.mk
diff --git a/keyboard/hbkb/Makefile.pjrc b/keyboard/hbkb/Makefile.pjrc
new file mode 100644 (file)
index 0000000..159f56b
--- /dev/null
@@ -0,0 +1,56 @@
+# Target file name (without extension).
+TARGET = hbkb
+
+# Directory common source filess exist
+TOP_DIR = ../..
+
+# Directory keyboard dependent files exist
+TARGET_DIR = .
+
+# keyboard dependent files
+SRC =  main.c \
+       keymap.c \
+       matrix.c \
+       led.c
+
+CONFIG_H = config.h
+
+
+# MCU name, you MUST set this to match the board you are using
+# type "make clean" after changing this, so all files will be rebuilt
+#MCU = at90usb162       # Teensy 1.0
+MCU = atmega32u4       # Teensy 2.0
+#MCU = at90usb646       # Teensy++ 1.0
+#MCU = at90usb1286      # Teensy++ 2.0
+
+
+# Processor frequency.
+#   Normally the first thing your program should do is set the clock prescaler,
+#   so your program will run at the correct speed.  You should also set this
+#   variable to same clock speed.  The _delay_ms() macro uses this, and many
+#   examples use this variable to calculate timings.  Do not add a "UL" here.
+F_CPU = 16000000
+
+
+# Build Options
+#   comment out to disable the options.
+#
+MOUSEKEY_ENABLE = yes  # Mouse keys
+#PS2_MOUSE_ENABLE = yes        # PS/2 mouse(TrackPoint) support
+EXTRAKEY_ENABLE = yes  # Audio control and System control
+#NKRO_ENABLE = yes     # USB Nkey Rollover
+
+
+
+#---------------- Programming Options --------------------------
+#PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
+PROGRAM_CMD = /opt/dfu-programmer-0.5.2/bin/dfu-programmer $(MCU) erase && \
+             /opt/dfu-programmer-0.5.2/bin/dfu-programmer $(MCU) flash $(TARGET).hex && \
+             /opt/dfu-programmer-0.5.2/bin/dfu-programmer $(MCU) start
+
+
+
+include $(TOP_DIR)/protocol/pjrc.mk
+include $(TOP_DIR)/protocol.mk
+include $(TOP_DIR)/common.mk
+include $(TOP_DIR)/rules.mk
index 5262399dc318357ae0e2bea69b72b9d4dfea3e5f..deaabb249508e769825dd2c6b780c2d63f063cb4 100644 (file)
@@ -24,7 +24,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define VENDOR_ID       0xFEED
 #define PRODUCT_ID      0xBB00
 #define MANUFACTURER    t.m.k.
+#define DEVICE_VER      0x0100
 #define PRODUCT         Happy Buckling Keyboard
+
+
 #define DESCRIPTION     mod version of IBM Model M keyboard
 
 
diff --git a/keyboard/hhkb/Makefile.lufa b/keyboard/hhkb/Makefile.lufa
new file mode 100644 (file)
index 0000000..cdd68f4
--- /dev/null
@@ -0,0 +1,119 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+#                Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+#               (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+#            have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+#             have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+#               (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+#                (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging, 
+#              with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+#                   bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# Target file name (without extension).
+TARGET = hhkb_lufa
+
+# Directory common source filess exist
+TOP_DIR = ../..
+
+# Directory keyboard dependent files exist
+TARGET_DIR = .
+
+
+# List C source files here. (C dependencies are automatically generated.)
+SRC += keymap.c \
+       matrix.c \
+       led.c
+
+CONFIG_H = config.h
+
+
+# MCU name
+MCU = at90usb1286
+#MCU = atmega32u4
+
+# Processor frequency.
+#     This will define a symbol, F_CPU, in all source code files equal to the
+#     processor frequency in Hz. You can then use this symbol in your source code to
+#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+#     automatically to create a 32-bit value in your source code.
+#
+#     This will be an integer division of F_USB below, as it is sourced by
+#     F_USB after it has run through any CPU prescalers. Note that this value
+#     does not *change* the processor frequency - it should merely be updated to
+#     reflect the processor speed set externally so that the code can use accurate
+#     software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+#     This will define a symbol, F_USB, in all source code files equal to the
+#     input clock frequency (before any prescaling is performed) in Hz. This value may
+#     differ from F_CPU if prescaling is used on the latter, and is required as the
+#     raw input clock is fed directly to the PLL sections of the AVR for high speed
+#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+#     at the end, this will be done automatically to create a 32-bit value in your
+#     source code.
+#
+#     If no clock division is performed on the input clock inside the AVR (via the
+#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+
+# Build Options
+#   comment out to disable the options.
+#
+MOUSEKEY_ENABLE = yes  # Mouse keys
+EXTRAKEY_ENABLE = yes  # Audio control and System control
+#NKRO_ENABLE = yes     # USB Nkey Rollover
+#PS2_MOUSE_ENABLE = yes        # PS/2 mouse(TrackPoint) support
+
+
+# Boot Section Size in bytes
+#   Teensy halfKay   512
+#   Atmel DFU loader 4096
+#   LUFA bootloader  4096
+#OPT_DEFS += -DBOOT_SIZE=4096
+
+
+# Search Path
+VPATH += $(TARGET_DIR)
+VPATH += $(TOP_DIR)
+
+include $(TOP_DIR)/protocol/lufa.mk
+include $(TOP_DIR)/common.mk
+include $(TOP_DIR)/rules.mk
index f6d133eae4c5402ee67137ce1f9537ab89c1b67a..f8836a2ca1191e4ba0f8e7e87cc7470770986203 100644 (file)
@@ -13,12 +13,11 @@ TOP_DIR = ../..
 TARGET_DIR = .
 
 # keyboard dependent files
-SRC =  main.c \
-       keymap.c \
+SRC =   keymap.c \
        matrix.c \
        led.c
 
-CONFIG_H = config_pjrc.h
+CONFIG_H = config.h
 
 
 # MCU name, you MUST set this to match the board you are using
@@ -53,8 +52,8 @@ PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
 
 # Search Path
 VPATH = $(TARGET_DIR)
+VPATH = $(TOP_DIR)
 
 include $(TOP_DIR)/protocol/pjrc.mk
-include $(TOP_DIR)/protocol.mk
 include $(TOP_DIR)/common.mk
 include $(TOP_DIR)/rules.mk
diff --git a/keyboard/hhkb/config.h b/keyboard/hhkb/config.h
new file mode 100644 (file)
index 0000000..9144646
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+Copyright 2011 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+/* controller configuration */
+#include "controller_teensy.h"
+
+
+#define VENDOR_ID       0xFEED
+#define PRODUCT_ID      0xCAFF
+#define DEVICE_VER      0x0101
+#define MANUFACTURER    t.m.k.
+#define PRODUCT         HHKB mod
+
+
+#define DESCRIPTION     t.m.k. keyboard firmware for HHKB mod
+
+
+/* matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 8
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+
+/* key combination for command */
+#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT))) 
+
+/* mouse keys */
+#ifdef MOUSEKEY_ENABLE
+#   define MOUSEKEY_DELAY_TIME 192
+#endif
+
+
+/* PS/2 mouse */
+#ifdef PS2_MOUSE_ENABLE
+/*
+#   define PS2_CLOCK_PORT  PORTF
+#   define PS2_CLOCK_PIN   PINF
+#   define PS2_CLOCK_DDR   DDRF
+#   define PS2_CLOCK_BIT   0
+#   define PS2_DATA_PORT   PORTF
+#   define PS2_DATA_PIN    PINF
+#   define PS2_DATA_DDR    DDRF
+#   define PS2_DATA_BIT    1
+*/
+#endif
+
+#endif
diff --git a/keyboard/hhkb/config_pjrc.h b/keyboard/hhkb/config_pjrc.h
deleted file mode 100644 (file)
index fffe352..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-Copyright 2011 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef CONFIG_H
-#define CONFIG_H
-
-/* controller configuration */
-#include "controller_teensy.h"
-
-#define VENDOR_ID       0xFEED
-#define PRODUCT_ID      0xCAFE
-#define DEVICE_VER      0x0101
-#define MANUFACTURER    t.m.k.
-#define PRODUCT         HHKB mod
-#define DESCRIPTION     t.m.k. keyboard firmware for HHKB mod
-
-
-/* matrix size */
-#define MATRIX_ROWS 8
-#define MATRIX_COLS 8
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
-
-/* key combination for command */
-#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT))) 
-
-/* mouse keys */
-#ifdef MOUSEKEY_ENABLE
-#   define MOUSEKEY_DELAY_TIME 192
-#endif
-
-
-/* PS/2 mouse */
-#ifdef PS2_MOUSE_ENABLE
-/*
-#   define PS2_CLOCK_PORT  PORTF
-#   define PS2_CLOCK_PIN   PINF
-#   define PS2_CLOCK_DDR   DDRF
-#   define PS2_CLOCK_BIT   0
-#   define PS2_DATA_PORT   PORTF
-#   define PS2_DATA_PIN    PINF
-#   define PS2_DATA_DDR    DDRF
-#   define PS2_DATA_BIT    1
-*/
-#endif
-
-#endif
index 350066b9040ece0a3f89c678f3d15f50575d0b04..79d2d9873157a9db7b304b95114f493bc59846cc 100644 (file)
@@ -68,8 +68,8 @@ static bool matrix_has_ghost_in_row(uint8_t row);
 // key:     on: 0/off: 1
 // prev:    unknown: output previous key state(negated)?
 
-#ifdef HOST_PJRC
-// Ports for Teensy
+#if defined(__AVR_AT90USB1286__)
+// Ports for Teensy++
 // row:     PB0-2
 // col:     PB3-5,6
 // key:     PE6(pull-uped)
@@ -90,7 +90,8 @@ static bool matrix_has_ghost_in_row(uint8_t row);
 #define KEY_PREV_OFF()          (PORTE &= ~(1<<7))
 #define KEY_POWER_ON()
 #define KEY_POWER_OFF()
-#else
+
+#elif defined(__AVR_ATmega328P__)
 // Ports for V-USB
 // key:     PB0(pull-uped)
 // prev:    PB1
@@ -126,6 +127,9 @@ static bool matrix_has_ghost_in_row(uint8_t row);
     DDRC  &= ~0x0F;                     \
     PORTC &= ~0x0F;                     \
 } while (0)
+
+#else
+#   error "define code for matrix scan"
 #endif
 
 
index 2f2b6401d2744f8e4f515c1c7be749c9ba87fc8c..9c9388ee200803813e6f757a317814ecf0e1f159 100644 (file)
@@ -107,9 +107,7 @@ EXTRAKEY_ENABLE = yes       # Audio control and System control
 #   Teensy halfKay   512
 #   Atmel DFU loader 4096
 #   LUFA bootloader  4096
-#ifndef BOOT_SIZE
-#define BOOT_SIZE 512
-#endif
+#OPT_DEFS += -DBOOT_SIZE=4096
 
 
 # Search Path
index d2fb8ff2f6f67edf54812631aff1fef8005b7da1..ecc236e3d07248799711bc3b00a47b8963d81fcd 100644 (file)
@@ -48,8 +48,7 @@ TOP_DIR = ../..
 TARGET_DIR = .
 
 # keyboard dependent files
-SRC =  protocol/pjrc/main.c \
-       keymap.c \
+SRC =  keymap.c \
        matrix.c \
        led.c
 
index 8aff6f28b29c684e91edde78c001c8aab9312414..cccdf6204286ab73417fe6122078a985c0eacac2 100644 (file)
@@ -2,7 +2,8 @@ PJRC_DIR = protocol/pjrc
 
 OPT_DEFS += -DHOST_PJRC
 
-SRC += $(PJRC_DIR)/pjrc.c \
+SRC += $(PJRC_DIR)/main.c \
+       $(PJRC_DIR)/pjrc.c \
        $(PJRC_DIR)/usb_keyboard.c \
        $(PJRC_DIR)/usb_debug.c \
        $(PJRC_DIR)/usb.c
index a58de2f11b096c070396920db1a405bf9a16dd47..e561eae631f03bc5da6db252bc8a31dfe5e94937 100644 (file)
--- a/rules.mk
+++ b/rules.mk
@@ -416,6 +416,10 @@ dfu: $(TARGET).hex
        dfu-programmer $(MCU) erase
        dfu-programmer $(MCU) flash $(TARGET).hex
        dfu-programmer $(MCU) reset
+       
+dfu-start:
+       dfu-programmer $(MCU) reset
+       dfu-programmer $(MCU) start
 
 flip-ee: $(TARGET).hex $(TARGET).eep
        $(COPY) $(TARGET).eep $(TARGET)eep.hex
@@ -599,4 +603,4 @@ $(shell mkdir $(OBJDIR) 2>/dev/null)
 .PHONY : all begin finish end sizebefore sizeafter gccversion \
 build elf hex eep lss sym coff extcoff \
 clean clean_list debug gdb-config show_path \
-program teensy dfu flip dfu-ee flip-ee
+program teensy dfu flip dfu-ee flip-ee dfu-start