Subversion Repositories EngineBay2

Rev

Rev 9 | Rev 29 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9 Rev 28
Line 1... Line 1...
1
#############################################
1
##########################################################################################################################
2
# sort out basic conditional information FIRST
2
# File automatically-generated by tool: [projectgenerator] version: [3.10.0-B14] date: [Sun Oct 25 15:36:57 GMT 2020] 
-
 
3
##########################################################################################################################
3
 
4
 
-
 
5
# ------------------------------------------------
4
#put object paths in the right place 
6
# Generic Makefile (based on gcc)
-
 
7
#
-
 
8
# ChangeLog :
5
FLASH_OUTPUT="ERROR no FLASH_OUTPUT for "$(MAKECMDGOALS) 
9
#	2017-02-10 - Several enhancements + project update mode
-
 
10
#   2015-07-22 - first version
-
 
11
# ------------------------------------------------
6
 
12
 
-
 
13
######################################
-
 
14
# target
7
ifeq ($(MAKECMDGOALS),clean-debug-enginebay-l152)
15
######################################
8
FLASH_OUTPUT=debug-enginebay-l152
16
TARGET = EngineBay2
9
endif
17
 
10
 
18
 
11
ifeq ($(MAKECMDGOALS),clean-release-enginebay-l152)
19
######################################
-
 
20
# building variables
12
FLASH_OUTPUT=release-enginebay-l152
21
######################################
-
 
22
# debug build?
-
 
23
DEBUG = 1
-
 
24
# optimization
-
 
25
OPT = -O2
-
 
26
 
-
 
27
 
-
 
28
#######################################
13
endif
29
# paths
-
 
30
#######################################
-
 
31
# Build path
-
 
32
BUILD_DIR = build
14
 
33
 
-
 
34
######################################
-
 
35
# source
-
 
36
######################################
-
 
37
# C sources
-
 
38
C_SOURCES =  \
-
 
39
Src/main.c \
-
 
40
Src/stm32l1xx_it.c \
-
 
41
Src/stm32l1xx_hal_msp.c \
-
 
42
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_adc.c \
-
 
43
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_adc_ex.c \
15
ifeq ($(MAKECMDGOALS),debug-enginebay-l152)
44
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c \
-
 
45
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c \
-
 
46
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c \
-
 
47
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c \
-
 
48
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c \
-
 
49
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c \
-
 
50
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c \
-
 
51
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c \
-
 
52
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c \
-
 
53
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c \
-
 
54
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c \
-
 
55
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c \
-
 
56
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c \
-
 
57
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c \
-
 
58
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim_ex.c \
-
 
59
Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.c \
16
CFLAGS += -g -Og -DDEBUG
60
Src/system_stm32l1xx.c
-
 
61
 
17
ASFLAGS+= -g
62
# ASM sources
18
LDFLAGS+= -g
63
ASM_SOURCES =  \
19
FLASH_OUTPUT=debug-enginebay-l152
64
startup_stm32l152xe.s
-
 
65
 
20
endif
66
 
21
 
67
 
22
 
68
 
-
 
69
#######################################
-
 
70
# binaries
-
 
71
#######################################
-
 
72
PREFIX = arm-none-eabi-
-
 
73
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
23
ifeq ($(MAKECMDGOALS),release-enginebay-l152)
74
# either it can be added to the PATH environment variable.
-
 
75
ifdef GCC_PATH
24
CFLAGS += $(OPTIMIZATION) -DRELEASE 
76
CC = $(GCC_PATH)/$(PREFIX)gcc
-
 
77
AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp
-
 
78
CP = $(GCC_PATH)/$(PREFIX)objcopy
-
 
79
SZ = $(GCC_PATH)/$(PREFIX)size
-
 
80
else
-
 
81
CC = $(PREFIX)gcc
25
FLASH_OUTPUT=release-enginebay-l152
82
AS = $(PREFIX)gcc -x assembler-with-cpp
-
 
83
CP = $(PREFIX)objcopy
-
 
84
SZ = $(PREFIX)size
26
endif
85
endif
-
 
86
HEX = $(CP) -O ihex
-
 
87
BIN = $(CP) -O binary -S
-
 
