Add Makefile support for more output binaries, add clock test

This commit is contained in:
2020-04-18 12:18:32 -07:00
parent ef23f1d03a
commit acba841bf1
6 changed files with 195 additions and 262 deletions

View File

@@ -45,7 +45,7 @@ DEVICE_TYPE ?= stm32l031k6
DEVICE_FAMILY = stm32l031xx
DEVICE_LINE = stm32l0xx
STACK_SIZE ?= 768
STACK_SIZE ?= 512
HEAP_SIZE ?= 0
else ifeq ($(BOARD), devboard)
@@ -83,11 +83,18 @@ S_SOURCES := $(call find_important, $(SOURCEDIR), '*.s')
SPP_SOURCES := Bsp/Mcu/$(DEVICE_TYPE).S
SOURCES = $(C_SOURCES) $(S_SOURCES) $(SPP_SOURCES) $(CPP_SOURCES)
APPS := ./Application/main ./Test/basic ./Test/clock
APP_ELFS = $(addsuffix .elf, $(APPS))
APP_MAPS = $(addsuffix .map, $(APPS))
APP_BINS = $(addsuffix .bin, $(APPS))
APP_OBJS = $(addsuffix .o, $(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))
OBJS = $(C_OBJS) $(S_OBJS) $(SPP_OBJS) $(CXX_OBJS)
ALL_OBJS = $(C_OBJS) $(S_OBJS) $(SPP_OBJS) $(CXX_OBJS)
OBJS = $(filter-out $(APP_OBJS), $(ALL_OBJS))
LINKER_SCRIPT ?= Bsp/Mcu/$(DEVICE_TYPE).ld
@@ -96,6 +103,10 @@ OUTPUT_BIN ?= $(OUTPUT_NAME).bin
OUTPUT_ELF ?= $(OUTPUT_NAME).elf
OUTPUT_MAP ?= $(OUTPUT_NAME).map
# $(info "ALL_OBJS=$(ALL_OBJS)")
# $(info "APP_OBJS=$(APP_OBJS)")
# $(info "OBJS=$(OBJS)")
#
# Flags
#
@@ -118,9 +129,9 @@ CFLAGS += -ffreestanding
CFLAGS += -fstack-usage -Wstack-usage=128
# Defines
CFLAGS += -D$(DEVICE_FAMILY_DEFINE) -D$(DEVICE_TYPE_DEFINE) -D$(DEVICE_LINE_DEFINE)
CFLAGS += -DPRINTF_DISABLE_SUPPORT_FLOAT -DPRINTF_DISABLE_SUPPORT_EXPONENTIAL -DPRINTF_DISABLE_SUPPORT_PTRDIFF_T
# CFLAGS += -DPRINTF_DISABLE_SUPPORT_FLOAT -DPRINTF_DISABLE_SUPPORT_EXPONENTIAL -DPRINTF_DISABLE_SUPPORT_PTRDIFF_T
# Consider this one if we are running short on flash, it saved about 1K
#CFLAGS += -DPRINTF_DISABLE_SUPPORT_LONG_LONG
# CFLAGS += -DPRINTF_DISABLE_SUPPORT_LONG_LONG
# Includes
CFLAGS += -I./Bsp/Mcu/
CFLAGS += -I./ThirdParty/stm32/$(DEVICE_LINE)/Include
@@ -165,7 +176,7 @@ $(info ================================)
# Default Target
#
.PHONY: build
build: $(OUTPUT_BIN)
build: $(APP_BINS)
#
# Build Logic
@@ -195,13 +206,13 @@ $(FONT_GEN_DIR)/large_digits.h $(FONT_GEN_DIR)/large_digits.c: Gen/fixedfont-to-
@mkdir -p $(FONT_GEN_DIR)
@Gen/fixedfont-to-c.py $(patsubst .%,%,$(suffix $@)) $(LARGE_FONT) "$@" -s 70 --header-dir "Bsp/" --name font_large_digits -c "01234567890:"
$(OUTPUT_BIN): $(OUTPUT_ELF)
%.bin: %.elf
@echo "OBJCOPY $@"
@$(OBJCOPY) -O binary $(OUTPUT_ELF) $(OUTPUT_BIN)
@$(OBJCOPY) -O binary $^ $@
$(OUTPUT_MAP) $(OUTPUT_ELF): $(LINKER_SCRIPT) $(OBJS)
%.map %.elf: %.o $(LINKER_SCRIPT) $(OBJS)
@echo "LD $@"
@$(LD) -T $(LINKER_SCRIPT) $(LDFLAGS) -o $(OUTPUT_ELF) $(OBJS) -Wl,-Map=$(OUTPUT_MAP)
@$(LD) -T $(LINKER_SCRIPT) $(LDFLAGS) -o $*.elf $*.o $(OBJS) -Wl,-Map=$*.map
#
# Utilities
@@ -224,3 +235,6 @@ jlink: $(OUTPUT_BIN)
.PHONY: clean
clean:
rm -f $(OBJS) $(OUTPUT_BIN) $(OUTPUT_ELF) $(FONT_C_FILES) $(FONT_H_FILES) $(OUTPUT_MAP) $(addsuffix .su,$(basename $(OBJS)))
# Please do not delete my files.
.SECONDARY: $(ALL_OBJS) $(APP_ELFS)