mirror of
https://github.com/eddyem/stm32samples.git
synced 2025-12-06 18:55:13 +03:00
fix Makefile
This commit is contained in:
parent
4defefb860
commit
e9c8e716a1
@ -22,7 +22,6 @@ ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# Executables
|
# Executables
|
||||||
OPREFIX ?= /opt/bin/arm-none-eabi
|
OPREFIX ?= /opt/bin/arm-none-eabi
|
||||||
#PREFIX ?= /usr/x86_64-pc-linux-gnu/arm-none-eabi/gcc-bin/7.3.0/arm-none-eabi
|
|
||||||
PREFIX ?= $(OPREFIX)
|
PREFIX ?= $(OPREFIX)
|
||||||
|
|
||||||
RM := rm -f
|
RM := rm -f
|
||||||
|
|||||||
@ -5,28 +5,28 @@ BOOTSPEED ?= 115200
|
|||||||
FAMILY ?= F1
|
FAMILY ?= F1
|
||||||
# MCU code
|
# MCU code
|
||||||
MCU ?= F103xB
|
MCU ?= F103xB
|
||||||
#density (stm32f10x.h, lines 70-84)
|
# density (stm32f10x.h, lines 70-84)
|
||||||
DENSITY ?= MD
|
DENSITY ?= MD
|
||||||
DEFS = -DEBUG
|
|
||||||
# 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 ?= ld/stm32f103xB.ld
|
LDSCRIPT ?= ld/stm32f103xB.ld
|
||||||
#LDSCRIPT = STM32F103C8.ld
|
# debug
|
||||||
|
DEFS = -DEBUG
|
||||||
|
|
||||||
INDEPENDENT_HEADERS=
|
INDEPENDENT_HEADERS=
|
||||||
|
|
||||||
FP_FLAGS ?= -msoft-float
|
FP_FLAGS ?= -msoft-float
|
||||||
ASM_FLAGS ?= -mthumb -mcpu=cortex-m3
|
ASM_FLAGS ?= -mthumb -mcpu=cortex-m3
|
||||||
#-mfix-cortex-m3-ldrd
|
|
||||||
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Executables
|
# Executables
|
||||||
PREFIX ?= arm-none-eabi
|
#PREFIX ?= arm-none-eabi
|
||||||
|
# gcc from arm web site
|
||||||
|
PREFIX ?= /opt/bin/arm-none-eabi
|
||||||
RM := rm -f
|
RM := rm -f
|
||||||
RMDIR := rmdir
|
RMDIR := rmdir
|
||||||
CC := $(PREFIX)-gcc
|
CC := $(PREFIX)-gcc
|
||||||
|
# don't replace ld with gcc: the binary size would be much greater!!
|
||||||
LD := $(PREFIX)-ld
|
LD := $(PREFIX)-ld
|
||||||
AR := $(PREFIX)-ar
|
AR := $(PREFIX)-ar
|
||||||
AS := $(PREFIX)-as
|
AS := $(PREFIX)-as
|
||||||
@ -36,15 +36,16 @@ OBJDUMP := $(PREFIX)-objdump
|
|||||||
GDB := $(PREFIX)-gdb
|
GDB := $(PREFIX)-gdb
|
||||||
STFLASH := $(shell which st-flash)
|
STFLASH := $(shell which st-flash)
|
||||||
STBOOT := $(shell which stm32flash)
|
STBOOT := $(shell which stm32flash)
|
||||||
|
DFUUTIL := $(shell which dfu-util)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Source files
|
# Source files
|
||||||
OBJDIR = mk
|
OBJDIR = mk
|
||||||
LDSCRIPT ?= $(BINARY).ld
|
|
||||||
SRC := $(wildcard *.c)
|
SRC := $(wildcard *.c)
|
||||||
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o))
|
||||||
STARTUP = $(OBJDIR)/startup.o
|
STARTUP = $(OBJDIR)/startup.o
|
||||||
OBJS += $(STARTUP)
|
OBJS += $(STARTUP)
|
||||||
|
# dependencies: we need them to recompile files if their headers-dependencies changed
|
||||||
DEPS := $(OBJS:.o=.d)
|
DEPS := $(OBJS:.o=.d)
|
||||||
|
|
||||||
INC_DIR ?= ../inc
|
INC_DIR ?= ../inc
|
||||||
@ -54,35 +55,22 @@ LIB_DIR := $(INC_DIR)/ld
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# C flags
|
# C flags
|
||||||
CFLAGS += -O0 -g
|
CFLAGS += -O2 -g -D__thumb2__=1 -MD
|
||||||
# -MD -D__thumb2__=1
|
CFLAGS += -Wall -Werror -Wextra -Wshadow
|
||||||
#CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration
|
CFLAGS += -fno-common -ffunction-sections -fdata-sections
|
||||||
#CFLAGS += -Wredundant-decls
|
|
||||||
# -Wmissing-prototypes -Wstrict-prototypes
|
|
||||||
CFLAGS += -fno-common
|
|
||||||
#-ffunction-sections -fdata-sections
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Linker flags
|
# Linker flags
|
||||||
LDFLAGS += -nostartfiles
|
LDFLAGS += -nostartfiles --static
|
||||||
# --static
|
|
||||||
#--specs=nano.specs
|
|
||||||
LDFLAGS += -L$(LIB_DIR)
|
LDFLAGS += -L$(LIB_DIR)
|
||||||
LDFLAGS += -T$(LDSCRIPT)
|
LDFLAGS += -T$(LDSCRIPT)
|
||||||
#LDFLAGS += -Wl,-Map=$(OBJDIR)/$(BINARY).map
|
|
||||||
#LDFLAGS += -Wl,--gc-sections
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Used libraries
|
# Used libraries
|
||||||
#LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group
|
LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
||||||
#LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
|
||||||
|
|
||||||
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU) -DSTM32F10X_$(DENSITY)
|
DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU) -DSTM32F10X_$(DENSITY)
|
||||||
|
|
||||||
#.SUFFIXES: .elf .bin .hex .srec .list .map .images
|
|
||||||
#.SECONDEXPANSION:
|
|
||||||
#.SECONDARY:
|
|
||||||
|
|
||||||
ELF := $(OBJDIR)/$(BINARY).elf
|
ELF := $(OBJDIR)/$(BINARY).elf
|
||||||
LIST := $(OBJDIR)/$(BINARY).list
|
LIST := $(OBJDIR)/$(BINARY).list
|
||||||
BIN := $(BINARY).bin
|
BIN := $(BINARY).bin
|
||||||
@ -109,9 +97,6 @@ $(OBJDIR)/%.o: %.c
|
|||||||
@echo " CC $<"
|
@echo " CC $<"
|
||||||
$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $<
|
$(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)
|
$(BIN): $(ELF)
|
||||||
@echo " OBJCOPY $(BIN)"
|
@echo " OBJCOPY $(BIN)"
|
||||||
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
$(OBJCOPY) -Obinary $(ELF) $(BIN)
|
||||||
@ -133,7 +118,7 @@ size: $(ELF)
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
@echo " CLEAN"
|
@echo " CLEAN"
|
||||||
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST) $(OBJDIR)/*.map
|
$(RM) $(OBJS) $(DEPS) $(ELF) $(HEX) $(LIST)
|
||||||
@rmdir $(OBJDIR) 2>/dev/null || true
|
@rmdir $(OBJDIR) 2>/dev/null || true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -29,7 +29,7 @@ void sys_tick_handler(void){
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SysTick is 24 bit counter, so 16777215 - max value!!!
|
// SysTick is 24 bit counter, so 16777215 - max value!!!
|
||||||
// After HSE is ON it works @9MHz (????)
|
// After HSE is ON it works @72MHz (or remove SysTick_CTRL_CLKSOURCE_Msk @ SysTick_Config for 8MHz)
|
||||||
static void systick_setup(uint32_t xms){
|
static void systick_setup(uint32_t xms){
|
||||||
static uint32_t curms = 0;
|
static uint32_t curms = 0;
|
||||||
if(curms == xms) return;
|
if(curms == xms) return;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user