Files
lk/platform/stm32f4xx/rules.mk
Travis Geiselbrecht f2cf99bf73 [platform][stm32f4xx] append the necessary #define to GLOBAL_COMPILEFLAGS
GLOBAL_CFLAGS will only work for .c files, which breaks on the first
inclusion of the headers by a .cpp file. *_COMPILEFLAGS is for all
language types (C, asm, C++)
2022-08-14 19:05:20 -07:00

61 lines
1.4 KiB
Makefile

LOCAL_DIR := $(GET_LOCAL_DIR)
MODULE := $(LOCAL_DIR)
# ROMBASE, MEMBASE, and MEMSIZE are required for the linker script
ROMBASE ?= 0x08000000
MEMBASE ?= 0x20000000
# default memsize, specific STM32_CHIP may override this
# and target/project may have already overridden
MEMSIZE ?= 131072
ARCH := arm
ARM_CPU := cortex-m4
# TODO: integrate better with platform/stm32f4xx/CMSIS/stm32f4xx.h
ifeq ($(STM32_CHIP),stm32f407)
GLOBAL_COMPILEFLAGS += -DSTM32F40_41xxx=1
FOUND_CHIP := true
endif
ifeq ($(STM32_CHIP),stm32f417)
FOUND_CHIP := true
GLOBAL_COMPILEFLAGS += -DSTM32F40_41xxx=1
endif
ifeq ($(STM32_CHIP),stm32f429)
FOUND_CHIP := true
GLOBAL_COMPILEFLAGS += -DSTM32F429_439xx=1
endif
ifeq ($(FOUND_CHIP),)
$(error unknown STM32F4xx chip $(STM32_CHIP))
endif
GLOBAL_INCLUDES += \
$(LOCAL_DIR)/include/dev
MODULE_SRCS += \
$(LOCAL_DIR)/init.c \
$(LOCAL_DIR)/vectab.c \
$(LOCAL_DIR)/gpio.c \
$(LOCAL_DIR)/timer.c \
$(LOCAL_DIR)/debug.c \
$(LOCAL_DIR)/uart.c \
$(LOCAL_DIR)/flash.c
# use a two segment memory layout, where all of the read-only sections
# of the binary reside in rom, and the read/write are in memory. The
# ROMBASE, MEMBASE, and MEMSIZE make variables are required to be set
# for the linker script to be generated properly.
#
LINKER_SCRIPT += \
$(BUILDDIR)/system-twosegment.ld
MODULE_DEPS += \
platform/stm32 \
platform/stm32f4xx/STM32F4xx_StdPeriph_Driver \
arch/arm/arm-m/systick \
lib/cbuf \
lib/bio
include make/module.mk