88
 
-
 
89
#######################################
-
 
90
# CFLAGS
-
 
91
#######################################
-
 
92
# cpu
-
 
93
CPU = -mcpu=cortex-m3
-
 
94
 
-
 
95
# fpu
-
 
96
# NONE for Cortex-M0/M0+/M3
-
 
97
 
-
 
98
# float-abi
-
 
99
 
-
 
100
 
-
 
101
# mcu
-
 
102
MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)
-
 
103
 
-
 
104
# macros for gcc
-
 
105
# AS defines
-
 
106
AS_DEFS = 
-
 
107
 
-
 
108
# C defines
-
 
109
C_DEFS =  \
-
 
110
-DUSE_HAL_DRIVER \
-
 
111
-DSTM32L152xE
-
 
112
 
-
 
113
 
-
 
114
# AS includes
-
 
115
AS_INCLUDES = 
-
 
116
 
-
 
117
# C includes
-
 
118
C_INCLUDES =  \
-
 
119
-IInc \
-
 
120
-IDrivers/STM32L1xx_HAL_Driver/Inc \
-
 
121
-IDrivers/STM32L1xx_HAL_Driver/Inc/Legacy \
-
 
122
-IDrivers/CMSIS/Device/ST/STM32L1xx/Include \
-
 
123
-IDrivers/CMSIS/Include
27
 
124
 
28
 
125
 
29
 
126
 
30
#-------------------------------------------------------------------------------
-
 
31
#		User-modifiable options
-
 
32
#-------------------------------------------------------------------------------
-
 
33
 
-
 
34
# Tool suffix when cross-compiling
-
 
35
CROSS_COMPILE = arm-none-eabi-
-
 
36
 
-
 
37
CC = $(CROSS_COMPILE)gcc
-
 
38
SIZE = $(CROSS_COMPILE)size
-
 
39
STRIP = $(CROSS_COMPILE)strip
-
 
40
OBJCOPY = $(CROSS_COMPILE)objcopy
-
 
41
OBJDUMP = $(CROSS_COMPILE)objdump
-
 
42
LD = $(CROSS_COMPILE)ld
-
 
43
AS = $(CROSS_COMPILE)as
-
 
44
AR = $(CROSS_COMPILE)ar
-
 
45
 
-
 
46
#########################################################
-
 
47
CPUFLAGS = -mfloat-abi=soft   -mcpu=cortex-m3 -mthumb 
-
 
48
CFLAGS +=   -Wall -fno-common -c $(CPUFLAGS)  
-
 
49
CFLAGS +=  $(INCLUDES) -DTRACE_LEVEL=$(TRACE_LEVEL)
-
 
50
CFLAGS += -DUSE_STDPERIPH_DRIVER
-
 
51
CFLAGS += -DHSE_Value=8000000L 
-
 
52
CFLAGS += -DEMB_FLASH -DSTM32L152xE  -DUSE_USB_FS
-
 
53
#-DSTM32F10X_MD 
-
 
54
CFLAGS += -fdata-sections -ffunction-sections
-
 
55
ASFLAGS =  -mapcs-32
-
 
56
LDFLAGS +=  -nostartfiles  
-
 
57
LDFLAGS += $(CPUFLAGS) --specs=nano.specs 
-
 
58
OBJCOPYFLAGS = -O binary
-
 
59
OBJDUMPFLAGS = -x --syms -S
-
 
60
 
-
 
61
# Trace level used for compilation
-
 
62
# (can be overriden by adding TRACE_LEVEL=#number to the command-line)
-
 
63
# TRACE_LEVEL_DEBUG      5
-
 
64
# TRACE_LEVEL_INFO       4
-
 
65
# TRACE_LEVEL_WARNING    3
-
 
66
# TRACE_LEVEL_ERROR      2
-
 
67
# TRACE_LEVEL_FATAL      1
-
 
68
# TRACE_LEVEL_NO_TRACE   0
-
 
69
 
-
 
70
TRACE_LEVEL = 0
-
 
71
 
-
 
72
# Optimization level
-
 
73
OPTIMIZATION = -O2
-
 
74
# Output file basename
-
 
75
 
-
 
