Subversion Repositories DashDisplay

Rev

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

Rev 28 Rev 30
Line 1... Line 1...
1
#############################################
1
#############################################
2
# sort out basic conditional information FIRST
2
# sort out basic conditional information FIRST
3
 
3
 
4
#put object paths in the right place 
4
#put object paths in the right place 
5
FLASH_OUTPUT="ERROR_no_FLASH_OUTPUT_for_"$(MAKECMDGOALS) 
5
FLASH_OUTPUT="ERROR_no_FLASH_OUTPUT_for_"$(MAKECMDGOALS) 
6
 
6
 
7
ifeq ($(MAKECMDGOALS),clean_debug_dashboard_F103)
7
ifeq ($(MAKECMDGOALS),clean_debug_dashboard_L152)
8
FLASH_OUTPUT=debug_dashboard_F103
8
FLASH_OUTPUT=debug_dashboard_L152
9
endif
9
endif
10
 
10
 
11
ifeq ($(MAKECMDGOALS),clean_release_dashboard_F103)
11
ifeq ($(MAKECMDGOALS),clean_release_dashboard_L152)
12
FLASH_OUTPUT=release_dashboard_F103
12
FLASH_OUTPUT=release_dashboard_L152
13
endif
13
endif
14
 
14
 
15
ifeq ($(MAKECMDGOALS),debug_dashboard_F103)
15
ifeq ($(MAKECMDGOALS),debug_dashboard_L152)
16
CFLAGS += -g -O0 -DDEBUG
16
CFLAGS += -g -O0 -DDEBUG
17
ASFLAGS+= -g
17
ASFLAGS+= -g
18
LDFLAGS+= -g
18
LDFLAGS+= -g
19
FLASH_OUTPUT=debug_dashboard_F103
19
FLASH_OUTPUT=debug_dashboard_L152
20
endif
20
endif
21
 
21
 
22
 
22
 
23
ifeq ($(MAKECMDGOALS),release_dashboard_F103)
23
ifeq ($(MAKECMDGOALS),release_dashboard_L152)
24
CFLAGS += $(OPTIMIZATION) -DRELEASE 
24
CFLAGS += $(OPTIMIZATION) -DRELEASE 
25
FLASH_OUTPUT=release_dashboard_F103
25
FLASH_OUTPUT=release_dashboard_L152
26
endif
26
endif
27
 
27
 
28
 
28
 
29
 
29
 
30
#-------------------------------------------------------------------------------
30
#-------------------------------------------------------------------------------
31
#		User-modifiable options
31
#		User-modifiable options
32
#-------------------------------------------------------------------------------
32
#-------------------------------------------------------------------------------
33
 
33
 
34
# Tool suffix when cross-compiling
34
# Tool suffix when cross-compiling
35
CROSS_COMPILE = arm-none-eabi-
35
CROSS_COMPILE = arm-none-eabi-
36
 
36
 
37
CC = $(CROSS_COMPILE)gcc
37
CC = $(CROSS_COMPILE)gcc
38
SIZE = $(CROSS_COMPILE)size
38
SIZE = $(CROSS_COMPILE)size
39
STRIP = $(CROSS_COMPILE)strip
39
STRIP = $(CROSS_COMPILE)strip
40
OBJCOPY = $(CROSS_COMPILE)objcopy
40
OBJCOPY = $(CROSS_COMPILE)objcopy
41
OBJDUMP = $(CROSS_COMPILE)objdump
41
OBJDUMP = $(CROSS_COMPILE)objdump
42
LD = $(CROSS_COMPILE)ld
42
LD = $(CROSS_COMPILE)ld
43
AS = $(CROSS_COMPILE)as
43
AS = $(CROSS_COMPILE)as
44
AR = $(CROSS_COMPILE)ar
44
AR = $(CROSS_COMPILE)ar
45
 
45
 
