Shared altitude control parameters (#13884)
[betaflight.git] / mk / mcu / APM32F4.mk
blobce435a81cba54b6511ed8977fda018d7cd05219f
2 # APM32F4 Make file include
5 #CMSIS
6 CMSIS_DIR := $(ROOT)/lib/main/APM32F4/Libraries/Device
7 STDPERIPH_DIR = $(ROOT)/lib/main/APM32F4/Libraries/APM32F4xx_DAL_Driver
8 STDPERIPH_SRC = \
9 apm32f4xx_dal_adc.c \
10 apm32f4xx_dal_adc_ex.c \
11 apm32f4xx_dal.c \
12 apm32f4xx_dal_can.c \
13 apm32f4xx_dal_comp.c \
14 apm32f4xx_dal_cortex.c \
15 apm32f4xx_dal_crc.c \
16 apm32f4xx_dal_cryp.c \
17 apm32f4xx_dal_cryp_ex.c \
18 apm32f4xx_dal_dac.c \
19 apm32f4xx_dal_dac_ex.c \
20 apm32f4xx_dal_dci.c \
21 apm32f4xx_dal_dci_ex.c \
22 apm32f4xx_dal_dma.c \
23 apm32f4xx_dal_dma_ex.c \
24 apm32f4xx_dal_eint.c \
25 apm32f4xx_dal_eth.c \
26 apm32f4xx_dal_flash.c \
27 apm32f4xx_dal_flash_ex.c \
28 apm32f4xx_dal_flash_ramfunc.c \
29 apm32f4xx_dal_gpio.c \
30 apm32f4xx_dal_hash.c \
31 apm32f4xx_dal_hash_ex.c \
32 apm32f4xx_dal_hcd.c \
33 apm32f4xx_dal_i2c.c \
34 apm32f4xx_dal_i2c_ex.c \
35 apm32f4xx_dal_i2s.c \
36 apm32f4xx_dal_i2s_ex.c \
37 apm32f4xx_dal_irda.c \
38 apm32f4xx_dal_iwdt.c \
39 apm32f4xx_dal_log.c \
40 apm32f4xx_dal_mmc.c \
41 apm32f4xx_dal_nand.c \
42 apm32f4xx_dal_nor.c \
43 apm32f4xx_dal_pccard.c \
44 apm32f4xx_dal_pcd.c \
45 apm32f4xx_dal_pcd_ex.c \
46 apm32f4xx_dal_pmu.c \
47 apm32f4xx_dal_pmu_ex.c \
48 apm32f4xx_dal_qspi.c \
49 apm32f4xx_dal_rcm.c \
50 apm32f4xx_dal_rcm_ex.c \
51 apm32f4xx_dal_rng.c \
52 apm32f4xx_dal_rtc.c \
53 apm32f4xx_dal_rtc_ex.c \
54 apm32f4xx_dal_sd.c \
55 apm32f4xx_dal_sdram.c \
56 apm32f4xx_dal_smartcard.c \
57 apm32f4xx_dal_smbus.c \
58 apm32f4xx_dal_spi.c \
59 apm32f4xx_dal_sram.c \
60 apm32f4xx_dal_tmr.c \
61 apm32f4xx_dal_tmr_ex.c \
62 apm32f4xx_dal_uart.c \
63 apm32f4xx_dal_usart.c \
64 apm32f4xx_dal_wwdt.c \
65 apm32f4xx_ddl_adc.c \
66 apm32f4xx_ddl_comp.c \
67 apm32f4xx_ddl_crc.c \
68 apm32f4xx_ddl_dac.c \
69 apm32f4xx_ddl_dma.c \
70 apm32f4xx_ddl_dmc.c \
71 apm32f4xx_ddl_eint.c \
72 apm32f4xx_ddl_gpio.c \
73 apm32f4xx_ddl_i2c.c \
74 apm32f4xx_ddl_pmu.c \
75 apm32f4xx_ddl_rcm.c \
76 apm32f4xx_ddl_rng.c \
77 apm32f4xx_ddl_rtc.c \
78 apm32f4xx_ddl_sdmmc.c \
79 apm32f4xx_ddl_smc.c \
80 apm32f4xx_ddl_spi.c \
81 apm32f4xx_ddl_tmr.c \
82 apm32f4xx_ddl_usart.c \
83 apm32f4xx_ddl_usb.c \
84 apm32f4xx_ddl_utils.c
86 VPATH := $(VPATH):$(STDPERIPH_DIR)/Source
88 #USB
89 USBCORE_DIR = $(ROOT)/lib/main/APM32F4/Middlewares/APM32_USB_Library/Device/Core
90 USBCORE_SRC = \
91 usbd_core.c \
92 usbd_dataXfer.c \
93 usbd_stdReq.c
95 USBCDC_DIR = $(ROOT)/lib/main/APM32F4/Middlewares/APM32_USB_Library/Device/Class/CDC
96 USBCDC_SRC = usbd_cdc.c
98 USBMSC_DIR = $(ROOT)/lib/main/APM32F4/Middlewares/APM32_USB_Library/Device/Class/MSC
99 USBMSC_SRC = \
100 usbd_msc.c \
101 usbd_msc_bot.c \
102 usbd_msc_scsi.c
104 VPATH := $(VPATH):$(USBCDC_DIR)/Src:$(USBCORE_DIR)/Src:$(USBMSC_DIR)/Src
106 DEVICE_STDPERIPH_SRC := $(STDPERIPH_SRC) \
107 $(USBCORE_SRC) \
108 $(USBCDC_SRC) \
109 $(USBMSC_SRC)
110 #CMSIS
111 VPATH := $(VPATH):$(ROOT)/lib/main/APM32F4/Libraries/Device/Geehy/APM32F4xx
113 INCLUDE_DIRS := $(INCLUDE_DIRS) \
114 $(SRC_DIR)/startup/apm32 \
115 $(SRC_DIR)/drivers/mcu/apm32
117 CMSIS_SRC :=
118 INCLUDE_DIRS := $(INCLUDE_DIRS) \
119 $(STDPERIPH_DIR)/Include \
120 $(USBCORE_DIR)/Inc \
121 $(USBCDC_DIR)/Inc \
122 $(USBMSC_DIR)/Inc \
123 $(CMSIS_DIR)/Geehy/APM32F4xx/Include \
124 $(SRC_DIR)/drivers/mcu/apm32/usb/vcp \
125 $(SRC_DIR)/drivers/mcu/apm32/usb/msc \
126 $(SRC_DIR)/drivers/mcu/apm32/usb \
127 $(ROOT)/lib/main/CMSIS/Core/Include \
128 $(SRC_DIR)/msc
130 #Flags
131 ARCH_FLAGS = -mthumb -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant
133 DEVICE_FLAGS = -DUSE_DAL_DRIVER -DHSE_VALUE=$(HSE_VALUE) -DAPM32
135 ifeq ($(TARGET_MCU),APM32F405xx)
136 DEVICE_FLAGS += -DAPM32F405xx
137 LD_SCRIPT = $(LINKER_DIR)/apm32_flash_f405.ld
138 STARTUP_SRC = apm32/startup_apm32f405xx.S
139 MCU_FLASH_SIZE := 1024
141 else ifeq ($(TARGET_MCU),APM32F407xx)
142 DEVICE_FLAGS += -DAPM32F407xx
143 LD_SCRIPT = $(LINKER_DIR)/apm32_flash_f407.ld
144 STARTUP_SRC = apm32/startup_apm32f407xx.S
145 MCU_FLASH_SIZE := 1024
146 else
147 $(error TARGET_MCU [$(TARGET_MCU] is not supported)
148 endif
150 MCU_COMMON_SRC = \
151 startup/apm32/system_apm32f4xx.c \
152 drivers/inverter.c \
153 drivers/dshot_bitbang_decode.c \
154 drivers/pwm_output_dshot_shared.c \
155 drivers/mcu/apm32/bus_spi_apm32.c \
156 drivers/mcu/apm32/bus_i2c_apm32.c \
157 drivers/mcu/apm32/bus_i2c_apm32_init.c \
158 drivers/mcu/apm32/camera_control.c \
159 drivers/mcu/apm32/debug.c \
160 drivers/mcu/apm32/dma_reqmap_mcu.c \
161 drivers/mcu/apm32/dshot_bitbang.c \
162 drivers/mcu/apm32/dshot_bitbang_ddl.c \
163 drivers/mcu/apm32/eint_apm32.c \
164 drivers/mcu/apm32/io_apm32.c \
165 drivers/mcu/apm32/light_ws2811strip_apm32.c \
166 drivers/mcu/apm32/persistent_apm32.c \
167 drivers/mcu/apm32/pwm_output_apm32.c \
168 drivers/mcu/apm32/pwm_output_dshot_apm32.c \
169 drivers/mcu/apm32/rcm_apm32.c \
170 drivers/mcu/apm32/serial_uart_apm32.c \
171 drivers/mcu/apm32/timer_apm32.c \
172 drivers/mcu/apm32/transponder_ir_io_apm32.c \
173 drivers/mcu/apm32/timer_apm32f4xx.c \
174 drivers/mcu/apm32/adc_apm32f4xx.c \
175 drivers/mcu/apm32/dma_apm32f4xx.c \
176 drivers/mcu/apm32/serial_uart_apm32f4xx.c \
177 drivers/mcu/apm32/system_apm32f4xx.c
179 VCP_SRC = \
180 drivers/mcu/apm32/usb/vcp/usbd_cdc_descriptor.c \
181 drivers/mcu/apm32/usb/usbd_board_apm32f4.c \
182 drivers/mcu/apm32/usb/vcp/usbd_cdc_vcp.c \
183 drivers/mcu/apm32/usb/vcp/serial_usb_vcp.c \
184 drivers/usb_io.c
186 MSC_SRC = \
187 drivers/usb_msc_common.c \
188 drivers/mcu/apm32/usb/msc/usb_msc_apm32f4xx.c \
189 drivers/mcu/apm32/usb/msc/usbd_memory.c \
190 drivers/mcu/apm32/usb/msc/usbd_msc_descriptor.c \
191 msc/usbd_storage.c \
192 msc/usbd_storage_emfat.c \
193 msc/emfat.c \
194 msc/emfat_file.c \
195 msc/usbd_storage_sd_spi.c \
196 msc/usbd_storage_sdio.c
198 DSP_LIB := $(ROOT)/lib/main/CMSIS/DSP
199 DEVICE_FLAGS += -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -DUNALIGNED_SUPPORT_DISABLE -DARM_MATH_CM4 -DUSE_FULL_DDL_DRIVER