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