2 SRC=firmware.c modbus.c clock.c
8 AVRDUDE_PROGRAMMER=arduino
10 CFLAGS=-Wall -Os -mmcu=$(MCU) -DUSE_LOGGING=1 -DF_CPU=16000000UL -std=gnu99
12 AVRDUDE_FLAGS= -p$(AVRDUDE_MCU) -c $(AVRDUDE_PROGRAMMER) -P /dev/ttyUSB0 -b 57600
21 all: $(PROGRAM).hex $(PROGRAM).eep
23 program: $(PROGRAM).hex $(PROGRAM).eep
24 $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i -U eeprom:w:$(PROGRAM).eep:i
26 program_flash: $(PROGRAM).hex
27 $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i
29 program_eeprom: $(PROGRAM).eep
30 $(AVRDUDE) $(AVRDUDE_FLAGS) eeprom:w:$(PROGRAM).eep:i
33 $(AVRDUDE) $(AVRDUDE_FLAGS) -U eeprom:r:eeprom.raw:r
36 objdump: $(PROGRAM).elf
37 $(OBJDUMP) --disassemble $<
39 .PRECIOUS : $(OBJ) $(PROGRAM).elf
42 $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
45 $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
46 --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
49 $(CC) $(CFLAGS) $(OBJ) -o $@ $(LDFLAGS)
51 %.o: %.c lights.h Makefile
52 $(CC) -c $(CFLAGS) $< -o $@
54 %.s: %.c lights.h Makefile
55 $(CC) -S -c $(CFLAGS) $< -o $@
58 $(CC) -c $(CFLAGS) $< -o $@
61 rm -f *.o $(PROGRAM).hex $(PROGRAM).eep $(PROGRAM).elf
64 ./version.pl > version.c
66 .PHONY: all clean dump_eeprom program program_flash program_eeprom objdump \