Reflow oven controller firmware
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

67 lines
1.8 KiB

# Makefile
DEVICE = attiny88
CLOCK = 4000000
PROGRAMMER = -c buspirate -P /dev/ttyUSB0
OBJECTS = reflow.o display.o font.o i2c.o menu.o spi.o therm.o timer.o config.o beep.o control.o fields.o profile.o
SRC = $(OBJECTS:%.o=%.c)
#FUSES = -U lfuse:w:0xEC:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m -U lock:w:0xFF:m
FUSES = -U lfuse:w:0xEC:m -U hfuse:w:0xDF:m -U efuse:w:0x07:m
# For computing fuse byte values for other devices and options see
# the fuse bit calculator at http://www.engbedded.com/fusecalc/
#AVRDUDE = avrdude $(PROGRAMMER) -p $(DEVICE)
AVRDUDE = avrdude $(PROGRAMMER) -p $(DEVICE) -V
# Don't use -Werror in the link stage to avoid a compiler bug which is fixed in gcc 4.8.3
CFLAGS = -Werror
COMPILE = avr-gcc -std=c99 -Wall -Wl,-Map,$@.map -Os -g -DF_CPU=$(CLOCK) -mmcu=$(DEVICE) -mcall-prologues -flto -fuse-linker-plugin
# symbolic targets:
all: reflow.hex
.c.o:
$(COMPILE) $(CFLAGS) -c $< -o $@
.S.o:
$(COMPILE) -x assembler-with-cpp -c $< -o $@
.c.s:
$(COMPILE) $(CFLAGS) -S $< -o $@
flash:
$(AVRDUDE) -U flash:w:reflow.hex:i
fuse:
$(AVRDUDE) $(FUSES)
install: all flash fuse
# if you use a bootloader, change the command below appropriately:
load: all
bootloadHID reflow.hex
clean:
rm -f reflow.hex reflow.elf $(OBJECTS)
# file targets:
#reflow.elf: $(SRC)
# $(COMPILE) $(LDFLAGS) -o reflow.elf $(SRC)
reflow.elf: $(OBJECTS)
$(COMPILE) $(LDFLAGS) -o reflow.elf $(OBJECTS)
reflow.hex: reflow.elf
rm -f reflow.hex
avr-objcopy -j .text -j .data -O ihex reflow.elf reflow.hex
avr-size --format=avr --mcu=$(DEVICE) reflow.elf
# If you have an EEPROM section, you must also create a hex file for the
# EEPROM and add it to the "flash" target.
# Targets for code debugging and analysis:
disasm: reflow.elf
avr-objdump -d reflow.elf
cpp:
$(COMPILE) -E reflow.c