summaryrefslogtreecommitdiff
path: root/stm32
diff options
context:
space:
mode:
authorLeo C2014-07-02 14:55:38 +0200
committerLeo C2014-07-02 14:55:38 +0200
commit70da9bec89594932d89d8a8a0815e127f3359365 (patch)
tree9ac4a0e18c68cce212bd7aec6dfed16dce9580c1 /stm32
parentf4d5b4febbffab80cb06bd18564d4c326756fad7 (diff)
downloadz180-stamp-70da9bec89594932d89d8a8a0815e127f3359365.zip
New build system: tup
Diffstat (limited to 'stm32')
l---------stm32/Makefile1
-rw-r--r--stm32/Rules.mk146
-rw-r--r--stm32/Tupfile71
3 files changed, 71 insertions, 147 deletions
diff --git a/stm32/Makefile b/stm32/Makefile
deleted file mode 120000
index d0b0e8e..0000000
--- a/stm32/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/stm32/Rules.mk b/stm32/Rules.mk
deleted file mode 100644
index ddc8db3..0000000
--- a/stm32/Rules.mk
+++ /dev/null
@@ -1,146 +0,0 @@
-
-BINARY := z180-stamp-stm32
-P_BINARY := $(OBJPATH)/$(BINARY)
-
-TARGETS := $(BINARY).elf
-
-###############################################################################
-# Source files
-
-SRCS := z180-stamp-stm32.c serial.c z80-if.c hdrom.c
-
-SRCS_VPATH := ../Z180
-
-LIBNAME = opencm3_stm32f1
-DEFS = -DSTM32F1 -DDEBUG=2
-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-2014q2/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
-
-###############################################################################
-
-
-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 serial.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 %.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)' \
- -ex 'monitor reset halt' \
- -ex 'load' \
- $<
-
-
-.PHONY: images elf bin hex srec list flash
-
diff --git a/stm32/Tupfile b/stm32/Tupfile
new file mode 100644
index 0000000..e942bff
--- /dev/null
+++ b/stm32/Tupfile
@@ -0,0 +1,71 @@
+include_rules
+
+PROG = z180-stamp-stm32
+SRC = z180-stamp-stm32.c serial.c z80-if.c
+SRC_Z = ../z180/hdrom.c
+#TARGETS = $(PROG).elf
+
+FP_FLAGS = -msoft-float
+DEFS = -DSTM32F1 -DBAUD=115200
+
+LIBNAME = opencm3_stm32f1
+OPENCM3_DIR = $(TOP)/libopencm3
+LDSCRIPT = stm32vl-discovery.ld
+
+###############################################################################
+# Executables
+
+TOOLCHAINDIR = /usr/local/gcc-arm-none-eabi-4_8-2014q2/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
+
+###############################################################################
+
+INCLUDES += $(OPENCM3_DIR)/include
+LIBDIRS += $(OPENCM3_DIR)/lib
+
+SCRIPT_DIR = $(OPENCM3_DIR)/scripts
+
+
+ifdef DEBUG
+DEFS += -DDEBUG=2
+endif
+
+CFLAGS += -g -Os
+CFLAGS += -mthumb -mcpu=cortex-m3 $(FP_FLAGS) -mfix-cortex-m3-ldrd
+CFLAGS += -std=gnu99
+CFLAGS += -Wall -Wextra -Wimplicit-function-declaration
+CFLAGS += -Wredundant-decls
+#CFLAGS += -fno-common -ffunction-sections -fdata-sections
+CFLAGS += -I $(INCLUDES)
+
+CPPFLAGS += $(DEFS)
+
+# Linker flags
+LDFLAGS += --static -nostartfiles
+LDFLAGS += -T$(LDSCRIPT)
+LDFLAGS += -Wl,--gc-sections
+LDFLAGS += -Wl,--cref
+
+LDLIBS += -L$(LIBDIRS) -l$(LIBNAME)
+LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
+
+
+!cc = |> ^ CC %f^ $(CC) $(CFLAGS) $(CPPFLAGS) -c %f -o %o |> %B.o
+!LINK = |> ^ LINK %o^ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-Map=%O.map %f $(LDLIBS) -o %o |> | %O.map
+!OBJCOPY= |> ^ OBJCOPY %o^ $(OBJCOPY) -Oihex %f %o |>
+!OBJDUMP= |> ^ OBJDUMP %o^ $(OBJDUMP) -h -S %f > %o |> %O.lss
+
+: foreach $(SRC) $(SRC_Z) | ../z180/hdrom.h |> !cc |> {objs}
+
+: {objs} |> !LINK |> $(PROG).elf
+: $(PROG).elf |> !OBJCOPY |> %B.hex
+: $(PROG).elf |> !OBJDUMP |> %B.lss
+