/
Makefile
79 lines (57 loc) · 1.4 KB
/
Makefile
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
## FUSES: l:0xFF h:0xC9
## avrdude -v -pm8535 -cusbasp -Pusb -b19200 -U hfuse:w:0xc9:m -U lfuse:w:0xff:m
NAME = scorpio_p1
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
CC = avr-gcc
OPTIMIZE= -Os
DEFS = -DBAUD=9600
#DEFS += -DEBUG
LIBS =
# controller
DEVICE = atmega8535
# Clock 8 MHz
CLOCK = 8000000
# partno (for avrdude)
PARTNO = m8535
CFLAGS = -g -Wall $(OPTIMIZE) $(DEFS)
LDFLAGS = -Wl,-Map,$(NAME).map
# programmer (for avrdude)
PROGRAMMER = usbasp
# serial port device (for avrdude)
SERPORT = usb
SRC=$(wildcard *.c)
HEX = $(NAME).hex
ELF = $(NAME).elf
OBJECTS = $(SRC:%.c=%.o)
# avrdude command from arduino IDE
AVRDUDE = avrdude -v -p$(PARTNO) -c$(PROGRAMMER) -P$(SERPORT) -b19200
COMPILE = $(CC) $(CFLAGS) -mmcu=$(DEVICE) -DF_CPU=$(CLOCK)
all: $(HEX) lst
$(ELF): $(OBJECTS)
@echo "ELF"
@$(COMPILE) $(LDFLAGS) -o $(ELF) $(OBJECTS) $(LIBS)
$(HEX): $(ELF)
@echo "HEX"
@rm -f $(HEX)
@$(OBJCOPY) -j .text -j .data -O ihex $(ELF) $(HEX)
@avr-size $(ELF)
.c.o:
@$(COMPILE) -c $< -o $@
.S.o:
@$(COMPILE) -x assembler-with-cpp -c $< -o $@
.c.s:
@$(COMPILE) -S $< -o $@
lst: $(NAME).lst
%.lst: %.elf
@echo "Make listing"
@$(OBJDUMP) -h -S $< > $@
flash: all
@echo "Flash"
$(AVRDUDE) -U flash:w:$(HEX):i
clean:
@echo "Clean"
@rm -f $(ELF) $(OBJECTS) *.lst *.map
gentags:
CFLAGS="$(CFLAGS) -I/usr/avr/include" geany -g $(NAME).c.tags *.[hc] 2>/dev/null
.PHONY: gentags clean