46
#########################################################
46
#########################################################
47
CPUFLAGS = -mfloat-abi=soft   -mcpu=cortex-m3 -mthumb 
47
CPUFLAGS = -mfloat-abi=soft   -mcpu=cortex-m3 -mthumb 
48
CFLAGS +=   -Wall -fno-common -c $(CPUFLAGS)  
48
CFLAGS +=   -Wall -fno-common -c $(CPUFLAGS)  
49
CFLAGS +=  $(INCLUDES) -DTRACE_LEVEL=$(TRACE_LEVEL)
49
CFLAGS +=  $(INCLUDES) -DTRACE_LEVEL=$(TRACE_LEVEL)
50
CFLAGS += -DUSE_STDPERIPH_DRIVER
50
CFLAGS += -DUSE_STDPERIPH_DRIVER
51
CFLAGS += -DHSE_Value=8000000L 
51
CFLAGS += -DHSE_Value=8000000L 
52
CFLAGS += -DEMB_FLASH -DSTM32F103xB  -DUSE_USB_FS
52
CFLAGS += -DEMB_FLASH -DSTM32L152xE 
53
#-DSTM32F10X_MD 
53
CFLAGS += -fdata-sections -ffunction-sections
54
CFLAGS += -fdata-sections -ffunction-sections
54
ASFLAGS =  -mapcs-32
55
ASFLAGS =  -mapcs-32
55
LDFLAGS +=  -nostartfiles  
56
LDFLAGS +=  -nostartfiles  
56
LDFLAGS += $(CPUFLAGS) --specs=nano.specs 
57
LDFLAGS += $(CPUFLAGS) --specs=nano.specs 
57
OBJCOPYFLAGS = -O binary
58
OBJCOPYFLAGS = -O binary
58
OBJDUMPFLAGS = -x --syms -S
59
OBJDUMPFLAGS = -x --syms -S
59
 
60
 
60
# Trace level used for compilation
61
# Trace level used for compilation
61
# (can be overriden by adding TRACE_LEVEL=#number to the command-line)
62
# (can be overriden by adding TRACE_LEVEL=#number to the command-line)
62
# TRACE_LEVEL_DEBUG      5
63
# TRACE_LEVEL_DEBUG      5
63
# TRACE_LEVEL_INFO       4
64
# TRACE_LEVEL_INFO       4
64
# TRACE_LEVEL_WARNING    3
65
# TRACE_LEVEL_WARNING    3
65
# TRACE_LEVEL_ERROR      2
66
# TRACE_LEVEL_ERROR      2
66
# TRACE_LEVEL_FATAL      1
67
# TRACE_LEVEL_FATAL      1
67
# TRACE_LEVEL_NO_TRACE   0
68
# TRACE_LEVEL_NO_TRACE   0
68
 
69
 
69
TRACE_LEVEL = 0
70
TRACE_LEVEL = 0
70
 
71
 
71
# Optimization level
72
# Optimization level
72
OPTIMIZATION = -Os
73
OPTIMIZATION = -Os
73
# Output file basename
74
# Output file basename
74
 
75
 
75
#tell gcc to generate dependency file
76
#tell gcc to generate dependency file
76
CFLAGS += -MMD
77
CFLAGS += -MMD
77
 
78
 
78
FLASH_LINKER_SCRIPT = STM32L152RE_FLASH.ld
79
FLASH_LINKER_SCRIPT = STM32F103CB_FLASH2.ld
79
 
80
 
80
#where the project is based relative to this directory
81
#where the project is based relative to this directory
81
PROJROOT = .
82
PROJROOT = .
82
# Output directories
83
# Output directories
83
BIN = $(PROJROOT)/Build
84
BIN = $(PROJROOT)/Build
84
 
85
 
85
OBJPATH = $(BIN)/$(FLASH_OUTPUT)
86
OBJPATH = $(BIN)/$(FLASH_OUTPUT)
86
 
87
 
87
DEPENDS = Makefile
88
DEPENDS = Makefile
88
 
89
 
89
 
90
 
90
#############################################
91
#############################################
91
PRJ_SRC = $(PROJROOT)/Src
92
PRJ_SRC = ./Src
92
PRJ_INC = $(PROJROOT)/Inc
93
PRJ_INC = ./Inc
93
 
94
 
94
PRJ_OBJ = $(OBJPATH)/PRJ_Obj
95
PRJ_OBJ = $(OBJPATH)/PRJ_Obj
95
INCLUDES += -I$(PRJ_INC)
96
INCLUDES += -I$(PRJ_INC)
96
 
97
 
97
PRJ_OBJECTS  = $(PRJ_OBJ)/main.o
98
PRJ_OBJECTS  = $(PRJ_OBJ)/main.o
98
 
99
 
