-
PROGRAM=lights
-SRC=lights.c
+SRC=main.c logging.c adc.c pwm.c tmr.c pwmled.c gpio.c ambient.c pattern.c \
+ buttons.c
OBJ=$(SRC:.c=.o)
+
MCU=attiny861a
# AVRDUDE_MCU=$(MCU)
AVRDUDE_MCU=attiny861
AVRDUDE_PROGRAMMER=usbasp
-CFLAGS=-Os -mmcu=$(MCU)
+CFLAGS=-Wall -Os -mmcu=$(MCU) -DUSE_LOGGING=1 -DF_CPU=1000000UL
LDFLAGS=
AVRDUDE_FLAGS= -p$(AVRDUDE_MCU) -c $(AVRDUDE_PROGRAMMER)
CC=avr-gcc
OBJCOPY=avr-objcopy
+OBJDUMP=avr-objdump
AVRDUDE=avrdude
all: $(PROGRAM).hex $(PROGRAM).eep
program: $(PROGRAM).hex $(PROGRAM).eep
$(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i -U eeprom:w:$(PROGRAM).eep:i
+program_flash: $(PROGRAM).hex
+ $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i
+
+program_eeprom: $(PROGRAM).eep
+ $(AVRDUDE) $(AVRDUDE_FLAGS) eeprom:w:$(PROGRAM).eep:i
+
+dump_eeprom:
+ $(AVRDUDE) $(AVRDUDE_FLAGS) -U eeprom:r:eeprom.raw:r
+ od -tx1 eeprom.raw
+
+objdump: $(PROGRAM).elf
+ $(OBJDUMP) --disassemble $<
+
.PRECIOUS : $(OBJ) $(PROGRAM).elf
%.hex: %.elf
%.elf: $(OBJ)
$(CC) $(CFLAGS) $(OBJ) -o $@ $(LDFLAGS)
-%.o: %.c
+%.o: %.c lights.h Makefile
$(CC) -c $(CFLAGS) $< -o $@
-%.s: %.c
+%.s: %.c lights.h Makefile
$(CC) -S -c $(CFLAGS) $< -o $@
%.o: %.S
$(CC) -c $(CFLAGS) $< -o $@
clean:
- rm -f $(PROGRAM).hex $(PROGRAM).eep $(PROGRAM).elf *.o *.s
+ rm -f $(PROGRAM).hex $(PROGRAM).eep $(PROGRAM).elf *.o *.s eeprom.raw
-.PHONY: all clean
+.PHONY: all clean dump_eeprom program program_flash program_eeprom objdump