|
@@ -4,19 +4,29 @@
|
|
|
|
|
|
# Âçÿë èç ïðîåêòà atomthreads è ïåðåèíà÷èë.
|
|
# Âçÿë èç ïðîåêòà atomthreads è ïåðåèíà÷èë.
|
|
|
|
|
|
|
|
+PROJECT=VAPC
|
|
|
|
+
|
|
# Location of build tools and atomthreads sources
|
|
# Location of build tools and atomthreads sources
|
|
EWSTM8_DIR=C:\IAR\Embedded Workbench 7.0\stm8
|
|
EWSTM8_DIR=C:\IAR\Embedded Workbench 7.0\stm8
|
|
-APP_SRC=src
|
|
|
|
-APP_INC=inc
|
|
|
|
-PERIPHS_SRC=StdPerphDrv/src
|
|
|
|
-PERIPHS_INC=StdPerphDrv/inc
|
|
|
|
EWSTM8_BIN=C:/IAR/Embedded\ Workbench\ 7.0/stm8/bin
|
|
EWSTM8_BIN=C:/IAR/Embedded\ Workbench\ 7.0/stm8/bin
|
|
CC=$(EWSTM8_BIN)/iccstm8
|
|
CC=$(EWSTM8_BIN)/iccstm8
|
|
ASM=$(EWSTM8_BIN)/iasmstm8
|
|
ASM=$(EWSTM8_BIN)/iasmstm8
|
|
LINK=$(EWSTM8_BIN)/ilinkstm8
|
|
LINK=$(EWSTM8_BIN)/ilinkstm8
|
|
-HEX=$(EWSTM8_BIN)/ielftool
|
|
|
|
|
|
+HEX=$(EWSTM8_BIN)/ielftool
|
|
|
|
+
|
|
|
|
+APP_SRC = src
|
|
|
|
+LIB_SRC = lib
|
|
|
|
+
|
|
|
|
+# Sources pats
|
|
|
|
+vpath %.c $(APP_SRC)
|
|
|
|
+vpath %.c $(LIB_SRC)
|
|
|
|
+vpath %.c StdPerphDrv/src
|
|
|
|
|
|
-PROJECT=VAPC
|
|
|
|
|
|
+# Include paths
|
|
|
|
+INCLUDES = -I inc
|
|
|
|
+INCLUDES += -I lib
|
|
|
|
+INCLUDES += -I StdPerphDrv/inc
|
|
|
|
+
|
|
|
|
|
|
# CPU part number
|
|
# CPU part number
|
|
PART = STM8L05X_LD_VL
|
|
PART = STM8L05X_LD_VL
|
|
@@ -32,6 +42,9 @@ DATA_MODEL = small
|
|
|
|
|
|
# Application object files
|
|
# Application object files
|
|
APP_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(APP_SRC)/*.c)))
|
|
APP_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(APP_SRC)/*.c)))
|
|
|
|
+
|
|
|
|
+# Librarys object files
|
|
|
|
+LIB_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(LIB_SRC)/*.c)))
|
|
|
|
|
|
# STM8S Peripheral driver object files
|
|
# STM8S Peripheral driver object files
|
|
PERIPH_OBJECTS = stm8l15x_adc.o
|
|
PERIPH_OBJECTS = stm8l15x_adc.o
|
|
@@ -65,25 +78,19 @@ PERIPH_OBJECTS += stm8l15x_usart.o
|
|
|
|
|
|
|
|
|
|
# Collection of built objects (excluding test applications)
|
|
# Collection of built objects (excluding test applications)
|
|
-ALL_OBJECTS = $(APP_OBJECTS) $(PERIPH_OBJECTS)
|
|
|
|
|
|
+ALL_OBJECTS = $(APP_OBJECTS) $(LIB_OBJECTS) $(PERIPH_OBJECTS)
|
|
BUILT_OBJECTS = $(patsubst %,$(OUT_DIR)/%,$(ALL_OBJECTS))
|
|
BUILT_OBJECTS = $(patsubst %,$(OUT_DIR)/%,$(ALL_OBJECTS))
|
|
|
|
|
|
# Target application filenames (.elf) for each test object
|
|
# Target application filenames (.elf) for each test object
|
|
-PROJ_ELFS = $(PROJECT).elf
|
|
|
|
-PROJ_S19S = $(PROJECT).s19
|
|
|
|
-PROJ_IHEX = $(PROJECT).hex
|
|
|
|
|
|
+PROJ_ELF = $(PROJECT).elf
|
|
|
|
+PROJ_S19 = $(PROJECT).s19
|
|
|
|
+PROJ_HEX = $(PROJECT).hex
|
|
|
|
|
|
# Search build/output directory for dependencies
|
|
# Search build/output directory for dependencies
|
|
-vpath %.c $(APP_SRC)
|
|
|
|
-vpath %.c $(PERIPHS_SRC)
|
|
|
|
vpath %.o .\$(OBJ_DIR)
|
|
vpath %.o .\$(OBJ_DIR)
|
|
vpath %.elf .\$(OUT_DIR)
|
|
vpath %.elf .\$(OUT_DIR)
|
|
vpath %.hex .\$(OUT_DIR)
|
|
vpath %.hex .\$(OUT_DIR)
|
|
|
|
|
|
-# Include paths
|
|
|
|
-INCLUDES = -I $(APP_INC)
|
|
|
|
-INCLUDES += -I $(PERIPHS_INC)
|
|
|
|
-
|
|
|
|
# Compiler/Assembler flags
|
|
# Compiler/Assembler flags
|
|
CFLAGS = -e -Oh
|
|
CFLAGS = -e -Oh
|
|
CFLAGS += --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
|
|
CFLAGS += --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
|
|
@@ -96,9 +103,9 @@ DBG_CFLAGS = -e -Ol --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa
|
|
DBG_CFLAGS += --no_cross_call --debug --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
|
|
DBG_CFLAGS += --no_cross_call --debug --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
|
|
DBG_CFLAGS += --dlib_config "$(EWSTM8_DIR)\lib\$(LIB_MODEL)" -D $(PART)
|
|
DBG_CFLAGS += --dlib_config "$(EWSTM8_DIR)\lib\$(LIB_MODEL)" -D $(PART)
|
|
DBG_CFLAGS += -lC $(LIST_DIR) -lB $(LIST_DIR)
|
|
DBG_CFLAGS += -lC $(LIST_DIR) -lB $(LIST_DIR)
|
|
-DBG_CFLAGS += --diag_suppress Pa050
|
|
|
|
|
|
+DBG_CFLAGS += --diag_suppress Pa050
|
|
|
|
|
|
-ASMFLAGS = -M'<>' -ld $(OUT_DIR)\list --diag_suppress Pa050
|
|
|
|
|
|
+ASMFLAGS = -M'<>' -ld $(OUT_DIR)\list --diag_suppress Pa050
|
|
ASMFLAGS += --code_model small --data_model small
|
|
ASMFLAGS += --code_model small --data_model small
|
|
|
|
|
|
DBG_ASMFLAGS = -M'<>' -r -ld $(OUT_DIR)\list --diag_suppress Pa050
|
|
DBG_ASMFLAGS = -M'<>' -r -ld $(OUT_DIR)\list --diag_suppress Pa050
|
|
@@ -126,7 +133,8 @@ DBG_LINKFLAGS += --entry __iar_program_start
|
|
#################
|
|
#################
|
|
|
|
|
|
# All tests
|
|
# All tests
|
|
-all: $(OUT_DIR) $(PROJ_S19S) $(PROJ_IHEX)
|
|
|
|
|
|
+all: $(OUT_DIR) $(PROJ_S19) $(PROJ_HEX)
|
|
|
|
+Release: all
|
|
|
|
|
|
# Make build/output directory
|
|
# Make build/output directory
|
|
$(OUT_DIR):
|
|
$(OUT_DIR):
|
|
@@ -135,17 +143,17 @@ $(OUT_DIR):
|
|
@mkdir $(LIST_DIR)
|
|
@mkdir $(LIST_DIR)
|
|
|
|
|
|
# Test HEX files (one application build for each test)
|
|
# Test HEX files (one application build for each test)
|
|
-$(PROJ_S19S): %.s19: $(PROJECT).elf
|
|
|
|
|
|
+$(PROJ_S19): %.s19: $(PROJECT).elf
|
|
@echo
|
|
@echo
|
|
@echo Building $@
|
|
@echo Building $@
|
|
@$(HEX) $(OUT_DIR)/$(notdir $<) $(OUT_DIR)/$@ --srec --silent
|
|
@$(HEX) $(OUT_DIR)/$(notdir $<) $(OUT_DIR)/$@ --srec --silent
|
|
|
|
|
|
-$(PROJ_IHEX): %.hex: $(PROJECT).elf
|
|
|
|
|
|
+$(PROJ_HEX): %.hex: $(PROJECT).elf
|
|
@echo Building $@
|
|
@echo Building $@
|
|
@$(HEX) $(OUT_DIR)/$(notdir $<) $(OUT_DIR)/$@ --ihex --silent
|
|
@$(HEX) $(OUT_DIR)/$(notdir $<) $(OUT_DIR)/$@ --ihex --silent
|
|
|
|
|
|
# Test ELF files (one application build for each test)
|
|
# Test ELF files (one application build for each test)
|
|
-$(PROJ_ELFS): %.elf: $(PERIPH_OBJECTS) $(APP_OBJECTS)
|
|
|
|
|
|
+$(PROJ_ELF): %.elf: $(ALL_OBJECTS)
|
|
@echo
|
|
@echo
|
|
@echo Linking $@
|
|
@echo Linking $@
|
|
@$(LINK) $(OBJ_DIR)/*.o $(LINKFLAGS) -o $(OUT_DIR)/$@
|
|
@$(LINK) $(OBJ_DIR)/*.o $(LINKFLAGS) -o $(OUT_DIR)/$@
|