NAME = boot TARGET_ARCH = -mmcu=attiny85 OBJECTS = $(NAME).o timer0.o receive.o spm.o CC = avr-gcc CFLAGS = -Os -g -Wall -Wstrict-prototypes -ffreestanding -fshort-enums -Wa,-adhln=$(basename $@).lst CFLAGS += -ffunction-sections CFLAGS += -fno-split-wide-types LDFLAGS = -g -Wl,--relax,--gc-sections PROGRAM_BASE = 0x0480 CFLAGS += -DPROGRAM_BASE=$(PROGRAM_BASE) LDFLAGS += -Wl,--defsym,PROGRAM_BASE=$(PROGRAM_BASE) attinyhost = mimas avrdudecmd = avrdude -cavrispv2 -P usb -pt85 avrdudecmd = avrdude -cusbtiny -pt85 avrdude = ssh -n root@$(attinyhost) $(avrdudecmd) all: $(NAME).hex tags clean: rm -f $(OBJECTS) $(OBJECTS:.o=.lst) $(clean) clean += $(NAME).elf $(NAME).elf.tmp $(NAME).elf: $(OBJECTS) @rm -f $@ $(LINK.o) -o $@.tmp $(OBJECTS) @size $@.tmp @free=`size $@.tmp|awk 'END{ print $(PROGRAM_BASE) - $$1;}'`; \ echo $$free bytes free; \ [ $$free -gt 0 ] mv $@.tmp $@ clean += $(NAME).hex $(NAME).hex: $(NAME).elf avr-objcopy -j .text -j .data -O ihex $(NAME).elf $(NAME).hex disasm: $(NAME).elf avr-objdump -S $(NAME).elf | less flash: $(NAME).hex scp $(NAME).hex $(attinyhost):/tmp $(avrdude) -U flash:w:/tmp/$(NAME).hex lfuse: $(avrdude) -U lfuse:w:0x42:m hfuse: $(avrdude) -U hfuse:w:0xde:m efuse: $(avrdude) -U efuse:w:0xfe:m include ../common/epilogue.mk