76
#tell gcc to generate dependency file
-
 
77
CFLAGS += -MMD
-
 
78
 
-
 
79
FLASH_LINKER_SCRIPT = STM32L152RETx_FLASH.ld
-
 
80
 
-
 
81
#where the project is based relative to this directory
-
 
82
PROJROOT = .
-
 
83
# Output directories
-
 
84
BIN = $(PROJROOT)/Build
-
 
85
 
-
 
86
OBJPATH = $(BIN)/$(FLASH_OUTPUT)
-
 
87
 
-
 
88
DEPENDS = Makefile
-
 
89
 
-
 
90
 
-
 
91
#############################################
-
 
92
PRJ_SRC = ./Src
-
 
93
PRJ_INC = ./Inc
-
 
94
 
-
 
95
PRJ_OBJ = $(OBJPATH)/PRJ_Obj
-
 
96
INCLUDES += -I$(PRJ_INC)
-
 
97
 
-
 
98
PRJ_OBJECTS  = $(PRJ_OBJ)/main.o
-
 
99
PRJ_OBJECTS += $(PRJ_OBJ)/stm32l1xx_hal_msp.o
-
 
100
PRJ_OBJECTS += $(PRJ_OBJ)/stm32l1xx_it.o
-
 
101
PRJ_OBJECTS += $(PRJ_OBJ)/ap_math.o
-
 
102
PRJ_OBJECTS += $(PRJ_OBJ)/misc.o
-
 
103
PRJ_OBJECTS += $(PRJ_OBJ)/serial.o
-
 
104
 
-
 
105
C_OBJECTS += $(PRJ_OBJECTS)
-
 
106
 
-
 
107
$(PRJ_OBJ)/%.o: $(PRJ_SRC)/%.c $(DEPENDS)
-
 
108
	$(CC) $(CFLAGS)   $< -o $@
-
 
109
 
-
 
110
 
-
 
111
 
-
 
112
 
-
 
113
#####################################################
-
 
114
#Drivers for CMSIS
-
 
115
DRV_PATH= Drivers/CMSIS/Device/ST/STM32L1xx
-
 
116
DRV_SRC = $(DRV_PATH)/Source/Templates
-
 
117
DRV_INC = $(DRV_PATH)/Include
-
 
118
DRV_OBJ = $(OBJPATH)/Drv_Obj
-
 
119
 
-
 
120
INCLUDES += -I$(DRV_INC)
-
 
121
INCLUDES += -IDrivers/CMSIS/Include
-
 
122
 
-
 
123
DRV_OBJECTS =  $(DRV_OBJ)/system_stm32l1xx.o
-
 
124
 
-
 
125
C_OBJECTS += $(DRV_OBJECTS)
-
 
126
 
-
 
127
$(DRV_OBJ)/%.o: $(DRV_SRC)/%.c $(DEPENDS)
-
 
128
	$(CC) $(CFLAGS) $< -o $@
-
 
129
 
-
 
130
 
-
 
131
#####################################################
-
 
132
#Drivers for HAL
-
 
133
HAL_PATH= Drivers/STM32L1xx_HAL_Driver
-
 
134
HAL_SRC = $(HAL_PATH)/Src
-
 
135
HAL_INC = $(HAL_PATH)/Inc
-
 
136
HAL_OBJ = $(OBJPATH)/Hal_Obj
-
 
137
 
-
 
138
INCLUDES += -I$(HAL_INC)
-
 
139
 
-
 
140
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_adc_ex.o
-
 
141
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_adc.o
-
 
142
 
-
 
143
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_cortex.o
-
 
144
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_dac_ex.o
-
 
145
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_dac.o
-
 
146
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_dma.o
-
 
147
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_flash_ex.o
-
 
148
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_flash_ramfunc.o
-
 
149
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_flash.o
-
 
150
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_gpio.o
-
 
151
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_i2c.o
-
 
152
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_irda.o
-
 
153
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_pcd_ex.o
-
 
154
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_pcd.o
-
 
155
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_pwr_ex.o
-
 
156
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_pwr.o
-
 
157
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_rcc_ex.o
-
 
158
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_rcc.o
-
 
159
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_spi_ex.o
-
 
