|
@@ -13,6 +13,11 @@ VPATH =
|
|
|
### Target device
|
|
### Target device
|
|
|
DEVICE = atmega644p
|
|
DEVICE = atmega644p
|
|
|
|
|
|
|
|
|
|
+### Device memory sizes, for the size report below (bytes)
|
|
|
|
|
+FLASH_SIZE = 65536
|
|
|
|
|
+RAM_SIZE = 4096
|
|
|
|
|
+EEPROM_SIZE = 2048
|
|
|
|
|
+
|
|
|
### Bootloader port
|
|
### Bootloader port
|
|
|
PROGPORT ?= /dev/ttyUSB0
|
|
PROGPORT ?= /dev/ttyUSB0
|
|
|
|
|
|
|
@@ -139,11 +144,19 @@ version :
|
|
|
@echo
|
|
@echo
|
|
|
$(NM) -n $< > $@
|
|
$(NM) -n $< > $@
|
|
|
|
|
|
|
|
-# Display size of file.
|
|
|
|
|
|
|
+# Display size of file, with a device-specific (DEVICE) usage summary.
|
|
|
size:
|
|
size:
|
|
|
@echo
|
|
@echo
|
|
|
$(SIZE) $(PROJECT).elf
|
|
$(SIZE) $(PROJECT).elf
|
|
|
$(SIZE) $(PROJECT).hex
|
|
$(SIZE) $(PROJECT).hex
|
|
|
|
|
+ @echo
|
|
|
|
|
+ @$(SIZE) -A $(PROJECT).elf | awk '\
|
|
|
|
|
+ $$1==".text" || $$1==".data" { prog += $$2 } \
|
|
|
|
|
+ $$1==".data" || $$1==".bss" || $$1==".noinit" { ram += $$2 } \
|
|
|
|
|
+ END { \
|
|
|
|
|
+ printf "Program: %6d bytes (%5.1f%% of %d byte flash on $(DEVICE))\n", prog, prog*100.0/$(FLASH_SIZE), $(FLASH_SIZE); \
|
|
|
|
|
+ printf "Data: %6d bytes (%5.1f%% of %d byte RAM on $(DEVICE))\n", ram, ram*100.0/$(RAM_SIZE), $(RAM_SIZE); \
|
|
|
|
|
+ }'
|
|
|
|
|
|
|
|
|
|
|
|
|
# Link: create ELF output file from object files.
|
|
# Link: create ELF output file from object files.
|