Эх сурвалжийг харах

Обновил makefiles для STM8

Vladimir N. Shilov 8 жил өмнө
parent
commit
da829eeb51
2 өөрчлөгдсөн 93 нэмэгдсэн , 113 устгасан
  1. 53 72
      stm8/Makefile.stm8l
  2. 40 41
      stm8/Makefile.stm8s

+ 53 - 72
stm8/Makefile.stm8l

@@ -1,22 +1,37 @@
-#########################
-# IAR Makefile for STM8 #
-#########################
+##########################
+# IAR Makefile for STM8L #
+##########################
 
-# Вз�л из проекта atomthreads и переиначил.
+# Âçÿë èç ïðîåêòà atomthreads è ïåðåèíà÷èë.
+
+PROJECT=VAPC
 
 # Location of build tools and atomthreads sources
-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_DIR=C:\IAR\Embedded Workbench 7.3\stm8
+EWSTM8_BIN=C:/IAR/Embedded\ Workbench\ 7.3/stm8/bin
 CC=$(EWSTM8_BIN)/iccstm8
 ASM=$(EWSTM8_BIN)/iasmstm8
 LINK=$(EWSTM8_BIN)/ilinkstm8
 HEX=$(EWSTM8_BIN)/ielftool
+FLASHTOOL=C:/STMicroelectronics/st_toolset/stvp/STVP_CmdLine.exe
+FLASHOPT=-Device=STM8L051x3
+
+DEFINES = -D USE_STDPERIPH_DRIVER
+DEFINES += -D USE_RTOS
+
+APP_SRC = src
+LIB_SRC = lib
+
+# Sources pats
+vpath %.c $(APP_SRC)
+vpath %.c $(LIB_SRC)
+vpath %.c StdPerphDrv/src
+
+# Include paths
+INCLUDES = -I inc
+INCLUDES += -I lib
+INCLUDES += -I StdPerphDrv/inc
 
-PROJECT=VAPC
 
 # CPU part number
 PART = STM8L05X_LD_VL
@@ -27,13 +42,16 @@ LIB_MODEL = dlstm8ssn.h
 OUT_DIR = Out
 OBJ_DIR = $(OUT_DIR)/Obj
 LIST_DIR = $(OUT_DIR)/List
+
+# Models
 CODE_MODEL = small
 DATA_MODEL = small
 
 # Application object files
