blob: 0bc81a8238ceb124a6a9579203005cd26e309936 (
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
|
TARGET = main
MCU = attiny24
F_CPU = 8000000UL
CC = avr-gcc
CFLAGS = -Os -Wall -fpack-struct -fshort-enums -funsigned-bitfields -funsigned-char
LDFLATS = -Wl,-Map,$(TARGET).map
LDFLAGS += -Wl,--gc-sections
TARGET_ARCH = -mmcu=$(MCU)
OBJCOPY = avr-objcopy
OBJSIZE = avr-size
AVRDUDE = avrdude
ADFLAGS = -c usbasp -p t24
SRC=$(wildcard src/*.c) $(wildcard src/*/*.c) $(wildcard src/*/*/*.c)
OBJ=$(patsubst %.c, %.o, $(SRC))
ASM=$(patsubst %.c, %.s, $(SRC))
all: $(OBJ) $(TARGET).hex summary upload
%.o: %.c
$(CC) $(CFLAGS) -DF_CPU=$(F_CPU) -mmcu=$(MCU) -c -o $@ $<
%.s: %.c
$(CC) -S $(CFLAGS) -DF_CPU=$(F_CPU) -mmcu=$(MCU) $< -o $@
%.elf: $(OBJ)
$(CC) $(LDFLAGS) $(TARGET_ARCH) $^ -o $@
%.hex: %.elf
$(OBJCOPY) -j .text -j .data -O ihex $< $@
summary: $(OBJ) $(TARGET).hex
@echo ----------------------------------------------------------------------
@$(OBJSIZE) $(OBJ) $(TARGET).hex
upload: $(TARGET).hex
$(AVRDUDE) $(ADFLAGS) -U flash:w:$<
clean:
rm -f $(OBJ) $(HEX) $(ASM)
|