160
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_spi.o
-
 
161
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_tim_ex.o
-
 
162
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_tim.o
-
 
163
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_uart.o
-
 
164
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal.o
-
 
165
 
-
 
166
C_OBJECTS += $(HAL_OBJECTS)
-
 
167
 
-
 
168
$(HAL_OBJ)/%.o: $(HAL_SRC)/%.c $(DEPENDS)
-
 
169
	$(CC) $(CFLAGS) $< -o $@
-
 
170
 
-
 
171
 
-
 
172
#############################################
-
 
173
	
-
 
174
# this one has assembler too 
-
 
175
$(DRV_OBJ)/startup_stm32l152xe.o : $(DRV_SRC)/gcc/startup_stm32l152xe.s $(DEPENDS)
-
 
176
	$(AS) $(ASFLAGS)  $< -o $@
-
 
177
 
-
 
178
ASM_OBJECTS += $(DRV_OBJ)/startup_stm32l152xe.o
-
 
179
	
-
 
180
#############################################
-
 
181
# USB CDC 
-
 
182
 
-
 
183
 
-
 
184
CDC_PATH  = Middlewares/ST/STM32_USB_Device_Library/Class/CDC
-
 
185
CDC_SRC   = $(CDC_PATH)/Src
-
 
186
CDC_INC   = $(CDC_PATH)/Inc
-
 
187
CDC_OBJ   = $(OBJPATH)/CDC_Obj
-
 
188
INCLUDES += -I$(CDC_INC)
-
 
189
 
-
 
190
#CDC_OBJECTS  = $(CDC_OBJ)/usbd_cdc_if_template.o
-
 
191
#CDC_OBJECTS += $(CDC_OBJ)/usbd_cdc.o
-
 
192
 
-
 
193
C_OBJECTS += $(CDC_OBJECTS)
-
 
194
 
-
 
195
$(CDC_OBJ)/%.o: $(CDC_SRC)/%.c $(DEPENDS)
-
 
196
	$(CC) $(CFLAGS)   $< -o $@
-
 
197
 
127
 
198
 
128
 
199
#######################################################
129
#######################################################
-
 
130
# Additional code
200
 
131
 
201
USB_CORE = Middlewares/ST/STM32_USB_Device_Library/Core
-
 
202
USB_SRC  = $(USB_CORE)/Src
-
 
203
USB_INC  = $(USB_CORE)/Inc
-
 
204
 
-
 
205
USB_OBJ  = $(OBJPATH)/USB_Obj
-
 
206
INCLUDES += -I$(USB_INC)
132
C_SOURCES += Src/misc.c
207
 
133
 
208
#USB_OBJECTS  = $(USB_OBJ)/usbd_conf_template.o
-
 
209
#USB_OBJECTS += $(USB_OBJ)/usbd_core.o
-
 
210
#USB_OBJECTS += $(USB_OBJ)/usbd_ctlreq.o
-
 
211
#USB_OBJECTS += $(USB_OBJ)/usbd_ioreq.o
-
 
212
 
134
 
-
 
135
# PLX code library
-
 
136
LIBPLX=../libPLX
213
C_OBJECTS += $(USB_OBJECTS)
137
include $(LIBPLX)/libPLX.mk
214
 
138
 
215
 
139
 
216
$(USB_OBJ)/%.o: $(USB_SRC)/%.c $(DEPENDS)
-
 
217
	$(CC) $(CFLAGS)   $< -o $@
-
 
218
 
140
 
219
#############################################
141
# Using UART1 and UART2 with LibSerial.
220
# SPI OLED screen 
142
C_DEFS += -DSERIAL_UART1 -DSERIAL_UART2 
221
 
143
 
-
 
144
LIBSERIAL=../libSerial
-
 
145
include $(LIBSERIAL)/libSerial.mk
222
 
146
 
223
OLED_PATH  = SSD1306_lib
-
 
224
OLED_SRC   = $(OLED_PATH)
-
 
225
OLED_INC   = $(OLED_PATH)
-
 
226
OLED_OBJ   = $(OBJPATH)/OLED_Obj
-
 
227
INCLUDES += -I$(OLED_INC)
-
 
228
 
