git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/stable_16.1.x@9884 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
Giovanni Di Sirio 2016-10-27 14:25:31 +00:00
parent 345382ecdb
commit fdf2d7dfdc
4 changed files with 48 additions and 36 deletions

View File

@ -89,8 +89,8 @@ else
ACSRC += $(CSRC) ACSRC += $(CSRC)
ACPPSRC += $(CPPSRC) ACPPSRC += $(CPPSRC)
endif endif
ASRC = $(ACSRC)$(ACPPSRC) ASRC = $(ACSRC) $(ACPPSRC)
TSRC = $(TCSRC)$(TCPPSRC) TSRC = $(TCSRC) $(TCPPSRC)
SRCPATHS = $(sort $(dir $(ASMXSRC)) $(dir $(ASMSRC)) $(dir $(ASRC)) $(dir $(TSRC))) SRCPATHS = $(sort $(dir $(ASMXSRC)) $(dir $(ASMSRC)) $(dir $(ASRC)) $(dir $(TSRC)))
# Various directories # Various directories
@ -124,24 +124,27 @@ ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.s=.lst)) $(ADEFS)
ASXFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.S=.lst)) $(ADEFS) ASXFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.S=.lst)) $(ADEFS)
CFLAGS = $(MCFLAGS) $(OPT) $(COPT) $(CWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.c=.lst)) $(DEFS) CFLAGS = $(MCFLAGS) $(OPT) $(COPT) $(CWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.c=.lst)) $(DEFS)
CPPFLAGS = $(MCFLAGS) $(OPT) $(CPPOPT) $(CPPWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.cpp=.lst)) $(DEFS) CPPFLAGS = $(MCFLAGS) $(OPT) $(CPPOPT) $(CPPWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.cpp=.lst)) $(DEFS)
LDFLAGS = $(MCFLAGS) $(OPT) -nostartfiles $(LLIBDIR) -Wl,-Map=$(BUILDDIR)/$(PROJECT).map,--cref,--no-warn-mismatch,--library-path=$(RULESPATH),--script=$(LDSCRIPT)$(LDOPT) LDFLAGS = $(MCFLAGS) $(OPT) -nostartfiles $(LLIBDIR) -Wl,-Map=$(BUILDDIR)/$(PROJECT).map,--cref,--no-warn-mismatch,--library-path=$(RULESPATH)/ld,--script=$(LDSCRIPT)$(LDOPT)
# Thumb interwork enabled only if needed because it kills performance. # Thumb interwork enabled only if needed because it kills performance.
ifneq ($(TSRC),) ifneq ($(strip $(TSRC)),)
CFLAGS += -DTHUMB_PRESENT CFLAGS += -DTHUMB_PRESENT
CPPFLAGS += -DTHUMB_PRESENT CPPFLAGS += -DTHUMB_PRESENT
ASFLAGS += -DTHUMB_PRESENT ASFLAGS += -DTHUMB_PRESENT
ifneq ($(ASRC),) ASXFLAGS += -DTHUMB_PRESENT
ifneq ($(strip $(ASRC)),)
# Mixed ARM and THUMB mode. # Mixed ARM and THUMB mode.
CFLAGS += -mthumb-interwork CFLAGS += -mthumb-interwork
CPPFLAGS += -mthumb-interwork CPPFLAGS += -mthumb-interwork
ASFLAGS += -mthumb-interwork ASFLAGS += -mthumb-interwork
ASXFLAGS += -mthumb-interwork
LDFLAGS += -mthumb-interwork LDFLAGS += -mthumb-interwork
else else
# Pure THUMB mode, THUMB C code cannot be called by ARM asm code directly. # Pure THUMB mode, THUMB C code cannot be called by ARM asm code directly.
CFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING CFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING
CPPFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING CPPFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING
ASFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb ASFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb
ASXFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb
LDFLAGS += -mno-thumb-interwork -mthumb LDFLAGS += -mno-thumb-interwork -mthumb
endif endif
else else
@ -149,11 +152,13 @@ else
CFLAGS += -mno-thumb-interwork CFLAGS += -mno-thumb-interwork
CPPFLAGS += -mno-thumb-interwork CPPFLAGS += -mno-thumb-interwork
ASFLAGS += -mno-thumb-interwork ASFLAGS += -mno-thumb-interwork
ASXFLAGS += -mno-thumb-interwork
LDFLAGS += -mno-thumb-interwork LDFLAGS += -mno-thumb-interwork
endif endif
# Generate dependency information # Generate dependency information
ASFLAGS += -MD -MP -MF .dep/$(@F).d ASFLAGS += -MD -MP -MF .dep/$(@F).d
ASXFLAGS += -MD -MP -MF .dep/$(@F).d
CFLAGS += -MD -MP -MF .dep/$(@F).d CFLAGS += -MD -MP -MF .dep/$(@F).d
CPPFLAGS += -MD -MP -MF .dep/$(@F).d CPPFLAGS += -MD -MP -MF .dep/$(@F).d

