temp_contoller_firmware/tools/makefiles/settings.mk

115 lines
4.7 KiB
Makefile
Raw Normal View History

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