-
 
229
OLED_OBJECTS += $(OLED_OBJ)/SSD1306.o
-
 
230
OLED_OBJECTS += $(OLED_OBJ)/Font.o
-
 
231
 
-
 
232
C_OBJECTS += $(OLED_OBJECTS)
-
 
233
 
-
 
234
$(OLED_OBJ)/%.o: $(OLED_SRC)/%.c $(DEPENDS)
-
 
235
	$(CC) $(CFLAGS)   $< -o $@
-
 
236
	
-
 
237
#############################################
-
 
238
# PLX library 
-
 
239
 
147
 
-
 
148
LIBSSD1306=../libSSD1306
-
 
149
include $(LIBSSD1306)/libSSD1306.mk
240
 
150
 
241
PLX_PATH  = plx_lib
-
 
242
PLX_SRC   = $(PLX_PATH)
-
 
243
PLX_INC   = $(PLX_PATH)
-
 
244
PLX_OBJ   = $(OBJPATH)/PLX_Obj
-
 
245
INCLUDES += -I$(PLX_INC)
-
 
246
 
-
 
247
#PLX_OBJECTS += $(PLX_OBJ)/plx.o
-
 
248
 
-
 
249
C_OBJECTS += $(PLX_OBJECTS)
-
 
250
 
-
 
251
$(PLX_OBJ)/%.o: $(PLX_SRC)/%.c $(DEPENDS)
-
 
252
	$(CC) $(CFLAGS)   $< -o $@
-
 
253
	
-
 
254
	
-
 
255
#############################################
151
#######################################################
256
# for version.h
-
 
257
INCLUDES +=  -I.	
-
 
258
 
-
 
259
$(OBJPATH)/.exist: 
-
 
260
	mkdir -p $(OBJPATH)
-
 
261
	mkdir -p $(DRV_OBJ)
-
 
262
	mkdir -p $(HAL_OBJ)
-
 
263
	mkdir -p $(USB_OBJ)
-
 
264
	mkdir -p $(CDC_OBJ)
-
 
265
	mkdir -p $(PRJ_OBJ)
-
 
266
	mkdir -p $(PLX_OBJ)
-
 
267
	mkdir -p $(OLED_OBJ)
-
 
268
	touch $@
-
 
269
 
-
 
270
 
-
 
271
-include $(HAL_OBJECTS:.o=.d)
-
 
272
-include $(DRV_OBJECTS:.o=.d)
-
 
273
-include $(CDC_OBJECTS:.o=.d)
-
 
274
-include $(USB_OBJECTS:.o=.d)
-
 
275
-include $(PRJ_OBJECTS:.o=.d)
-
 
276
-include $(PLX_OBJECTS:.o=.d)
-
 
277
-include $(OLED_OBJECTS:.o=.d)
-
 
278
 
-
 
279
 
-
 
280
 
-
 
281
###########################################
-
 
282
# clean rules
152
# compile gcc flags
283
clean-debug-enginebay-l152: clean-base
-
 
284
	-rm -f $(BIN)/debug-enginebay-l152.* 
-
 
285
 
-
 
286
clean-release-enginebay-l152: clean-base
-
 
287
	-rm -f $(BIN)/release-enginebay-l152.* 
-
 
288
 
-
 
289
 
-
 
290
#common clean rule
-
 
291
clean-base:
-
 