99
PRJ_OBJECTS += $(PRJ_OBJ)/stm32l1xx_it.o
100
PRJ_OBJECTS += $(PRJ_OBJ)/stm32f1xx_it.o
100
PRJ_OBJECTS += $(PRJ_OBJ)/stm32l1xx_hal_msp.o
101
PRJ_OBJECTS += $(PRJ_OBJ)/stm32f1xx_hal_msp.o
101
PRJ_OBJECTS += $(PRJ_OBJ)/serial.o
102
PRJ_OBJECTS += $(PRJ_OBJ)/serial.o
102
PRJ_OBJECTS += $(PRJ_OBJ)/dials.o
103
PRJ_OBJECTS += $(PRJ_OBJ)/dials.o
103
PRJ_OBJECTS += $(PRJ_OBJ)/switches.o
104
PRJ_OBJECTS += $(PRJ_OBJ)/switches.o
104
PRJ_OBJECTS += $(PRJ_OBJ)/ap_math.o
105
PRJ_OBJECTS += $(PRJ_OBJ)/ap_math.o
105
PRJ_OBJECTS += $(PRJ_OBJ)/displayinfo.o
106
PRJ_OBJECTS += $(PRJ_OBJ)/displayinfo.o
106
PRJ_OBJECTS += $(PRJ_OBJ)/nvram.o
107
 
107
 
108
C_OBJECTS += $(PRJ_OBJECTS)
108
C_OBJECTS += $(PRJ_OBJECTS)
109
 
109
 
110
 
110
$(PRJ_OBJ)/%.o: $(PRJ_SRC)/%.c $(DEPENDS)
111
$(PRJ_OBJ)/%.o: $(PRJ_SRC)/%.c $(DEPENDS)
111
	$(CC) $(CFLAGS)   $< -o $@
112
	$(CC) $(CFLAGS)   $< -o $@
112
 
113
 
113
#####################################################
114
 
114
#Drivers for CMSIS
115
 
115
CMSIS_PATH=$(PROJROOT)/Drivers/CMSIS
116
 
116
DRV_PATH= $(CMSIS_PATH)/Device/ST/STM32L1xx
117
#####################################################
117
DRV_SRC = $(DRV_PATH)/Source/Templates
118
#Drivers for CMSIS
118
DRV_OBJ = $(OBJPATH)/Drv_Obj
119
DRV_PATH= Drivers/CMSIS/Device/ST/STM32F1xx
119
 
120
DRV_SRC = $(DRV_PATH)/Source/Templates
120
INCLUDES += -I$(DRV_PATH)/Include
121
DRV_INC = $(DRV_PATH)/Include
121
INCLUDES += -I$(CMSIS_PATH)/Include
122
DRV_OBJ = $(OBJPATH)/Drv_Obj
122
 
123
 
123
DRV_OBJECTS =  $(DRV_OBJ)/system_stm32l1xx.o
124
INCLUDES += -I$(DRV_INC)
124
 
125
INCLUDES += -IDrivers/CMSIS/Include
125
C_OBJECTS += $(DRV_OBJECTS)
126
 
126
 
127
DRV_OBJECTS =  $(DRV_OBJ)/system_stm32f1xx.o
127
$(DRV_OBJ)/%.o: $(DRV_SRC)/%.c $(DEPENDS)
128
 
128
	$(CC) $(CFLAGS) $< -o $@
129
C_OBJECTS += $(DRV_OBJECTS)
129
 
130
 
130
 
131
$(DRV_OBJ)/%.o: $(DRV_SRC)/%.c $(DEPENDS)
131
 
132
	$(CC) $(CFLAGS) $< -o $@
132
 
133
 
133
#####################################################
134
 
134
#Drivers for HAL
135
#####################################################
135
HAL_PATH= $(PROJROOT)/Drivers/STM32L1xx_HAL_Driver
136
#Drivers for HAL
136
HAL_SRC = $(HAL_PATH)/Src
137
HAL_PATH= Drivers/STM32F1xx_HAL_Driver
137
HAL_INC = $(HAL_PATH)/Inc
138
HAL_SRC = $(HAL_PATH)/Src
138
HAL_OBJ = $(OBJPATH)/Hal_Obj
139
HAL_INC = $(HAL_PATH)/Inc
139
 
140
HAL_OBJ = $(OBJPATH)/Hal_Obj
140
INCLUDES += -I$(HAL_INC)
141
 
141
 
142
INCLUDES += -I$(HAL_INC)
142
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_adc_ex.o
143
 
143
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_adc.o
144
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_adc_ex.o
144
 
145
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_adc.o
145
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_cortex.o
146
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_can.o
146
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_dac_ex.o
147
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_cec.o
147
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_dac.o
148
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_cortex.o
148
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_dma.o
149
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_crc.o
149
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_flash_ex.o
150
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_dac_ex.o
150
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_flash_ramfunc.o
151
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_dac.o
151
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_flash.o
152
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_dma.o
152
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_gpio.o
153
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_eth.o
153
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_i2c.o
154
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_flash_ex.o
154
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_irda.o
155
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_flash.o
155
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_pcd_ex.o
156
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_gpio_ex.o
156
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_pcd.o
157
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_gpio.o
157
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_pwr_ex.o
158
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_hcd.o
158
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_pwr.o
159
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_i2c.o
159
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_rcc_ex.o
160
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_i2s.o
160
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_rcc.o
161
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_irda.o
161
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_spi_ex.o
162
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_iwdg.o
162
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_spi.o
163
#HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_msp_template.o
163
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_tim_ex.o
164
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_nand.o
164
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_tim.o
165
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_nor.o
165
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal_uart.o
166
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_pccard.o
166
HAL_OBJECTS +=  $(HAL_OBJ)/stm32l1xx_hal.o
167
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_pcd_ex.o
167
 
168
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_pcd.o
168
C_OBJECTS += $(HAL_OBJECTS)
169
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_pwr.o
169
 
170
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_rcc_ex.o
170
$(HAL_OBJ)/%.o: $(HAL_SRC)/%.c $(DEPENDS)
171
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_rcc.o
171
	$(CC) $(CFLAGS) $< -o $@
172
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_rtc_ex.o
172
 
173
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_rtc.o
173
 
174
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_sd.o
174
#############################################
175
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_smartcard.o
175
	
176
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_spi_ex.o
176
# this one has assembler too 
177
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_spi.o
177
$(DRV_OBJ)/startup_stm32l152xe.o : $(DRV_SRC)/gcc/startup_stm32l152xe.s $(DEPENDS)
178
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_sram.o
178
	$(AS) $(ASFLAGS)  $< -o $@
179
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_tim_ex.o
179
 
180
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_tim.o
180
ASM_OBJECTS += $(DRV_OBJ)/startup_stm32l152xe.o
181
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_uart.o
181
 
182
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_usart.o
182
 
183
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal_wwdg.o
183
#############################################
184
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_hal.o
184
# SPI OLED screen 
185
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_ll_fsmc.o
185
 
186
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_ll_sdmmc.o
186
 
187
HAL_OBJECTS +=  $(HAL_OBJ)/stm32f1xx_ll_usb.o
187
OLED_PATH  = $(PROJROOT)/SSD1306_lib
188
 
188
OLED_SRC   = $(OLED_PATH)
189
C_OBJECTS += $(HAL_OBJECTS)
189
OLED_INC   = $(OLED_PATH)
190
 
190
OLED_OBJ   = $(OBJPATH)/OLED_Obj
191
$(HAL_OBJ)/%.o: $(HAL_SRC)/%.c $(DEPENDS)
191
INCLUDES += -I$(OLED_INC)
192
	$(CC) $(CFLAGS) $< -o $@
192
 
193
 
193
OLED_OBJECTS += $(OLED_OBJ)/SSD1306.o
194
 
194
OLED_OBJECTS += $(OLED_OBJ)/Font.o
195
#############################################
195
 
196
	
196
C_OBJECTS += $(OLED_OBJECTS)
197
# this one has assembler too 
197
 
198
$(DRV_OBJ)/startup_stm32f103xb.o : $(DRV_SRC)/gcc/startup_stm32f103xb.s $(DEPENDS)
198
$(OLED_OBJ)/%.o: $(OLED_SRC)/%.c $(DEPENDS)
199
	$(AS) $(ASFLAGS)  $< -o $@
199
	$(CC) $(CFLAGS)   $< -o $@
200
 
200
 
201
ASM_OBJECTS += $(DRV_OBJ)/startup_stm32f103xb.o
201
 
202
	
202
 
203
 
