Improve ATPROGRAM build module to support UC3 devices and use intelligent erase for...
authorDean Camera <dean@fourwalledcubicle.com>
Wed, 6 Jun 2012 19:10:52 +0000 (19:10 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Wed, 6 Jun 2012 19:10:52 +0000 (19:10 +0000)
LUFA/Build/lufa.atprogram.in

index f42354c..48d1e5c 100644 (file)
@@ -63,13 +63,27 @@ ifneq ($(ATPROGRAM_PORT),)
    BASE_ATPROGRAM_FLAGS += --port $(ATPROGRAM_PORT)\r
 endif\r
 \r
-atprogram: $(TARGET).hex $(MAKEFILE_LIST)\r
+# Construct the flags to use for the various memory spaces\r
+ifeq ($(ARCH), AVR8)\r
+   ATPROGRAM_FLASH_FLAGS  := --chiperase --flash\r
+   ATPROGRAM_EEPROM_FLAGS := --eeprom\r
+else ifeq ($(ARCH), XMEGA)\r
+   ATPROGRAM_FLASH_FLAGS  := --erase --flash\r
+   ATPROGRAM_EEPROM_FLAGS := --eeprom\r
+else ifeq ($(ARCH), UC3)\r
+   ATPROGRAM_FLASH_FLAGS  := --erase\r
+   ATPROGRAM_EEPROM_FLAGS := --eeprom\r
+else\r
+   $(error Unsupported architecture "$(ARCH)")\r
+endif\r
+\r
+atprogram: $(TARGET).elf $(MAKEFILE_LIST)\r
        @echo $(MSG_ATPROGRAM_CMD) Programming device \"$(MCU)\" FLASH using \"$(ATPROGRAM_PROGRAMMER)\"\r
-       atprogram $(BASE_ATPROGRAM_FLAGS) program --chiperase --flash --file $(TARGET).hex\r
+       atprogram $(BASE_ATPROGRAM_FLAGS) program $(ATPROGRAM_FLASH_FLAGS) --file $<\r
 \r
-atprogram-ee: $(TARGET).eep $(MAKEFILE_LIST)\r
+atprogram-ee: $(TARGET).elf $(MAKEFILE_LIST)\r
        @echo $(MSG_ATPROGRAM_CMD) Programming device \"$(MCU)\" EEPROM using \"$(ATPROGRAM_PROGRAMMER)\"\r
-       atprogram $(BASE_ATPROGRAM_FLAGS) program --eeprom --file $(TARGET).eep\r
+       atprogram $(BASE_ATPROGRAM_FLAGS) program $(ATPROGRAM_EEPROM_FLAGS) --file $<\r
        \r
 # Phony build targets for this module\r
 .PHONY: atprogram atprogram-ee\r