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