irena-avr/sologse/Makefile

72 lines
1.2 KiB
Makefile
Raw Permalink Normal View History

all: sologse.hex mtr3gse.hex
CPU_sologse=
CPU_mtr3gse=atmega644
MCU = atmega644
pMCU-atmega16m1 = m16
pMCU-atmega16 = m16
pMCU-atmega644 = m644
CC=avr-gcc -Wall -MMD -std=c99 -O3 -mmcu=$(MCU) \
-funsigned-char \
-funsigned-bitfields \
-fpack-struct \
-fshort-enums
SN=1
CFLAGS = $($*_CFLAGS) $(DEBUG) -I. -DSN="$(SN)"
C_FILES = adc.c hex.c io_base.c io_spi.c io_usart.c sologse.c timer.c
OBJS = $(patsubst %.c, %.o, $(C_FILES))
%.s: %.c
$(CC) $(CFLAGS) -S $<
%.o: %.c
$(CC) -gstabs $(CFLAGS) -c $<
-include *.d
LDFLAGS =
sologse.elf: solo.o
mtr3gse.elf: mtr3.o
%.elf: $(OBJS)
$(CC) $(CFLAGS) -Wl,-Map=$*.map,--cref $^ --output $@ $(LDFLAGS)
OBJCOPY = avr-objcopy
%.hex: %.elf
$(OBJCOPY) -O ihex -R .eeprom $< $@
AVRDUDE = avrdude
AVRDUDE_PROGRAMMER = avrispmkii
AVRDUDE_PORT = usb
AVRDUDE_WRITE_FLASH = -U flash:w:$<
%.burn: %.hex
$(AVRDUDE) -p $(pMCU-$(MCU)) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) \
-U flash:w:$<
lfuse_LCD=0xff
# CKDIV8 : no
# CKOUT: yes, on PB1, pin 41
# SUT: max
# CLKSEL: external clock
lfuse_sologse=0xA0
lfuse_mtr3gse=0xA0
%.lfuse:
$(AVRDUDE) -p $(pMCU-$(MCU)) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) \
-B 5 -U lfuse:w:$(lfuse_$*):m
clean:
rm -f *.hex *.o *.s *.map *.elf *.d