-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
107 lines (90 loc) · 2.82 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
##################################
## stm8_eForth make file
##################################
NAME=eForth
# toolchain
SDAS=sdasstm8
SDCC=sdcc
CFLAGS=-mstm8 -lstm8 -Iinc
# sources files
MAIN_FILE=stm8ef.asm
SRC=flash.asm const_ratio.asm ctable.asm
INC=inc/
INCLUDES=$(INC)config.inc $(INC)ascii.inc $(INC)stm8s208.inc $(INC)stm8s207.inc\
$(INC)stm8s105.inc $(INC)stm8s_disco.inc $(INC)nucleo_8s208.inc $(INC)nucleo_8s207.inc
BUILD=build/$(BOARD)/
OBJECTS=$(BUILD)$(SRC:.asm=.rel)
SYMBOLS=$(OBJECTS:.rel=.sym)
LISTS=$(OBJECTS:.rel=.lst)
FLASH=stm8flash
.PHONY: all
all: clean $(NAME).rel $(NAME).ihx clear_eevars eforth
$(NAME).rel: $(MAIN_FILE) $(SRC) $(INCLUDES)
@echo
@echo "**********************"
@echo "assembling main file to " $(NAME).rel
@echo "**********************"
$(SDAS) -g -l -o $(BUILD)$(NAME).rel $(MAIN_FILE)
$(NAME).ihx: $(NAME).rel
@echo
@echo "**************************"
@echo "linking files to " $(NAME).ihx
@echo "**************************"
$(SDCC) $(CFLAGS) -Wl-u -o $(BUILD)$(NAME).ihx $(BUILD)$(NAME).rel
.PHONY: clean
clean: build
@echo
@echo "***************"
@echo "cleaning files"
@echo "***************"
rm -f $(BUILD)*
.PHONY: clear_eevars
clear_eevars:
@echo
@echo "**********************"
@echo "erase EEPROM variables"
@echo "**********************"
$(FLASH) -c $(PROGRAMMER) -p $(BOARD) -u -s eeprom -b 16 -w zero.bin
.PHONY: erase
erase: clear_eevars
@echo ""
@echo "************************"
@echo " reset all flash types "
@echo "************************"
$(FLASH) -c $(PROGRAMMER) -p $(BOARD) -u -s flash -b 131072 -w zero.bin
build:
mkdir build
flash: clear_eevars $(LIB)
@echo ""
@echo "***************"
@echo "flash program "
@echo "***************"
$(FLASH) -c $(PROGRAMMER) -p $(BOARD) -w $(BUILD)$(NAME).ihx
compile: $(MAIN_FILE) $(SRC) $(INCLUDES)
@echo ""
@echo "******************"
@echo " compiling "
@echo "******************"
-rm $(BUILD)*
$(SDAS) -g -l -o $(BUILD)$(NAME).rel $(MAIN_FILE)
$(SDCC) $(CFLAGS) -Wl-u -o $(BUILD)$(NAME).ihx $(BUILD)$(NAME).rel
objcopy -Iihex -Obinary $(BUILD)$(NAME).ihx $(BUILD)$(NAME).bin
eforth: compile flash
doorbell: $(MAIN_FILE) $(SRC) $(INCLUDE)
@echo ""
@echo "**********************************"
@echo " build and flash doorbell project"
@echo "**********************************"
-rm build/*
$(SDAS) -g -l -o $(BUILD)$(NAME).rel $(MAIN_FILE)
$(SDAS) -g -l -o $(BUILD)doorbell.rel $(ASM)
$(SDCC) $(CFLAGS) -Wl-u -o $(BUILD)$(NAME).ihx $(BUILD)$(NAME).rel $(BUILD)doorbell.rel
$(FLASH) -c $(PROGRAMMER) -p $(BOARD) -w $(BUILD)$(NAME).ihx
read_eevars:
@echo ""
@echo "******************************"
@echo " read eeprom system variables"
@echo "******************************"
$(FLASH) -c $(PROGRAMMER) -p $(BOARD) -s eeprom -b 16 -r eevars.bin
@hexdump -C eevars.bin
@rm eevars.bin