Moved hal config headers etc to ./src/main/startup
[betaflight.git] / make / mcu / STM32F3.mk
blob6e197da336ab811448d9ed6388476f2091dd95e7
2 # F3 Make file include
5 ifeq ($(OPBL),yes)
6 LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f303_$(FLASH_SIZE)k_opbl.ld
7 endif
9 TARGET_FLASH := 256
10 # note that there is no hardfault debugging startup file assembly handler for other platforms
11 ifeq ($(DEBUG_HARDFAULTS),F3)
12 CFLAGS += -DDEBUG_HARDFAULTS
13 MCU_COMMON_SRC = startup_stm32f3_debug_hardfault_handler.S
14 else
15 MCU_COMMON_SRC = startup_stm32f30x_md_gcc.S
16 endif
18 STDPERIPH_DIR = $(ROOT)/lib/main/STM32F3/Drivers/STM32F30x_StdPeriph_Driver
19 STDPERIPH_SRC = $(notdir $(wildcard $(STDPERIPH_DIR)/src/*.c))
20 EXCLUDES = stm32f30x_crc.c \
21 stm32f30x_can.c
22 STARTUP_SRC = startup_stm32f30x_md_gcc.S
24 STDPERIPH_SRC := $(filter-out ${EXCLUDES}, $(STDPERIPH_SRC))
25 DEVICE_STDPERIPH_SRC = $(STDPERIPH_SRC)
27 VPATH := $(VPATH):$(CMSIS_DIR)/Core/Include
28 CMSIS_SRC = $(notdir $(wildcard $(ROOT)/lib/main/STM32F3/Drivers/CMSIS/Device/ST/STM32F30x/*.c))
30 INCLUDE_DIRS := $(INCLUDE_DIRS) \
31 $(STDPERIPH_DIR)/inc \
32 $(CMSIS_DIR)/Core/Include \
33 $(ROOT)/lib/main/STM32F3/Drivers/CMSIS/Device/ST/STM32F30x
35 ifneq ($(filter VCP, $(FEATURES)),)
36 INCLUDE_DIRS := $(INCLUDE_DIRS) \
37 $(USBFS_DIR)/inc \
38 $(ROOT)/src/main/vcp
40 VPATH := $(VPATH):$(USBFS_DIR)/src
42 DEVICE_STDPERIPH_SRC := $(DEVICE_STDPERIPH_SRC)\
43 $(USBPERIPH_SRC)
44 endif
46 ifneq ($(filter SDCARD_SPI, $(FEATURES)),)
47 INCLUDE_DIRS := $(INCLUDE_DIRS) \
48 $(FATFS_DIR) \
50 VPATH := $(VPATH):$(FATFS_DIR)
51 endif
53 ifneq ($(filter SDCARD_SDIO, $(FEATURES)),)
54 INCLUDE_DIRS := $(INCLUDE_DIRS) \
55 $(FATFS_DIR) \
57 VPATH := $(VPATH):$(FATFS_DIR)
58 endif
60 LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f303_$(FLASH_SIZE)k.ld
62 ARCH_FLAGS = -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wdouble-promotion
63 DEVICE_FLAGS = -DSTM32F303xC -DSTM32F303
65 VCP_SRC = \
66 vcp/hw_config.c \
67 vcp/stm32_it.c \
68 vcp/usb_desc.c \
69 vcp/usb_endp.c \
70 vcp/usb_istr.c \
71 vcp/usb_prop.c \
72 vcp/usb_pwr.c \
73 drivers/serial_usb_vcp.c \
74 drivers/usb_io.c
77 MCU_COMMON_SRC = \
78 startup/system_stm32f30x.c \
79 drivers/adc_stm32f30x.c \
80 drivers/bus_i2c_stm32f30x.c \
81 drivers/bus_spi_stdperiph.c \
82 drivers/dma.c \
83 drivers/light_ws2811strip_stdperiph.c \
84 drivers/transponder_ir_io_stdperiph.c \
85 drivers/pwm_output_dshot.c \
86 drivers/serial_uart_init.c \
87 drivers/serial_uart_stm32f30x.c \
88 drivers/system_stm32f30x.c \
89 drivers/timer_stm32f30x.c
91 DSP_LIB := $(ROOT)/lib/main/CMSIS/DSP
92 DEVICE_FLAGS += -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__FPU_PRESENT=1 -DUNALIGNED_SUPPORT_DISABLE -DARM_MATH_CM4