-#APP_OBJECTS = board.o delay.o HD44780.o stm8l15x_it.o
 APP_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(APP_SRC)/*.c)))
-#APP_ASM_OBJECTS = atomport-asm-iar.o
+
+# Librarys object files
+LIB_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(LIB_SRC)/*.c)))
 
 # STM8S Peripheral driver object files
 PERIPH_OBJECTS = stm8l15x_adc.o
@@ -65,53 +83,38 @@ PERIPH_OBJECTS += stm8l15x_usart.o
 #PERIPH_OBJECTS += stm8l15x_wfe.o
 #PERIPH_OBJECTS += stm8l15x_wwdg.o
 
-###PERIPH_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(PERIPHS_SRC)/*.c)))
-
-# Kernel object files
-#KERNEL_OBJECTS = atomkernel.o atomsem.o atommutex.o atomtimer.o atomqueue.o
 
 # 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))
 
-# Test object files (dealt with separately as only one per application build)
-#PROJ_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(APP_SRC)/*.c)))
-#PROJ_OBJECTS = main.o
-
 # Target application filenames (.elf) for each test object
-#PROJ_ELFS = $(patsubst %.o,%.elf,$(PROJ_OBJECTS))
-#PROJ_S19S = $(patsubst %.o,%.s19,$(PROJ_OBJECTS))
-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
-vpath %.c $(APP_SRC)
-vpath %.c $(PERIPHS_SRC)
 vpath %.o .\$(OBJ_DIR)
 vpath %.elf .\$(OUT_DIR)
 vpath %.hex .\$(OUT_DIR)
 
-# Include paths
-INCLUDES = -I $(APP_INC)
-INCLUDES += -I $(PERIPHS_INC)
-
 # Compiler/Assembler flags
-CFLAGS = -e -Oh
+CFLAGS = -e -Oh $(DEFINES)
 CFLAGS += --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
 CFLAGS += --dlib_config "$(EWSTM8_DIR)\lib\$(LIB_MODEL)"
 CFLAGS += -D NDEBUG -D $(PART)
 CFLAGS += -lCN $(LIST_DIR) -lBN $(LIST_DIR)
 CFLAGS += --diag_suppress Pa050
 
-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 = -e -Ol $(DEFINES) --no_cross_call --debug
+DBG_CFLAGS += --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa
+DBG_CFLAGS += --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
 DBG_CFLAGS += --dlib_config "$(EWSTM8_DIR)\lib\$(LIB_MODEL)" -D $(PART)
 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 += --code_model small --data_model small
+ASMFLAGS = -M'<>' -ld $(OUT_DIR)\list --diag_suppress Pa050
+ASMFLAGS += --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
 
 DBG_ASMFLAGS = -M'<>' -r -ld $(OUT_DIR)\list --diag_suppress Pa050
 DBG_ASMFLAGS += --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
@@ -137,8 +140,10 @@ DBG_LINKFLAGS += --entry __iar_program_start
 # Build targets #
 #################
 
-# All tests
-all: $(OUT_DIR) $(PROJ_S19S) $(PROJ_IHEX)
+# All
+all: $(OUT_DIR) $(PROJ_S19) $(PROJ_HEX)
+Release: all
+flash: all
 
 # Make build/output directory
 $(OUT_DIR):
@@ -147,43 +152,20 @@ $(OUT_DIR):
 	@mkdir $(LIST_DIR)
 
 # Test HEX files (one application build for each test)
-$(PROJ_S19S): %.s19: $(PROJECT).elf
+$(PROJ_S19): %.s19: $(PROJ_ELF)
 	@echo
 	@echo Building $@
 	@$(HEX) $(OUT_DIR)/$(notdir $<) $(OUT_DIR)/$@ --srec --silent
 
-$(PROJ_IHEX): %.hex: $(PROJECT).elf
+$(PROJ_HEX): %.hex: $(PROJ_ELF)
 	@echo Building $@
 	@$(HEX) $(OUT_DIR)/$(notdir $<) $(OUT_DIR)/$@ --ihex --silent
 
 # Test ELF files (one application build for each test)
-$(PROJ_ELFS): %.elf: $(PERIPH_OBJECTS) $(APP_OBJECTS)
+$(PROJ_ELF): %.elf: $(ALL_OBJECTS)
 	@echo
 	@echo Linking $@
 	@$(LINK) $(OBJ_DIR)/*.o $(LINKFLAGS) -o $(OUT_DIR)/$@
-#	$(LINK) $(OUT_DIR)/$(notdir $<) $(BUILT_OBJECTS) $(LINKFLAGS) -o $(OUT_DIR)/$@
-
-# Kernel objects builder
-#$(KERNEL_OBJECTS): %.o: $(KERNEL_DIR)/%.c
-#	@echo Compiling $@
-#	$(CC) $< $(CFLAGS) -I . -I $(PERIPHS_SRC) -o $(OUT_DIR)
-
-# Project objects builder
-#$(PROJ_OBJECTS): %.o: main.c
-#	@echo Compiling $@
-#	$(CC) $< $(CFLAGS) $(INCLUDES) -o $(OBJ_DIR)
-
-# Peripheral objects builder
-#$(PERIPH_OBJECTS): %.o: %.c
-#	@echo
-#	@echo Compiling $@
-#	@$(CC) $< $(CFLAGS) $(INCLUDES) -o $(OBJ_DIR)
-
-# Application C objects builder
-#$(APP_OBJECTS): %.o: %.c
-#	@echo
-#	@echo Compiling $@
-#	@$(CC) $< $(CFLAGS) $(INCLUDES) -o $(OBJ_DIR)
 
 # All C objects builder
 $(ALL_OBJECTS): %.o: %.c
@@ -191,14 +173,13 @@ $(ALL_OBJECTS): %.o: %.c
 	@echo Compiling $@
 	@$(CC) $< $(CFLAGS) $(INCLUDES) -o $(OBJ_DIR)
 
-# Application asm objects builder
-#$(APP_ASM_OBJECTS): %.o: ./%.s
-#	@echo Compiling $@
-#	@$(ASM) $< $(ASMFLAGS) $(INCLUDES) -o $(OUT_DIR)/$(notdir $@)
-
 # Clean
 clean:
 	rm -f *.o *.elf *.map *.hex *.bin *.lst *.stm8 *.s19 *.out *.s *.lst
 	rm -rf $(LIST_DIR)
 	rm -rf $(OBJ_DIR)
 	rm -rf $(OUT_DIR)
+
+# Flash
+flash:
+	@$(FLASHTOOL) $(FLASHOPT) -FileProg=$(OUT_DIR)\\$(PROJ_HEX)

+ 40 - 41
stm8/Makefile.stm8s

@@ -1,23 +1,28 @@
-#########################
-# IAR Makefile for STM8 #
-#########################
+##########################
+# IAR Makefile for STM8S #
+##########################
 
-# Вз�л из проекта atomthreads и переиначил.
-
-PROJECT=SoldSt
+# Âçÿë èç ïðîåêòà atomthreads è ïåðåèíà÷èë.
+PROJECT=ChACM
 
 # Location of build tools and atomthreads sources
-EWSTM8_DIR=C:\IAR\Embedded Workbench 7.0\stm8
-EWSTM8_BIN=C:/IAR/Embedded\ Workbench\ 7.0/stm8/bin
+EWSTM8_DIR=C:\IAR\Embedded Workbench 7.3\stm8
+EWSTM8_BIN=C:/IAR/Embedded\ Workbench\ 7.3/stm8/bin
 CC=$(EWSTM8_BIN)/iccstm8
 ASM=$(EWSTM8_BIN)/iasmstm8
 LINK=$(EWSTM8_BIN)/ilinkstm8
 HEX=$(EWSTM8_BIN)/ielftool
+FLASHTOOL=C:/STMicroelectronics/st_toolset/stvp/STVP_CmdLine.exe
+FLASHOPT=-Device=STM8S003x6
+
+DEFINES = -D USE_STDPERIPH_DRIVER
+DEFINES += -D USE_RTOS
+DEFINES += -D STM8S003
 
+# Sources paths
 APP_SRC = src
 LIB_SRC = lib
 
-# Sources pats
 vpath %.c $(APP_SRC)
 vpath %.c $(LIB_SRC)
 vpath %.c StdPerphDrv/src
@@ -27,30 +32,27 @@ INCLUDES = -I inc
 INCLUDES += -I lib
 INCLUDES += -I StdPerphDrv/inc
 
+
 # CPU part number
-PART=STM8S103
-ICF=lnkstm8s103k3.icf
+PART=STM8S003
+ICF=lnkstm8s003f3.icf
 LIB_MODEL = dlstm8ssn.h
 
 # Directory for built objects
-OUT_DIR = Out
+OUT_DIR = build
 OBJ_DIR = $(OUT_DIR)/Obj
 LIST_DIR = $(OUT_DIR)/List
 
-# Model
+# Models
 CODE_MODEL = small
 DATA_MODEL = small
 
 # Application object files
 APP_OBJECTS = main.o
 APP_OBJECTS += stm8s_it.o
-#APP_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(APP_SRC)/*.c)))
-
+APP_OBJECTS += rtos.o
 #APP_ASM_OBJECTS = atomport-asm-iar.o
 
-# Librarys object files
-LIB_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(LIB_SRC)/*.c)))
-
 # STM8S Peripheral driver object files
 PERIPH_OBJECTS = stm8s_adc1.o
 #PERIPH_OBJECTS += stm8s_awu.o
@@ -67,21 +69,17 @@ PERIPH_OBJECTS += stm8s_itc.o
 PERIPH_OBJECTS += stm8s_tim1.o
 PERIPH_OBJECTS += stm8s_tim2.o
 PERIPH_OBJECTS += stm8s_tim4.o
-PERIPH_OBJECTS += stm8s_uart1.o
+#PERIPH_OBJECTS += stm8s_uart1.o
 #PERIPH_OBJECTS += stm8s_wwdg.o
 
-###PERIPH_OBJECTS = $(notdir $(patsubst %.c,%.o,$(wildcard $(PERIPHS_SRC)/*.c)))
-
 # Collection of built objects (excluding test applications)
-ALL_OBJECTS = $(APP_OBJECTS) $(LIB_OBJECTS) $(PERIPH_OBJECTS)
+ALL_OBJECTS = $(APP_OBJECTS) $(PERIPH_OBJECTS)
 BUILT_OBJECTS = $(patsubst %,$(OUT_DIR)/%,$(ALL_OBJECTS))
 
-# Target application filenames (.elf) for each test object
-#PROJ_ELFS = $(patsubst %.o,%.elf,$(PROJ_OBJECTS))
-#PROJ_S19S = $(patsubst %.o,%.s19,$(PROJ_OBJECTS))
-PROJ_ELF = $(PROJECT).elf
-PROJ_S19 = $(PROJECT).s19
-PROJ_HEX = $(PROJECT).hex
+# Target application filenames (.elf) for object
+PROJ_ELFS = $(PROJECT).elf
+PROJ_S19S = $(PROJECT).s19
+PROJ_IHEX = $(PROJECT).hex
 
 # Search build/output directory for dependencies
 vpath %.o .\$(OBJ_DIR)
@@ -89,21 +87,21 @@ vpath %.elf .\$(OUT_DIR)
 vpath %.hex .\$(OUT_DIR)
 
 # Compiler/Assembler flags
-CFLAGS = -e -Oh
+CFLAGS = -e -Oh $(DEFINES)
 CFLAGS += --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
 CFLAGS += --dlib_config "$(EWSTM8_DIR)\lib\$(LIB_MODEL)"
 CFLAGS += -D NDEBUG -D $(PART)
 CFLAGS += -lCN $(LIST_DIR) -lBN $(LIST_DIR)
 CFLAGS += --diag_suppress Pa050
 
-DBG_CFLAGS = -e -Ol --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa
+DBG_CFLAGS = -e -Ol $(DEFINES) --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 += --dlib_config "$(EWSTM8_DIR)\lib\$(LIB_MODEL)" -D $(PART)
 DBG_CFLAGS += -lC $(LIST_DIR) -lB $(LIST_DIR)
 DBG_CFLAGS += --diag_suppress Pa050
 
 ASMFLAGS = -M'<>' -ld $(OUT_DIR)\list --diag_suppress Pa050
-ASMFLAGS += --code_model small --data_model small
+ASMFLAGS += --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
 
 DBG_ASMFLAGS = -M'<>' -r -ld $(OUT_DIR)\list --diag_suppress Pa050
 DBG_ASMFLAGS += --code_model $(CODE_MODEL) --data_model $(DATA_MODEL)
@@ -128,8 +126,10 @@ DBG_LINKFLAGS += --entry __iar_program_start
 # Build targets #
 #################
 
-# All
-all: $(OUT_DIR) $(PROJ_S19) $(PROJ_HEX)
+# All tests
+all: $(OUT_DIR) $(PROJ_S19S) $(PROJ_IHEX)
+Release: all
+flash: all
 
 # Make build/output directory
 $(OUT_DIR):
@@ -138,17 +138,17 @@ $(OUT_DIR):
 	@mkdir $(LIST_DIR)
 
 # Test HEX files (one application build for each test)
-$(PROJ_S19): %.s19: $(PROJ_ELF)
+$(PROJ_S19S): %.s19: $(PROJECT).elf
 	@echo
 	@echo Building $@
 	@$(HEX) $(OUT_DIR)/$(notdir $<) $(OUT_DIR)/$@ --srec --silent
 
-$(PROJ_HEX): %.hex: $(PROJ_ELF)
+$(PROJ_IHEX): %.hex: $(PROJECT).elf
 	@echo Building $@
 	@$(HEX) $(OUT_DIR)/$(notdir $<) $(OUT_DIR)/$@ --ihex --silent
 
 # Test ELF files (one application build for each test)
-$(PROJ_ELF): %.elf: $(ALL_OBJECTS)
+$(PROJ_ELFS): %.elf: $(PERIPH_OBJECTS) $(APP_OBJECTS)
 	@echo
 	@echo Linking $@
 	@$(LINK) $(OBJ_DIR)/*.o $(LINKFLAGS) -o $(OUT_DIR)/$@
@@ -159,14 +159,13 @@ $(ALL_OBJECTS): %.o: %.c
 	@echo Compiling $@
 	@$(CC) $< $(CFLAGS) $(INCLUDES) -o $(OBJ_DIR)
 
-# Application asm objects builder
-#$(APP_ASM_OBJECTS): %.o: ./%.s
-#	@echo Compiling $@
-#	@$(ASM) $< $(ASMFLAGS) -I $(KERNEL_DIR) -o $(OUT_DIR)/$(notdir $@)
-
 # Clean
 clean:
 	rm -f *.o *.elf *.map *.hex *.bin *.lst *.stm8 *.s19 *.out *.s *.lst
 	rm -rf $(LIST_DIR)
 	rm -rf $(OBJ_DIR)
 	rm -rf $(OUT_DIR)
+
+# Flash
+flash:
+	@$(FLASHTOOL) $(FLASHOPT) -FileProg=$(OUT_DIR)\\$(PROJ_HEX)