2971 |
jichapav |
1 |
############################################################################## |
|
|
2 |
# Build global options |
|
|
3 |
# NOTE: Can be overridden externally. |
|
|
4 |
# |
|
|
5 |
|
|
|
6 |
# Compiler options here. |
|
|
7 |
ifeq ($(USE_OPT),) |
|
|
8 |
USE_OPT = -O2 -ggdb -fomit-frame-pointer |
|
|
9 |
endif |
|
|
10 |
|
|
|
11 |
# C specific options here (added to USE_OPT). |
|
|
12 |
ifeq ($(USE_COPT),) |
|
|
13 |
USE_COPT = |
|
|
14 |
endif |
|
|
15 |
|
|
|
16 |
# C++ specific options here (added to USE_OPT). |
|
|
17 |
ifeq ($(USE_CPPOPT),) |
|
|
18 |
USE_CPPOPT = -fno-rtti |
|
|
19 |
endif |
|
|
20 |
|
|
|
21 |
# Enable this if you want the linker to remove unused code and data |
|
|
22 |
ifeq ($(USE_LINK_GC),) |
|
|
23 |
USE_LINK_GC = yes |
|
|
24 |
endif |
|
|
25 |
|
|
|
26 |
# If enabled, this option allows to compile the application in THUMB mode. |
|
|
27 |
ifeq ($(USE_THUMB),) |
|
|
28 |
USE_THUMB = yes |
|
|
29 |
endif |
|
|
30 |
|
|
|
31 |
# Enable this if you want to see the full log while compiling. |
|
|
32 |
ifeq ($(USE_VERBOSE_COMPILE),) |
|
|
33 |
USE_VERBOSE_COMPILE = no |
|
|
34 |
endif |
|
|
35 |
|
|
|
36 |
# |
|
|
37 |
# Build global options |
|
|
38 |
############################################################################## |
|
|
39 |
|
|
|
40 |
############################################################################## |
|
|
41 |
# Architecture or project specific options |
|
|
42 |
# |
|
|
43 |
|
|
|
44 |
# Enable this if you really want to use the STM FWLib. |
|
|
45 |
ifeq ($(USE_FWLIB),) |
|
|
46 |
USE_FWLIB = no |
|
|
47 |
endif |
|
|
48 |
|
|
|
49 |
# |
|
|
50 |
# Architecture or project specific options |
|
|
51 |
############################################################################## |
|
|
52 |
|
|
|
53 |
############################################################################## |
|
|
54 |
# Project, sources and paths |
|
|
55 |
# |
|
|
56 |
|
|
|
57 |
# Define project name here |
|
|
58 |
PROJECT = ch |
|
|
59 |
|
|
|
60 |
# Imported source files and paths |
|
|
61 |
CHIBIOS = ../.. |
|
|
62 |
include $(CHIBIOS)/boards/ST_STM32L_DISCOVERY/board.mk |
|
|
63 |
include $(CHIBIOS)/os/hal/platforms/STM32L1xx/platform.mk |
|
|
64 |
include $(CHIBIOS)/os/hal/hal.mk |
|
|
65 |
include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32L1xx/port.mk |
|
|
66 |
include $(CHIBIOS)/os/kernel/kernel.mk |
|
|
67 |
include $(CHIBIOS)/test/test.mk |
|
|
68 |
|
|
|
69 |
# Define linker script file here |
|
|
70 |
LDSCRIPT= $(PORTLD)/STM32L152xB.ld |
|
|
71 |
|
|
|
72 |
# C sources that can be compiled in ARM or THUMB mode depending on the global |
|
|
73 |
# setting. |
|
|
74 |
CSRC = $(PORTSRC) \ |
|
|
75 |
$(KERNSRC) \ |
|
|
76 |
$(TESTSRC) \ |
|
|
77 |
$(HALSRC) \ |
|
|
78 |
$(PLATFORMSRC) \ |
|
|
79 |
$(BOARDSRC) \ |
|
|
80 |
$(CHIBIOS)/os/various/evtimer.c \ |
|
|
81 |
$(CHIBIOS)/os/various/syscalls.c \ |
|
|
82 |
main.c |
|
|
83 |
|
|
|
84 |
# C++ sources that can be compiled in ARM or THUMB mode depending on the global |
|
|
85 |
# setting. |
|
|
86 |
CPPSRC = |
|
|
87 |
|
|
|
88 |
# C sources to be compiled in ARM mode regardless of the global setting. |
|
|
89 |
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler |
|
|
90 |
# option that results in lower performance and larger code size. |
|
|
91 |
ACSRC = |
|
|
92 |
|
|
|
93 |
# C++ sources to be compiled in ARM mode regardless of the global setting. |
|
|
94 |
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler |
|
|
95 |
# option that results in lower performance and larger code size. |
|
|
96 |
ACPPSRC = |
|
|
97 |
|
|
|
98 |
# C sources to be compiled in THUMB mode regardless of the global setting. |
|
|
99 |
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler |
|
|
100 |
# option that results in lower performance and larger code size. |
|
|
101 |
TCSRC = |
|
|
102 |
|
|
|
103 |
# C sources to be compiled in THUMB mode regardless of the global setting. |
|
|
104 |
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler |
|
|
105 |
# option that results in lower performance and larger code size. |
|
|
106 |
TCPPSRC = |
|
|
107 |
|
|
|
108 |
# List ASM source files here |
|
|
109 |
ASMSRC = $(PORTASM) |
|
|
110 |
|
|
|
111 |
INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \ |
|
|
112 |
$(HALINC) $(PLATFORMINC) $(BOARDINC) \ |
|
|
113 |
$(CHIBIOS)/os/various |
|
|
114 |
|
|
|
115 |
# |
|
|
116 |
# Project, sources and paths |
|
|
117 |
############################################################################## |
|
|
118 |
|
|
|
119 |
############################################################################## |
|
|
120 |
# Compiler settings |
|
|
121 |
# |
|
|
122 |
|
|
|
123 |
MCU = cortex-m3 |
|
|
124 |
|
|
|
125 |
#TRGT = arm-elf- |
|
|
126 |
TRGT = arm-none-eabi- |
|
|
127 |
CC = $(TRGT)gcc |
|
|
128 |
CPPC = $(TRGT)g++ |
|
|
129 |
# Enable loading with g++ only if you need C++ runtime support. |
|
|
130 |
# NOTE: You can use C++ even without C++ support if you are careful. C++ |
|
|
131 |
# runtime support makes code size explode. |
|
|
132 |
LD = $(TRGT)gcc |
|
|
133 |
#LD = $(TRGT)g++ |
|
|
134 |
CP = $(TRGT)objcopy |
|
|
135 |
AS = $(TRGT)gcc -x assembler-with-cpp |
|
|
136 |
OD = $(TRGT)objdump |
|
|
137 |
HEX = $(CP) -O ihex |
|
|
138 |
BIN = $(CP) -O binary |
|
|
139 |
|
|
|
140 |
# ARM-specific options here |
|
|
141 |
AOPT = |
|
|
142 |
|
|
|
143 |
# THUMB-specific options here |
|
|
144 |
TOPT = -mthumb -DTHUMB |
|
|
145 |
|
|
|
146 |
# Define C warning options here |
|
|
147 |
CWARN = -Wall -Wextra -Wstrict-prototypes |
|
|
148 |
|
|
|
149 |
# Define C++ warning options here |
|
|
150 |
CPPWARN = -Wall -Wextra |
|
|
151 |
|
|
|
152 |
# |
|
|
153 |
# Compiler settings |
|
|
154 |
############################################################################## |
|
|
155 |
|
|
|
156 |
############################################################################## |
|
|
157 |
# Start of default section |
|
|
158 |
# |
|
|
159 |
|
|
|
160 |
# List all default C defines here, like -D_DEBUG=1 |
|
|
161 |
DDEFS = |
|
|
162 |
|
|
|
163 |
# List all default ASM defines here, like -D_DEBUG=1 |
|
|
164 |
DADEFS = |
|
|
165 |
|
|
|
166 |
# List all default directories to look for include files here |
|
|
167 |
DINCDIR = |
|
|
168 |
|
|
|
169 |
# List the default directory to look for the libraries here |
|
|
170 |
DLIBDIR = |
|
|
171 |
|
|
|
172 |
# List all default libraries here |
|
|
173 |
DLIBS = |
|
|
174 |
|
|
|
175 |
# |
|
|
176 |
# End of default section |
|
|
177 |
############################################################################## |
|
|
178 |
|
|
|
179 |
############################################################################## |
|
|
180 |
# Start of user section |
|
|
181 |
# |
|
|
182 |
|
|
|
183 |
# List all user C define here, like -D_DEBUG=1 |
|
|
184 |
UDEFS = |
|
|
185 |
|
|
|
186 |
# Define ASM defines here |
|
|
187 |
UADEFS = |
|
|
188 |
|
|
|
189 |
# List all user directories here |
|
|
190 |
UINCDIR = |
|
|
191 |
|
|
|
192 |
# List the user directory to look for the libraries here |
|
|
193 |
ULIBDIR = |
|
|
194 |
|
|
|
195 |
# List all user libraries here |
|
|
196 |
ULIBS = |
|
|
197 |
|
|
|
198 |
# |
|
|
199 |
# End of user defines |
|
|
200 |
############################################################################## |
|
|
201 |
|
|
|
202 |
ifeq ($(USE_FWLIB),yes) |
|
|
203 |
include $(CHIBIOS)/ext/stm32lib/stm32lib.mk |
|
|
204 |
CSRC += $(STM32SRC) |
|
|
205 |
INCDIR += $(STM32INC) |
|
|
206 |
USE_OPT += -DUSE_STDPERIPH_DRIVER |
|
|
207 |
endif |
|
|
208 |
|
|
|
209 |
include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk |