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 | - |