203
#############################################
204
 
204
# PLX communications
205
#############################################
205
 
206
# SPI OLED screen 
206
 
207
 
207
PLX_PATH  = $(PROJROOT)/plx_lib
208
 
208
PLX_SRC   = $(PLX_PATH)
209
OLED_PATH  = SSD1306_lib
209
PLX_INC   = $(PLX_PATH)
210
OLED_SRC   = $(OLED_PATH)
210
PLX_OBJ   = $(OBJPATH)/PLX_Obj
211
OLED_INC   = $(OLED_PATH)
211
INCLUDES += -I$(PLX_INC)
212
OLED_OBJ   = $(OBJPATH)/OLED_Obj
212
 
213
INCLUDES += -I$(OLED_INC)
213
PLX_OBJECTS += $(PLX_OBJ)/plx.o
214
 
214
 
215
OLED_OBJECTS += $(OLED_OBJ)/SSD1306.o
215
C_OBJECTS += $(PLX_OBJECTS)
216
OLED_OBJECTS += $(OLED_OBJ)/Font.o
216
 
217
 
217
$(PLX_OBJ)/%.o: $(PLX_SRC)/%.c $(DEPENDS)
218
C_OBJECTS += $(OLED_OBJECTS)
218
	$(CC) $(CFLAGS)   $< -o $@
219
 
219
 
220
$(OLED_OBJ)/%.o: $(OLED_SRC)/%.c $(DEPENDS)
220
	
221
	$(CC) $(CFLAGS)   $< -o $@
221
	
222
 
222
#############################################
223
 
223
# SMALL print 
224
 
224
 
225
#############################################
225
 
226
# PLX communications
226
SM_PRINT_PATH  = $(PROJROOT)/small_printf
227
 
227
SM_PRINT_SRC   = $(SM_PRINT_PATH)/Src
228
 
228
SM_PRINT_INC   = $(SM_PRINT_PATH)/Inc
229
PLX_PATH  = plx_lib
229
SM_PRINT_OBJ   = $(OBJPATH)/sm_print_Obj
230
PLX_SRC   = $(PLX_PATH)
230
INCLUDES += -I$(SM_PRINT_INC)
231
PLX_INC   = $(PLX_PATH)
231
 
232
PLX_OBJ   = $(OBJPATH)/PLX_Obj
232
SM_PRINT_OBJECTS += $(SM_PRINT_OBJ)/small_printf.o
233
INCLUDES += -I$(PLX_INC)
233
 
234
 
234
C_OBJECTS += $(SM_PRINT_OBJECTS)
235
PLX_OBJECTS += $(PLX_OBJ)/plx.o
235
 
236
 
236
$(SM_PRINT_OBJ)/%.o: $(SM_PRINT_SRC)/%.c $(DEPENDS)
237
C_OBJECTS += $(PLX_OBJECTS)
237
	$(CC) $(CFLAGS)   $< -o $@
238
 
238
 
239
$(PLX_OBJ)/%.o: $(PLX_SRC)/%.c $(DEPENDS)
239
 
240
	$(CC) $(CFLAGS)   $< -o $@
240
 
241
 
241
 
242
#############################################
242
#############################################
243
# EEPROM emulation via Flash
243
# for version.h
244
 
244
INCLUDES +=  -I.	
245
 
245
 
246
EEPROM_PATH  = eeprom_lib
246
$(OBJPATH)/.exist: 
247
EEPROM_SRC   = $(EEPROM_PATH)
247
	mkdir -p $(OBJPATH)
248
EEPROM_INC   = $(EEPROM_PATH)
248
	mkdir -p $(DRV_OBJ)
249
EEPROM_OBJ   = $(OBJPATH)/EEPROM_Obj
249
	mkdir -p $(HAL_OBJ)
250
INCLUDES += -I$(EEPROM_INC)
250
	mkdir -p $(PRJ_OBJ)
251
 
251
	mkdir -p $(OLED_OBJ)
252
EEPROM_OBJECTS += $(EEPROM_OBJ)/eeprom.o
252
	mkdir -p $(PLX_OBJ)
253
 
253
	mkdir -p $(SM_PRINT_OBJ)
254
C_OBJECTS += $(EEPROM_OBJECTS)
254
	touch $@
255
 
255
 
