temp_contoller_firmware/tools/makefiles/settings.mk
2025-04-07 03:34:21 +03:00

115 lines
4.7 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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