?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{BLAME START}

library

?curdirlinks? -

Blame information for rev 6

Line No. Rev Author Line
1 6 kaklik #----------------------------------------------------------------------------------
2 # ARM-GCC standard Makefile
3 # This makefile is to be used by including it from a project-specific makefile
4 # which defines the source files and compiler/linker options
5 #
6 # Written by Pascal Stang
7 # Based on Volker Oth's AVR makefiles of jan.2000
8 # ---------------------------------------------------------------------------------
9  
10 ###### BLOCK 1) define some variables based on the AVR base path in $(AVR) #######
11  
12 CC = avr-gcc
13 AS = avr-gcc -x assembler-with-cpp
14 RM = rm -f
15 RN = mv
16 CP = cp
17 OBJCOPY = avr-objcopy
18 SIZE = avr-size
19 INCDIR = .
20  
21  
22 ###### BLOCK 2) output format can be srec, ihex (avrobj and bin are always created) #######
23  
24 FORMAT = ihex
25  
26 ###### BLOCK 3) define all project specific object files ######
27  
28 SRC += $(addprefix $(AVRLIB)/,$(AVRLIB_SRC))
29 OBJ = $(ASRC:.s=.o) $(SRC:.c=.o)
30 CPFLAGS += -mmcu=$(MCU)
31 ASFLAGS += -mmcu=$(MCU)
32 LDFLAGS += -mmcu=$(MCU)
33  
34 ###### BLOCK 4) this defines the aims of the make process ######
35  
36 all: $(TRG).elf $(TRG).cof $(TRG).bin $(TRG).hex $(TRG).eep $(TRG).ok
37  
38  
39 ###### BLOCK 5) compile: instructions to create assembler and/or object files from C source ######
40  
41 %.o : %.c
42 $(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $@
43  
44 %.s : %.c
45 $(CC) -S $(CPFLAGS) -I$(INCDIR) $< -o $@
46  
47  
48 ###### BLOCK 6) assemble: instructions to create object file from assembler files ######
49  
50 %.o : %.s
51 $(AS) -c $(ASFLAGS) -I$(INCDIR) $< -o $@
52  
53  
54 ###### BLOCK 7) link: instructions to create elf output file from object files ######
55 %.elf: $(OBJ)
56 $(CC) $(OBJ) $(LIB) $(LDFLAGS) -o $@
57  
58 ###### BLOCK 8) create avrobj file from elf output file ######
59  
60 #%.obj: %.elf
61 # $(OBJCOPY) -O avrobj -R .eeprom $< $@
62  
63  
64 ###### BLOCK 9) create bin (.hex, .bin, and .eep) files from elf output file ######
65  
66 %.bin: %.elf
67 $(OBJCOPY) -O binary -R .eeprom $< $@
68  
69 %.hex: %.elf
70 $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
71  
72 %.eep: %.elf
73 $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
74  
75 %.cof: %.elf
76 $(OBJCOPY) --debugging -O coff-ext-avr \
77 --change-section-address .data-0x800000 \
78 --change-section-address .bss-0x800000 \
79 --change-section-address .noinit-0x800000 \
80 --change-section-address .eeprom-0x810000 \
81 $< $@
82  
83  
84 ###### BLOCK 10) If all other steps compile ok then echo "Errors: none" ######
85  
86 %ok:
87 $(SIZE) $(TRG).elf
88 @echo "Errors: none"
89  
90  
91 ###### BLOCK 11) make instruction to delete created files ######
92  
93 clean:
94 $(RM) $(OBJ)
95 $(RM) $(SRC:.c=.s)
96 $(RM) $(SRC:.c=.lst)
97 $(RM) $(TRG).map
98 $(RM) $(TRG).elf
99 $(RM) $(TRG).cof
100 $(RM) $(TRG).obj
101 $(RM) $(TRG).a90
102 $(RM) $(TRG).sym
103 $(RM) $(TRG).eep
104 $(RM) $(TRG).hex
105 $(RM) $(TRG).bin
106 @echo "Errors: none"
107  
108 size:
109 $(SIZE) $(TRG).elf
110  
{BLAME END}
{FOOTER START}

Powered by WebSVN v2.8.3