256
$(EEPROM_OBJ)/%.o: $(EEPROM_SRC)/%.c $(DEPENDS)
256
 
257
	$(CC) $(CFLAGS)   $< -o $@
257
-include $(HAL_OBJECTS:.o=.d)
258
	
258
-include $(DRV_OBJECTS:.o=.d)
259
	
259
-include $(PRJ_OBJECTS:.o=.d)
260
#############################################
260
-include $(OLED_OBJECTS:.o=.d)
261
# SMALL print 
261
-include $(PLX_OBJECTS:.o=.d)
262
 
262
-include $(SM_PRINT_OBJ:.o=.d)
263
 
263
 
264
SMALL_PRINTF_PATH  = small_printf
264
 
265
SMALL_PRINTF_SRC   = $(SMALL_PRINTF_PATH)/Src
265
 
266
SMALL_PRINTF_INC   = $(SMALL_PRINTF_PATH)/Inc
266
###########################################
267
SMALL_PRINTF_OBJ   = $(OBJPATH)/tiny_printf_Obj
267
# clean rules
268
INCLUDES += -I$(SMALL_PRINTF_INC)
268
clean_debug_dashboard_L152: clean_base
269
 
269
	-rm -f $(BIN)/debug_dashboard_L152.* 
270
SMALL_PRINTF_OBJECTS += $(SMALL_PRINTF_OBJ)/small_printf.o
270
 
271
 
271
clean_release_dashboard_L152: clean_base
272
C_OBJECTS += $(SMALL_PRINTF_OBJECTS)
272
	-rm -f $(BIN)/release_dashboard_L152.* 
273
 
273
 
274
$(SMALL_PRINTF_OBJ)/%.o: $(SMALL_PRINTF_SRC)/%.c $(DEPENDS)
274
 
275
	$(CC) $(CFLAGS)   $< -o $@
275
#common clean rule
276
	
276
clean_base:
277
 
