mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-05 13:24:11 +01:00
1807c5c27e
modified: flight/pios/stm32f4xx/library.mk new file: flight/pios/stm32f4xx/link_STM32F4xx_RQ_bl_memory.ld new file: flight/pios/stm32f4xx/link_STM32F4xx_RQ_fw_memory.ld new file: flight/pios/stm32f4xx/link_STM32F4xx_RQ_sections.ld new file: flight/pios/stm32f4xx/link_STM32F4xx_RQ_sections_compat.ld modified: flight/pios/stm32f4xx/pios_bl_helper.c modified: flight/pios/stm32f4xx/pios_flash_internal.c modified: flight/pios/stm32f4xx/pios_sys.c
88 lines
3.0 KiB
Makefile
88 lines
3.0 KiB
Makefile
#
|
|
# Rules to (help) build the F4xx device support.
|
|
#
|
|
|
|
# Directory containing this makefile
|
|
PIOS_DEVLIB := $(dir $(lastword $(MAKEFILE_LIST)))
|
|
|
|
# Hardcoded linker script names for now
|
|
LINKER_SCRIPTS_APP = $(PIOS_DEVLIB)link_$(BOARD)_fw_memory.ld \
|
|
$(PIOS_DEVLIB)link_$(BOARD)_sections.ld
|
|
LINKER_SCRIPTS_BL = $(PIOS_DEVLIB)link_$(BOARD)_bl_memory.ld \
|
|
$(PIOS_DEVLIB)link_$(BOARD)_sections.ld
|
|
# _compat linker script are aimed at bootloader updater to guarantee to be compatible with earlier bootloaders.
|
|
LINKER_SCRIPTS_COMPAT = $(PIOS_DEVLIB)link_$(BOARD)_fw_memory.ld \
|
|
$(PIOS_DEVLIB)link_$(BOARD)_sections_compat.ld
|
|
|
|
# Compiler options implied by the F4xx
|
|
CDEFS += -DSTM32F4XX
|
|
ifeq ($(CHIPFAMILY),STM32F427_437xx)
|
|
CDEFS += -DPIOS_TARGET_PROVIDES_FAST_HEAP
|
|
#large heap support must be enabled if SRAM > 128K
|
|
CDEFS += -DHEAP_SUPPORT_LARGE
|
|
CDEFS += -DSTM32F427_437xx
|
|
else
|
|
ifeq ($(CHIPFAMILY),STM32F429_439xx)
|
|
CDEFS += -DPIOS_TARGET_PROVIDES_FAST_HEAP
|
|
#large heap support must be enabled if SRAM > 128K
|
|
CDEFS += -DHEAP_SUPPORT_LARGE
|
|
CDEFS += -DSTM32F429_439xx
|
|
else
|
|
ifneq ($(CHIPFAMILY),STM32F411xx)
|
|
CDEFS += -DPIOS_TARGET_PROVIDES_FAST_HEAP
|
|
CDEFS += -DSTM32F40_41xxx
|
|
else
|
|
CDEFS += -DSTM32F411xE
|
|
endif
|
|
endif #STM32F429_439xx
|
|
endif #STM32F427_437xx
|
|
CDEFS += -DSYSCLK_FREQ=$(SYSCLK_FREQ)
|
|
CDEFS += -DHSE_VALUE=$(OSCILLATOR_FREQ)
|
|
CDEFS += -DUSE_STDPERIPH_DRIVER
|
|
CDEFS += -DARM_MATH_CM4 -D__FPU_PRESENT=1
|
|
|
|
ARCHFLAGS += -mcpu=cortex-m4 -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard
|
|
|
|
# PIOS device library source and includes
|
|
SRC += $(sort $(wildcard $(PIOS_DEVLIB)*.c))
|
|
EXTRAINCDIRS += $(PIOS_DEVLIB)inc
|
|
|
|
# CMSIS for the F4
|
|
include $(PIOSCOMMON)/libraries/CMSIS/library.mk
|
|
CMSIS_DEVICEDIR := $(PIOS_DEVLIB)libraries/CMSIS/Device/ST/STM32F4xx
|
|
SRC += $(sort $(wildcard $(CMSIS_DEVICEDIR)/Source/$(BOARD_NAME)/*.c))
|
|
EXTRAINCDIRS += $(CMSIS_DEVICEDIR)/Include
|
|
|
|
# ST Peripheral library
|
|
PERIPHLIB = $(PIOS_DEVLIB)libraries/STM32F4xx_StdPeriph_Driver
|
|
|
|
ALL_SPL_SOURCES = $(sort $(wildcard $(PERIPHLIB)/src/*.c))
|
|
SPL_SOURCES = $(filter-out %stm32f4xx_fmc.c %stm32f4xx_sai.c %stm32f4xx_fsmc.c, $(ALL_SPL_SOURCES))
|
|
SRC += $(SPL_SOURCES)
|
|
|
|
EXTRAINCDIRS += $(PERIPHLIB)/inc
|
|
|
|
# ST USB OTG library
|
|
USBOTGLIB = $(PIOS_DEVLIB)/libraries/STM32_USB_OTG_Driver
|
|
USBOTGLIB_SRC = usb_core.c usb_dcd.c usb_dcd_int.c
|
|
SRC += $(addprefix $(USBOTGLIB)/src/,$(USBOTGLIB_SRC))
|
|
EXTRAINCDIRS += $(USBOTGLIB)/inc
|
|
|
|
# ST USB Device library
|
|
USBDEVLIB = $(PIOS_DEVLIB)/libraries/STM32_USB_Device_Library
|
|
SRC += $(sort $(wildcard $(USBDEVLIB)/Core/src/*.c))
|
|
EXTRAINCDIRS += $(USBDEVLIB)/Core/inc
|
|
|
|
#
|
|
# FreeRTOS
|
|
#
|
|
# If the application has included the generic FreeRTOS support, then add in
|
|
# the device-specific pieces of the code.
|
|
#
|
|
ifneq ($(FREERTOS_DIR),)
|
|
FREERTOS_PORTDIR := $(FREERTOS_DIR)
|
|
SRC += $(sort $(wildcard $(FREERTOS_PORTDIR)/portable/GCC/ARM_CM4F/*.c))
|
|
EXTRAINCDIRS += $(FREERTOS_PORTDIR)/portable/GCC/ARM_CM4F
|
|
include $(PIOSCOMMON)/libraries/msheap/library.mk
|
|
endif
|