1
0
mirror of https://github.com/rene-dev/stmbl.git synced 2024-12-24 17:42:10 +00:00
stmbl/stm32f303/Makefile

255 lines
7.2 KiB
Makefile
Raw Permalink Normal View History

2017-01-05 16:13:11 +00:00
# Optimization level, can be [0, 1, 2, 3, s].
# 0 = turn off optimization. s = optimize for size.
#
2018-04-11 19:45:00 +00:00
OPT = -O3
2017-01-05 16:13:11 +00:00
# OPT = -O1 # for debugging
# Object files directory
# Warning: this will be removed by make clean!
#
OBJDIR = obj_hvf3
# Target file name (without extension)
TARGET = $(OBJDIR)/hvf3
# Define all C source files (dependencies are generated automatically)
2017-02-18 22:24:38 +00:00
INCDIRS += stm32f303/inc
2020-09-23 15:25:01 +00:00
INCDIRS += stm32f303/inc/comps
INCDIRS += stm32f303/inc/shared_comps
2017-01-05 16:13:11 +00:00
SOURCES += stm32f303/src/main.c
SOURCES += stm32f303/src/adc.c
SOURCES += stm32f303/src/dac.c
SOURCES += stm32f303/src/opamp.c
SOURCES += stm32f303/src/stm32f3xx_hal_msp.c
SOURCES += stm32f303/src/tim.c
SOURCES += stm32f303/src/stm32f3xx_it.c
SOURCES += stm32f303/src/usbd_cdc_if.c
2017-01-18 13:38:39 +00:00
SOURCES += stm32f303/src/version.c
2017-01-05 16:13:11 +00:00
2017-02-26 20:47:18 +00:00
SOURCES += stm32f303/src/hal_tbl.c
2017-07-01 00:48:57 +00:00
2017-07-17 17:46:46 +00:00
CFLAGS += -DHAL_MAX_CTX=1024
SRC_COMPS += stm32f303/src/comps/hv.c
SRC_COMPS += stm32f303/src/comps/io.c
SRC_COMPS += stm32f303/src/comps/ls.c
#SRC_COMPS += stm32f303/src/comps/enc.c
SHARED_COMPS += shared/comps/sim.c
SHARED_COMPS += shared/comps/term.c
SHARED_COMPS += shared/comps/curpid.c
SHARED_COMPS += shared/comps/svm.c
SHARED_COMPS += shared/comps/dq.c
SHARED_COMPS += shared/comps/idq.c
SHARED_COMPS += shared/comps/sensorless.c
# SHARED_COMPS += shared/comps/vel.c
# SHARED_COMPS += shared/comps/hal_test.c
# SHARED_COMPS += shared/comps/dc.c
# SHARED_COMPS += shared/comps/ypid.c
COMPS = $(SRC_COMPS) $(SHARED_COMPS)
2017-07-01 00:48:57 +00:00
SOURCES += $(COMPS)
2017-02-26 20:47:18 +00:00
2017-01-10 08:48:07 +00:00
INCDIRS += shared
SOURCES += shared/ringbuf.c
SOURCES += shared/crc8.c
SOURCES += shared/angle.c
2017-04-13 16:02:32 +00:00
SOURCES += shared/hal.c
2017-04-15 18:54:21 +00:00
SOURCES += shared/commands.c
2017-01-05 16:13:11 +00:00
#CMSIS
CPPFLAGS += -DSTM32F303xC
INCDIRS += lib/CMSIS/Include/
INCDIRS += lib/CMSIS/Device/ST/STM32F3xx/Include/
SOURCES += lib/CMSIS/Device/ST/STM32F3xx/Source/Templates/gcc/startup_stm32f303xc.s
SOURCES += lib/CMSIS/Device/ST/STM32F3xx/Source/Templates/system_stm32f3xx.c
#stm32f3 HAL Driver
HAL_DRV_DIR = lib/STM32F3xx_HAL_Driver/
INCDIRS += $(HAL_DRV_DIR)/Inc
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_adc.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_adc_ex.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_cortex.c
2017-06-02 18:41:21 +00:00
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_crc.c
2018-04-11 19:45:00 +00:00
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_crc_ex.c
2017-09-10 10:48:34 +00:00
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_dac.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_dac_ex.c
2017-01-05 16:13:11 +00:00
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_gpio.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_opamp.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_opamp_ex.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_rcc.c
2017-01-20 22:44:58 +00:00
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_rcc_ex.c
2017-01-05 16:13:11 +00:00
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_tim.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_tim_ex.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_uart.c
SOURCES += $(HAL_DRV_DIR)/Src/stm32f3xx_hal_uart_ex.c
LDSCRIPT = stm32f303/STM32F303CBTx_FLASH.ld
#============================================================================
SRC_COMP_OBJECTS = $(addprefix $(OBJDIR)/,$(addsuffix .o,$(basename $(SRC_COMPS))))
SHARED_COMP_OBJECTS = $(addprefix $(OBJDIR)/,$(addsuffix .o,$(basename $(SHARED_COMPS))))
2017-01-05 16:13:11 +00:00
OBJECTS += $(addprefix $(OBJDIR)/,$(addsuffix .o,$(basename $(SOURCES))))
CPPFLAGS += $(addprefix -I,$(INCDIRS))
#---------------- Preprocessor Options ----------------
# -fsingle... make better use of the single-precision FPU
# -g generate debugging information
# -save-temps preserve .s and .i-files
#
#CPPFLAGS +=
2017-01-19 01:24:59 +00:00
# CPPFLAGS += -g
2017-01-05 16:13:11 +00:00
# CPPFLAGS += -save-temps=obj
#---------------- C Compiler Options ----------------
# -O* optimization level
# -f... tuning, see GCC documentation
# -Wall... warning level
#
CFLAGS += $(OPT)
CFLAGS += -std=gnu11
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
CFLAGS += -Wall
CFLAGS += -fno-builtin ## from old
CFLAGS += -nostartfiles
CFLAGS += -Wfatal-errors
2017-01-23 08:11:36 +00:00
CFLAGS += -Wno-pointer-sign #for usb lib...
2017-06-02 18:41:21 +00:00
#CFLAGS += -Wdouble-promotion
CFLAGS += -Wfloat-conversion
CFLAGS += -fsingle-precision-constant
# CFLAGS += -ffast-math
CFLAGS += -ffinite-math-only
CFLAGS += -fno-trapping-math
CFLAGS += -fno-signaling-nans
CFLAGS += -fno-rounding-math
CFLAGS += -fno-signed-zeros
CFLAGS += -fno-math-errno
2017-01-05 16:13:11 +00:00
#CFLAGS += -Wstrict-prototypes
#CFLAGS += -Wextra
#CFLAGS += -Wpointer-arith
#CFLAGS += -Winline
#CFLAGS += -Wunreachable-code
#CFLAGS += -Wundef
# Use a friendly C dialect
CPPFLAGS += -fno-strict-aliasing
CPPFLAGS += -fwrapv
#---------------- C++ Compiler Options ----------------
#
CXXFLAGS += $(OPT)
CXXFLAGS += -ffunction-sections
CXXFLAGS += -fdata-sections
CXXFLAGS += -Wall
#---------------- Assembler Options ----------------
# -Wa,... tell GCC to pass this to the assembler
#
#---------------- Linker Options ----------------
# -Wl,... tell GCC to pass this to linker
# -Map create map file
# --cref add cross reference to map file
#
LDFLAGS += $(OPT)
LDFLAGS += -lm
LDFLAGS += -Wl,-Map=$(TARGET).map,--cref
LDFLAGS += -Wl,--gc-sections
# LDFLAGS += -specs=nano.specs -u _printf_float -u _scanf_float
2017-01-10 08:48:07 +00:00
LDFLAGS += -lc -specs=nosys.specs #fixes sbrk missing? present in eclipse?
2017-01-05 16:13:11 +00:00
LDFLAGS += -T$(LDSCRIPT)
#============================================================================
2018-04-07 00:00:04 +00:00
POSTLD = $(PYTHON) tools/add_version_info.py # -q
2017-01-05 16:13:11 +00:00
# Compiler flags to generate dependency files
#
GENDEPFLAGS = -MMD -MP
# Combine all necessary flags and optional flags
# Add target processor to flags.
#
CPU = -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16
CFLAGS += $(CPU)
CXXFLAGS += $(CPU)
ASFLAGS += $(CPU)
LDFLAGS += $(CPU)
2018-04-07 01:44:49 +00:00
ADDRESS = 0x8004000
2017-01-05 16:13:11 +00:00
# Default target
#
all: gccversion build showsize
hv_firmware.o: obj_hvf3/hvf3.bin
2018-04-06 22:45:24 +00:00
$(OBJCOPY) --rename-section .data=.hv_firmware -I binary obj_hvf3/hvf3.bin -B arm -O elf32-littlearm hv_firmware.o
2017-01-05 16:13:11 +00:00
build: tbl elf hex bin lss sym hv_firmware.o
2017-01-05 16:13:11 +00:00
elf: $(TARGET).elf
hex: $(TARGET).hex
bin: tbl $(TARGET).bin
2017-01-05 16:13:11 +00:00
lss: $(TARGET).lss
sym: $(TARGET).sym
# Display compiler version information
#
2017-02-27 20:37:21 +00:00
$(OBJDIR)/shared/commands.o: stm32f303/inc/commandslist.h
2020-09-21 06:15:55 +00:00
2020-09-20 22:32:43 +00:00
stm32f303/inc/commandslist.h: tools/create_cmd.py $(SOURCES)
@echo Generating commands list
2020-09-27 04:22:53 +00:00
@$(MKDIR) -p $(dir $@)
@$(PYTHON) tools/create_cmd.py $@ $(SOURCES)
2017-02-27 20:37:21 +00:00
stm32f303/src/hal_tbl.c: tools/create_hal_tbl.py $(COMPS)
@echo Generating HAL table
2020-09-27 04:22:53 +00:00
@$(MKDIR) -p $(dir $@)
@$(PYTHON) tools/create_hal_tbl.py $@ $(COMPS)
$(SRC_COMP_OBJECTS): $(OBJDIR)/stm32f303/src/comps/%.o: stm32f303/inc/comps/%_comp.h
$(SHARED_COMP_OBJECTS): $(OBJDIR)/shared/comps/%.o: stm32f303/inc/shared_comps/%_comp.h
stm32f303/inc/comps/%_comp.h: stm32f303/src/comps/%.c
@echo Generating H: $<
2020-09-27 04:22:53 +00:00
@$(MKDIR) -p $(dir $@)
@$(PYTHON) tools/create_comp_h.py $@ $<
stm32f303/inc/shared_comps/%_comp.h: shared/comps/%.c
@echo Generating H: $<
2020-09-27 04:22:53 +00:00
@$(MKDIR) -p $(dir $@)
@$(PYTHON) tools/create_comp_h.py $@ $<
2020-09-23 15:25:01 +00:00
tbl: stm32f303/src/hal_tbl.c stm32f303/inc/commandslist.h
2017-02-27 20:37:21 +00:00
2017-01-05 16:13:11 +00:00
# Target: clean project
#
clean:
@echo Cleaning project:
rm -rf $(OBJDIR)
2017-02-27 20:37:21 +00:00
rm -rf stm32f303/inc/commandslist.h
2020-09-23 15:25:01 +00:00
rm -rf stm32f303/inc/comps/*
rm -rf stm32f303/inc/shared_comps/*
2017-02-27 20:37:21 +00:00
rm -rf stm32f303/src/hal_tbl.c
2018-04-06 22:45:24 +00:00
rm -rf hv_firmware.o
2017-01-05 16:13:11 +00:00
# Include the base rules
#
include base.mak
# Include the dependency files
#
-include $(OBJECTS:.o=.d)
# Listing of phony targets
#
2020-09-20 21:53:33 +00:00
.PHONY: all build clean \
elf hex bin lss sym tbl