View File

@ -5,13 +5,13 @@
# #
# Compiler options # Compiler options
OPT = $(USE_OPT) OPT := $(USE_OPT)
COPT = $(USE_COPT) COPT := $(USE_COPT)
CPPOPT = $(USE_CPPOPT) CPPOPT := $(USE_CPPOPT)
# Garbage collection # Garbage collection
ifeq ($(USE_LINK_GC),yes) ifeq ($(USE_LINK_GC),yes)
OPT += -ffunction-sections -fdata-sections -fno-common OPT += -ffunction-sections -fdata-sections -fno-common
LDOPT := ,--gc-sections LDOPT := ,--gc-sections
else else
LDOPT := LDOPT :=
@ -61,11 +61,11 @@ endif
ifeq ($(BUILDDIR),.) ifeq ($(BUILDDIR),.)
BUILDDIR = build BUILDDIR = build
endif endif
OUTFILES = $(BUILDDIR)/$(PROJECT).elf \ OUTFILES := $(BUILDDIR)/$(PROJECT).elf \
$(BUILDDIR)/$(PROJECT).hex \ $(BUILDDIR)/$(PROJECT).hex \
$(BUILDDIR)/$(PROJECT).bin \ $(BUILDDIR)/$(PROJECT).bin \
$(BUILDDIR)/$(PROJECT).dmp \ $(BUILDDIR)/$(PROJECT).dmp \
$(BUILDDIR)/$(PROJECT).list $(BUILDDIR)/$(PROJECT).list
ifdef SREC ifdef SREC
OUTFILES += $(BUILDDIR)/$(PROJECT).srec OUTFILES += $(BUILDDIR)/$(PROJECT).srec
@ -73,42 +73,42 @@ endif
# Source files groups and paths # Source files groups and paths
ifeq ($(USE_THUMB),yes) ifeq ($(USE_THUMB),yes)
TCSRC += $(CSRC) TCSRC += $(CSRC)
TCPPSRC += $(CPPSRC) TCPPSRC += $(CPPSRC)
else else
ACSRC += $(CSRC) ACSRC += $(CSRC)
ACPPSRC += $(CPPSRC) ACPPSRC += $(CPPSRC)
endif endif
ASRC = $(ACSRC)$(ACPPSRC) ASRC := $(ACSRC) $(ACPPSRC)
TSRC = $(TCSRC)$(TCPPSRC) TSRC := $(TCSRC) $(TCPPSRC)
SRCPATHS = $(sort $(dir $(ASMXSRC)) $(dir $(ASMSRC)) $(dir $(ASRC)) $(dir $(TSRC))) SRCPATHS := $(sort $(dir $(ASMXSRC)) $(dir $(ASMSRC)) $(dir $(ASRC)) $(dir $(TSRC)))
# Various directories # Various directories
OBJDIR = $(BUILDDIR)/obj OBJDIR := $(BUILDDIR)/obj
LSTDIR = $(BUILDDIR)/lst LSTDIR := $(BUILDDIR)/lst
# Object files groups # Object files groups
ACOBJS = $(addprefix $(OBJDIR)/, $(notdir $(ACSRC:.c=.o))) ACOBJS := $(addprefix $(OBJDIR)/, $(notdir $(ACSRC:.c=.o)))
ACPPOBJS = $(addprefix $(OBJDIR)/, $(notdir $(ACPPSRC:.cpp=.o))) ACPPOBJS := $(addprefix $(OBJDIR)/, $(notdir $(ACPPSRC:.cpp=.o)))
TCOBJS = $(addprefix $(OBJDIR)/, $(notdir $(TCSRC:.c=.o))) TCOBJS := $(addprefix $(OBJDIR)/, $(notdir $(TCSRC:.c=.o)))
TCPPOBJS = $(addprefix $(OBJDIR)/, $(notdir $(TCPPSRC:.cpp=.o))) TCPPOBJS := $(addprefix $(OBJDIR)/, $(notdir $(TCPPSRC:.cpp=.o)))
ASMOBJS = $(addprefix $(OBJDIR)/, $(notdir $(ASMSRC:.s=.o))) ASMOBJS := $(addprefix $(OBJDIR)/, $(notdir $(ASMSRC:.s=.o)))
ASMXOBJS = $(addprefix $(OBJDIR)/, $(notdir $(ASMXSRC:.S=.o))) ASMXOBJS := $(addprefix $(OBJDIR)/, $(notdir $(ASMXSRC:.S=.o)))
OBJS = $(ASMXOBJS) $(ASMOBJS) $(ACOBJS) $(TCOBJS) $(ACPPOBJS) $(TCPPOBJS) OBJS := $(ASMXOBJS) $(ASMOBJS) $(ACOBJS) $(TCOBJS) $(ACPPOBJS) $(TCPPOBJS)
# Paths # Paths
IINCDIR = $(patsubst %,-I%,$(INCDIR) $(DINCDIR) $(UINCDIR)) IINCDIR := $(patsubst %,-I%,$(INCDIR) $(DINCDIR) $(UINCDIR))
LLIBDIR = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR)) LLIBDIR := $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR))
# Macros # Macros
DEFS = $(DDEFS) $(UDEFS) DEFS := $(DDEFS) $(UDEFS)
ADEFS = $(DADEFS) $(UADEFS) ADEFS := $(DADEFS) $(UADEFS)
# Libs # Libs
LIBS = $(DLIBS) $(ULIBS) LIBS := $(DLIBS) $(ULIBS)
# Various settings # Various settings
MCFLAGS = -mcpu=$(MCU) MCFLAGS := -mcpu=$(MCU)
ODFLAGS = -x --syms ODFLAGS = -x --syms
ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.s=.lst)) $(ADEFS) ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.s=.lst)) $(ADEFS)
ASXFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.S=.lst)) $(ADEFS) ASXFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.S=.lst)) $(ADEFS)
@ -117,21 +117,24 @@ CPPFLAGS = $(MCFLAGS) $(OPT) $(CPPOPT) $(CPPWARN) -Wa,-alms=$(LSTDIR)/$(notdir
LDFLAGS = $(MCFLAGS) $(OPT) -nostartfiles $(LLIBDIR) -Wl,-Map=$(BUILDDIR)/$(PROJECT).map,--cref,--no-warn-mismatch,--library-path=$(RULESPATH),--script=$(LDSCRIPT)$(LDOPT) LDFLAGS = $(MCFLAGS) $(OPT) -nostartfiles $(LLIBDIR) -Wl,-Map=$(BUILDDIR)/$(PROJECT).map,--cref,--no-warn-mismatch,--library-path=$(RULESPATH),--script=$(LDSCRIPT)$(LDOPT)
# Thumb interwork enabled only if needed because it kills performance. # Thumb interwork enabled only if needed because it kills performance.
ifneq ($(TSRC),) ifneq ($(strip $(TSRC)),)
CFLAGS += -DTHUMB_PRESENT CFLAGS += -DTHUMB_PRESENT
CPPFLAGS += -DTHUMB_PRESENT CPPFLAGS += -DTHUMB_PRESENT
ASFLAGS += -DTHUMB_PRESENT ASFLAGS += -DTHUMB_PRESENT
ifneq ($(ASRC),) ASXFLAGS += -DTHUMB_PRESENT
ifneq ($(strip $(ASRC)),)
# Mixed ARM and THUMB mode. # Mixed ARM and THUMB mode.
CFLAGS += -mthumb-interwork CFLAGS += -mthumb-interwork
CPPFLAGS += -mthumb-interwork CPPFLAGS += -mthumb-interwork
ASFLAGS += -mthumb-interwork ASFLAGS += -mthumb-interwork
ASXFLAGS += -mthumb-interwork
LDFLAGS += -mthumb-interwork LDFLAGS += -mthumb-interwork
else else
# Pure THUMB mode, THUMB C code cannot be called by ARM asm code directly. # Pure THUMB mode, THUMB C code cannot be called by ARM asm code directly.
CFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING CFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING
CPPFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING CPPFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING
ASFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb ASFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb
ASXFLAGS += -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb
LDFLAGS += -mno-thumb-interwork -mthumb LDFLAGS += -mno-thumb-interwork -mthumb
endif endif
else else
@ -139,11 +142,13 @@ else
CFLAGS += -mno-thumb-interwork CFLAGS += -mno-thumb-interwork
CPPFLAGS += -mno-thumb-interwork CPPFLAGS += -mno-thumb-interwork
ASFLAGS += -mno-thumb-interwork ASFLAGS += -mno-thumb-interwork
ASXFLAGS += -mno-thumb-interwork
LDFLAGS += -mno-thumb-interwork LDFLAGS += -mno-thumb-interwork
endif endif
# Generate dependency information # Generate dependency information
ASFLAGS += -MD -MP -MF .dep/$(@F).d ASFLAGS += -MD -MP -MF .dep/$(@F).d
ASXFLAGS += -MD -MP -MF .dep/$(@F).d
CFLAGS += -MD -MP -MF .dep/$(@F).d CFLAGS += -MD -MP -MF .dep/$(@F).d
CPPFLAGS += -MD -MP -MF .dep/$(@F).d CPPFLAGS += -MD -MP -MF .dep/$(@F).d

View File

@ -100,6 +100,7 @@ LDFLAGS = $(MCFLAGS) $(OPT) -nostartfiles $(LLIBDIR) -Wl,-Map=$(BUILDDIR)/$(PR
# Generate dependency information # Generate dependency information
ASFLAGS += -MD -MP -MF .dep/$(@F).d ASFLAGS += -MD -MP -MF .dep/$(@F).d
ASXFLAGS += -MD -MP -MF .dep/$(@F).d
CFLAGS += -MD -MP -MF .dep/$(@F).d CFLAGS += -MD -MP -MF .dep/$(@F).d
CPPFLAGS += -MD -MP -MF .dep/$(@F).d CPPFLAGS += -MD -MP -MF .dep/$(@F).d

View File

@ -73,6 +73,7 @@
***************************************************************************** *****************************************************************************
*** 16.1.6 *** *** 16.1.6 ***
- HAL: Fixed Makefile dependencies not generated for .S files (bug #787).
- HAL: Fixed OTGv1 driver not functional on STM32L4 (bug #786). - HAL: Fixed OTGv1 driver not functional on STM32L4 (bug #786).
- HAL: Fixed wrong bit offset in STM32F37x ADC_CR2_EXTSEL_SRC() macro - HAL: Fixed wrong bit offset in STM32F37x ADC_CR2_EXTSEL_SRC() macro
(bug #785). (bug #785).