277
	rm -f $(DRV_OBJ)/*
278
 
278
	rm -f $(HAL_OBJ)/*
279
 
279
	rm -f $(PRJ_OBJ)/*
280
#############################################
280
	rm -f $(OLED_OBJ)/*
281
# for version.h
281
	rm -f $(PLX_OBJ)/*
282
INCLUDES +=  -I.	
282
	rm -f $(SM_PRINT_OBJ)/*
283
 
283
 
284
$(OBJPATH)/.exist: 
284
#Macro expansion in the makefile change the paths used
285
	mkdir -p $(OBJPATH)
285
BUILD_TARGETS = $(OBJPATH)/.exist revision flash 
286
	mkdir -p $(DRV_OBJ)
286
 
287
	mkdir -p $(HAL_OBJ)
287
debug_dashboard_L152: $(BUILD_TARGETS)
288
	mkdir -p $(PRJ_OBJ)
288
	@echo "done debug Dashboard L152"
289
	mkdir -p $(OLED_OBJ)
289
 
290
	mkdir -p $(PLX_OBJ)
290
release_dashboard_L152: $(BUILD_TARGETS)
291
	mkdir -p $(EEPROM_OBJ)
291
	@echo "done release Dashboard L152"	
292
	mkdir -p $(SMALL_PRINTF_OBJ)
292
		
293
	touch $@
293
FINAL_BUILD=$(BIN)/$(FLASH_OUTPUT)
294
 
294
 
295
 
295
 
296
-include $(HAL_OBJECTS:.o=.d)
296
 
297
-include $(DRV_OBJECTS:.o=.d)
297
 
298
-include $(PRJ_OBJECTS:.o=.d)
298
 
299
-include $(OLED_OBJECTS:.o=.d)
299
# updated to separate the debug info from the hex file
300
-include $(PLX_OBJECTS:.o=.d)
300
$(FINAL_BUILD).out:  $(C_OBJECTS) $(ASM_OBJECTS) $(FLASH_LINKER_SCRIPT) 
301
-include $(EEPROM_OBJECTS:.o=.d)
301
	@ echo "..linking"
302
 
302
	$(CC) $(LDFLAGS) -Wl,--gc-sections -Wl,-Map,$(FINAL_BUILD).map -T$(FLASH_LINKER_SCRIPT) -o $(FINAL_BUILD).out  $(C_OBJECTS) $(ASM_OBJECTS)
303
 
303
	$(OBJCOPY) --only-keep-debug $(FINAL_BUILD).out $(FINAL_BUILD).debug
304
 
304
	$(OBJCOPY) --strip-all --strip-debug --add-gnu-debuglink=$(FINAL_BUILD).debug --output-target srec --image-base 0x08000000  $(FINAL_BUILD).out $(FINAL_BUILD).s19
305
###########################################
305
 
306
# clean rules
306
%.bin : %.out;
307
clean_debug_dashboard_F103: clean_base
307
#	$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
308
	-rm -f $(BIN)/debug_dashboard_F103.* 
308
	$(OBJDUMP) $(OBJDUMPFLAGS) $< > $<.list 
309
 
309
#	$(OBJDUMP) $(OBJDUMPFLAGS) $< 
310
clean_release_dashboard_F103: clean_base
310
	@ echo "...completed."
311
	-rm -f $(BIN)/release_dashboard_F103.* 
311
 
312
 
312
#getting the Subversion Repository information
313
 
313
#This requires that $(PROJROOT)/src/versions.h is NOT under SVN control (or always will see (Modified) version status)
314
#common clean rule
314
revision:
315
clean_base:
315
	touch $(PROJROOT)/versions.h
316
	rm -f $(DRV_OBJ)/*
316
#	@echo subWCrev . $(PROJROOT)/versions_base.h $(PROJROOT)/versions.h
317
	rm -f $(HAL_OBJ)/*
317
 
318
	rm -f $(PRJ_OBJ)/*
318
#final target 
319
	rm -f $(OLED_OBJ)/*
319
flash:$(FINAL_BUILD).bin 
320
	rm -f $(PLX_OBJ)/*
320
 
321
	rm -f $(EEPROM_OBJ)/*
321
	
322
	rm -f $(SMALL_PRINTF_OBJ)/*
-
 
323
 
-
 
324
#Macro expansion in the makefile change the paths used
-
 
325
BUILD_TARGETS = $(OBJPATH)/.exist revision flash 
-
 
326
 
-
 
327
debug_dashboard_F103: $(BUILD_TARGETS)
-
 
328
	@echo "done debug Dashboard F103"
-
 
329
 
-
 
330
release_dashboard_F103: $(BUILD_TARGETS)
-
 
331
	@echo "done release Dashboard F103"	
-
 
332
		
-
 
333
FINAL_BUILD=$(BIN)/$(FLASH_OUTPUT)
-
 
334
 
-
 
335
 
-
 
336
 
-
 
337
 
-
 
338
 
-
 
339
# updated to separate the debug info from the hex file
-
 
340
$(FINAL_BUILD).out:  $(C_OBJECTS) $(ASM_OBJECTS) $(FLASH_LINKER_SCRIPT) 
-
 
341
	@ echo "..linking"
-
 
342
	$(CC) $(LDFLAGS) -Wl,--gc-sections -Wl,-Map,$(FINAL_BUILD).map -T$(FLASH_LINKER_SCRIPT) -o $(FINAL_BUILD).out  $(C_OBJECTS) $(ASM_OBJECTS)
-
 
343
	$(OBJCOPY) --only-keep-debug $(FINAL_BUILD).out $(FINAL_BUILD).debug
-
 
344
	$(OBJCOPY) --strip-all --strip-debug --add-gnu-debuglink=$(FINAL_BUILD).debug --output-target srec --image-base 0x08000000  $(FINAL_BUILD).out $(FINAL_BUILD).s19
-
 
345
 
-
 
346
%.bin : %.out;
-
 
347
#	$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
-
 
348
	$(OBJDUMP) $(OBJDUMPFLAGS) $< > $<.list 
-
 
349
#	$(OBJDUMP) $(OBJDUMPFLAGS) $< 
-
 
350
	@ echo "...completed."
-
 
351
 
-
 
352
#getting the Subversion Repository information
-
 
353
#This requires that $(PROJROOT)/src/versions.h is NOT under SVN control (or always will see (Modified) version status)
-
 
354
revision:
-
 
355
	touch $(PROJROOT)/versions.h
-
 
356
#	@echo subWCrev . $(PROJROOT)/versions_base.h $(PROJROOT)/versions.h
-
 
357
 
-
 
358
#final target 
-
 
359
flash:$(FINAL_BUILD).bin 
-
 
360
 
-
 
361
	
-