47 lines
870 B
Makefile
47 lines
870 B
Makefile
|
TARGET=main
|
||
|
MCU=atmega2560
|
||
|
SOURCES=main.c
|
||
|
|
||
|
PORT=/dev/ttyACM0
|
||
|
BAUD=115200
|
||
|
|
||
|
OBJECTS=$(SOURCES:.c=.o)
|
||
|
CFLAGS=-c -Os
|
||
|
LDFLAGS=
|
||
|
|
||
|
LIB=-L/usr/avr/lib
|
||
|
INC=-I/usr/avr/include
|
||
|
|
||
|
yeet: hex eeprom program clean
|
||
|
|
||
|
hex: $(TARGET).hex
|
||
|
|
||
|
eeprom: $(TARGET)_eeprom.hex
|
||
|
|
||
|
$(TARGET).hex: $(TARGET).elf
|
||
|
avr-objcopy -O ihex -j .data -j .text $(TARGET).elf $(TARGET).hex
|
||
|
|
||
|
$(TARGET)_eeprom.hex: $(TARGET).elf
|
||
|
avr-objcopy -O ihex -j .eeprom --change-section-lma .eeprom=1 $(TARGET).elf $(TARGET)_eeprom.hex
|
||
|
|
||
|
$(TARGET).elf: $(OBJECTS)
|
||
|
avr-gcc $(LDFLAGS) $(INC) $(LIB) -mmcu=$(MCU) $(OBJECTS) -o $(TARGET).elf
|
||
|
|
||
|
.c.o:
|
||
|
avr-gcc $(CFLAGS) $(INC) $(LIB) -mmcu=$(MCU) $< -o $@
|
||
|
|
||
|
size:
|
||
|
avr-size --mcu=$(MCU) -C $(TARGET).elf
|
||
|
|
||
|
program:
|
||
|
avrdude -p$(MCU) -P$(PORT) -b$(BAUD) -v -V -cwiring -D "-Uflash:w:$(TARGET).hex:i"
|
||
|
|
||
|
clean_tmp:
|
||
|
rm -rf *.o
|
||
|
rm -rf *.elf
|
||
|
|
||
|
clean:
|
||
|
rm -rf *.o
|
||
|
rm -rf *.elf
|
||
|
rm -rf *.hex
|