1########################################################################################################################## 2# File automatically-generated by tool: [projectgenerator] version: [3.15.2] date: [Thu Feb 10 10:33:34 CST 2022] 3########################################################################################################################## 4 5# ------------------------------------------------ 6# Generic Makefile (based on gcc) 7# 8# ChangeLog : 9# 2017-02-10 - Several enhancements + project update mode 10# 2015-07-22 - first version 11# ------------------------------------------------ 12 13###################################### 14# target 15###################################### 16TARGET = STM32F4xx_BootLoader 17 18 19###################################### 20# building variables 21###################################### 22# debug build? 23DEBUG = 1 24# optimization 25OPT = -Og 26 27 28####################################### 29# paths 30####################################### 31# Build path 32BUILD_DIR = build 33 34SOC_DRIVERS_PATH = ../../../../../soc/st/stm32f4xx/sdk/Drivers 35 36###################################### 37# source 38###################################### 39# C sources 40C_SOURCES = \ 41src/bootloader.c \ 42src/stm32f4xx_it.c \ 43src/system_stm32f4xx.c \ 44$(SOC_DRIVERS_PATH)/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c \ 45$(SOC_DRIVERS_PATH)/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c \ 46$(SOC_DRIVERS_PATH)/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c \ 47$(SOC_DRIVERS_PATH)/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c \ 48$(SOC_DRIVERS_PATH)/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c \ 49$(SOC_DRIVERS_PATH)/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c \ 50 51# ASM sources 52ASM_SOURCES = \ 53startup_stm32f407xx.s 54 55 56####################################### 57# binaries 58####################################### 59PREFIX = arm-none-eabi- 60# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) 61# either it can be added to the PATH environment variable. 62ifdef GCC_PATH 63CC = $(GCC_PATH)/$(PREFIX)gcc 64AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp 65CP = $(GCC_PATH)/$(PREFIX)objcopy 66SZ = $(GCC_PATH)/$(PREFIX)size 67else 68CC = $(PREFIX)gcc 69AS = $(PREFIX)gcc -x assembler-with-cpp 70CP = $(PREFIX)objcopy 71SZ = $(PREFIX)size 72endif 73HEX = $(CP) -O ihex 74BIN = $(CP) -O binary -S 75 76####################################### 77# CFLAGS 78####################################### 79# cpu 80CPU = -mcpu=cortex-m4 81 82# fpu 83FPU = -mfpu=fpv4-sp-d16 84 85# float-abi 86FLOAT-ABI = -mfloat-abi=hard 87 88# mcu 89MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) 90 91# macros for gcc 92# AS defines 93AS_DEFS = 94 95# C defines 96C_DEFS = \ 97-DUSE_HAL_DRIVER \ 98-DSTM32F407xx 99 100 101# AS includes 102AS_INCLUDES = 103 104# C includes 105C_INCLUDES = \ 106-Iinc \ 107-I$(SOC_DRIVERS_PATH)/STM32F4xx_HAL_Driver/Inc \ 108-I$(SOC_DRIVERS_PATH)/STM32F4xx_HAL_Driver/Inc/Legacy \ 109-I$(SOC_DRIVERS_PATH)/CMSIS/Device/ST/STM32F4xx/Include \ 110-I$(SOC_DRIVERS_PATH)/CMSIS/Include \ 111 112 113# compile gcc flags 114ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections 115 116CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections 117 118ifeq ($(DEBUG), 1) 119CFLAGS += -g -gdwarf-2 120endif 121 122 123 124# Generate dependency information 125CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" 126 127 128####################################### 129# LDFLAGS 130####################################### 131# link script 132LDSCRIPT = STM32F407IGTx_FLASH.ld 133 134# libraries 135LIBS = -lc -lm -lnosys 136LIBDIR = 137LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections 138 139# default action: build all 140all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin 141 142 143####################################### 144# build the application 145####################################### 146# list of objects 147OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) 148vpath %.c $(sort $(dir $(C_SOURCES))) 149# list of ASM program objects 150OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) 151vpath %.s $(sort $(dir $(ASM_SOURCES))) 152 153$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) 154 $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ 155 156$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) 157 $(AS) -c $(CFLAGS) $< -o $@ 158 159$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile 160 $(CC) $(OBJECTS) $(LDFLAGS) -o $@ 161 $(SZ) $@ 162 163$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) 164 $(HEX) $< $@ 165 166$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) 167 $(BIN) $< $@ 168 mkdir -p ../../../../../../out/niobe407/niobe407/bin 169 cp $(BUILD_DIR)/$(TARGET).bin ../../../../../../out/niobe407/niobe407/bin/tw_boot.bin -rf 170 rm -rf $(BUILD_DIR) 171 172$(BUILD_DIR): 173 mkdir $@ 174 175####################################### 176# clean up 177####################################### 178clean: 179 -rm -fR $(BUILD_DIR) 180 181####################################### 182# dependencies 183####################################### 184-include $(wildcard $(BUILD_DIR)/*.d) 185 186# *** EOF *** 187