есть такой файл (гдето на хабре нарыл как настроить сублимтекст под сборку и там был проэкт)
собирает но размер 0 по всем частям
# ************************* START USER DEFINED SECTION ************************
TARGET = STM32F1-hal
BINARY = main
LDSCRIPT = STM32F10X_MD_VL.ld
LDSCRIPT = STM32F103C8T6_libopencm3.ld
LIBNAME = opencm3_stm32f1
DEF = STM32F1
#DEF += ARM_MATH_CM4
SRCDIR = src
SRCDIR += libopencm3/include
INCDIR = libopencm3/include
LIBDIR = libopencm3/lib
LIB =
LINKED_OBJ = libopencm3/lib/libopencm3_stm32f1.a
#FLASHER = jlink
#FLASHER = openocd
FLASHER = ST-LINK_CLI
JLINK_PARAM = -device STM32F100RB
JLINK_PARAM += -speed auto
OPENOCD_PARAM = -c "source [find interface/stlink-v1.cfg]"
OPENOCD_PARAM += -c "transport select hla_swd"
OPENOCD_PARAM += -c "source [find target/stm32f1x.cfg]"
OS = Windows
#OUTPUT = silent
# ************************** END USER DEFINED SECTION *************************
CC = arm-none-eabi-gcc
CPP = arm-none-eabi-g++
AS = arm-none-eabi-gcc
LD = arm-none-eabi-gcc
OBJCOPY = arm-none-eabi-objcopy
OBJDUMP = arm-none-eabi-objdump
SIZE = arm-none-eabi-size --format=sysv
INCDIR = $(addprefix -I,$(SRCDIR))
OBJDIR = out/obj
BINDIR = out/bin
LSTDIR = out/lst
ELF = $(BINDIR)/$(TARGET).elf
HEX = $(BINDIR)/$(TARGET).hex
BIN = $(BINDIR)/$(TARGET).bin
MAP = $(LSTDIR)/$(TARGET).map
LSS = $(LSTDIR)/$(TARGET).lss
CSRC = $(wildcard $(addsuffix /*.c,$(SRCDIR)))
CPPSRC = $(wildcard $(addsuffix /*.cpp,$(SRCDIR)))
ASRC = $(wildcard $(addsuffix /*.s,$(SRCDIR)))
OBJS = $(addprefix $(OBJDIR)/,$(notdir $(CSRC:.c=.o) $(CPPSRC:.cpp=.o) $(ASRC:.s=.o)))
DEF := $(addprefix -D,$(DEF))
LIB := $(addprefix -l,$(LIB))
CFLAGS = $(DEF)
CFLAGS += $(INCDIR)
CFLAGS += -mcpu=cortex-m3
CFLAGS += -mthumb
CFLAGS += -Wa,-adhlns=$(addprefix $(LSTDIR)/, $(notdir $(addsuffix .lst,$(basename $<))))
CFLAGS += -MD
CFLAGS += -O0
CFLAGS += -std=gnu99
CFLAGS += -g -gdwarf-2
#CFLAGS += -pipe
CFLAGS += -ffunction-sections -fdata-sections
CFLAGS += -Wall -Wextra -Wundef -Wcast-align -Winline
#CFLAGS += -mfpu=fpv4-sp-d16
#CFLAGS += -mfloat-abi=hard
CPPFLAGS = $(CFLAGS)
CPPFLAGS += -fno-exceptions
CPPFLAGS += -fno-rtti
CPPFLAGS += -funsigned-bitfields
CPPFLAGS += -fshort-enums
AFLAGS = $(CFLAGS)
AFLAGS += -x assembler-with-cpp
LDFLAGS = -T$(LDSCRIPT)
LDFLAGS += -L$(LIBDIR)
LDFLAGS += -mcpu=cortex-m3
LDFLAGS += -mthumb
LDFLAGS += -Wl,-Map="$(MAP)",--cref
LDFLAGS += -Wl,--gc-sections
#LDFLAGS += -Wl,--start-group
#LDFLAGS += -Wl,-lnosys
LDFLAGS += -nostartfiles
LDFLAGS += -Wl,--start-group $(LIB) -Wl,--end-group
OPENOCD_PARAM_DEBUG = $(OPENOCD_PARAM)
OPENOCD_PARAM_DEBUG += -c "gdb_port 3333"
OPENOCD_PARAM_DEBUG += -c "debug_level 2"
OPENOCD_PARAM_DEBUG += -c "set WORKAREASIZE 0x2000"
OPENOCD_PARAM_DEBUG += -c "reset_config srst_only"
vpath %.c $(SRCDIR)
vpath %.cpp $(SRCDIR)
vpath %.s $(SRCDIR)
ifeq ($(OUTPUT),silent)
.SILENT :
endif
.PHONY: all erase flash reset debug clean dirs
all:
@echo - building $(TARGET)...
$(MAKE) clean
$(MAKE) dirs
$(MAKE) $(ELF)
$(MAKE) $(HEX)
$(MAKE) $(BIN)
$(MAKE) $(LSS)
$(SIZE) $(ELF)
@echo "Errors: none"
clean:
@echo - cleaning $(OBJDIR), $(LSTDIR), $(BINDIR)...
ifeq ($(OS),Windows)
($(OBJDIR):&(rd /s /q "$(OBJDIR)" 2> NUL))&
($(LSTDIR):&(rd /s /q "$(LSTDIR)" 2> NUL))&
($(BINDIR):&(rd /s /q "$(BINDIR)" 2> NUL))&
endif
ifeq ($(OS),Linux)
-@rm -rf $(OBJDIR)
-@rm -rf $(LSTDIR)
-@rm -rf $(BINDIR)
endif
dirs:
@echo - making dirs $(OBJDIR), $(LSTDIR), $(BINDIR)...
ifeq ($(OS),Windows)
($(OBJDIR):&(mkdir "$(OBJDIR)" 2> NUL))&
($(LSTDIR):&(mkdir "$(LSTDIR)" 2> NUL))&
($(BINDIR):&(mkdir "$(BINDIR)" 2> NUL))&
endif
ifeq ($(OS),Linux)
-@mkdir -p $(OBJDIR)
-@mkdir -p $(LSTDIR)
-@mkdir -p $(BINDIR)
endif
erase:
@echo - erasing memory with $(FLASHER)...
ifeq ($(FLASHER),jlink)
@echo erase>script.jlink
@echo q>>script.jlink
$(FLASHER) -if swd $(JLINK_PARAM) -CommanderScript script.jlink
endif
ifeq ($(FLASHER),ST-LINK_CLI)
$(FLASHER) -c swd -me
endif
flash:
@echo - programming with $(FLASHER)...
ifeq ($(FLASHER),openocd)
$(FLASHER) -c program $(ELF) -c verify_image $(ELF) -c reset run -c exit
endif
ifeq ($(FLASHER),ST-LINK_CLI)
$(FLASHER) -c swd -me -p $(HEX) -v -rst -run
endif
ifeq ($(FLASHER),jlink)
@echo r>script.jlink
@echo loadbin $(BIN), 0 >>script.jlink
@echo r>>script.jlink
@echo q>>script.jlink
$(FLASHER) -if swd $(JLINK_PARAM) -CommanderScript script.jlink
endif
reset:
@echo - resetting device...
ifeq ($(FLASHER),openocd)
$(FLASHER) -c reset run -c shutdown -c exit
endif
ifeq ($(FLASHER),ST-LINK_CLI)
$(FLASHER) -Rst
endif
ifeq ($(FLASHER),jlink)
@echo r>script.jlink
@echo q>>script.jlink
$(FLASHER) -if swd $(JLINK_PARAM) -CommanderScript script.jlink
endif
debug:
ifeq ($(FLASHER),openocd)
@echo - openocd server is running...
$(FLASHER) $(OPENOCD_PARAM_DEBUG)
endif
$(ELF): $(OBJS) $(LINKED_OBJ)
@echo - linking...
$(LD) $(LDFLAGS) $^ -o $@
$(HEX): $(ELF)
@echo - making hex from $<...
$(OBJCOPY) -O ihex $< $@
$(BIN): $(ELF)
@echo - making bin from $<...
$(OBJCOPY) -O binary $< $@
$(LSS): $(ELF)
@echo - disassembling $<...
$(OBJDUMP) -dC $< >> $@
$(OBJDIR)/%.o: %.c
@echo - compiling $<...
$(CC) $(CFLAGS) -c $< -o $@
$(OBJDIR)/%.o: %.cpp
@echo - compiling $<...
$(CPP) $(CPPFLAGS) -c $< -o $@
$(OBJDIR)/%.o: %.s
@echo - compiling $<...
$(AS) $(AFLAGS) -c $< -o $@