equal
deleted
inserted
replaced
|
1 QMSK_ARDUINO = qmsk |
|
2 |
|
3 PROG = hello |
|
4 |
|
5 ELF = build/src/$(PROG).elf |
|
6 HEX = build/src/$(PROG).hex |
|
7 |
|
8 build/src/hello.elf: build/src/hello.o \ |
|
9 build/qmsk/src/timer.o |
|
10 |
|
11 ## |
|
12 all: $(HEX) |
|
13 |
|
14 build: |
|
15 mkdir -p build/src build/qmsk/src |
|
16 |
|
17 clean: |
|
18 rm -rf build/ |
|
19 |
|
20 ## Compiler |
|
21 MCU = atmega328p |
|
22 |
|
23 # CPU clock frequency |
|
24 CPU = 16000000 |
|
25 STD = c99 |
|
26 |
|
27 CC = avr-gcc |
|
28 CPPFLAGS = -DF_CPU=$(CPU)UL -I$(QMSK_ARDUINO)/include |
|
29 CFLAGS = -mmcu=$(MCU) -std=$(STD) -Os -g |
|
30 LDFLAGS = -mmcu=$(MCU) |
|
31 LDLIBS = -lc |
|
32 |
|
33 build/%.o: %.c |
|
34 $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< |
|
35 $(CC) -MM $(CPPFLAGS) -MT $@ -MF build/$*.d $< |
|
36 |
|
37 build/%.elf: |
|
38 $(CC) $(LDFLAGS) $+ -o $@ $(LDLIBS) |
|
39 |
|
40 # existing .d files for rebuilding existing .o's |
|
41 -include $(wildcard build/*/*.d) |
|
42 |
|
43 dump: $(ELF) |
|
44 avr-objdump -d $(ELF) |
|
45 |
|
46 ## Assembler |
|
47 AS = avra |
|
48 ASFLAGS = |
|
49 |
|
50 %.hex: %.s |
|
51 $(AS) $(ASFLAGS) $< |
|
52 mv $<.hex $@ |
|
53 |
|
54 ## Flashing |
|
55 # Arduino Duemilanove |
|
56 AD_PART = m328p |
|
57 AD_PROG = arduino |
|
58 AD_BAUD = 57600 |
|
59 AD_PORT = /dev/arduino |
|
60 |
|
61 AD = avrdude |
|
62 ADFLAGS = -p $(AD_PART) -c $(AD_PROG) -b $(AD_BAUD) -P $(AD_PORT) |
|
63 |
|
64 build/%.hex: build/%.elf |
|
65 avr-objcopy -O ihex -R .eeprom $< $@ |
|
66 |
|
67 .PRECIOUS: build/%.elf |
|
68 |
|
69 upload: $(HEX) |
|
70 $(AD) $(ADFLAGS) -U flash:w:$< |
|
71 |
|
72 ## Console |
|
73 SERIAL_BAUD = 9600 |
|
74 SERIAL_FLOW = n |
|
75 SERIAL_PARITY = n |
|
76 SERIAL_BITS = 8 |
|
77 SERIAL_PORT = $(AD_PORT) |
|
78 |
|
79 SERIAL_TERM = picocom |
|
80 SERIAL_FLAGS = -b $(SERIAL_BAUD) -f $(SERIAL_FLOW) -p $(SERIAL_PARITY) -d $(SERIAL_BITS) |
|
81 |
|
82 console: |
|
83 $(SERIAL_TERM) $(SERIAL_FLAGS) $(SERIAL_PORT) |
|
84 |