mate-driver/firmware/Makefile

62 lines
1.2 KiB
Makefile

AVRMCU = attiny2313
F_CPU = 8000000
VERSION = 0.1
HEADERS = pwm.h input.h
SRC = main.c input.c
TARGET = mate-driver-$(AVRMCU)
OBJDIR = bin
CC = avr-gcc
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
SIZE = avr-size
OBJ = $(SRC:%.c=$(OBJDIR)/%.o)
CFLAGS = -Os -Wall -Wstrict-prototypes
CFLAGS += -fshort-enums -fpack-struct -funsigned-char -funsigned-bitfields
CFLAGS += -mmcu=$(AVRMCU) -DF_CPU=$(F_CPU)UL -DVERSION=$(VERSION)
all: start $(OBJDIR)/$(TARGET).hex size
@echo ":: Done !"
start:
@echo "Mate driver firmare version $(VERSION)"
@echo "======================================"
@echo ":: Building for $(AVRMCU)"
@echo ":: MCU operating frequency is $(F_CPU)Hz"
$(OBJDIR)/%.o: %.c $(HEADERS)
@mkdir -p $$(dirname $@)
$(CC) $(CFLAGS) -c $< -o $@
$(OBJDIR)/$(TARGET).elf: $(OBJ)
$(CC) $(CFLAGS) $+ -o $@
$(OBJDIR)/$(TARGET).hex: $(OBJDIR)/$(TARGET).elf
$(OBJCOPY) -O ihex $< $@
size: $(OBJDIR)/$(TARGET).elf
@echo
@$(SIZE) --mcu=$(AVRMCU) -C $(OBJDIR)/$(TARGET).elf
@echo
clean:
@rm -rf $(OBJDIR)
fuse:
avrdude -c usbasp \
-p $(AVRMCU) \
-B 10 \
-U lfuse:w:0xde:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
flash: all
avrdude -c usbasp \
-p $(AVRMCU) \
-U flash:w:$(OBJDIR)/$(TARGET).hex