aboutsummaryrefslogtreecommitdiff
path: root/src/Makefile
blob: ca05759eba8c509c2be630ef578060c329810f21 (plain)
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
AVRPATH          = /usr/bin/
# AVRPATH          = C:/WinAVR-20100110/bin/

CC               = $(AVRPATH)avr-gcc
OBJCOPY          = $(AVRPATH)avr-objcopy
AVRSTRIP         = $(AVRPATH)avr-strip
AVRDUDE          = $(AVRPATH)avrdude
AVRSIZE          = $(AVRPATH)avr-size
AVRNM            = $(AVRPATH)avr-nm

PRG              = main
PATH             = output/


MCU_TARGET       = atmega16
# F_CPU          =  7372800UL
#F_CPU            = 4000000UL
# F_CPU          = 8000000UL
F_CPU            = 12000000UL
# F_CPU          = 12288000UL
#F_CPU           = 20000000UL

#
override CFLAGS  = -Wall -gstabs+ -Os -mcall-prologues -fshort-enums -msize -fno-jump-tables -std=c99  -Wunsafe-loop-optimizations -mmcu=$(MCU_TARGET)
#override PENIBL  = -Wunused-parameter -Wunsafe-loop-optimizations -funsafe-loop-optimizations -Wextra -Wpadded -Wredundant-decls -Winline -Werror -nodefaultlibs -nostdlib
override PREPRO  = -DF_CPU=$(F_CPU) -DBAUD=19200
override LDFLAGS = -Wl,-Map,$(PATH)$(PRG).map
override STDOUT  = -DSTDOUT_put_string -DSTDOUT_put_uint inc/stdout.c
# override STDALG  = -DSTDALGO_CRC7 inc/stdalg.c
# -DSTDOUT_putf


#/ FATFS_PATH     = inc/spi/dev/petit_fatfs/avr/
#/ ASRC           = $(FATFS_PATH)xitoa.S $(FATFS_PATH)usi.S
#/ OBJ            = $(CSRC:.c=.o) $(ASRC:.S=.o)

#/ ASFLAGS        = -Wa,-adhlns=$(<:.S=.lst),-gstabs
#/ ALL_ASFLAGS    = -mmcu=$(MCU_TARGET) -I. -x assembler-with-cpp $(ASFLAGS)


# inc/spi/dev/petit_fatfs/avr/pff.c inc/spi/dev/memory_sdcard.c
#		inc/uart/uart.c                \
#/ inc/spi/dev/petit/pff.c        \
#/ inc/spi/dev/petit/diskio.c
#/ inc/spi/dev/audio_vs1011.c

$(PATH)$(PRG).elf: clean
	$(CC) -o$(PATH)$(PRG).elf $(PREPRO) $(CFLAGS) $(LDFLAGS) $(DEBUG) $(STDOUT) $(STDALG) \
		$(PRG).c                       \
		inc/spi/spi.c                  \
		inc/int/dcf77/clock.c          \
		inc/spi/dev/display_dogm.c
	@$(AVRNM) --size-sort -l ./output/$(PRG).elf
	@$(AVRSIZE) -d  ./output/$(PRG).elf
	#@$(AVRSIZE) -C --mcu=$(MCU_TARGET) ./output/$(TARGET).elf

%.hex: $(PATH)%.elf
	$(OBJCOPY) -S -j.text -j.data -Oihex $< $(PATH)$@

#/ %.o : %.S
	#/ $(CC) -c $(ALL_ASFLAGS) $< -o $@

upload: clean $(PRG).hex
	# skip: -e  (erase, because ATMega doesn't need it and avrdude checks this automatically)
	$(AVRDUDE) -cavrispv2 -b115200 -pm16 -Pusb -e -V -U ./output/$(PRG).hex

upload_mp3:
	$(AVRDUDE) -cavrispv2 -pm16 -Pusb -V -F -Ueeprom:w:accessdenied.mp3

clean:
	$(shell rm -f $(PATH)$(PRG).elf)
	$(shell rm -f $(PATH)$(PRG).hex)
	$(shell rm -f $(PATH)$(PRG).map)

#avr-gcc -o./output/main.elf -DF_CPU=7372800UL -DBAUD=9600 -DSTDOUT_reverse_bits -DSTDOUT_put_int -DSTDOUT_put_string -g -Wall -std=c99 -Os -mmcu=atmega16 -Wl,-Map,./output/main.map  ./inc/display/dog.c main.c ./inc/dcf77/clock.c ./inc/stdout.c
..