summaryrefslogtreecommitdiff
path: root/stm32/Rules.mk
diff options
context:
space:
mode:
Diffstat (limited to 'stm32/Rules.mk')
-rw-r--r--stm32/Rules.mk144
1 files changed, 144 insertions, 0 deletions
diff --git a/stm32/Rules.mk b/stm32/Rules.mk
new file mode 100644
index 0000000..4751496
--- /dev/null
+++ b/stm32/Rules.mk
@@ -0,0 +1,144 @@
+
+BINARY := z180-stamp-stm32
+P_BINARY := $(OBJPATH)/$(BINARY)
+
+TARGETS := $(BINARY).elf #$(BINARY).bin
+
+SRCS := z180-stamp-stm32.c z80-if.c hdrom.c
+
+
+LIBNAME = opencm3_stm32f1
+DEFS = -DSTM32F1
+OPENCM3_DIR := $(TOP)/libopencm3
+LDSCRIPT := $(d)/stm32vl-discovery.ld
+
+FP_FLAGS ?= -msoft-float
+ARCH_FLAGS = -mthumb -mcpu=cortex-m3 $(FP_FLAGS) -mfix-cortex-m3-ldrd
+
+STLINK_PORT = :3333
+
+###############################################################################
+# Executables
+
+TOOLCHAINDIR := /usr/local/gcc-arm-none-eabi-4_8-2014q1/bin
+TOOLCHAIN := $(TOOLCHAINDIR)/arm-none-eabi
+
+CC := $(TOOLCHAIN)-gcc
+LD := $(TOOLCHAIN)-gcc
+AR := $(TOOLCHAIN)-ar
+AS := $(TOOLCHAIN)-as
+OBJCOPY := $(TOOLCHAIN)-objcopy
+OBJDUMP := $(TOOLCHAIN)-objdump
+GDB := $(TOOLCHAIN)-gdb
+
+###############################################################################
+# Source files
+
+
+
+ifeq ($(VERBOSE),true)
+$(info Using $(OPENCM3_DIR) path to library)
+endif
+
+INCLUDES_$(d) := $(OPENCM3_DIR)/include
+LIBDIRS_$(d) := $(OPENCM3_DIR)/lib
+
+SCRIPT_DIR = $(OPENCM3_DIR)/scripts
+
+###############################################################################
+# C flags
+
+CFLAGS_$(d) := -Os -g
+CFLAGS_$(d) += -Wextra -Wshadow -Wimplicit-function-declaration
+CFLAGS_$(d) += -Wredundant-decls #-Wstrict-prototypes
+CFLAGS_$(d) += -fno-common -ffunction-sections -fdata-sections
+CFLAGS_$(d) += -std=c99
+CFLAGS_$(d) += $(ARCH_FLAGS)
+
+###############################################################################
+# C & C++ preprocessor common flags
+
+CPPFLAGS_$(d) := $(DEFS)
+
+###############################################################################
+# Linker flags
+
+LDFLAGS += --static -nostartfiles
+LDFLAGS += -T$(LDSCRIPT)
+LDFLAGS += -Wl,-Map=$(*).map
+LDFLAGS += -Wl,--gc-sections
+
+#ifeq ($(VERBOSE),true)
+#LDFLAGS += -Wl,--print-gc-sections
+#endif
+
+###############################################################################
+# Used libraries
+
+LDLIBS += -l$(LIBNAME)
+LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
+
+
+###############################################################################
+###############################################################################
+
+
+$(BINARY).elf_DEPS = z180-stamp-stm32.o z80-if.o hdrom.o
+$(BINARY).elf_CMD = $(call echo_cmd,LINK $@) $(LD) $(LDFLAGS) $(ARCH_FLAGS) $^ $(LDLIBS) -o $@
+
+.SUFFIXES: .elf .bin .hex .srec .list .map .images
+.SECONDEXPANSION:
+
+elf: $(P_BINARY).elf
+bin: $(P_BINARY).bin
+hex: $(P_BINARY).hex
+srec: $(P_BINARY).srec
+list: $(P_BINARY).list
+
+images: $(P_BINARY).images
+flash: $(P_BINARY).flash
+
+%.images: %.bin %.hex %.srec %.list
+ $(call echo_cmd,Images generated: $*)
+
+%.bin: %.elf
+ $(call echo_cmd,OBJCOPY $@) $(OBJCOPY) -Obinary $< $@
+
+%.hex: %.elf
+ $(call echo_cmd,OBJCOPY $@) $(OBJCOPY) -Oihex $< $@
+
+%.srec: %.elf
+ $(call echo_cmd,OBJCOPY $@) $(OBJCOPY) -Osrec $< $@
+
+%.list: %.elf
+ $(call echo_cmd,OBJDUMP $@) $(OBJDUMP) -S $< > $@
+
+#$(OBJPATH)/%.elf: $(OBJS) $(LDSCRIPT) $(LIB_DIR)/lib$(LIBNAME).a
+# @#printf " LD $(*).elf\n"
+# $(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS_$(d)) $(LDLIBS) -o $(*).elf
+
+#%.o: %.c
+# @#printf " CC $(*).c\n"
+# $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).c
+#
+#%.o: %.cxx
+# @#printf " CXX $(*).cxx\n"
+# $(Q)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).cxx
+#
+#%.o: %.cpp
+# @#printf " CXX $(*).cpp\n"
+# $(Q)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -o $(*).o -c $(*).cpp
+
+#clean:
+# @#printf " CLEAN\n"
+# $(Q)$(RM) *.o *.d *.elf *.bin *.hex *.srec *.list *.map
+
+
+%.flash: %.elf
+ $(call echo_cmd,GDB $< (flash)) $(GDB) --batch \
+ -ex 'target extended-remote $(STLINK_PORT)' \
+ -x $(SCRIPT_DIR)/stlink_flash.scr \
+ $<
+
+.PHONY: images elf bin hex srec list flash
+