Clean up test code
Separate/consolidate board initialization code, and a few functions that are shared across tests. Update the Makefile accordingly. Resolves #18
This commit is contained in:
@@ -77,25 +77,41 @@ FONT_GEN_DIR := build/gen/fonts
|
||||
FONT_C_FILES := $(patsubst %,$(FONT_GEN_DIR)/%.c,$(FONTS))
|
||||
FONT_H_FILES := $(patsubst %,$(FONT_GEN_DIR)/%.h,$(FONTS))
|
||||
|
||||
C_SOURCES := $(call find_important, $(SOURCEDIR), '*.c') $(FONT_C_FILES)
|
||||
CXX_SOURCES := $(call find_important, $(SOURCEDIR), '*.cpp')
|
||||
S_SOURCES := $(call find_important, $(SOURCEDIR), '*.s')
|
||||
SPP_SOURCES := Bsp/Mcu/$(DEVICE_TYPE).S
|
||||
SOURCES = $(C_SOURCES) $(S_SOURCES) $(SPP_SOURCES) $(CPP_SOURCES)
|
||||
BSP_SRC_DIR := ./Bsp/
|
||||
APP_SRC_DIR := ./Application/
|
||||
TEST_APP_SRC_DIR := ./Test/Apps/
|
||||
TEST_COMMON_SRC_DIR:= ./Test/Common/
|
||||
TEST_BOARD_SRC_DIR := ./Test/Board/
|
||||
THIRD_PARTY_SRC_DIR := ./ThirdParty/
|
||||
|
||||
APPS := ./Application/main ./Test/pass ./Test/fail ./Test/timeout ./Test/clock ./Test/stop ./Test/no_start ./Test/lptim ./Test/set_time ./Test/periodic_alarms ./Test/wakeup_irq ./Test/button
|
||||
APP_ELFS = $(addsuffix .elf, $(APPS))
|
||||
APP_MAPS = $(addsuffix .map, $(APPS))
|
||||
APP_BINS = $(addsuffix .bin, $(APPS))
|
||||
APP_OBJS = $(addsuffix .o, $(APPS))
|
||||
COMMON_SRC_DIRS := $(BSP_SRC_DIR) $(APP_SRC_DIR) $(TEST_COMMON_SRC_DIR) $(THIRD_PARTY_SRC_DIR)
|
||||
|
||||
C_SOURCES := $(call find_important, $(COMMON_SRC_DIRS), '*.c') $(FONT_C_FILES)
|
||||
CXX_SOURCES := $(call find_important, $(COMMON_SRC_DIRS), '*.cpp')
|
||||
S_SOURCES := $(call find_important, $(COMMON_SRC_DIRS), '*.s')
|
||||
SPP_SOURCES := Bsp/Mcu/$(DEVICE_TYPE).S
|
||||
SOURCES := $(C_SOURCES) $(S_SOURCES) $(SPP_SOURCES) $(CPP_SOURCES)
|
||||
|
||||
APPS := ./Application/main
|
||||
TEST_APPS := $(patsubst %.cpp, %, $(call find_important, $(TEST_APP_SRC_DIR), '*.cpp'))
|
||||
|
||||
APP_ELFS := $(addsuffix .elf, $(APPS))
|
||||
APP_MAPS := $(addsuffix .map, $(APPS))
|
||||
APP_BINS := $(addsuffix .bin, $(APPS))
|
||||
APP_OBJS := $(addsuffix .o, $(APPS))
|
||||
|
||||
TEST_APP_ELFS := $(addsuffix .elf, $(TEST_APPS))
|
||||
TEST_APP_MAPS := $(addsuffix .map, $(TEST_APPS))
|
||||
TEST_APP_BINS := $(addsuffix .bin, $(TEST_APPS))
|
||||
TEST_APP_OBJS := $(addsuffix .o, $(TEST_APPS))
|
||||
|
||||
C_OBJS := $(patsubst %.c,%.o,$(C_SOURCES))
|
||||
CXX_OBJS := $(patsubst %.cpp,%.o,$(CXX_SOURCES))
|
||||
S_OBJS := $(patsubst %.s,%.o,$(S_SOURCES))
|
||||
SPP_OBJS := $(patsubst %.S,%.o,$(SPP_SOURCES))
|
||||
ALL_OBJS = $(C_OBJS) $(S_OBJS) $(SPP_OBJS) $(CXX_OBJS)
|
||||
OBJS = $(filter-out $(APP_OBJS), $(ALL_OBJS))
|
||||
|
||||
ALL_OBJS := $(C_OBJS) $(S_OBJS) $(SPP_OBJS) $(CXX_OBJS)
|
||||
COMMON_OBJS := $(filter-out $(APP_OBJS), $(ALL_OBJS))
|
||||
TEST_BOARD_OBJ := $(TEST_BOARD_SRC_DIR)$(BOARD).o
|
||||
LINKER_SCRIPT ?= Bsp/Mcu/$(DEVICE_TYPE).ld
|
||||
|
||||
OUTPUT_NAME ?= Application/main
|
||||
@@ -142,6 +158,7 @@ CFLAGS += -I./ThirdParty/stm32/$(DEVICE_LINE)/Include
|
||||
CFLAGS += -I./ThirdParty/CMSIS/Core/Include
|
||||
CFLAGS += -I./ThirdParty/printf
|
||||
CFLAGS += -I./build/gen/
|
||||
CFLAGS += -I./Test/Common/
|
||||
CFLAGS += -I.
|
||||
|
||||
CXX_FLAGS += -std=c++14 -fno-exceptions -fno-rtti -fno-use-cxa-atexit
|
||||
@@ -180,7 +197,7 @@ $(info ================================)
|
||||
# Default Target
|
||||
#
|
||||
.PHONY: build
|
||||
build: $(APP_BINS)
|
||||
build: $(APP_BINS) $(TEST_APP_BINS)
|
||||
|
||||
#
|
||||
# Build Logic
|
||||
@@ -214,9 +231,13 @@ $(FONT_GEN_DIR)/large_digits.h $(FONT_GEN_DIR)/large_digits.c: Gen/fixedfont-to-
|
||||
@echo "OBJCOPY $@"
|
||||
@$(OBJCOPY) -O binary $^ $@
|
||||
|
||||
%.map %.elf: %.o $(LINKER_SCRIPT) $(OBJS)
|
||||
$(TEST_APP_MAPS) $(TEST_APP_ELFS): $(TEST_APP_OBJS) $(LINKER_SCRIPT) $(COMMON_OBJS) $(TEST_BOARD_OBJ)
|
||||
@echo "LD $@"
|
||||
@$(LD) -T $(LINKER_SCRIPT) $(LDFLAGS) -o $*.elf $*.o $(OBJS) -Wl,-Map=$*.map
|
||||
@$(LD) -T $(LINKER_SCRIPT) $(LDFLAGS) -o $(basename $@).elf $(basename $@).o $(COMMON_OBJS) $(TEST_BOARD_OBJ) -Wl,-Map=$(basename $@).map
|
||||
|
||||
$(APP_MAPS) $(APP_ELFS): $(APP_OBJS) $(LINKER_SCRIPT) $(COMMON_OBJS)
|
||||
@echo "LD $@"
|
||||
@$(LD) -T $(LINKER_SCRIPT) $(LDFLAGS) -o $(basename $@).elf $(basename $@).o $(COMMON_OBJS) -Wl,-Map=$(basename $@).map
|
||||
|
||||
#
|
||||
# Utilities
|
||||
@@ -237,7 +258,10 @@ jlink: $(OUTPUT_BIN)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f $(OBJS) $(OUTPUT_BIN) $(OUTPUT_ELF) $(FONT_C_FILES) $(FONT_H_FILES) $(OUTPUT_MAP) $(APPS) $(APP_ELFS) $(APP_MAPS) $(APP_BINS) $(APP_OBJS) $(addsuffix .su,$(basename $(ALL_OBJS)))
|
||||
@echo "Cleaning up..."
|
||||
@rm -f $(OBJS) $(OUTPUT_BIN) $(OUTPUT_ELF) $(FONT_C_FILES) $(FONT_H_FILES) $(OUTPUT_MAP) $(APP_ELFS) $(APP_MAPS) $(APP_BINS) $(APP_OBJS) $(TEST_APP_ELFS) $(TEST_APP_MAPS) $(TEST_APP_BINS) $(TEST_APP_OBJS) $(addsuffix .su,$(basename $(ALL_OBJS)))
|
||||
|
||||
|
||||
|
||||
|
||||
# Please do not delete my files.
|
||||
|
||||
Reference in New Issue
Block a user