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
|
PROGRAM = STAR_smaller
MCU = attiny13
CC = avr-gcc
OBJCOPY = avr-objcopy
CFLAGS += -Wall -g -Os -mmcu=$(MCU)
LDFLAGS +=
OBJS = $(PROGRAM).o
# uncomment to remove raw commands from build output
#Q := @
all: $(PROGRAM).hex
$(PROGRAM).elf: $(PROGRAM).o
@printf " LD $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
$(PROGRAM).hex: $(PROGRAM).elf
@printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O ihex $< $@
@printf " SIZE $(subst $(shell pwd)/,,$(@))\n"
$(Q)avr-size $@
%.o: %.c
@printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(CFLAGS) -o $@ -c $<
flash: $(PROGRAM).hex
@printf " FLASH $(PROGRAM).hex\n"
$(Q)avrdude -c usbasp -p t13 -u -Uflash:w:$(PROGRAM).hex -Ulfuse:w:0x75:m -Uhfuse:w:0xFF:m
flash-example: precompiled.hex
@printf " FLASH precompiled.hex\n"
$(Q)avrdude -c usbasp -p t13 -u -Uflash:w:precompiled.hex -Ulfuse:w:0x75:m -Uhfuse:w:0xFF:m
clean:
@printf " CLEAN $(subst $(shell pwd)/,,$(OBJS))\n"
$(Q)rm -f $(OBJS)
@printf " CLEAN $(PROGRAM).elf\n"
$(Q)rm -f *.elf
@printf " CLEAN $(PROGRAM).hex\n"
$(Q)rm -f $(PROGRAM).hex
|