115 lines
4.7 KiB
Makefile
115 lines
4.7 KiB
Makefile
######
|
||
# Файл со всеми переменными.
|
||
# Тут задаются из каких папок, какие файлы доставать и с аими флагами омпилировать
|
||
######
|
||
|
||
SHELL=/bin/bash
|
||
|
||
|
||
PROJECT_NAME = temp_contoller
|
||
|
||
MAIN_OUTPATH = build/
|
||
|
||
MC_FIRMWARE_OUTPATH = $(MAIN_OUTPATH)mc_firmware/
|
||
MC_FIRMWARE_OUTPATH_OBJS = $(MC_FIRMWARE_OUTPATH)obj/
|
||
MC_UTESTS_OUTPATH = $(MAIN_OUTPATH)utests/
|
||
MC_UTESTS_OUTPATH_OBJS = $(MC_UTESTS_OUTPATH)obj # палочку не ставить
|
||
MC_UTESTS_OUTPATH_LIB = $(MC_UTESTS_OUTPATH)lib
|
||
OUTPATH_DOCUMENTATION = $(MC_FIRMWARE_OUTPATH)documentation/
|
||
MC_FIRMWARE = $(MC_FIRMWARE_OUTPATH)$(PROJECT_NAME)_mc_firmware
|
||
MC_UTESTS = $(MC_UTESTS_OUTPATH)$(PROJECT_NAME)_utests
|
||
|
||
MC_FIRMWARE_PATH_SRC = src/
|
||
MC_FIRMWARE_PATH_SRC_CORE = $(MC_FIRMWARE_PATH_SRC)core/
|
||
MC_FIRMWARE_PATH_SRC_PLIB = $(MC_FIRMWARE_PATH_SRC)plib/
|
||
MC_FIRMWARE_PATH_SRC_LIB = $(MC_FIRMWARE_PATH_SRC)lib/
|
||
|
||
MC_UTESTS_PATH_SRC = src_tests/
|
||
|
||
MC_UTESTS_PATHS_SRC = $(MC_UTESTS_PATH_SRC)mock_file
|
||
MC_UTESTS_PATHS_SRC += $(MC_FIRMWARE_PATH_SRC)lib
|
||
MC_UTESTS_PATHS_TEST_SRC = src_tests
|
||
MC_UTESTS_PATHS_TEST_SRC += $(MC_UTESTS_PATH_SRC)tests
|
||
|
||
MC_FIRMWARE_SOURCES_S = src/core/startup_stm32g030f6px.s
|
||
|
||
MC_FIRMWARE_SOURCES_SRC = $(wildcard $(MC_FIRMWARE_PATH_SRC)*.c)
|
||
MC_FIRMWARE_SOURCES_CORE = $(wildcard $(MC_FIRMWARE_PATH_SRC_CORE)*.c)
|
||
MC_FIRMWARE_SOURCES_PERIPH = $(wildcard $(MC_FIRMWARE_PATH_SRC_PLIB)*.c)
|
||
MC_FIRMWARE_SOURCES_LIB = $(wildcard $(MC_FIRMWARE_PATH_SRC_LIB)*.c)
|
||
|
||
MC_FIRMWARE_SOURCES_C += $(MC_FIRMWARE_SOURCES_SRC)
|
||
MC_FIRMWARE_SOURCES_C += $(MC_FIRMWARE_SOURCES_CORE)
|
||
MC_FIRMWARE_SOURCES_C += $(MC_FIRMWARE_SOURCES_PERIPH)
|
||
MC_FIRMWARE_SOURCES_C += $(MC_FIRMWARE_SOURCES_LIB)
|
||
MC_FIRMWARE_SOURCES = $(MC_FIRMWARE_SOURCES_S) $(MC_FIRMWARE_SOURCES_C)
|
||
|
||
MC_FIRMWARE_INC_CORE = -I$(MC_FIRMWARE_PATH_SRC_CORE)
|
||
MC_FIRMWARE_INC_LIB = -I$(MC_FIRMWARE_PATH_SRC_LIB)
|
||
MC_FIRMWARE_INC_PERIPH = -I$(MC_FIRMWARE_PATH_SRC_PLIB)
|
||
MC_FIRMWARE_INCLUDES += $(MC_FIRMWARE_INC_CORE)
|
||
MC_FIRMWARE_INCLUDES += $(MC_FIRMWARE_INC_LIB)
|
||
MC_FIRMWARE_INCLUDES += $(MC_FIRMWARE_INC_PERIPH)
|
||
|
||
MC_UTESTS_PATHS_INCLUDES = $(CPPUTEST_HOME)/include/
|
||
MC_UTESTS_PATHS_INCLUDES += $(MC_FIRMWARE_PATH_SRC_LIB)
|
||
MC_UTESTS_PATHS_INCLUDES += $(MC_FIRMWARE_PATH_SRC_PLIB)
|
||
MC_UTESTS_PATHS_INCLUDES += $(MC_UTESTS_PATH_SRC)mock_file/
|
||
|
||
|
||
ARM_CC_PREFIX = arm-none-eabi
|
||
ARM_CC = $(ARM_CC_PREFIX)-gcc
|
||
ARM_CXX = $(ARM_CC_PREFIX)-g++
|
||
ARM_LD = $(ARM_CC_PREFIX)-gcc
|
||
ARM_SIZE= $(ARM_CC_PREFIX)-size
|
||
ARM_OBJCOPY= $(ARM_CC_PREFIX)-objcopy
|
||
ARM_OBJDUMP = $(ARM_CC_PREFIX)-objdump
|
||
|
||
C_STANDART = 11 # мы используем си, но тесты комилируются под с++, поэтому тут задаём просто цифры а далее подсталяется либо c11 либо c++11
|
||
HEAP_SIZE = 0x400
|
||
DEFINES = -DSTM32 -DSTM32G0 -DSTM32G030xx -DHEAP_SIZE=$(HEAP_SIZE) -DDEBUG
|
||
|
||
MCUFLAGS = -mcpu=cortex-m0plus -mlittle-endian -mfloat-abi=soft -mthumb \
|
||
-mno-unaligned-access
|
||
|
||
DEBUG_OPTIMIZE_FLAGS = -O0 -ggdb -gdwarf-2
|
||
|
||
CFLAGS = -Wall -Wextra --pedantic #--std=c$(C_STANDART)
|
||
CFLAGS_EXTRA = -nostartfiles -nodefaultlibs -nostdlib \
|
||
-fdata-sections -ffunction-sections
|
||
|
||
CFLAGS += $(DEFINES) $(MCUFLAGS) $(DEBUG_OPTIMIZE_FLAGS) $(CFLAGS_EXTRA) $(MC_FIRMWARE_INCLUDES)
|
||
|
||
LDFLAGS =-static -Wl,--start-group -Wl,--end-group \
|
||
-Wl,--gc-sections -T src/core/STM32G030F6PX_FLASH.ld $(CFLAGS_EXTRA) $(MCUFLAGS) #-lgcc -lc -lg
|
||
|
||
|
||
ELF = $(MC_FIRMWARE).elf
|
||
BIN = $(MC_FIRMWARE).bin
|
||
OFFSET = 0x08000000
|
||
OPEN_OCD_PROGRAMMER_CFG = /usr/local/share/openocd/scripts/interface/stlink.cfg
|
||
OPEN_OCD_MK_CFG = /usr/local/share/openocd/scripts/target/stm32g0x.cfg
|
||
|
||
|
||
CHECK_SOURCES_C += $(MC_FIRMWARE_SOURCES_SRC)
|
||
CHECK_SOURCES_C += $(MC_FIRMWARE_SOURCES_PERIPH)
|
||
#CHECK_SOURCES_C += $(MC_FIRMWARE_SOURCES_LIB)
|
||
CHECK_SOURCES_C += src/lib/modbus_regs_file.c
|
||
|
||
STATIC_ANALYSIS =cppcheck
|
||
STATIC_ANALYSIS_BUILD_DIR =$(MC_FIRMWARE_OUTPATH)$(STATIC_ANALYSIS)
|
||
STATIC_ANALYSIS_SUPPRESSIONS =tools/cppcheck_conf/suppressions.txt
|
||
STATIC_ANALYSIS_ADDON = ./tools/cppcheck_conf/my_misra.json
|
||
|
||
#STATIC_ANALYSIS_FLAGS += --enable=all --std=$(C_STANDART) --cppcheck-build-dir=$(STATIC_ANALYSIS_BUILD_DIR)
|
||
#STATIC_ANALYSIS_FLAGS += --check-config --force --inconclusive $(INCLUDES)
|
||
STATIC_ANALYSIS_FLAGS += --suppressions-list=$(STATIC_ANALYSIS_SUPPRESSIONS)
|
||
STATIC_ANALYSIS_FLAGS += --addon=$(STATIC_ANALYSIS_ADDON) --template=gcc
|
||
STATIC_ANALYSIS_FLAGS += --platform=./tools/cppcheck_conf/platfom_cm0plus
|
||
|
||
DOCUMENTATION_GENERATOR = doxygen
|
||
DOCUMENTATION_GENERATOR_CONF_FILE = ./tools/doxygen_conf/doxygen_config
|
||
DOCUMENTATION_FILE = $(wildcard ./*)
|
||
DOCUMENTATION_FILE += $(MC_FIRMWARE_PATH_SRC)
|
||
DOCUMENTATION_FILE += $(MC_FIRMWARE_PATH_SRC_PLIB)
|
||
DOCUMENTATION_FILE += $(MC_FIRMWARE_PATH_SRC_LIB)
|