Fix pt2 and pt3 filter initialization in gyro_init.c (#13960)
[betaflight.git] / mk / mcu / STM32F4.mk
blob1ed16fcea0709f2df8fd8364bce8f5c18301392f
2 # F4 Make file include
5 #CMSIS
6 ifeq ($(PERIPH_DRIVER), HAL)
7 CMSIS_DIR := $(ROOT)/lib/main/STM32F4/Drivers/CMSIS
8 STDPERIPH_DIR = $(ROOT)/lib/main/STM32F4/Drivers/STM32F4xx_HAL_Driver
9 STDPERIPH_SRC = $(notdir $(wildcard $(STDPERIPH_DIR)/Src/*.c))
10 EXCLUDES =
12 VPATH := $(VPATH):$(STDPERIPH_DIR)/Src
14 else
15 CMSIS_DIR := $(ROOT)/lib/main/CMSIS
16 STDPERIPH_DIR = $(ROOT)/lib/main/STM32F4/Drivers/STM32F4xx_StdPeriph_Driver
17 STDPERIPH_SRC = \
18 misc.c \
19 stm32f4xx_adc.c \
20 stm32f4xx_dac.c \
21 stm32f4xx_dcmi.c \
22 stm32f4xx_dfsdm.c \
23 stm32f4xx_dma2d.c \
24 stm32f4xx_dma.c \
25 stm32f4xx_exti.c \
26 stm32f4xx_flash.c \
27 stm32f4xx_gpio.c \
28 stm32f4xx_i2c.c \
29 stm32f4xx_iwdg.c \
30 stm32f4xx_ltdc.c \
31 stm32f4xx_pwr.c \
32 stm32f4xx_rcc.c \
33 stm32f4xx_rng.c \
34 stm32f4xx_rtc.c \
35 stm32f4xx_sdio.c \
36 stm32f4xx_spi.c \
37 stm32f4xx_syscfg.c \
38 stm32f4xx_tim.c \
39 stm32f4xx_usart.c \
40 stm32f4xx_wwdg.c
42 VPATH := $(VPATH):$(STDPERIPH_DIR)/src
43 endif
45 ifneq ($(TARGET_MCU),$(filter $(TARGET_MCU),STM32F411xE STM32F446xx))
46 STDPERIPH_SRC += stm32f4xx_fsmc.c
47 endif
49 ifeq ($(PERIPH_DRIVER), HAL)
50 #USB
51 USBCORE_DIR = $(ROOT)/lib/main/STM32F4/Middlewares/ST/STM32_USB_Device_Library/Core
52 USBCORE_SRC = $(notdir $(wildcard $(USBCORE_DIR)/Src/*.c))
53 EXCLUDES = usbd_conf_template.c
54 USBCORE_SRC := $(filter-out ${EXCLUDES}, $(USBCORE_SRC))
56 USBCDC_DIR = $(ROOT)/lib/main/STM32F4/Middlewares/ST/STM32_USB_Device_Library/Class/CDC
57 USBCDC_SRC = $(notdir $(wildcard $(USBCDC_DIR)/Src/*.c))
58 EXCLUDES = usbd_cdc_if_template.c
59 USBCDC_SRC := $(filter-out ${EXCLUDES}, $(USBCDC_SRC))
61 VPATH := $(VPATH):$(USBCDC_DIR)/Src:$(USBCORE_DIR)/Src
63 DEVICE_STDPERIPH_SRC := \
64 $(STDPERIPH_SRC) \
65 $(USBCORE_SRC) \
66 $(USBCDC_SRC)
67 else
68 USBCORE_DIR = $(ROOT)/lib/main/STM32_USB_Device_Library/Core
69 USBCORE_SRC = \
70 usbd_core.c \
71 usbd_ioreq.c \
72 usbd_req.c
74 USBOTG_DIR = $(ROOT)/lib/main/STM32_USB_OTG_Driver
75 USBOTG_SRC = \
76 usb_core.c \
77 usb_dcd.c \
78 usb_dcd_int.c
80 USBCDC_DIR = $(ROOT)/lib/main/STM32_USB_Device_Library/Class/cdc
81 USBCDC_SRC = usbd_cdc_core.c
83 USBMSC_DIR = $(ROOT)/lib/main/STM32_USB_Device_Library/Class/msc
84 USBMSC_SRC = \
85 usbd_msc_bot.c \
86 usbd_msc_core.c \
87 usbd_msc_data.c \
88 usbd_msc_scsi.c
90 USBHID_DIR = $(ROOT)/lib/main/STM32_USB_Device_Library/Class/hid
91 USBHID_SRC = usbd_hid_core.c
93 USBWRAPPER_DIR = $(ROOT)/lib/main/STM32_USB_Device_Library/Class/hid_cdc_wrapper
94 USBWRAPPER_SRC = usbd_hid_cdc_wrapper.c
96 VPATH := $(VPATH):$(USBOTG_DIR)/src:$(USBCORE_DIR)/src:$(USBCDC_DIR)/src:$(USBMSC_DIR)/src:$(USBHID_DIR)/src:$(USBWRAPPER_DIR)/src
98 DEVICE_STDPERIPH_SRC := \
99 $(STDPERIPH_SRC) \
100 $(USBOTG_SRC) \
101 $(USBCORE_SRC) \
102 $(USBCDC_SRC) \
103 $(USBHID_SRC) \
104 $(USBWRAPPER_SRC) \
105 $(USBMSC_SRC)
106 endif
108 #CMSIS
109 VPATH := $(VPATH):$(CMSIS_DIR)/Core/Include:$(ROOT)/lib/main/STM32F4/Drivers/CMSIS/Device/ST/STM32F4xx
111 INCLUDE_DIRS := \
112 $(INCLUDE_DIRS) \
113 $(SRC_DIR)/startup/stm32 \
114 $(SRC_DIR)/drivers/mcu/stm32
116 ifeq ($(PERIPH_DRIVER), HAL)
117 CMSIS_SRC :=
118 INCLUDE_DIRS := \
119 $(INCLUDE_DIRS) \
120 $(STDPERIPH_DIR)/Inc \
121 $(USBCORE_DIR)/Inc \
122 $(USBCDC_DIR)/Inc \
123 $(CMSIS_DIR)/Include \
124 $(CMSIS_DIR)/Device/ST/STM32F4xx/Include \
125 $(SRC_DIR)/drivers/mcu/stm32/vcp_hal
126 else
127 CMSIS_SRC := \
128 stm32f4xx_gpio.c \
129 stm32f4xx_rcc.c
131 INCLUDE_DIRS := \
132 $(INCLUDE_DIRS) \
133 $(STDPERIPH_DIR)/inc \
134 $(USBOTG_DIR)/inc \
135 $(USBCORE_DIR)/inc \
136 $(USBCDC_DIR)/inc \
137 $(USBHID_DIR)/inc \
138 $(USBWRAPPER_DIR)/inc \
139 $(USBMSC_DIR)/inc \
140 $(CMSIS_DIR)/Core/Include \
141 $(ROOT)/lib/main/STM32F4/Drivers/CMSIS/Device/ST/STM32F4xx \
142 $(SRC_DIR)/drivers/mcu/stm32/vcpf4
143 endif
145 #Flags
146 ARCH_FLAGS = -mthumb -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant
148 ifeq ($(TARGET_MCU),STM32F411xE)
149 DEVICE_FLAGS = -DSTM32F411xE -finline-limit=20
150 LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f411.ld
151 STARTUP_SRC = stm32/startup_stm32f411xe.s
152 MCU_FLASH_SIZE := 512
154 else ifeq ($(TARGET_MCU),STM32F405xx)
155 DEVICE_FLAGS = -DSTM32F40_41xxx -DSTM32F405xx
156 LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f405.ld
157 STARTUP_SRC = stm32/startup_stm32f40xx.s
158 MCU_FLASH_SIZE := 1024
160 else ifeq ($(TARGET_MCU),STM32F446xx)
161 DEVICE_FLAGS = -DSTM32F446xx
162 LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f446.ld
163 STARTUP_SRC = stm32/startup_stm32f446xx.s
164 MCU_FLASH_SIZE := 512
166 else
167 $(error Unknown MCU for F4 target)
168 endif
169 DEVICE_FLAGS += -DHSE_VALUE=$(HSE_VALUE) -DSTM32
171 MCU_COMMON_SRC = \
172 drivers/accgyro/accgyro_mpu.c \
173 drivers/dshot_bitbang_decode.c \
174 drivers/inverter.c \
175 drivers/pwm_output_dshot_shared.c \
176 drivers/mcu/stm32/pwm_output_dshot.c \
177 drivers/mcu/stm32/adc_stm32f4xx.c \
178 drivers/mcu/stm32/bus_i2c_stm32f4xx.c \
179 drivers/mcu/stm32/bus_spi_stdperiph.c \
180 drivers/mcu/stm32/debug.c \
181 drivers/mcu/stm32/dma_reqmap_mcu.c \
182 drivers/mcu/stm32/dma_stm32f4xx.c \
183 drivers/mcu/stm32/dshot_bitbang.c \
184 drivers/mcu/stm32/dshot_bitbang_stdperiph.c \
185 drivers/mcu/stm32/exti.c \
186 drivers/mcu/stm32/io_stm32.c \
187 drivers/mcu/stm32/light_ws2811strip_stdperiph.c \
188 drivers/mcu/stm32/persistent.c \
189 drivers/mcu/stm32/pwm_output.c \
190 drivers/mcu/stm32/rcc_stm32.c \
191 drivers/mcu/stm32/sdio_f4xx.c \
192 drivers/mcu/stm32/serial_uart_stdperiph.c \
193 drivers/mcu/stm32/serial_uart_stm32f4xx.c \
194 drivers/mcu/stm32/system_stm32f4xx.c \
195 drivers/mcu/stm32/timer_stdperiph.c \
196 drivers/mcu/stm32/timer_stm32f4xx.c \
197 drivers/mcu/stm32/transponder_ir_io_stdperiph.c \
198 drivers/mcu/stm32/usbd_msc_desc.c \
199 drivers/mcu/stm32/camera_control.c \
200 startup/stm32/system_stm32f4xx.c
202 ifeq ($(PERIPH_DRIVER), HAL)
203 VCP_SRC = \
204 drivers/mcu/stm32/vcp_hal/usbd_desc.c \
205 drivers/mcu/stm32/vcp_hal/usbd_conf.c \
206 drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.c \
207 drivers/mcu/stm32/serial_usb_vcp.c \
208 drivers/usb_io.c
209 else
210 VCP_SRC = \
211 drivers/mcu/stm32/vcpf4/stm32f4xx_it.c \
212 drivers/mcu/stm32/vcpf4/usb_bsp.c \
213 drivers/mcu/stm32/vcpf4/usbd_desc.c \
214 drivers/mcu/stm32/vcpf4/usbd_usr.c \
215 drivers/mcu/stm32/vcpf4/usbd_cdc_vcp.c \
216 drivers/mcu/stm32/vcpf4/usb_cdc_hid.c \
217 drivers/mcu/stm32/serial_usb_vcp.c \
218 drivers/usb_io.c
219 endif
221 MSC_SRC = \
222 drivers/usb_msc_common.c \
223 drivers/mcu/stm32/usb_msc_f4xx.c \
224 msc/usbd_storage.c \
225 msc/usbd_storage_emfat.c \
226 msc/emfat.c \
227 msc/emfat_file.c \
228 msc/usbd_storage_sd_spi.c \
229 msc/usbd_storage_sdio.c
231 DSP_LIB := $(ROOT)/lib/main/CMSIS/DSP
232 DEVICE_FLAGS += -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__FPU_PRESENT=1 -DUNALIGNED_SUPPORT_DISABLE -DARM_MATH_CM4