b15f/firmware/Makefile

56 lines
1.5 KiB
Makefile
Raw Normal View History

2019-03-22 14:51:52 +00:00
# Name: Makefile
2019-05-16 08:07:27 +00:00
# Project: B15F (Board 15 Famulus Edition)
2019-03-22 14:51:52 +00:00
# Author: Tristan Krause
2019-04-02 11:34:59 +00:00
# Creation Date: 2019-03-22
2019-05-15 12:22:16 +00:00
# MCU Options
LFUSE = D2
HFUSE = 91
EFUSE = FF
2019-05-15 12:27:27 +00:00
F_CPU = 8000000
2019-05-16 08:07:27 +00:00
DEBUG = -Db15f_DEBUG
2019-05-15 12:22:16 +00:00
2019-04-03 13:02:23 +00:00
# Environment
2019-04-02 11:34:59 +00:00
COMPILER_PATH = avr-g++
OBJCOPY_PATH = avr-objcopy
2019-04-03 13:02:23 +00:00
# Optionen
PROGRAMMER = avrispmkII
2019-05-16 08:07:27 +00:00
OUTPUT = b15f.elf
2019-06-18 08:16:58 +00:00
HEX = b15f.hex
MCU = atmega1284
2019-05-15 12:22:16 +00:00
CFLAGS = -Wall -Wextra -std=c++14 -O3 -mmcu=$(MCU) -DF_CPU=$(F_CPU) $(DEBUG)
2019-04-03 13:02:23 +00:00
LDFLAGS =
2019-06-21 12:05:57 +00:00
OBJECTS = main.o spi.o mcp23s17.o tlc5615.o adu.o selftest.o global_vars.o usart.o request_handlers.o interrupts.o pwm.o
2019-04-02 11:34:59 +00:00
2019-06-18 07:54:23 +00:00
2019-03-22 14:51:52 +00:00
COMPILE = $(COMPILER_PATH) $(CFLAGS)
2019-05-15 12:22:16 +00:00
FUSES = (E:$(EFUSE), H:$(HFUSE), L:$(LFUSE))
2019-03-22 14:51:52 +00:00
2019-05-16 08:07:27 +00:00
b15f: $(OBJECTS)
@echo "Linking binary..."
2019-04-02 11:34:59 +00:00
$(COMPILE) $(OBJECTS) -o $(OUTPUT) $(LDFLAGS)
$(OBJCOPY_PATH) -O ihex -R .eeprom -R .fuse -R .lock -R .signature $(OUTPUT) $(HEX)
2019-03-22 14:51:52 +00:00
help:
2019-03-25 08:57:38 +00:00
@echo "This Makefile has the following rules:"
2019-05-16 08:07:27 +00:00
@echo "make b15f .... to compile (default)"
2019-03-25 08:57:38 +00:00
@echo "make clean ... to delete objects, elf and hex file"
2019-03-22 14:51:52 +00:00
2019-04-02 11:34:59 +00:00
clean:
@echo "Cleaning..."
2019-03-25 08:57:38 +00:00
rm -f $(OBJECTS) $(OUTPUT) $(HEX)
2019-03-22 14:51:52 +00:00
2019-05-15 12:22:16 +00:00
checkfuses:
@echo "Checking fuses..."
2019-05-16 08:44:38 +00:00
@bash -c 'diff -B <( echo "$(FUSES)" ) <( avrdude -Pusb -p $(MCU) -c $(PROGRAMMER) 2>&1 | grep "safemode: Fuses OK" | tail -c 19 ) >/dev/null && echo "Fuses okay" || avrdude -Pusb -p $(MCU) -c $(PROGRAMMER) -U lfuse:w:0x$(LFUSE):m -U hfuse:w:0x$(HFUSE):m -U efuse:w:0x$(EFUSE):m'
2019-05-15 12:22:16 +00:00
2019-05-16 08:07:27 +00:00
upload: b15f checkfuses
@echo "Uploading hex file..."
2019-04-03 13:02:23 +00:00
avrdude -Pusb -p $(MCU) -c $(PROGRAMMER) -U flash:w:$(HEX)
2019-04-02 11:34:59 +00:00
2019-03-22 14:51:52 +00:00
.cpp.o:
$(COMPILE) -c $< -o $@