diff options
Diffstat (limited to 'stm32/Rules.mk')
-rw-r--r-- | stm32/Rules.mk | 144 |
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 + |