1# 2# Copyright 2009 Ettus Research LLC 3# 4 5################################################## 6# Compiler 7################################################## 8CC = avr-gcc 9OBJCOPY = avr-objcopy 10STRIP = avr-strip 11OBJDUMP = avr-objdump 12SREC = srec_cat 13CFLAGS = -Os -std=gnu99 -Wall -fshort-enums -pedantic-errors -Wl,--gc-sections \ 14 -Wstrict-prototypes -Wmissing-prototypes -Wcast-align -Wshadow \ 15 -DENABLE_SERIAL -DCHARGER_TI -DLED_POLARITY -DDEBUG_VOID 16# -DENABLE_SERIAL : Output serial debug 17# -DCHARGER_TI : Use TI charger (rev B) instead of LTC (rev A) 18# -DLED_POLARITY : Dual-polarity LED on rev B 19# -DDDR3L : Lower DDR voltage (rev B R-divider changed, so disable this to get back into nominal range) 20# -DDEBUG_VOID : Use (void) debug function replacements instead of inline NOOP (use if .text overflows) 21# -DI2C_REWORK : Rev A only 22# -DDEBUG : Enable debug routines (LED blinks, etc) 23# -DDEBUG_SAFETY : Extra debug prints 24# -DATTINY88_DIP : ATTINY88 DIP testing on STK600 25# -DHARDWIRE_ENABLE : LTC3675 dedicated enable lines - don't use 26 27#-Werror 28#-D IO_DEBUG 29 30################################################## 31# Files 32################################################## 33HDRS = 34SRCS = main.c io.c power.c ltc3675.c i2c.c debug.c bq24190.c 35TARGET = main 36 37################################################## 38# Device 39################################################## 40MMCU = attiny88 41#PROGRAMMER = avrisp2 42PROGRAMMER = stk600 43PORT = usb 44AVRDUDE = avrdude -p $(MMCU) -c $(PROGRAMMER) -P $(PORT) 45 46################################################## 47# Global Targets 48################################################## 49all: $(TARGET).hex 50 51clean: 52 $(RM) *.o *.elf *.hex 53 54install: all 55 $(AVRDUDE) -U flash:w:$(TARGET).hex:i 56 57################################################## 58# Dependency Targets 59################################################## 60fuses.hex: $(TARGET).elf 61 $(OBJCOPY) -j .fuse -O ihex $< $@ --change-section-lma .fuse=0 62 63lfuse.hex: fuses.hex 64 $(SREC) $< -Intel -crop 0x00 0x01 -offset 0x00 -O $@ -Intel 65 66hfuse.hex: fuses.hex 67 $(SREC) $< -Intel -crop 0x01 0x02 -offset -0x01 -O $@ -Intel 68 69$(TARGET).hex: $(TARGET).elf 70 $(OBJCOPY) -R .eeprom -R .fuse -O ihex $< $@ 71 72$(TARGET).elf: $(SRCS:.c=.o) 73 $(CC) -mmcu=$(MMCU) $^ -o $@ 74 75%.o: %.c $(HDRS) Makefile 76 $(CC) -mmcu=$(MMCU) -c $< -o $@ $(CFLAGS) 77