-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
74 lines (57 loc) · 2.1 KB
/
Makefile
File metadata and controls
74 lines (57 loc) · 2.1 KB
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
# vim: set ts=4 noet:
AVR_TOOLCHAIN_ROOT = /opt/data/ar/arduino-1.0.5/hardware/tools
GCC_ROOT = $(AVR_TOOLCHAIN_ROOT)/avr/bin
# avrdude params
#PRGMER=arduino
#PGRATE=9600
# To flash
PRGMER=stk500v1
PGPORT=/dev/ttyUSB0
PGRATE=19200
#
AVRDUDE=$(AVR_TOOLCHAIN_ROOT)/avrdude64 -C$(AVR_TOOLCHAIN_ROOT)/avrdude.conf -v -p$(TARGET) -P$(PGPORT)
# gcc
OBJCOPY = $(GCC_ROOT)/avr-objcopy
OBJDUMP = $(GCC_ROOT)/avr-objdump
SIZE = $(GCC_ROOT)/avr-size
CC = $(GCC_ROOT)/avr-gcc
AS = $(GCC_ROOT)/avr-as
TARGET = attiny85
MCU_TARGET = $(TARGET)
BAUD_RATE = 9600
override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
override LDFLAGS = -m$(TARGET) $(LDSECTIONS) -nostartfiles -nostdlib -Wl,-bihex
OPTIMIZE = -Os -fno-inline-small-functions -fno-split-wide-types -mshort-calls
PROGRAM = optiboot.t85
OBJ = $(PROGRAM).o
DEFS = -DBOOT_START=$(BOOT_START) -DRAMSTART=$(RAM_START) -DWDT_VECT=$(WDT_VECT) -DF_CPU=$(AVR_FREQ) -DBAUD_RATE=$(BAUD_RATE)
.PHONY: attiny85
attiny85: TARGET = attiny85
attiny85: FUSES = -e -Uefuse:w:0xFE:m -Uhfuse:w:0xD7:m -Ulfuse:w:0xE2:m
attiny85: AVR_FREQ = 8000000
attiny85: BOOT_START = 0x1E00
attiny85: RAM_START = 0x0060
attiny85: WDT_VECT = 0x0C
attiny85: CFLAGS += '-DLED_START_FLASHES=8' '-DSOFT_UART' '-DVIRTUAL_BOOT_PARTITION'
attiny85: CFLAGS += -Wa,--gstabs -Wa,-alcms=$(PROGRAM).lst -Wa,-D -Wa,--warn
attiny85: LDSECTIONS = -Wl,--section-start=.text=$(BOOT_START) -Wl,--section-start=.version=0x1ffe
attiny85: $(PROGRAM).hex
attiny85: $(PROGRAM).lst
install: $(PROGRAM).hex
cp $^ ~/sketchbook/hardware/tiny/bootloaders/optiboot/optiboot_attiny85.hex
upload: $(PROGRAM).hex
$(AVRDUDE) -c$(PRGMER) -b$(PGRATE) $(FUSES)
$(AVRDUDE) -c$(PRGMER) -b$(PGRATE) -Uflash:w:$(PROGRAM).hex:i
test: $(TARGET)
$(AVRDUDE) -carduino -b$(BAUD_RATE) -n -Uflash:r:dump.hex:i
%.o: %.S
$(CC) $(CFLAGS) -c -o $@ $<
%.elf: %.o
$(CC) $(LDFLAGS) -o $@ $^
$(SIZE) $@
%.hex: %.elf
$(OBJCOPY) -j .text -j .data -j .version --set-section-flags .version=alloc,load -O ihex $< $@
#%.lst: %.elf
# $(OBJDUMP) -h -S $< > $@
clean:
rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex