#\r
\r
LUFA_BUILD_MODULES += AVRDUDE\r
-LUFA_BUILD_TARGETS += program\r
+LUFA_BUILD_TARGETS += avrdude avrdude-ee\r
LUFA_BUILD_MANDATORY_VARS += MCU TARGET\r
LUFA_BUILD_OPTIONAL_VARS += AVRDUDE_PROGRAMMER AVRDUDE_PORT AVRDUDE_FLAGS\r
\r
# -----------------------------------------------------------------------------\r
-# LUFA DFU Bootloader Buildsystem Makefile Module.\r
+# LUFA AVRDUDE Programmer Buildsystem Makefile Module.\r
# -----------------------------------------------------------------------------\r
# DESCRIPTION:\r
# Provides a set of targets to re-program a device using the open source\r
# -----------------------------------------------------------------------------\r
# TARGETS:\r
#\r
-# program - Program target with application using avr-dude\r
+# avrdude - Program target FLASH with application using\r
+# avrdude\r
+# avrdude-ee - Program target EEPROM with application data\r
+# using avrdude\r
#\r
# MANDATORY PARAMETERS:\r
#\r
#\r
# -----------------------------------------------------------------------------\r
\r
-# Output Messages\r
-MSG_AVRDUDE_CMD = ' [AVRDUDE] :'\r
-\r
-# Default values of user-supplied variables\r
-AVRDUDE_PROGRAMMER ?= jtagicemkii\r
-AVRDUDE_PORT ?= usb\r
-AVRDUDE_FLAGS ?= -U flash:w:$(TARGET).hex\r
+# Sanity-check values of mandatory user-supplied variables\r
+MCU ?= $(error Makefile MCU value not set)\r
+TARGET ?= $(error Makefile TARGET value not set)\r
\r
-# Sanity check the user MCU and TARGET makefile options\r
ifeq ($(MCU),)\r
- $(error Makefile MCU value not set.)\r
+ $(error Makefile MCU option cannot be blank)\r
endif\r
ifeq ($(TARGET),)\r
- $(error Makefile TARGET value not set.)\r
+ $(error Makefile TARGET option cannot be blank)\r
endif\r
\r
-program: $(TARGET).hex\r
- @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" with settings \"$(AVRDUDE_FLAGS)\" using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"\r
- avrdude -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) $(AVRDUDE_FLAGS)\r
+# Default values of optionally user-supplied variables\r
+AVRDUDE_PROGRAMMER ?= jtagicemkii\r
+AVRDUDE_PORT ?= usb\r
+AVRDUDE_FLAGS ?= \r
+\r
+# Output Messages\r
+MSG_AVRDUDE_CMD := ' [AVRDUDE] :'\r
+\r
+# Construct flags to use for the different memory spaces\r
+AVRDUDE_FLASH_FLAGS = -U flash:w:$< $(AVRDUDE_FLAGS)\r
+AVRDUDE_EEP_FLAGS = -U eeprom:w:$< $(AVRDUDE_FLAGS)\r
+\r
+avrdude: $(TARGET).hex $(MAKEFILE_LIST)\r
+ @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" FLASH with settings \"$(AVRDUDE_FLASH_FLAGS)\" using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"\r
+ avrdude -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) $(AVRDUDE_FLASH_FLAGS)\r
+\r
+avrdude-ee: $(TARGET).eep $(MAKEFILE_LIST)\r
+ @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" EEPROM with settings \"$(AVRDUDE_EEP_FLAGS)\" using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"\r
+ avrdude -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) $(AVRDUDE_EEP_FLAGS)\r
+\r
+# Phony build targets for this module\r
+.PHONY: avrdude avrdude-ee\r