292
	rm -f $(DRV_OBJ)/*
-
 
293
	rm -f $(HAL_OBJ)/*
-
 
294
	rm -f $(USB_OBJ)/*
-
 
295
	rm -f $(CDC_OBJ)/*
-
 
296
	rm -f $(PRJ_OBJ)/*
-
 
297
	rm -f $(PLX_OBJ)/*
-
 
298
	rm -f $(OLED_OBJ)/*
-
 
299
 
-
 
300
#Macro expansion in the makefile change the paths used
-
 
301
BUILD_TARGETS = $(OBJPATH)/.exist revision flash 
153
ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
302
 
-
 
303
debug-enginebay-l152: $(BUILD_TARGETS)
-
 
304
	@echo "done debug usb_l152"
-
 
305
 
-
 
306
release-enginebay-l152: $(BUILD_TARGETS)
-
 
307
	@echo "done release usb_l152"	
-
 
308
		
-
 
309
FINAL_BUILD=$(BIN)/$(FLASH_OUTPUT)
-
 
310
 
154
 
-
 
155
CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
311
 
156
 
-
 
157
ifeq ($(DEBUG), 1)
-
 
158
CFLAGS += -g -gdwarf-2
-
 
159
endif
312
 
160
 
313
 
161
 
-
 
162
# Generate dependency information
-
 
163
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
314
 
164
 
315
# updated to separate the debug info from the hex file
-
 
316
$(FINAL_BUILD).out:  $(C_OBJECTS) $(ASM_OBJECTS) $(FLASH_LINKER_SCRIPT) 
-
 
317
	@ echo "..linking"
-
 
318
	$(CC) $(LDFLAGS) -Wl,--gc-sections -Wl,-Map,$(FINAL_BUILD).map -T$(FLASH_LINKER_SCRIPT) -o $(FINAL_BUILD).out  $(C_OBJECTS) $(ASM_OBJECTS)
-
 
319
	$(OBJCOPY) --only-keep-debug $(FINAL_BUILD).out $(FINAL_BUILD).debug
-
 
320
	$(OBJCOPY) --strip-all --strip-debug --add-gnu-debuglink=$(FINAL_BUILD).debug --output-target srec --image-base 0x08000000  $(FINAL_BUILD).out $(FINAL_BUILD).s19
-
 
321
 
-
 
322
%.bin : %.out;
-
 
323
#	$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
-
 
324
	$(OBJDUMP) $(OBJDUMPFLAGS) $< > $<.list 
-
 
325
#	$(OBJDUMP) $(OBJDUMPFLAGS) $< 
-
 
326
	@ echo "...completed."
-
 
327
 
-
 
328
#getting the Subversion Repository information
-
 
329
#This requires that $(PROJROOT)/src/versions.h is NOT under SVN control (or always will see (Modified) version status)
-
 
330
revision:
-
 
331
	touch $(PROJROOT)/versions.h
-
 
332
#	@echo subWCrev . $(PROJROOT)/versions_base.h $(PROJROOT)/versions.h
-
 
333
 
165
 
-
 
166
#######################################
-
 
167
# LDFLAGS
-
 
168
#######################################
334
#final target 
169
# link script
-
 
170
LDSCRIPT = STM32L152RETx_FLASH.ld
-
 
171
 
-
 
172
# libraries
-
 
173
LIBS = -lc -lm -lnosys 
-
 
174
LIBDIR = 
-
 
175
LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
-
 
176
 
-
 
177
# default action: build all
-
 
178
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
-
 
179
 
-
 
180
 
-
 
181
#######################################
-
 
182
# build the application
-
 
183
#######################################
-
 
184
# list of objects
-
 
185
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
-
 
186
vpath %.c $(sort $(dir $(C_SOURCES)))
-
 
187
# list of ASM program objects
-
 
188
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
-
 
189
vpath %.s $(sort $(dir $(ASM_SOURCES)))
-
 
190
 
-
 
191
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) 
-
 
192
	$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
-
 
193
 
-
 
194
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
-
 
195
	$(AS) -c $(CFLAGS) $< -o $@
-
 
196
 
-
 
197
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
-
 
198
	$(CC) $(OBJECTS) $(LDFLAGS) -o $@
-
 
199
	$(SZ) $@
-
 
200
 
-
 
201
$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
-
 
202
	$(HEX) $< $@
-
 
203
	
-
 
204
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
-
 
205
	$(BIN) $< $@	
-
 
206
	
-
 
207
$(BUILD_DIR):
-
 
208
	mkdir $@		
-
 
209
 
-
 
210
#######################################
-
 
211
# clean up
-
 
212
#######################################
-
 
213
clean:
335
flash:$(FINAL_BUILD).bin 
214
	-rm -fR $(BUILD_DIR)
-
 
215
  
-
 
216
#######################################
-
 
217
# dependencies
-
 
218
#######################################
-
 
219
-include $(wildcard $(BUILD_DIR)/*.d)
336
 
220
 
337
	
221
# *** EOF ***