Subversion Repositories chibiosIgnition

Rev

Rev 13 | Rev 16 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
##############################################################################
2
# Build global options
3
# NOTE: Can be overridden externally.
4
#
5
 
6
# Compiler options here.
7
ifeq ($(USE_OPT),)
11 mjames 8
  USE_OPT = -O0 -g -ggdb -fomit-frame-pointer -falign-functions=16
2 mjames 9
endif
10
 
7 mjames 11
 
2 mjames 12
# C specific options here (added to USE_OPT).
13
ifeq ($(USE_COPT),)
7 mjames 14
  USE_COPT = 
2 mjames 15
endif
16
 
17
# C++ specific options here (added to USE_OPT).
18
ifeq ($(USE_CPPOPT),)
19
  USE_CPPOPT = -fno-rtti
20
endif
21
 
22
# Enable this if you want the linker to remove unused code and data
23
ifeq ($(USE_LINK_GC),)
24
  USE_LINK_GC = yes
25
endif
26
 
7 mjames 27
# Linker extra options here.
28
ifeq ($(USE_LDOPT),)
29
  USE_LDOPT = 
30
endif
31
 
32
# Enable this if you want link time optimizations (LTO)
33
ifeq ($(USE_LTO),)
34
  USE_LTO = yes
35
endif
36
 
2 mjames 37
# If enabled, this option allows to compile the application in THUMB mode.
38
ifeq ($(USE_THUMB),)
39
  USE_THUMB = yes
40
endif
41
 
42
# Enable this if you want to see the full log while compiling.
43
ifeq ($(USE_VERBOSE_COMPILE),)
44
  USE_VERBOSE_COMPILE = no
45
endif
46
 
7 mjames 47
# If enabled, this option makes the build process faster by not compiling
48
# modules not used in the current configuration.
49
ifeq ($(USE_SMART_BUILD),)
50
  USE_SMART_BUILD = yes
51
endif
52
 
53
 
2 mjames 54
#
55
# Build global options
56
##############################################################################
57
 
58
##############################################################################
59
# Architecture or project specific options
60
#
61
 
7 mjames 62
# Stack size to be allocated to the Cortex-M process stack. This stack is
63
# the stack used by the main() thread.
64
ifeq ($(USE_PROCESS_STACKSIZE),)
65
  USE_PROCESS_STACKSIZE = 0x400
66
endif
67
 
68
# Stack size to the allocated to the Cortex-M main/exceptions stack. This
69
# stack is used for processing interrupts and exceptions.
70
ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
71
  USE_EXCEPTIONS_STACKSIZE = 0x400
72
endif
73
 
74
# Enables the use of FPU (no, softfp, hard).
75
ifeq ($(USE_FPU),)
76
  USE_FPU = no
77
endif
78
 
2 mjames 79
# Enable this if you really want to use the STM FWLib.
80
ifeq ($(USE_FWLIB),)
81
  USE_FWLIB = no
82
endif
83
 
84
#
85
# Architecture or project specific options
86
##############################################################################
87
 
88
##############################################################################
89
# Project, sources and paths
90
#
91
 
92
 
93
 
94
# Define project name here
95
PROJECT = ch
96
#define board
97
BOARD = ST_bluePillF103
98
 
7 mjames 99
CHIBIOS = ../ChibiOS
15 mjames 100
CHIBIOS_CONTRIB = ../ChibiOS/community
7 mjames 101
# Licensing files.
102
include $(CHIBIOS)/os/license/license.mk
103
# Startup files.
104
include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f1xx.mk
105
# HAL-OSAL files (optional).
15 mjames 106
include $(CHIBIOS_CONTRIB)/os/hal/hal.mk
107
include $(CHIBIOS_CONTRIB)/os/hal/ports/STM32/STM32F1xx/platform.mk
7 mjames 108
# board pinout file changed from chibiOS
109
include ./chibios/board/board.mk
110
include $(CHIBIOS)/os/hal/osal/rt/osal.mk
111
# RTOS files (optional).
112
include $(CHIBIOS)/os/rt/rt.mk
113
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
114
# Other files (optional).
115
include $(CHIBIOS)/test/lib/test.mk
116
include $(CHIBIOS)/test/rt/rt_test.mk
117
include $(CHIBIOS)/test/oslib/oslib_test.mk
118
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
119
include $(CHIBIOS)/os/various/shell/shell.mk
2 mjames 120
 
121
# Define linker script file here
7 mjames 122
LDSCRIPT= $(STARTUPLD)/STM32F103xB.ld
2 mjames 123
 
3 mjames 124
SSD1306SRC  = SSD1306_lib/Font.c
125
SSD1306SRC += SSD1306_lib/SSD1306.c
2 mjames 126
 
3 mjames 127
SSD1306INC =  SSD1306_lib
128
 
