mirror of
https://github.com/eddyem/stm32samples.git
synced 2025-12-06 10:45:11 +03:00
add new makefile structure to G0 (forgotten before)
This commit is contained in:
parent
da59c941ec
commit
c6e3acc460
@ -1,164 +1,8 @@
|
|||||||
BINARY = rtc
|
BINARY := rtc
|
||||||
BOOTPORT ?= /dev/ttyUSB0
|
|
||||||
BOOTSPEED ?= 115200
|
|
||||||
# MCU FAMILY
|
|
||||||
FAMILY = G0
|
|
||||||
# MCU code
|
# MCU code
|
||||||
MCU = G070xx
|
MCU := G070xx
|
||||||
#DEFS = -DEBUG -g3
|
|
||||||
# change this linking script depending on particular MCU model,
|
# change this linking script depending on particular MCU model,
|
||||||
# for example, if you have STM32F103VBT6, you should write:
|
LDSCRIPT := stm32g070xb.ld
|
||||||
LDSCRIPT = stm32g070xb.ld
|
|
||||||
|
|
||||||
INDEPENDENT_HEADERS=
|
include ../makefile.g0
|
||||||
|
include ../../makefile.stm32
|
||||||
FP_FLAGS ?= -msoft-float
|
|
||||||
ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus
|
|
||||||
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
|
||||||
|
|
||||||
# autoincremental version & build date
|
|
||||||
VERSION_FILE = version.inc
|
|
||||||
ifeq ($(shell test -e $(VERSION_FILE) && echo -n yes), yes)
|
|
||||||
NEXTVER := $(shell expr $$(awk '/#define BUILD_NUMBER/' $(VERSION_FILE) | tr -cd "[0-9]") + 1)
|
|
||||||
else
|
|
||||||
NEXTVER := "1"
|
|
||||||
endif
|
|
||||||
|
|
||||||
BUILDDATE := $(shell date +%Y-%m-%d)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Executables
|
|
||||||
PREFIX ?= /opt/bin/arm-none-eabi
|
|
||||||
|
|
||||||
RM := rm -f
|
|
||||||
RMDIR := rmdir
|
|
||||||
SIZE := $(PREFIX)-size
|
|
||||||
CC := $(PREFIX)-gcc
|
|
||||||
LD := $(PREFIX)-gcc
|
|
||||||
AR := $(PREFIX)-ar
|
|
||||||
AS := $(PREFIX)-as
|
|
||||||
OBJCOPY := $(PREFIX)-objcopy
|
|
||||||
OBJDUMP := $(PREFIX)-objdump
|
|
||||||
GDB := $(PREFIX)-gdb
|
|
||||||
STFLASH := $(shell which st-flash)
|
|
||||||
STBOOT := $(shell which stm32flash)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Source files
|
|
||||||
OBJDIR = mk
|
|
||||||
LDSCRIPT ?= $(BINARY).ld
|
|
||||||
SRC := $(wildcard *.c)
|
|
||||||
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
|
||||||
STARTUP = $(OBJDIR)/startup.o
|
|
||||||
OBJS += $(STARTUP)
|
|
||||||
DEPS := $(OBJS:.o=.d)
|
|
||||||
|
|
||||||
INC_DIR ?= ../inc
|
|
||||||
|
|
||||||
INCLUDE := -I$(INC_DIR)/Fx -I$(INC_DIR)/cm
|
|
||||||
LIB_DIR := $(INC_DIR)/ld
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# C flags
|
|
||||||
CFLAGS += -O2 -MD -D__thumb2__=1
|
|
||||||
CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration
|
|
||||||
CFLAGS += -Wredundant-decls $(INCLUDE)
|
|
||||||
# -Wmissing-prototypes -Wstrict-prototypes
|
|
||||||
CFLAGS += -fno-common -ffunction-sections -fdata-sections -flto
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Linker flags
|
|
||||||
LDFLAGS += --static -nostartfiles --specs=nano.specs -flto
|
|
||||||
LDFLAGS += -L$(LIB_DIR)
|
|
||||||
LDFLAGS += -T$(LDSCRIPT)
|
|
||||||
LDFLAGS += -Wl,-Map=$(OBJDIR)/$(BINARY).map
|
|
||||||
LDFLAGS += -Wl,--gc-sections
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Used libraries
|
|
||||||
LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group
|
|
||||||
LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
|
||||||
|
|
||||||
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU)
|
|
||||||
|
|
||||||
#.SUFFIXES: .elf .bin .hex .srec .list .map .images
|
|
||||||
#.SECONDEXPANSION:
|
|
||||||
#.SECONDARY:
|
|
||||||
|
|
||||||
ELF := $(OBJDIR)/$(BINARY).elf
|
|
||||||
LIST := $(OBJDIR)/$(BINARY).list
|
|
||||||
BIN := $(BINARY).bin
|
|
||||||
HEX := $(BINARY).hex
|
|
||||||
|
|
||||||
all: bin list size
|
|
||||||
|
|
||||||
elf: $(ELF)
|
|
||||||
bin: $(BIN)
|
|
||||||
hex: $(HEX)
|
|
||||||
list: $(LIST)
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
|
||||||
-include $(DEPS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(OBJDIR):
|
|
||||||
mkdir $(OBJDIR)
|
|
||||||
|
|
||||||
$(STARTUP): $(INC_DIR)/startup/vector.c
|
|
||||||
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
$(VERSION_FILE): *.[ch]
|
|
||||||
[ -f $(VERSION_FILE) ] || echo -e "#define BUILD_NUMBER \"0\"\n#define BUILD_DATE \"none\"" > $(VERSION_FILE)
|
|
||||||
@echo " Generate version: $(NEXTVER) for date $(BUILDDATE)"
|
|
||||||
@sed -i "s/#define BUILD_NUMBER.*/#define BUILD_NUMBER \"$(NEXTVER)\"/" $(VERSION_FILE)
|
|
||||||
@sed -i "s/#define BUILD_DATE.*/#define BUILD_DATE \"$(BUILDDATE)\"/" $(VERSION_FILE)
|
|
||||||
|
|
||||||
# Uncomment and rename file, which includes version.inc
|
|
||||||
#$(OBJDIR)/proto.o: proto.c $(VERSION_FILE)
|
|
||||||
|
|
||||||
$(OBJDIR)/%.o: %.c
|
|
||||||
@echo " CC $<"
|
|
||||||
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
#$(OBJDIR)/%.d: %.c $(OBJDIR)
|
|
||||||
# $(CC) -MM -MG $< | sed -e 's,^\([^:]*\)\.o[ ]*:,$(@D)/\1.o $(@D)/\1.d:,' >$@
|
|
||||||
|
|
||||||
$(BIN): $(ELF)
|
|
||||||
@echo " OBJCOPY $(BIN)"
|
|
||||||
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
|
||||||
|
|
||||||
$(HEX): $(ELF)
|
|
||||||
@echo " OBJCOPY $(HEX)"
|
|
||||||
$(OBJCOPY) -Oihex $(ELF) $(HEX)
|
|
||||||
|
|
||||||
$(LIST): $(ELF)
|
|
||||||
@echo " OBJDUMP $(LIST)"
|
|
||||||
$(OBJDUMP) -S $(ELF) > $(LIST)
|
|
||||||
|
|
||||||
$(ELF): $(OBJDIR) $(OBJS)
|
|
||||||
@echo " LD $(ELF)"
|
|
||||||
$(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $(ELF)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo " CLEAN"
|
|
||||||
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map
|
|
||||||
@rmdir $(OBJDIR) 2>/dev/null || true
|
|
||||||
|
|
||||||
size: $(ELF)
|
|
||||||
$(SIZE) -Ax $(ELF)
|
|
||||||
|
|
||||||
flash: $(BIN)
|
|
||||||
@echo " FLASH $(BIN)"
|
|
||||||
$(STFLASH) write $(BIN) 0x8000000
|
|
||||||
|
|
||||||
boot: $(BIN)
|
|
||||||
@echo " LOAD $(BIN) through bootloader"
|
|
||||||
$(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN)
|
|
||||||
|
|
||||||
openocd:
|
|
||||||
openocd -f openocd.cfg
|
|
||||||
dbg:
|
|
||||||
arm-none-eabi-gdb $(ELF) -ex 'target extended-remote localhost:3333' -ex 'monitor reset halt'
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: clean flash boot size openocd dbg
|
|
||||||
|
|||||||
164
G0:G070/RTC/Makefile.old
Normal file
164
G0:G070/RTC/Makefile.old
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
BINARY = rtc
|
||||||
|
BOOTPORT ?= /dev/ttyUSB0
|
||||||
|
BOOTSPEED ?= 115200
|
||||||
|
# MCU FAMILY
|
||||||
|
FAMILY = G0
|
||||||
|
# MCU code
|
||||||
|
MCU = G070xx
|
||||||
|
#DEFS = -DEBUG -g3
|
||||||
|
# change this linking script depending on particular MCU model,
|
||||||
|
# for example, if you have STM32F103VBT6, you should write:
|
||||||
|
LDSCRIPT = stm32g070xb.ld
|
||||||
|
|
||||||
|
INDEPENDENT_HEADERS=
|
||||||
|
|
||||||
|
FP_FLAGS ?= -msoft-float
|
||||||
|
ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus
|
||||||
|
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
||||||
|
|
||||||
|
# autoincremental version & build date
|
||||||
|
VERSION_FILE = version.inc
|
||||||
|
ifeq ($(shell test -e $(VERSION_FILE) && echo -n yes), yes)
|
||||||
|
NEXTVER := $(shell expr $$(awk '/#define BUILD_NUMBER/' $(VERSION_FILE) | tr -cd "[0-9]") + 1)
|
||||||
|
else
|
||||||
|
NEXTVER := "1"
|
||||||
|
endif
|
||||||
|
|
||||||
|
BUILDDATE := $(shell date +%Y-%m-%d)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Executables
|
||||||
|
PREFIX ?= /opt/bin/arm-none-eabi
|
||||||
|
|
||||||
|
RM := rm -f
|
||||||
|
RMDIR := rmdir
|
||||||
|
SIZE := $(PREFIX)-size
|
||||||
|
CC := $(PREFIX)-gcc
|
||||||
|
LD := $(PREFIX)-gcc
|
||||||
|
AR := $(PREFIX)-ar
|
||||||
|
AS := $(PREFIX)-as
|
||||||
|
OBJCOPY := $(PREFIX)-objcopy
|
||||||
|
OBJDUMP := $(PREFIX)-objdump
|
||||||
|
GDB := $(PREFIX)-gdb
|
||||||
|
STFLASH := $(shell which st-flash)
|
||||||
|
STBOOT := $(shell which stm32flash)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Source files
|
||||||
|
OBJDIR = mk
|
||||||
|
LDSCRIPT ?= $(BINARY).ld
|
||||||
|
SRC := $(wildcard *.c)
|
||||||
|
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
||||||
|
STARTUP = $(OBJDIR)/startup.o
|
||||||
|
OBJS += $(STARTUP)
|
||||||
|
DEPS := $(OBJS:.o=.d)
|
||||||
|
|
||||||
|
INC_DIR ?= ../inc
|
||||||
|
|
||||||
|
INCLUDE := -I$(INC_DIR)/Fx -I$(INC_DIR)/cm
|
||||||
|
LIB_DIR := $(INC_DIR)/ld
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# C flags
|
||||||
|
CFLAGS += -O2 -MD -D__thumb2__=1
|
||||||
|
CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration
|
||||||
|
CFLAGS += -Wredundant-decls $(INCLUDE)
|
||||||
|
# -Wmissing-prototypes -Wstrict-prototypes
|
||||||
|
CFLAGS += -fno-common -ffunction-sections -fdata-sections -flto
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Linker flags
|
||||||
|
LDFLAGS += --static -nostartfiles --specs=nano.specs -flto
|
||||||
|
LDFLAGS += -L$(LIB_DIR)
|
||||||
|
LDFLAGS += -T$(LDSCRIPT)
|
||||||
|
LDFLAGS += -Wl,-Map=$(OBJDIR)/$(BINARY).map
|
||||||
|
LDFLAGS += -Wl,--gc-sections
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Used libraries
|
||||||
|
LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group
|
||||||
|
LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
||||||
|
|
||||||
|
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU)
|
||||||
|
|
||||||
|
#.SUFFIXES: .elf .bin .hex .srec .list .map .images
|
||||||
|
#.SECONDEXPANSION:
|
||||||
|
#.SECONDARY:
|
||||||
|
|
||||||
|
ELF := $(OBJDIR)/$(BINARY).elf
|
||||||
|
LIST := $(OBJDIR)/$(BINARY).list
|
||||||
|
BIN := $(BINARY).bin
|
||||||
|
HEX := $(BINARY).hex
|
||||||
|
|
||||||
|
all: bin list size
|
||||||
|
|
||||||
|
elf: $(ELF)
|
||||||
|
bin: $(BIN)
|
||||||
|
hex: $(HEX)
|
||||||
|
list: $(LIST)
|
||||||
|
|
||||||
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
|
-include $(DEPS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(OBJDIR):
|
||||||
|
mkdir $(OBJDIR)
|
||||||
|
|
||||||
|
$(STARTUP): $(INC_DIR)/startup/vector.c
|
||||||
|
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(VERSION_FILE): *.[ch]
|
||||||
|
[ -f $(VERSION_FILE) ] || echo -e "#define BUILD_NUMBER \"0\"\n#define BUILD_DATE \"none\"" > $(VERSION_FILE)
|
||||||
|
@echo " Generate version: $(NEXTVER) for date $(BUILDDATE)"
|
||||||
|
@sed -i "s/#define BUILD_NUMBER.*/#define BUILD_NUMBER \"$(NEXTVER)\"/" $(VERSION_FILE)
|
||||||
|
@sed -i "s/#define BUILD_DATE.*/#define BUILD_DATE \"$(BUILDDATE)\"/" $(VERSION_FILE)
|
||||||
|
|
||||||
|
# Uncomment and rename file, which includes version.inc
|
||||||
|
#$(OBJDIR)/proto.o: proto.c $(VERSION_FILE)
|
||||||
|
|
||||||
|
$(OBJDIR)/%.o: %.c
|
||||||
|
@echo " CC $<"
|
||||||
|
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
#$(OBJDIR)/%.d: %.c $(OBJDIR)
|
||||||
|
# $(CC) -MM -MG $< | sed -e 's,^\([^:]*\)\.o[ ]*:,$(@D)/\1.o $(@D)/\1.d:,' >$@
|
||||||
|
|
||||||
|
$(BIN): $(ELF)
|
||||||
|
@echo " OBJCOPY $(BIN)"
|
||||||
|
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
||||||
|
|
||||||
|
$(HEX): $(ELF)
|
||||||
|
@echo " OBJCOPY $(HEX)"
|
||||||
|
$(OBJCOPY) -Oihex $(ELF) $(HEX)
|
||||||
|
|
||||||
|
$(LIST): $(ELF)
|
||||||
|
@echo " OBJDUMP $(LIST)"
|
||||||
|
$(OBJDUMP) -S $(ELF) > $(LIST)
|
||||||
|
|
||||||
|
$(ELF): $(OBJDIR) $(OBJS)
|
||||||
|
@echo " LD $(ELF)"
|
||||||
|
$(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $(ELF)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@echo " CLEAN"
|
||||||
|
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map
|
||||||
|
@rmdir $(OBJDIR) 2>/dev/null || true
|
||||||
|
|
||||||
|
size: $(ELF)
|
||||||
|
$(SIZE) -Ax $(ELF)
|
||||||
|
|
||||||
|
flash: $(BIN)
|
||||||
|
@echo " FLASH $(BIN)"
|
||||||
|
$(STFLASH) write $(BIN) 0x8000000
|
||||||
|
|
||||||
|
boot: $(BIN)
|
||||||
|
@echo " LOAD $(BIN) through bootloader"
|
||||||
|
$(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN)
|
||||||
|
|
||||||
|
openocd:
|
||||||
|
openocd -f openocd.cfg
|
||||||
|
dbg:
|
||||||
|
arm-none-eabi-gdb $(ELF) -ex 'target extended-remote localhost:3333' -ex 'monitor reset halt'
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: clean flash boot size openocd dbg
|
||||||
Binary file not shown.
2
G0:G070/RTC/version.inc
Normal file
2
G0:G070/RTC/version.inc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define BUILD_NUMBER "1"
|
||||||
|
#define BUILD_DATE "2023-01-18"
|
||||||
@ -1,145 +1,9 @@
|
|||||||
BINARY = blink
|
BINARY := blink
|
||||||
BOOTPORT ?= /dev/ttyUSB0
|
|
||||||
BOOTSPEED ?= 115200
|
|
||||||
# MCU FAMILY
|
|
||||||
FAMILY = G0
|
|
||||||
# MCU code
|
# MCU code
|
||||||
MCU = G070xx
|
MCU := G070xx
|
||||||
#DEFS = -DEBUG -g3
|
|
||||||
# change this linking script depending on particular MCU model,
|
# change this linking script depending on particular MCU model,
|
||||||
# for example, if you have STM32F103VBT6, you should write:
|
LDSCRIPT := stm32g070xb.ld
|
||||||
LDSCRIPT = stm32g070xb.ld
|
|
||||||
|
|
||||||
INDEPENDENT_HEADERS=
|
include ../makefile.g0
|
||||||
|
include ../../makefile.stm32
|
||||||
|
|
||||||
FP_FLAGS ?= -msoft-float
|
|
||||||
ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus
|
|
||||||
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Executables
|
|
||||||
PREFIX ?= /opt/bin/arm-none-eabi
|
|
||||||
|
|
||||||
RM := rm -f
|
|
||||||
RMDIR := rmdir
|
|
||||||
SIZE := $(PREFIX)-size
|
|
||||||
CC := $(PREFIX)-gcc
|
|
||||||
LD := $(PREFIX)-gcc
|
|
||||||
AR := $(PREFIX)-ar
|
|
||||||
AS := $(PREFIX)-as
|
|
||||||
OBJCOPY := $(PREFIX)-objcopy
|
|
||||||
OBJDUMP := $(PREFIX)-objdump
|
|
||||||
GDB := $(PREFIX)-gdb
|
|
||||||
STFLASH := $(shell which st-flash)
|
|
||||||
STBOOT := $(shell which stm32flash)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Source files
|
|
||||||
OBJDIR = mk
|
|
||||||
LDSCRIPT ?= $(BINARY).ld
|
|
||||||
SRC := $(wildcard *.c)
|
|
||||||
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
|
||||||
STARTUP = $(OBJDIR)/startup.o
|
|
||||||
OBJS += $(STARTUP)
|
|
||||||
DEPS := $(OBJS:.o=.d)
|
|
||||||
|
|
||||||
INC_DIR ?= ../inc
|
|
||||||
|
|
||||||
INCLUDE := -I$(INC_DIR)/Fx -I$(INC_DIR)/cm
|
|
||||||
LIB_DIR := $(INC_DIR)/ld
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# C flags
|
|
||||||
CFLAGS += -O2 -MD -D__thumb2__=1
|
|
||||||
CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration
|
|
||||||
CFLAGS += -Wredundant-decls $(INCLUDE)
|
|
||||||
# -Wmissing-prototypes -Wstrict-prototypes
|
|
||||||
CFLAGS += -fno-common -ffunction-sections -fdata-sections -flto
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Linker flags
|
|
||||||
LDFLAGS += --static -nostartfiles --specs=nano.specs -flto
|
|
||||||
LDFLAGS += -L$(LIB_DIR)
|
|
||||||
LDFLAGS += -T$(LDSCRIPT)
|
|
||||||
LDFLAGS += -Wl,-Map=$(OBJDIR)/$(BINARY).map
|
|
||||||
LDFLAGS += -Wl,--gc-sections
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Used libraries
|
|
||||||
LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group
|
|
||||||
LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
|
||||||
|
|
||||||
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU)
|
|
||||||
|
|
||||||
#.SUFFIXES: .elf .bin .hex .srec .list .map .images
|
|
||||||
#.SECONDEXPANSION:
|
|
||||||
#.SECONDARY:
|
|
||||||
|
|
||||||
ELF := $(OBJDIR)/$(BINARY).elf
|
|
||||||
LIST := $(OBJDIR)/$(BINARY).list
|
|
||||||
BIN := $(BINARY).bin
|
|
||||||
HEX := $(BINARY).hex
|
|
||||||
|
|
||||||
all: bin list size
|
|
||||||
|
|
||||||
elf: $(ELF)
|
|
||||||
bin: $(BIN)
|
|
||||||
hex: $(HEX)
|
|
||||||
list: $(LIST)
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
|
||||||
-include $(DEPS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(OBJDIR):
|
|
||||||
mkdir $(OBJDIR)
|
|
||||||
|
|
||||||
$(STARTUP): $(INC_DIR)/startup/vector.c
|
|
||||||
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
$(OBJDIR)/%.o: %.c
|
|
||||||
@echo " CC $<"
|
|
||||||
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
#$(OBJDIR)/%.d: %.c $(OBJDIR)
|
|
||||||
# $(CC) -MM -MG $< | sed -e 's,^\([^:]*\)\.o[ ]*:,$(@D)/\1.o $(@D)/\1.d:,' >$@
|
|
||||||
|
|
||||||
$(BIN): $(ELF)
|
|
||||||
@echo " OBJCOPY $(BIN)"
|
|
||||||
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
|
||||||
|
|
||||||
$(HEX): $(ELF)
|
|
||||||
@echo " OBJCOPY $(HEX)"
|
|
||||||
$(OBJCOPY) -Oihex $(ELF) $(HEX)
|
|
||||||
|
|
||||||
$(LIST): $(ELF)
|
|
||||||
@echo " OBJDUMP $(LIST)"
|
|
||||||
$(OBJDUMP) -S $(ELF) > $(LIST)
|
|
||||||
|
|
||||||
$(ELF): $(OBJDIR) $(OBJS)
|
|
||||||
@echo " LD $(ELF)"
|
|
||||||
$(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $(ELF)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo " CLEAN"
|
|
||||||
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map
|
|
||||||
@rmdir $(OBJDIR) 2>/dev/null || true
|
|
||||||
|
|
||||||
size: $(ELF)
|
|
||||||
$(SIZE) -Ax $(ELF)
|
|
||||||
|
|
||||||
flash: $(BIN)
|
|
||||||
@echo " FLASH $(BIN)"
|
|
||||||
$(STFLASH) write $(BIN) 0x8000000
|
|
||||||
|
|
||||||
boot: $(BIN)
|
|
||||||
@echo " LOAD $(BIN) through bootloader"
|
|
||||||
$(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN)
|
|
||||||
|
|
||||||
openocd:
|
|
||||||
openocd -f openocd.cfg
|
|
||||||
dbg:
|
|
||||||
arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt'
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: clean flash boot size openocd dbg
|
|
||||||
|
|||||||
145
G0:G070/blink/Makefile.old
Normal file
145
G0:G070/blink/Makefile.old
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
BINARY = blink
|
||||||
|
BOOTPORT ?= /dev/ttyUSB0
|
||||||
|
BOOTSPEED ?= 115200
|
||||||
|
# MCU FAMILY
|
||||||
|
FAMILY = G0
|
||||||
|
# MCU code
|
||||||
|
MCU = G070xx
|
||||||
|
#DEFS = -DEBUG -g3
|
||||||
|
# change this linking script depending on particular MCU model,
|
||||||
|
# for example, if you have STM32F103VBT6, you should write:
|
||||||
|
LDSCRIPT = stm32g070xb.ld
|
||||||
|
|
||||||
|
INDEPENDENT_HEADERS=
|
||||||
|
|
||||||
|
FP_FLAGS ?= -msoft-float
|
||||||
|
ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus
|
||||||
|
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Executables
|
||||||
|
PREFIX ?= /opt/bin/arm-none-eabi
|
||||||
|
|
||||||
|
RM := rm -f
|
||||||
|
RMDIR := rmdir
|
||||||
|
SIZE := $(PREFIX)-size
|
||||||
|
CC := $(PREFIX)-gcc
|
||||||
|
LD := $(PREFIX)-gcc
|
||||||
|
AR := $(PREFIX)-ar
|
||||||
|
AS := $(PREFIX)-as
|
||||||
|
OBJCOPY := $(PREFIX)-objcopy
|
||||||
|
OBJDUMP := $(PREFIX)-objdump
|
||||||
|
GDB := $(PREFIX)-gdb
|
||||||
|
STFLASH := $(shell which st-flash)
|
||||||
|
STBOOT := $(shell which stm32flash)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Source files
|
||||||
|
OBJDIR = mk
|
||||||
|
LDSCRIPT ?= $(BINARY).ld
|
||||||
|
SRC := $(wildcard *.c)
|
||||||
|
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
||||||
|
STARTUP = $(OBJDIR)/startup.o
|
||||||
|
OBJS += $(STARTUP)
|
||||||
|
DEPS := $(OBJS:.o=.d)
|
||||||
|
|
||||||
|
INC_DIR ?= ../inc
|
||||||
|
|
||||||
|
INCLUDE := -I$(INC_DIR)/Fx -I$(INC_DIR)/cm
|
||||||
|
LIB_DIR := $(INC_DIR)/ld
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# C flags
|
||||||
|
CFLAGS += -O2 -MD -D__thumb2__=1
|
||||||
|
CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration
|
||||||
|
CFLAGS += -Wredundant-decls $(INCLUDE)
|
||||||
|
# -Wmissing-prototypes -Wstrict-prototypes
|
||||||
|
CFLAGS += -fno-common -ffunction-sections -fdata-sections -flto
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Linker flags
|
||||||
|
LDFLAGS += --static -nostartfiles --specs=nano.specs -flto
|
||||||
|
LDFLAGS += -L$(LIB_DIR)
|
||||||
|
LDFLAGS += -T$(LDSCRIPT)
|
||||||
|
LDFLAGS += -Wl,-Map=$(OBJDIR)/$(BINARY).map
|
||||||
|
LDFLAGS += -Wl,--gc-sections
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Used libraries
|
||||||
|
LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group
|
||||||
|
LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
||||||
|
|
||||||
|
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU)
|
||||||
|
|
||||||
|
#.SUFFIXES: .elf .bin .hex .srec .list .map .images
|
||||||
|
#.SECONDEXPANSION:
|
||||||
|
#.SECONDARY:
|
||||||
|
|
||||||
|
ELF := $(OBJDIR)/$(BINARY).elf
|
||||||
|
LIST := $(OBJDIR)/$(BINARY).list
|
||||||
|
BIN := $(BINARY).bin
|
||||||
|
HEX := $(BINARY).hex
|
||||||
|
|
||||||
|
all: bin list size
|
||||||
|
|
||||||
|
elf: $(ELF)
|
||||||
|
bin: $(BIN)
|
||||||
|
hex: $(HEX)
|
||||||
|
list: $(LIST)
|
||||||
|
|
||||||
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
|
-include $(DEPS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(OBJDIR):
|
||||||
|
mkdir $(OBJDIR)
|
||||||
|
|
||||||
|
$(STARTUP): $(INC_DIR)/startup/vector.c
|
||||||
|
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(OBJDIR)/%.o: %.c
|
||||||
|
@echo " CC $<"
|
||||||
|
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
#$(OBJDIR)/%.d: %.c $(OBJDIR)
|
||||||
|
# $(CC) -MM -MG $< | sed -e 's,^\([^:]*\)\.o[ ]*:,$(@D)/\1.o $(@D)/\1.d:,' >$@
|
||||||
|
|
||||||
|
$(BIN): $(ELF)
|
||||||
|
@echo " OBJCOPY $(BIN)"
|
||||||
|
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
||||||
|
|
||||||
|
$(HEX): $(ELF)
|
||||||
|
@echo " OBJCOPY $(HEX)"
|
||||||
|
$(OBJCOPY) -Oihex $(ELF) $(HEX)
|
||||||
|
|
||||||
|
$(LIST): $(ELF)
|
||||||
|
@echo " OBJDUMP $(LIST)"
|
||||||
|
$(OBJDUMP) -S $(ELF) > $(LIST)
|
||||||
|
|
||||||
|
$(ELF): $(OBJDIR) $(OBJS)
|
||||||
|
@echo " LD $(ELF)"
|
||||||
|
$(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $(ELF)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@echo " CLEAN"
|
||||||
|
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map
|
||||||
|
@rmdir $(OBJDIR) 2>/dev/null || true
|
||||||
|
|
||||||
|
size: $(ELF)
|
||||||
|
$(SIZE) -Ax $(ELF)
|
||||||
|
|
||||||
|
flash: $(BIN)
|
||||||
|
@echo " FLASH $(BIN)"
|
||||||
|
$(STFLASH) write $(BIN) 0x8000000
|
||||||
|
|
||||||
|
boot: $(BIN)
|
||||||
|
@echo " LOAD $(BIN) through bootloader"
|
||||||
|
$(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN)
|
||||||
|
|
||||||
|
openocd:
|
||||||
|
openocd -f openocd.cfg
|
||||||
|
dbg:
|
||||||
|
arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt'
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: clean flash boot size openocd dbg
|
||||||
@ -1,164 +1,9 @@
|
|||||||
BINARY = i2cscan
|
BINARY := rtc
|
||||||
BOOTPORT ?= /dev/ttyUSB0
|
|
||||||
BOOTSPEED ?= 115200
|
|
||||||
# MCU FAMILY
|
|
||||||
FAMILY = G0
|
|
||||||
# MCU code
|
# MCU code
|
||||||
MCU = G070xx
|
MCU := G070xx
|
||||||
#DEFS = -DEBUG -g3
|
|
||||||
# change this linking script depending on particular MCU model,
|
# change this linking script depending on particular MCU model,
|
||||||
# for example, if you have STM32F103VBT6, you should write:
|
LDSCRIPT := stm32g070xb.ld
|
||||||
LDSCRIPT = stm32g070xb.ld
|
|
||||||
|
|
||||||
INDEPENDENT_HEADERS=
|
include ../makefile.g0
|
||||||
|
include ../../makefile.stm32
|
||||||
|
|
||||||
FP_FLAGS ?= -msoft-float
|
|
||||||
ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus
|
|
||||||
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
|
||||||
|
|
||||||
# autoincremental version & build date
|
|
||||||
VERSION_FILE = version.inc
|
|
||||||
ifeq ($(shell test -e $(VERSION_FILE) && echo -n yes), yes)
|
|
||||||
NEXTVER := $(shell expr $$(awk '/#define BUILD_NUMBER/' $(VERSION_FILE) | tr -cd "[0-9]") + 1)
|
|
||||||
else
|
|
||||||
NEXTVER := "1"
|
|
||||||
endif
|
|
||||||
|
|
||||||
BUILDDATE := $(shell date +%Y-%m-%d)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Executables
|
|
||||||
PREFIX ?= /opt/bin/arm-none-eabi
|
|
||||||
|
|
||||||
RM := rm -f
|
|
||||||
RMDIR := rmdir
|
|
||||||
SIZE := $(PREFIX)-size
|
|
||||||
CC := $(PREFIX)-gcc
|
|
||||||
LD := $(PREFIX)-gcc
|
|
||||||
AR := $(PREFIX)-ar
|
|
||||||
AS := $(PREFIX)-as
|
|
||||||
OBJCOPY := $(PREFIX)-objcopy
|
|
||||||
OBJDUMP := $(PREFIX)-objdump
|
|
||||||
GDB := $(PREFIX)-gdb
|
|
||||||
STFLASH := $(shell which st-flash)
|
|
||||||
STBOOT := $(shell which stm32flash)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Source files
|
|
||||||
OBJDIR = mk
|
|
||||||
LDSCRIPT ?= $(BINARY).ld
|
|
||||||
SRC := $(wildcard *.c)
|
|
||||||
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
|
||||||
STARTUP = $(OBJDIR)/startup.o
|
|
||||||
OBJS += $(STARTUP)
|
|
||||||
DEPS := $(OBJS:.o=.d)
|
|
||||||
|
|
||||||
INC_DIR ?= ../inc
|
|
||||||
|
|
||||||
INCLUDE := -I$(INC_DIR)/Fx -I$(INC_DIR)/cm
|
|
||||||
LIB_DIR := $(INC_DIR)/ld
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# C flags
|
|
||||||
CFLAGS += -O2 -MD -D__thumb2__=1
|
|
||||||
CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration
|
|
||||||
CFLAGS += -Wredundant-decls $(INCLUDE)
|
|
||||||
# -Wmissing-prototypes -Wstrict-prototypes
|
|
||||||
CFLAGS += -fno-common -ffunction-sections -fdata-sections -flto
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Linker flags
|
|
||||||
LDFLAGS += --static -nostartfiles --specs=nano.specs -flto
|
|
||||||
LDFLAGS += -L$(LIB_DIR)
|
|
||||||
LDFLAGS += -T$(LDSCRIPT)
|
|
||||||
LDFLAGS += -Wl,-Map=$(OBJDIR)/$(BINARY).map
|
|
||||||
LDFLAGS += -Wl,--gc-sections
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Used libraries
|
|
||||||
LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group
|
|
||||||
LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
|
||||||
|
|
||||||
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU)
|
|
||||||
|
|
||||||
#.SUFFIXES: .elf .bin .hex .srec .list .map .images
|
|
||||||
#.SECONDEXPANSION:
|
|
||||||
#.SECONDARY:
|
|
||||||
|
|
||||||
ELF := $(OBJDIR)/$(BINARY).elf
|
|
||||||
LIST := $(OBJDIR)/$(BINARY).list
|
|
||||||
BIN := $(BINARY).bin
|
|
||||||
HEX := $(BINARY).hex
|
|
||||||
|
|
||||||
all: bin list size
|
|
||||||
|
|
||||||
elf: $(ELF)
|
|
||||||
bin: $(BIN)
|
|
||||||
hex: $(HEX)
|
|
||||||
list: $(LIST)
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
|
||||||
-include $(DEPS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(OBJDIR):
|
|
||||||
mkdir $(OBJDIR)
|
|
||||||
|
|
||||||
$(STARTUP): $(INC_DIR)/startup/vector.c
|
|
||||||
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
$(VERSION_FILE): *.[ch]
|
|
||||||
[ -f $(VERSION_FILE) ] || echo -e "#define BUILD_NUMBER \"0\"\n#define BUILD_DATE \"none\"" > $(VERSION_FILE)
|
|
||||||
@echo " Generate version: $(NEXTVER) for date $(BUILDDATE)"
|
|
||||||
@sed -i "s/#define BUILD_NUMBER.*/#define BUILD_NUMBER \"$(NEXTVER)\"/" $(VERSION_FILE)
|
|
||||||
@sed -i "s/#define BUILD_DATE.*/#define BUILD_DATE \"$(BUILDDATE)\"/" $(VERSION_FILE)
|
|
||||||
|
|
||||||
# Uncomment and rename file, which includes version.inc
|
|
||||||
#$(OBJDIR)/proto.o: proto.c $(VERSION_FILE)
|
|
||||||
|
|
||||||
$(OBJDIR)/%.o: %.c
|
|
||||||
@echo " CC $<"
|
|
||||||
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
#$(OBJDIR)/%.d: %.c $(OBJDIR)
|
|
||||||
# $(CC) -MM -MG $< | sed -e 's,^\([^:]*\)\.o[ ]*:,$(@D)/\1.o $(@D)/\1.d:,' >$@
|
|
||||||
|
|
||||||
$(BIN): $(ELF)
|
|
||||||
@echo " OBJCOPY $(BIN)"
|
|
||||||
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
|
||||||
|
|
||||||
$(HEX): $(ELF)
|
|
||||||
@echo " OBJCOPY $(HEX)"
|
|
||||||
$(OBJCOPY) -Oihex $(ELF) $(HEX)
|
|
||||||
|
|
||||||
$(LIST): $(ELF)
|
|
||||||
@echo " OBJDUMP $(LIST)"
|
|
||||||
$(OBJDUMP) -S $(ELF) > $(LIST)
|
|
||||||
|
|
||||||
$(ELF): $(OBJDIR) $(OBJS)
|
|
||||||
@echo " LD $(ELF)"
|
|
||||||
$(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $(ELF)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo " CLEAN"
|
|
||||||
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map
|
|
||||||
@rmdir $(OBJDIR) 2>/dev/null || true
|
|
||||||
|
|
||||||
size: $(ELF)
|
|
||||||
$(SIZE) -Ax $(ELF)
|
|
||||||
|
|
||||||
flash: $(BIN)
|
|
||||||
@echo " FLASH $(BIN)"
|
|
||||||
$(STFLASH) write $(BIN) 0x8000000
|
|
||||||
|
|
||||||
boot: $(BIN)
|
|
||||||
@echo " LOAD $(BIN) through bootloader"
|
|
||||||
$(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN)
|
|
||||||
|
|
||||||
openocd:
|
|
||||||
openocd -f openocd.cfg
|
|
||||||
dbg:
|
|
||||||
arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt'
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: clean flash boot size openocd dbg
|
|
||||||
|
|||||||
164
G0:G070/i2c/Makefile.old
Normal file
164
G0:G070/i2c/Makefile.old
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
BINARY = i2cscan
|
||||||
|
BOOTPORT ?= /dev/ttyUSB0
|
||||||
|
BOOTSPEED ?= 115200
|
||||||
|
# MCU FAMILY
|
||||||
|
FAMILY = G0
|
||||||
|
# MCU code
|
||||||
|
MCU = G070xx
|
||||||
|
#DEFS = -DEBUG -g3
|
||||||
|
# change this linking script depending on particular MCU model,
|
||||||
|
# for example, if you have STM32F103VBT6, you should write:
|
||||||
|
LDSCRIPT = stm32g070xb.ld
|
||||||
|
|
||||||
|
INDEPENDENT_HEADERS=
|
||||||
|
|
||||||
|
FP_FLAGS ?= -msoft-float
|
||||||
|
ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus
|
||||||
|
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
||||||
|
|
||||||
|
# autoincremental version & build date
|
||||||
|
VERSION_FILE = version.inc
|
||||||
|
ifeq ($(shell test -e $(VERSION_FILE) && echo -n yes), yes)
|
||||||
|
NEXTVER := $(shell expr $$(awk '/#define BUILD_NUMBER/' $(VERSION_FILE) | tr -cd "[0-9]") + 1)
|
||||||
|
else
|
||||||
|
NEXTVER := "1"
|
||||||
|
endif
|
||||||
|
|
||||||
|
BUILDDATE := $(shell date +%Y-%m-%d)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Executables
|
||||||
|
PREFIX ?= /opt/bin/arm-none-eabi
|
||||||
|
|
||||||
|
RM := rm -f
|
||||||
|
RMDIR := rmdir
|
||||||
|
SIZE := $(PREFIX)-size
|
||||||
|
CC := $(PREFIX)-gcc
|
||||||
|
LD := $(PREFIX)-gcc
|
||||||
|
AR := $(PREFIX)-ar
|
||||||
|
AS := $(PREFIX)-as
|
||||||
|
OBJCOPY := $(PREFIX)-objcopy
|
||||||
|
OBJDUMP := $(PREFIX)-objdump
|
||||||
|
GDB := $(PREFIX)-gdb
|
||||||
|
STFLASH := $(shell which st-flash)
|
||||||
|
STBOOT := $(shell which stm32flash)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Source files
|
||||||
|
OBJDIR = mk
|
||||||
|
LDSCRIPT ?= $(BINARY).ld
|
||||||
|
SRC := $(wildcard *.c)
|
||||||
|
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
||||||
|
STARTUP = $(OBJDIR)/startup.o
|
||||||
|
OBJS += $(STARTUP)
|
||||||
|
DEPS := $(OBJS:.o=.d)
|
||||||
|
|
||||||
|
INC_DIR ?= ../inc
|
||||||
|
|
||||||
|
INCLUDE := -I$(INC_DIR)/Fx -I$(INC_DIR)/cm
|
||||||
|
LIB_DIR := $(INC_DIR)/ld
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# C flags
|
||||||
|
CFLAGS += -O2 -MD -D__thumb2__=1
|
||||||
|
CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration
|
||||||
|
CFLAGS += -Wredundant-decls $(INCLUDE)
|
||||||
|
# -Wmissing-prototypes -Wstrict-prototypes
|
||||||
|
CFLAGS += -fno-common -ffunction-sections -fdata-sections -flto
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Linker flags
|
||||||
|
LDFLAGS += --static -nostartfiles --specs=nano.specs -flto
|
||||||
|
LDFLAGS += -L$(LIB_DIR)
|
||||||
|
LDFLAGS += -T$(LDSCRIPT)
|
||||||
|
LDFLAGS += -Wl,-Map=$(OBJDIR)/$(BINARY).map
|
||||||
|
LDFLAGS += -Wl,--gc-sections
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Used libraries
|
||||||
|
LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group
|
||||||
|
LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
||||||
|
|
||||||
|
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU)
|
||||||
|
|
||||||
|
#.SUFFIXES: .elf .bin .hex .srec .list .map .images
|
||||||
|
#.SECONDEXPANSION:
|
||||||
|
#.SECONDARY:
|
||||||
|
|
||||||
|
ELF := $(OBJDIR)/$(BINARY).elf
|
||||||
|
LIST := $(OBJDIR)/$(BINARY).list
|
||||||
|
BIN := $(BINARY).bin
|
||||||
|
HEX := $(BINARY).hex
|
||||||
|
|
||||||
|
all: bin list size
|
||||||
|
|
||||||
|
elf: $(ELF)
|
||||||
|
bin: $(BIN)
|
||||||
|
hex: $(HEX)
|
||||||
|
list: $(LIST)
|
||||||
|
|
||||||
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
|
-include $(DEPS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(OBJDIR):
|
||||||
|
mkdir $(OBJDIR)
|
||||||
|
|
||||||
|
$(STARTUP): $(INC_DIR)/startup/vector.c
|
||||||
|
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(VERSION_FILE): *.[ch]
|
||||||
|
[ -f $(VERSION_FILE) ] || echo -e "#define BUILD_NUMBER \"0\"\n#define BUILD_DATE \"none\"" > $(VERSION_FILE)
|
||||||
|
@echo " Generate version: $(NEXTVER) for date $(BUILDDATE)"
|
||||||
|
@sed -i "s/#define BUILD_NUMBER.*/#define BUILD_NUMBER \"$(NEXTVER)\"/" $(VERSION_FILE)
|
||||||
|
@sed -i "s/#define BUILD_DATE.*/#define BUILD_DATE \"$(BUILDDATE)\"/" $(VERSION_FILE)
|
||||||
|
|
||||||
|
# Uncomment and rename file, which includes version.inc
|
||||||
|
#$(OBJDIR)/proto.o: proto.c $(VERSION_FILE)
|
||||||
|
|
||||||
|
$(OBJDIR)/%.o: %.c
|
||||||
|
@echo " CC $<"
|
||||||
|
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
#$(OBJDIR)/%.d: %.c $(OBJDIR)
|
||||||
|
# $(CC) -MM -MG $< | sed -e 's,^\([^:]*\)\.o[ ]*:,$(@D)/\1.o $(@D)/\1.d:,' >$@
|
||||||
|
|
||||||
|
$(BIN): $(ELF)
|
||||||
|
@echo " OBJCOPY $(BIN)"
|
||||||
|
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
||||||
|
|
||||||
|
$(HEX): $(ELF)
|
||||||
|
@echo " OBJCOPY $(HEX)"
|
||||||
|
$(OBJCOPY) -Oihex $(ELF) $(HEX)
|
||||||
|
|
||||||
|
$(LIST): $(ELF)
|
||||||
|
@echo " OBJDUMP $(LIST)"
|
||||||
|
$(OBJDUMP) -S $(ELF) > $(LIST)
|
||||||
|
|
||||||
|
$(ELF): $(OBJDIR) $(OBJS)
|
||||||
|
@echo " LD $(ELF)"
|
||||||
|
$(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $(ELF)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@echo " CLEAN"
|
||||||
|
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map
|
||||||
|
@rmdir $(OBJDIR) 2>/dev/null || true
|
||||||
|
|
||||||
|
size: $(ELF)
|
||||||
|
$(SIZE) -Ax $(ELF)
|
||||||
|
|
||||||
|
flash: $(BIN)
|
||||||
|
@echo " FLASH $(BIN)"
|
||||||
|
$(STFLASH) write $(BIN) 0x8000000
|
||||||
|
|
||||||
|
boot: $(BIN)
|
||||||
|
@echo " LOAD $(BIN) through bootloader"
|
||||||
|
$(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN)
|
||||||
|
|
||||||
|
openocd:
|
||||||
|
openocd -f openocd.cfg
|
||||||
|
dbg:
|
||||||
|
arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt'
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: clean flash boot size openocd dbg
|
||||||
BIN
G0:G070/i2c/rtc.bin
Executable file
BIN
G0:G070/i2c/rtc.bin
Executable file
Binary file not shown.
2
G0:G070/i2c/version.inc
Normal file
2
G0:G070/i2c/version.inc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define BUILD_NUMBER "1"
|
||||||
|
#define BUILD_DATE "2023-01-18"
|
||||||
@ -62,9 +62,8 @@
|
|||||||
#define PLLR 2
|
#define PLLR 2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define WAITWHILE(x) do{StartUpCounter = 0; while((x) && (++StartUpCounter < 0xffffff)){nop();}}while(0)
|
#define WAITWHILE(x) do{register uint32_t StartUpCounter = 0; while((x) && (++StartUpCounter < 0xffffff)){nop();}}while(0)
|
||||||
TRUE_INLINE void StartHSEHSI(int isHSE){
|
TRUE_INLINE void StartHSEHSI(int isHSE){
|
||||||
uint32_t StartUpCounter;
|
|
||||||
RCC->CR &= ~RCC_CR_PLLON; // disable PLL
|
RCC->CR &= ~RCC_CR_PLLON; // disable PLL
|
||||||
WAITWHILE(RCC->CR & RCC_CR_PLLRDY); // wait while PLL on
|
WAITWHILE(RCC->CR & RCC_CR_PLLRDY); // wait while PLL on
|
||||||
if(isHSE){
|
if(isHSE){
|
||||||
|
|||||||
5
G0:G070/makefile.g0
Normal file
5
G0:G070/makefile.g0
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# common include for all F0 series
|
||||||
|
# MCU FAMILY
|
||||||
|
FAMILY ?= G0
|
||||||
|
FP_FLAGS ?= -msoft-float -fsingle-precision-constant -mlittle-endian
|
||||||
|
ASM_FLAGS ?= -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus
|
||||||
@ -1,164 +1,9 @@
|
|||||||
BINARY = usart
|
BINARY := usart
|
||||||
BOOTPORT ?= /dev/ttyUSB0
|
|
||||||
BOOTSPEED ?= 115200
|
|
||||||
# MCU FAMILY
|
|
||||||
FAMILY = G0
|
|
||||||
# MCU code
|
# MCU code
|
||||||
MCU = G070xx
|
MCU := G070xx
|
||||||
#DEFS = -DEBUG -g3
|
|
||||||
# change this linking script depending on particular MCU model,
|
# change this linking script depending on particular MCU model,
|
||||||
# for example, if you have STM32F103VBT6, you should write:
|
LDSCRIPT := stm32g070xb.ld
|
||||||
LDSCRIPT = stm32g070xb.ld
|
|
||||||
|
|
||||||
INDEPENDENT_HEADERS=
|
include ../makefile.g0
|
||||||
|
include ../../makefile.stm32
|
||||||
|
|
||||||
FP_FLAGS ?= -msoft-float
|
|
||||||
ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus
|
|
||||||
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
|
||||||
|
|
||||||
# autoincremental version & build date
|
|
||||||
VERSION_FILE = version.inc
|
|
||||||
ifeq ($(shell test -e $(VERSION_FILE) && echo -n yes), yes)
|
|
||||||
NEXTVER := $(shell expr $$(awk '/#define BUILD_NUMBER/' $(VERSION_FILE) | tr -cd "[0-9]") + 1)
|
|
||||||
else
|
|
||||||
NEXTVER := "1"
|
|
||||||
endif
|
|
||||||
|
|
||||||
BUILDDATE := $(shell date +%Y-%m-%d)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Executables
|
|
||||||
PREFIX ?= /opt/bin/arm-none-eabi
|
|
||||||
|
|
||||||
RM := rm -f
|
|
||||||
RMDIR := rmdir
|
|
||||||
SIZE := $(PREFIX)-size
|
|
||||||
CC := $(PREFIX)-gcc
|
|
||||||
LD := $(PREFIX)-gcc
|
|
||||||
AR := $(PREFIX)-ar
|
|
||||||
AS := $(PREFIX)-as
|
|
||||||
OBJCOPY := $(PREFIX)-objcopy
|
|
||||||
OBJDUMP := $(PREFIX)-objdump
|
|
||||||
GDB := $(PREFIX)-gdb
|
|
||||||
STFLASH := $(shell which st-flash)
|
|
||||||
STBOOT := $(shell which stm32flash)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Source files
|
|
||||||
OBJDIR = mk
|
|
||||||
LDSCRIPT ?= $(BINARY).ld
|
|
||||||
SRC := $(wildcard *.c)
|
|
||||||
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
|
||||||
STARTUP = $(OBJDIR)/startup.o
|
|
||||||
OBJS += $(STARTUP)
|
|
||||||
DEPS := $(OBJS:.o=.d)
|
|
||||||
|
|
||||||
INC_DIR ?= ../inc
|
|
||||||
|
|
||||||
INCLUDE := -I$(INC_DIR)/Fx -I$(INC_DIR)/cm
|
|
||||||
LIB_DIR := $(INC_DIR)/ld
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# C flags
|
|
||||||
CFLAGS += -O2 -MD -D__thumb2__=1
|
|
||||||
CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration
|
|
||||||
CFLAGS += -Wredundant-decls $(INCLUDE)
|
|
||||||
# -Wmissing-prototypes -Wstrict-prototypes
|
|
||||||
CFLAGS += -fno-common -ffunction-sections -fdata-sections -flto
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Linker flags
|
|
||||||
LDFLAGS += --static -nostartfiles --specs=nano.specs -flto
|
|
||||||
LDFLAGS += -L$(LIB_DIR)
|
|
||||||
LDFLAGS += -T$(LDSCRIPT)
|
|
||||||
LDFLAGS += -Wl,-Map=$(OBJDIR)/$(BINARY).map
|
|
||||||
LDFLAGS += -Wl,--gc-sections
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Used libraries
|
|
||||||
LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group
|
|
||||||
LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
|
||||||
|
|
||||||
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU)
|
|
||||||
|
|
||||||
#.SUFFIXES: .elf .bin .hex .srec .list .map .images
|
|
||||||
#.SECONDEXPANSION:
|
|
||||||
#.SECONDARY:
|
|
||||||
|
|
||||||
ELF := $(OBJDIR)/$(BINARY).elf
|
|
||||||
LIST := $(OBJDIR)/$(BINARY).list
|
|
||||||
BIN := $(BINARY).bin
|
|
||||||
HEX := $(BINARY).hex
|
|
||||||
|
|
||||||
all: bin list size
|
|
||||||
|
|
||||||
elf: $(ELF)
|
|
||||||
bin: $(BIN)
|
|
||||||
hex: $(HEX)
|
|
||||||
list: $(LIST)
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
|
||||||
-include $(DEPS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(OBJDIR):
|
|
||||||
mkdir $(OBJDIR)
|
|
||||||
|
|
||||||
$(STARTUP): $(INC_DIR)/startup/vector.c
|
|
||||||
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
$(VERSION_FILE): *.[ch]
|
|
||||||
[ -f $(VERSION_FILE) ] || echo -e "#define BUILD_NUMBER \"0\"\n#define BUILD_DATE \"none\"" > $(VERSION_FILE)
|
|
||||||
@echo " Generate version: $(NEXTVER) for date $(BUILDDATE)"
|
|
||||||
@sed -i "s/#define BUILD_NUMBER.*/#define BUILD_NUMBER \"$(NEXTVER)\"/" $(VERSION_FILE)
|
|
||||||
@sed -i "s/#define BUILD_DATE.*/#define BUILD_DATE \"$(BUILDDATE)\"/" $(VERSION_FILE)
|
|
||||||
|
|
||||||
# Uncomment and rename file, which includes version.inc
|
|
||||||
#$(OBJDIR)/proto.o: proto.c $(VERSION_FILE)
|
|
||||||
|
|
||||||
$(OBJDIR)/%.o: %.c
|
|
||||||
@echo " CC $<"
|
|
||||||
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
|
||||||
|
|
||||||
#$(OBJDIR)/%.d: %.c $(OBJDIR)
|
|
||||||
# $(CC) -MM -MG $< | sed -e 's,^\([^:]*\)\.o[ ]*:,$(@D)/\1.o $(@D)/\1.d:,' >$@
|
|
||||||
|
|
||||||
$(BIN): $(ELF)
|
|
||||||
@echo " OBJCOPY $(BIN)"
|
|
||||||
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
|
||||||
|
|
||||||
$(HEX): $(ELF)
|
|
||||||
@echo " OBJCOPY $(HEX)"
|
|
||||||
$(OBJCOPY) -Oihex $(ELF) $(HEX)
|
|
||||||
|
|
||||||
$(LIST): $(ELF)
|
|
||||||
@echo " OBJDUMP $(LIST)"
|
|
||||||
$(OBJDUMP) -S $(ELF) > $(LIST)
|
|
||||||
|
|
||||||
$(ELF): $(OBJDIR) $(OBJS)
|
|
||||||
@echo " LD $(ELF)"
|
|
||||||
$(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $(ELF)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo " CLEAN"
|
|
||||||
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map
|
|
||||||
@rmdir $(OBJDIR) 2>/dev/null || true
|
|
||||||
|
|
||||||
size: $(ELF)
|
|
||||||
$(SIZE) -Ax $(ELF)
|
|
||||||
|
|
||||||
flash: $(BIN)
|
|
||||||
@echo " FLASH $(BIN)"
|
|
||||||
$(STFLASH) write $(BIN) 0x8000000
|
|
||||||
|
|
||||||
boot: $(BIN)
|
|
||||||
@echo " LOAD $(BIN) through bootloader"
|
|
||||||
$(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN)
|
|
||||||
|
|
||||||
openocd:
|
|
||||||
openocd -f openocd.cfg
|
|
||||||
dbg:
|
|
||||||
arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt'
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: clean flash boot size openocd dbg
|
|
||||||
|
|||||||
164
G0:G070/usart/Makefile.old
Normal file
164
G0:G070/usart/Makefile.old
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
BINARY = usart
|
||||||
|
BOOTPORT ?= /dev/ttyUSB0
|
||||||
|
BOOTSPEED ?= 115200
|
||||||
|
# MCU FAMILY
|
||||||
|
FAMILY = G0
|
||||||
|
# MCU code
|
||||||
|
MCU = G070xx
|
||||||
|
#DEFS = -DEBUG -g3
|
||||||
|
# change this linking script depending on particular MCU model,
|
||||||
|
# for example, if you have STM32F103VBT6, you should write:
|
||||||
|
LDSCRIPT = stm32g070xb.ld
|
||||||
|
|
||||||
|
INDEPENDENT_HEADERS=
|
||||||
|
|
||||||
|
FP_FLAGS ?= -msoft-float
|
||||||
|
ASM_FLAGS = -mthumb -mcpu=cortex-m0plus -march=armv6-m -mtune=cortex-m0plus
|
||||||
|
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
||||||
|
|
||||||
|
# autoincremental version & build date
|
||||||
|
VERSION_FILE = version.inc
|
||||||
|
ifeq ($(shell test -e $(VERSION_FILE) && echo -n yes), yes)
|
||||||
|
NEXTVER := $(shell expr $$(awk '/#define BUILD_NUMBER/' $(VERSION_FILE) | tr -cd "[0-9]") + 1)
|
||||||
|
else
|
||||||
|
NEXTVER := "1"
|
||||||
|
endif
|
||||||
|
|
||||||
|
BUILDDATE := $(shell date +%Y-%m-%d)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Executables
|
||||||
|
PREFIX ?= /opt/bin/arm-none-eabi
|
||||||
|
|
||||||
|
RM := rm -f
|
||||||
|
RMDIR := rmdir
|
||||||
|
SIZE := $(PREFIX)-size
|
||||||
|
CC := $(PREFIX)-gcc
|
||||||
|
LD := $(PREFIX)-gcc
|
||||||
|
AR := $(PREFIX)-ar
|
||||||
|
AS := $(PREFIX)-as
|
||||||
|
OBJCOPY := $(PREFIX)-objcopy
|
||||||
|
OBJDUMP := $(PREFIX)-objdump
|
||||||
|
GDB := $(PREFIX)-gdb
|
||||||
|
STFLASH := $(shell which st-flash)
|
||||||
|
STBOOT := $(shell which stm32flash)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Source files
|
||||||
|
OBJDIR = mk
|
||||||
|
LDSCRIPT ?= $(BINARY).ld
|
||||||
|
SRC := $(wildcard *.c)
|
||||||
|
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
||||||
|
STARTUP = $(OBJDIR)/startup.o
|
||||||
|
OBJS += $(STARTUP)
|
||||||
|
DEPS := $(OBJS:.o=.d)
|
||||||
|
|
||||||
|
INC_DIR ?= ../inc
|
||||||
|
|
||||||
|
INCLUDE := -I$(INC_DIR)/Fx -I$(INC_DIR)/cm
|
||||||
|
LIB_DIR := $(INC_DIR)/ld
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# C flags
|
||||||
|
CFLAGS += -O2 -MD -D__thumb2__=1
|
||||||
|
CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration
|
||||||
|
CFLAGS += -Wredundant-decls $(INCLUDE)
|
||||||
|
# -Wmissing-prototypes -Wstrict-prototypes
|
||||||
|
CFLAGS += -fno-common -ffunction-sections -fdata-sections -flto
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Linker flags
|
||||||
|
LDFLAGS += --static -nostartfiles --specs=nano.specs -flto
|
||||||
|
LDFLAGS += -L$(LIB_DIR)
|
||||||
|
LDFLAGS += -T$(LDSCRIPT)
|
||||||
|
LDFLAGS += -Wl,-Map=$(OBJDIR)/$(BINARY).map
|
||||||
|
LDFLAGS += -Wl,--gc-sections
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Used libraries
|
||||||
|
LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group
|
||||||
|
LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
||||||
|
|
||||||
|
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU)
|
||||||
|
|
||||||
|
#.SUFFIXES: .elf .bin .hex .srec .list .map .images
|
||||||
|
#.SECONDEXPANSION:
|
||||||
|
#.SECONDARY:
|
||||||
|
|
||||||
|
ELF := $(OBJDIR)/$(BINARY).elf
|
||||||
|
LIST := $(OBJDIR)/$(BINARY).list
|
||||||
|
BIN := $(BINARY).bin
|
||||||
|
HEX := $(BINARY).hex
|
||||||
|
|
||||||
|
all: bin list size
|
||||||
|
|
||||||
|
elf: $(ELF)
|
||||||
|
bin: $(BIN)
|
||||||
|
hex: $(HEX)
|
||||||
|
list: $(LIST)
|
||||||
|
|
||||||
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
|
-include $(DEPS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(OBJDIR):
|
||||||
|
mkdir $(OBJDIR)
|
||||||
|
|
||||||
|
$(STARTUP): $(INC_DIR)/startup/vector.c
|
||||||
|
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
$(VERSION_FILE): *.[ch]
|
||||||
|
[ -f $(VERSION_FILE) ] || echo -e "#define BUILD_NUMBER \"0\"\n#define BUILD_DATE \"none\"" > $(VERSION_FILE)
|
||||||
|
@echo " Generate version: $(NEXTVER) for date $(BUILDDATE)"
|
||||||
|
@sed -i "s/#define BUILD_NUMBER.*/#define BUILD_NUMBER \"$(NEXTVER)\"/" $(VERSION_FILE)
|
||||||
|
@sed -i "s/#define BUILD_DATE.*/#define BUILD_DATE \"$(BUILDDATE)\"/" $(VERSION_FILE)
|
||||||
|
|
||||||
|
# Uncomment and rename file, which includes version.inc
|
||||||
|
#$(OBJDIR)/proto.o: proto.c $(VERSION_FILE)
|
||||||
|
|
||||||
|
$(OBJDIR)/%.o: %.c
|
||||||
|
@echo " CC $<"
|
||||||
|
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
#$(OBJDIR)/%.d: %.c $(OBJDIR)
|
||||||
|
# $(CC) -MM -MG $< | sed -e 's,^\([^:]*\)\.o[ ]*:,$(@D)/\1.o $(@D)/\1.d:,' >$@
|
||||||
|
|
||||||
|
$(BIN): $(ELF)
|
||||||
|
@echo " OBJCOPY $(BIN)"
|
||||||
|
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
||||||
|
|
||||||
|
$(HEX): $(ELF)
|
||||||
|
@echo " OBJCOPY $(HEX)"
|
||||||
|
$(OBJCOPY) -Oihex $(ELF) $(HEX)
|
||||||
|
|
||||||
|
$(LIST): $(ELF)
|
||||||
|
@echo " OBJDUMP $(LIST)"
|
||||||
|
$(OBJDUMP) -S $(ELF) > $(LIST)
|
||||||
|
|
||||||
|
$(ELF): $(OBJDIR) $(OBJS)
|
||||||
|
@echo " LD $(ELF)"
|
||||||
|
$(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $(ELF)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@echo " CLEAN"
|
||||||
|
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map
|
||||||
|
@rmdir $(OBJDIR) 2>/dev/null || true
|
||||||
|
|
||||||
|
size: $(ELF)
|
||||||
|
$(SIZE) -Ax $(ELF)
|
||||||
|
|
||||||
|
flash: $(BIN)
|
||||||
|
@echo " FLASH $(BIN)"
|
||||||
|
$(STFLASH) write $(BIN) 0x8000000
|
||||||
|
|
||||||
|
boot: $(BIN)
|
||||||
|
@echo " LOAD $(BIN) through bootloader"
|
||||||
|
$(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN)
|
||||||
|
|
||||||
|
openocd:
|
||||||
|
openocd -f openocd.cfg
|
||||||
|
dbg:
|
||||||
|
arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt'
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: clean flash boot size openocd dbg
|
||||||
Loading…
x
Reference in New Issue
Block a user