]> cloudbase.mooo.com Git - z180-stamp.git/blame - stm32/Rules.mk
Interrupt driven Serial I/O, msg-fifo, do_msg..., debug msgs
[z180-stamp.git] / stm32 / Rules.mk
CommitLineData
88d31d11
L
1
2BINARY := z180-stamp-stm32
3P_BINARY := $(OBJPATH)/$(BINARY)
4
5TARGETS := $(BINARY).elf #$(BINARY).bin
6
6b81b39f 7SRCS := z180-stamp-stm32.c serial.c z80-if.c hdrom.c
88d31d11
L
8
9
10LIBNAME = opencm3_stm32f1
6b81b39f 11DEFS = -DSTM32F1 -DDEBUG=2
88d31d11
L
12OPENCM3_DIR := $(TOP)/libopencm3
13LDSCRIPT := $(d)/stm32vl-discovery.ld
14
15FP_FLAGS ?= -msoft-float
16ARCH_FLAGS = -mthumb -mcpu=cortex-m3 $(FP_FLAGS) -mfix-cortex-m3-ldrd
17
18STLINK_PORT = :3333
19
20###############################################################################
21# Executables
22
6b81b39f 23TOOLCHAINDIR := /usr/local/gcc-arm-none-eabi-4_8-2014q2/bin
88d31d11
L
24TOOLCHAIN := $(TOOLCHAINDIR)/arm-none-eabi
25
26CC := $(TOOLCHAIN)-gcc
27LD := $(TOOLCHAIN)-gcc
28AR := $(TOOLCHAIN)-ar
29AS := $(TOOLCHAIN)-as
30OBJCOPY := $(TOOLCHAIN)-objcopy
31OBJDUMP := $(TOOLCHAIN)-objdump
32GDB := $(TOOLCHAIN)-gdb
33
34###############################################################################
35# Source files
36
37
38
39ifeq ($(VERBOSE),true)
40$(info Using $(OPENCM3_DIR) path to library)
41endif
42
43INCLUDES_$(d) := $(OPENCM3_DIR)/include
44LIBDIRS_$(d) := $(OPENCM3_DIR)/lib
45
46SCRIPT_DIR = $(OPENCM3_DIR)/scripts
47
48###############################################################################
49# C flags
50
51CFLAGS_$(d) := -Os -g
52CFLAGS_$(d) += -Wextra -Wshadow -Wimplicit-function-declaration
53CFLAGS_$(d) += -Wredundant-decls #-Wstrict-prototypes
54CFLAGS_$(d) += -fno-common -ffunction-sections -fdata-sections
55CFLAGS_$(d) += -std=c99
56CFLAGS_$(d) += $(ARCH_FLAGS)
57
58###############################################################################
59# C & C++ preprocessor common flags
60
61CPPFLAGS_$(d) := $(DEFS)
62
63###############################################################################
64# Linker flags
65
66LDFLAGS += --static -nostartfiles
67LDFLAGS += -T$(LDSCRIPT)
68LDFLAGS += -Wl,-Map=$(*).map
69LDFLAGS += -Wl,--gc-sections
70
71#ifeq ($(VERBOSE),true)
72#LDFLAGS += -Wl,--print-gc-sections
73#endif
74
75###############################################################################
76# Used libraries
77
78LDLIBS += -l$(LIBNAME)
79LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
80
81
82###############################################################################
83###############################################################################
84
85
6b81b39f 86$(BINARY).elf_DEPS = z180-stamp-stm32.o serial.o z80-if.o hdrom.o
88d31d11
L
87$(BINARY).elf_CMD = $(call echo_cmd,LINK $@) $(LD) $(LDFLAGS) $(ARCH_FLAGS) $^ $(LDLIBS) -o $@
88
89.SUFFIXES: .elf .bin .hex .srec .list .map .images
90.SECONDEXPANSION:
91
92elf: $(P_BINARY).elf
93bin: $(P_BINARY).bin
94hex: $(P_BINARY).hex
95srec: $(P_BINARY).srec
96list: $(P_BINARY).list
97
98images: $(P_BINARY).images
99flash: $(P_BINARY).flash
100
101%.images: %.bin %.hex %.srec %.list
102 $(call echo_cmd,Images generated: $*)
103
104%.bin: %.elf
105 $(call echo_cmd,OBJCOPY $@) $(OBJCOPY) -Obinary $< $@
106
107%.hex: %.elf
108 $(call echo_cmd,OBJCOPY $@) $(OBJCOPY) -Oihex $< $@
109
110%.srec: %.elf
111 $(call echo_cmd,OBJCOPY $@) $(OBJCOPY) -Osrec $< $@
112
113%.list: %.elf
114 $(call echo_cmd,OBJDUMP $@) $(OBJDUMP) -S $< > $@
115
116#$(OBJPATH)/%.elf: $(OBJS) $(LDSCRIPT) $(LIB_DIR)/lib$(LIBNAME).a
117# @#printf " LD $(*).elf\n"
118# $(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS_$(d)) $(LDLIBS) -o $(*).elf
119
120#%.o: %.c
121# @#printf " CC $(*).c\n"
122# $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).c
123#
124#%.o: %.cxx
125# @#printf " CXX $(*).cxx\n"
126# $(Q)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).cxx
127#
128#%.o: %.cpp
129# @#printf " CXX $(*).cpp\n"
130# $(Q)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).cpp
131
132#clean:
133# @#printf " CLEAN\n"
134# $(Q)$(RM) *.o *.d *.elf *.bin *.hex *.srec *.list *.map
135
136
137%.flash: %.elf
138 $(call echo_cmd,GDB $< (flash)) $(GDB) --batch \
139 -ex 'target extended-remote $(STLINK_PORT)' \
acd9bdaf
L
140 -ex 'monitor reset halt' \
141 -ex 'load' \
88d31d11
L
142 $<
143
acd9bdaf 144
88d31d11
L
145.PHONY: images elf bin hex srec list flash
146