129
IGNSRC  = src/hardware.c
130
IGNSRC += src/spiInterface.c
131
IGNSRC += src/ap_math.c
6 mjames 132
IGNSRC += src/timer2.c
133
IGNSRC += src/useAdc.c
3 mjames 134
 
2 mjames 135
IGNINC = inc
136
 
137
# C sources that can be compiled in ARM or THUMB mode depending on the global
138
# setting.
7 mjames 139
CSRC = $(ALLCSRC) \
140
       $(IGNSRC) \
3 mjames 141
       $(SSD1306SRC) \
7 mjames 142
       usbcfg.c \
2 mjames 143
       main.c
144
 
145
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
146
# setting.
7 mjames 147
CPPSRC = $(ALLCPPSRC)
2 mjames 148
 
149
# C sources to be compiled in ARM mode regardless of the global setting.
150
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
151
#       option that results in lower performance and larger code size.
152
ACSRC =
153
 
154
# C++ sources to be compiled in ARM mode regardless of the global setting.
155
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
156
#       option that results in lower performance and larger code size.
157
ACPPSRC =
158
 
159
# C sources to be compiled in THUMB mode regardless of the global setting.
160
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
161
#       option that results in lower performance and larger code size.
162
TCSRC =
163
 
164
# C sources to be compiled in THUMB mode regardless of the global setting.
165
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
166
#       option that results in lower performance and larger code size.
167
TCPPSRC =
168
 
169
# List ASM source files here
7 mjames 170
ASMSRC = $(ALLASMSRC)
171
ASMXSRC = $(ALLXASMSRC)
2 mjames 172
 
7 mjames 173
 
174
INCDIR = $(ALLINC) \
175
         $(IGNINC) \
176
         $(SSD1306INC) \
2 mjames 177
         $(CHIBIOS)/os/various
178
 
179
#
180
# Project, sources and paths
181
##############################################################################
182
 
183
##############################################################################
184
# Compiler settings
185
#
186
 
187
MCU  = cortex-m3
188
 
189
#TRGT = arm-elf-
190
TRGT = arm-none-eabi-
191
CC   = $(TRGT)gcc
192
CPPC = $(TRGT)g++
193
# Enable loading with g++ only if you need C++ runtime support.
194
# NOTE: You can use C++ even without C++ support if you are careful. C++
195
#       runtime support makes code size explode.
196
LD   = $(TRGT)gcc
197
#LD   = $(TRGT)g++
198
CP   = $(TRGT)objcopy
199
AS   = $(TRGT)gcc -x assembler-with-cpp
200
OD   = $(TRGT)objdump
201
HEX  = $(CP) -O ihex
202
BIN  = $(CP) -O binary
13 mjames 203
SZ   = touch
2 mjames 204
 
205
# ARM-specific options here
206
AOPT =
207
 
208
# THUMB-specific options here
209
TOPT = -mthumb -DTHUMB
210
 
211
# Define C warning options here
212
CWARN = -Wall -Wextra -Wstrict-prototypes
213
 
214
# Define C++ warning options here
215
CPPWARN = -Wall -Wextra
216
 
217
#
218
# Compiler settings
219
##############################################################################
220
 
221
##############################################################################
222
# Start of default section
223
#
224
 
225
# List all default C defines here, like -D_DEBUG=1
226
DDEFS = -DSTDOUT_SD=SD2 -DSTDIN_SD=SD2
227
 
228
# List all default ASM defines here, like -D_DEBUG=1
229
DADEFS =
230
 
231
# List all default directories to look for include files here
232
DINCDIR =
233
 
234
# List the default directory to look for the libraries here
235
DLIBDIR =
236
 
237
# List all default libraries here
238
DLIBS =
239
 
240
#
241
# End of default section
242
##############################################################################
243
 
244
##############################################################################
245
# Start of user section
246
#
247
 
248
# List all user C define here, like -D_DEBUG=1
249
UDEFS =
250
 
251
# Define ASM defines here
252
UADEFS =
253
 
254
# List all user directories here
255
UINCDIR =
256
 
257
# List the user directory to look for the libraries here
258
ULIBDIR =
259
 
260
# List all user libraries here
5 mjames 261
ULIBS = -lm
2 mjames 262
 
263
#
264
# End of user defines
265
##############################################################################
266
 
267
ifeq ($(USE_FWLIB),yes)
268
  include $(CHIBIOS)/ext/stm32lib/stm32lib.mk
269
  CSRC += $(STM32SRC)
270
  INCDIR += $(STM32INC)
271
  USE_OPT += -DUSE_STDPERIPH_DRIVER
272
endif
273
 
7 mjames 274
 
275
##############################################################################
276
 
277
RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
278
include $(RULESPATH)/rules.mk
13 mjames 279