#\r
\r
LUFA_BUILD_MODULES += AVRDUDE\r
-LUFA_BUILD_TARGETS += program\r
+LUFA_BUILD_TARGETS += program program_ee\r
LUFA_BUILD_MANDATORY_VARS += MCU TARGET\r
LUFA_BUILD_OPTIONAL_VARS += AVRDUDE_PROGRAMMER AVRDUDE_PORT AVRDUDE_FLAGS\r
\r
# -----------------------------------------------------------------------------\r
# TARGETS:\r
#\r
-# program - Program target with application using avr-dude\r
+# program - Program target FLASH with application using\r
+# avrdude\r
+# program_ee - Program target EEPROM with application data\r
+# using avrdude\r
#\r
# MANDATORY PARAMETERS:\r
#\r
# Default values of optionally user-supplied variables\r
AVRDUDE_PROGRAMMER ?= jtagicemkii\r
AVRDUDE_PORT ?= usb\r
-AVRDUDE_FLAGS ?= -U flash:w:$(TARGET).hex\r
+AVRDUDE_FLAGS ?= \r
\r
# Output Messages\r
MSG_AVRDUDE_CMD = ' [AVRDUDE] :'\r
\r
+AVRDUDE_FLASH_FLAGS = -U flash:w:$< $(AVRDUDE_FLAGS)\r
+AVRDUDE_EEP_FLAGS = -U eeprom:w:$< $(AVRDUDE_FLAGS)\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
+ @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" 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
+program_ee: $(TARGET).eep\r
+ @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" 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
lss: $(TARGET).lss\r
\r
%.o: %.c\r
- @echo $(MSG_COMPILE_CMD) Compiling C file \"$^\"\r
+ @echo $(MSG_COMPILE_CMD) Compiling C file \"$<\"\r
$(CROSS)gcc -c $(CC_FLAGS) $(C_FLAGS) -O$(OPTIMIZATION) -std=$(C_STANDARD) $< -o $@\r
\r
%.o: %.cpp\r
- @echo $(MSG_COMPILE_CMD) Compiling C++ file \"$^\"\r
+ @echo $(MSG_COMPILE_CMD) Compiling C++ file \"$<\"\r
$(CROSS)gcc -c $(CC_FLAGS) $(CPP_FLAGS) -O$(OPTIMIZATION) -std=$(CPP_STANDARD) -x c++ $< -o $@\r
\r
%.o: %.S\r
- @echo $(MSG_COMPILE_CMD) Assembling \"$^\"\r
+ @echo $(MSG_COMPILE_CMD) Assembling \"$<\"\r
$(CROSS)gcc -c $(CC_FLAGS) $(ASM_FLAGS) -x assembler-with-cpp $< -o $@\r
\r
.PRECIOUS : $(OBJECT_FILES)\r
$(CROSS)gcc $^ $(CC_FLAGS) $(LD_FLAGS) -o $@\r
\r
%.hex: %.elf\r
- @echo $(MSG_OBJCPY_CMD) Extracting HEX file data from \"$@\"\r
+ @echo $(MSG_OBJCPY_CMD) Extracting HEX file data from \"$<\"\r
$(CROSS)objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $< $@\r
\r
%.eep: %.elf\r
- @echo $(MSG_OBJCPY_CMD) Extracting EEP file data from \"$@\"\r
+ @echo $(MSG_OBJCPY_CMD) Extracting EEP file data from \"$<\"\r
$(CROSS)objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex $< $@ || exit 0\r
\r
%.lss: %.elf\r
- @echo $(MSG_OBJDMP_CMD) Extracting LSS file data from \"$@\"\r
+ @echo $(MSG_OBJDMP_CMD) Extracting LSS file data from \"$<\"\r
$(CROSS)objdump -h -S -z $< > $@\r
\r
clean:\r
MSG_DOXYGEN_CMD = ' [DOXYGEN] :'\r
\r
# Determine Doxygen invocation command\r
-DOXYGEN_CMD = ( cat Doxygen.conf ; $(DOXYGEN_OVERRIDE_PARAMS:%=echo "%";)) | doxygen -\r
+BASE_DOXYGEN_CMD = ( cat Doxygen.conf ; $(DOXYGEN_OVERRIDE_PARAMS:%=echo "%") ) | doxygen -\r
ifeq ($(DOXYGEN_FAIL_ON_WARNING), Y)\r
- DOXYGEN_CMD = if ( ( cat Doxygen.conf $(DOXYGEN_OVERRIDE_PARAMS:%=; echo "%") ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then exit 1; fi;\r
+ DOXYGEN_CMD = if ( $(BASE_DOXYGEN_CMD) 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then exit 1; fi;\r
+else\r
+ DOXYGEN_CMD = $(BASE_DOXYGEN_CMD)\r
endif\r
\r
doxygen:\r