]> www.fi.muni.cz Git - kolektor.git/blob - Makefile
schematics.jpg: schema pouzitych soucastek a cest
[kolektor.git] / Makefile
1 PROGRAM=kolektor
2 SRC=main.c logging.c
3 OBJ=$(SRC:.c=.o)
4
5
6 MCU=attiny25
7 AVRDUDE_MCU=$(MCU)
8 AVRDUDE_PROGRAMMER=usbasp
9
10 CFLAGS=-Wall -Os -mmcu=$(MCU) -DUSE_LOGGING=1 -DF_CPU=1000000UL -std=gnu99
11 LDFLAGS=
12 AVRDUDE_FLAGS= -p$(AVRDUDE_MCU) -B 4 -c $(AVRDUDE_PROGRAMMER)
13
14 FORMAT=ihex
15
16 CC=avr-gcc
17 OBJCOPY=avr-objcopy
18 OBJDUMP=avr-objdump
19 AVRDUDE=avrdude
20
21 all: $(PROGRAM).hex $(PROGRAM).eep
22
23 program: $(PROGRAM).hex $(PROGRAM).eep
24         $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i -U eeprom:w:$(PROGRAM).eep:i
25
26 program_flash: $(PROGRAM).hex
27         $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i
28
29 program_eeprom: $(PROGRAM).eep
30         $(AVRDUDE) $(AVRDUDE_FLAGS) eeprom:w:$(PROGRAM).eep:i
31
32 dump_eeprom:
33         $(AVRDUDE) $(AVRDUDE_FLAGS) -U eeprom:r:eeprom.raw:r
34         od -tx1 eeprom.raw
35
36 objdump: $(PROGRAM).elf
37         $(OBJDUMP) --disassemble $<
38
39 .PRECIOUS : $(OBJ) $(PROGRAM).elf
40
41 %.hex: %.elf
42         $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
43
44 %.eep: %.elf
45         $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
46                 --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
47
48 %.elf: $(OBJ)
49         $(CC) $(CFLAGS) $(OBJ) -o $@ $(LDFLAGS)
50
51 %.o: %.c Makefile
52         $(CC) -c $(CFLAGS) $< -o $@
53
54 %.s: %.c Makefile
55         $(CC) -S -c $(CFLAGS) $< -o $@
56
57 %.o: %.S
58         $(CC) -c $(CFLAGS) $< -o $@
59
60 clean:
61         rm -f $(PROGRAM).hex $(PROGRAM).eep $(PROGRAM).elf *.o *.s eeprom.raw
62
63 .PHONY: all clean dump_eeprom program program_flash program_eeprom objdump
64