###### # Файл со всеми переменными. # Тут задаются из каких папок, какие файлы доставать и с аими флагами омпилировать ###### 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)