diff options
author | Fredrik Thulin <fredrik@thulin.net> | 2015-01-15 17:04:03 +0100 |
---|---|---|
committer | Fredrik Thulin <fredrik@thulin.net> | 2015-01-15 17:04:03 +0100 |
commit | 39cac7918987fc603dc54886e107af026583592e (patch) | |
tree | acb95e5cebc2f410840659cc7e6d1a74331e3985 /common.mk | |
parent | 3347165e2927ec73014eafdfc0c650904a4b67d4 (diff) |
init
Diffstat (limited to 'common.mk')
-rw-r--r-- | common.mk | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/common.mk b/common.mk new file mode 100644 index 0000000..d9b981b --- /dev/null +++ b/common.mk @@ -0,0 +1,80 @@ +# +# Thanks to Tom Van den Bon for cleaning up the STM templates into +# something easily built with GCC at +# +# https://github.com/tomvdb/stm32f401-nucleo-basic-template +# + +TOPLEVEL ?= . + +# Location of the Libraries folder from the STM32F0xx Standard Peripheral Library +STD_PERIPH_LIB ?= $(TOPLEVEL)/Drivers + +# Location of the linker scripts +LDSCRIPT_INC ?= $(TOPLEVEL)/Device/ldscripts + +# location of OpenOCD Board .cfg files (only used with 'make flash-target') +# +# This path is from Ubuntu 14.04. +# +OPENOCD_BOARD_DIR ?= /usr/share/openocd/scripts/board + +# Configuration (cfg) file containing programming directives for OpenOCD +# +# If you are using an STLINK v2.0 from an STM32 F4 DISCOVERY board, +# set this variable to "stm32f4discovery.cfg". +# +# If you are using a NUCLEO board, set it to "stm32f4-openocd.cfg" (tomvdb) or +# "board/st_nucleo_f401re.cfg" I guess. +# +# If you are using something else, look for a matching configuration file in +# the OPENOCD_BOARD_DIR directory. +# +OPENOCD_PROC_FILE ?= stm32f4discovery.cfg + +# MCU selection parameters +# +# For the rev08 or rev09 board with an STM32F401RBT6, set -DSTM32F401xC +# For Nucleo board with an STM32F401RET6, set -DSTM32F401xE +# +STDPERIPH_SETTINGS ?= -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DSTM32F401xC +# +# For the rev08 or rev09 board (hardware compatible), use rev08.ld. +# For the Nucleo board, use nucleo.ld. +MCU_LINKSCRIPT ?= rev08.ld + +# add startup file to build +# +# For the rev08 or rev09 board (STM32F401RBT6), use startup_stm32f401xc.s +# For the Nucleo board (STM32F401RET6), use startup_stm32f401xe.s +# +SRCS += $(TOPLEVEL)/Device/startup_stm32f401xc.s + +# that's it, no need to change anything below this line! + +################################################### + +CC=arm-none-eabi-gcc +OBJCOPY=arm-none-eabi-objcopy +OBJDUMP=arm-none-eabi-objdump +SIZE=arm-none-eabi-size +GDB=arm-none-eabi-gdb +OPENOCD=openocd + +CFLAGS = -ggdb -O2 -Wall -Wextra -Warray-bounds +CFLAGS += -mcpu=cortex-m4 -mthumb -mlittle-endian -mthumb-interwork +CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 +CFLAGS += $(STDPERIPH_SETTINGS) +CFLAGS += -ffunction-sections -fdata-sections +CFLAGS += -Wl,--gc-sections -Wl,-Map=$(PROJ_NAME).map + +################################################### + +vpath %.c src +vpath %.a $(STD_PERIPH_LIB) + +ROOT=$(shell pwd) + +CFLAGS += -I inc -I $(STD_PERIPH_LIB) -I $(STD_PERIPH_LIB)/CMSIS/Device/ST/STM32F4xx/Include +CFLAGS += -I $(STD_PERIPH_LIB)/CMSIS/Include -I $(STD_PERIPH_LIB)/STM32F4xx_HAL_Driver/Inc +CFLAGS += -include $(STD_PERIPH_LIB)/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_conf.h |