MCU      = attiny1616
F_CPU    = 20000000UL
TARGET   = knock_controller
SRC      = knock_controller.c

CC       = avr-gcc
OBJCOPY  = avr-objcopy
SIZE     = avr-size
CFLAGS   = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -Os -std=gnu11 -Wall -Wextra \
           -ffunction-sections -fdata-sections
LDFLAGS  = -Wl,--gc-sections

all: $(TARGET).hex

$(TARGET).elf: $(SRC)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
	$(SIZE) $@

$(TARGET).hex: $(TARGET).elf
	$(OBJCOPY) -O ihex -R .eeprom $< $@

flash-pymcuprog: $(TARGET).hex
	pymcuprog write -d attiny1616 -t uart -u /dev/ttyUSB0 -f $< --erase

flash-avrdude: $(TARGET).hex
	avrdude -c serialupdi -P /dev/ttyUSB0 -p t1616 -U flash:w:$<:i

clean:
	rm -f $(TARGET).elf $(TARGET).hex

.PHONY: all clean flash-pymcuprog flash-avrdude
