summaryrefslogtreecommitdiff
path: root/firmware/Makefile
blob: 6045e7e11b7a137c185cb3a161e9a02a10bab88d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
all: compile

SHELL := /bin/bash

MCU = atmega328p
PROG = USBasp
AVRDUDE = avrdude.exe

LFUSE = 0xFF
HFUSE = 0xD9
EFUSE = 0xFF
LOCK = 0xFF

SCRIPTS_DIR = ../scripts
SCRIPT_RESET = reset.py

SRC_DIR = src
INC_DIR = inc

PYTHON = python.exe
CC = avr-gcc
CFLAGS = -mmcu=$(MCU) -Wall -Os -I$(INC_DIR)
OBJ_C = avr-objcopy
AVR_SIZE = avr-size

SRC_FILES += $(SRC_DIR)/*.c
SRC_FILES += $(SRC_DIR)/peripheral/*.c
SRC_FILES += $(SRC_DIR)/module/*.c
SRC_FILES += $(SRC_DIR)/driver/*.c

BUILD_DIR = bin
OUTPUT = $(BUILD_DIR)/FW_DEBUG_V_1_0

reset:
	$(PYTHON) $(SCRIPTS_DIR)/$(SCRIPT_RESET)

build:
	mkdir $(BUILD_DIR)
	$(CC) $(CFLAGS) -o $(OUTPUT).lffw $(SRC_FILES)
	$(AVR_SIZE) -C -x $(OUTPUT).lffw
	$(OBJ_C) -j .text -j .data -O ihex $(OUTPUT).lffw $(OUTPUT).hex

flash:
	@read -p "ENTER TO BEGIN FLASH..."
	$(AVRDUDE) -p $(MCU) -c $(PROG) -v -V -u -U flash:w:$(OUTPUT).hex

fuze:
	$(AVRDUDE) -p $(MCU) -c $(PROG) -v -V -u -U lfuse:w:$(LFUSE):m	-U hfuse:w:$(HFUSE):m -U efuse:w:$(EFUSE):m	-U lock:w:$(LOCK):m

clean:
	rm -fr $(BUILD_DIR)

upload: reset clean build flash
force-upload: clean build flash

deps:
	sudo apt install gcc-avr binutils-avr gdb-avr avr-libc avrdude make git