Globally configurable stack checks, R10 is always fixed

This commit is contained in:
Pavel Kirienko 2015-01-18 16:09:46 +03:00 committed by Lorenz Meier
parent c9eae96cf6
commit 2ebd7099de
3 changed files with 13 additions and 12 deletions

View File

@ -80,20 +80,18 @@ ARCHCPUFLAGS_CORTEXM3 = -mcpu=cortex-m3 \
-march=armv7-m \
-mfloat-abi=soft
ARCHINSTRUMENTATIONDEFINES_CORTEXM4F = -ffixed-r10
ARCHINSTRUMENTATIONDEFINES_CORTEXM4 = -ffixed-r10
ARCHINSTRUMENTATIONDEFINES_CORTEXM3 =
# Enabling stack checks if requested
#
ENABLE_STACK_CHECKS ?= 0
ifneq ($(ENABLE_STACK_CHECKS),0)
$(info Stack checks enabled)
ARCHINSTRUMENTATIONDEFINES_CORTEXM4F += -finstrument-functions
ARCHINSTRUMENTATIONDEFINES_CORTEXM4 += -finstrument-functions
ARCHINSTRUMENTATIONDEFINES_CORTEXM3 +=
ARCHINSTRUMENTATIONDEFINES_CORTEXM4F = -finstrument-functions -ffixed-r10
ARCHINSTRUMENTATIONDEFINES_CORTEXM4 = -finstrument-functions -ffixed-r10
ARCHINSTRUMENTATIONDEFINES_CORTEXM3 =
else
ARCHINSTRUMENTATIONDEFINES_CORTEXM4F = -ffixed-r10
ARCHINSTRUMENTATIONDEFINES_CORTEXM4 = -ffixed-r10
ARCHINSTRUMENTATIONDEFINES_CORTEXM3 =
endif
# Pick the right set of flags for the architecture.

View File

@ -62,8 +62,14 @@ ARCHCPUFLAGS = -mcpu=cortex-m4 \
# enable precise stack overflow tracking
ENABLE_STACK_CHECKS ?= 0
ifneq ($(ENABLE_STACK_CHECKS),0)
$(info Stack checks enabled)
INSTRUMENTATIONDEFINES = -finstrument-functions \
-ffixed-r10
else
INSTRUMENTATIONDEFINES = -ffixed-r10
endif
# pull in *just* libm from the toolchain ... this is grody
LIBM = "${shell $(CC) $(ARCHCPUFLAGS) -print-file-name=libm.a}"

View File

@ -40,9 +40,6 @@ MODULE_COMMAND = uavcan
MAXOPTIMIZATION = -O3
# Instrumentation makes the CPU load about 3 times higher, see https://github.com/PX4/Firmware/issues/1417
INSTRUMENTATIONDEFINES += -fno-instrument-functions
# Main
SRCS += uavcan_main.cpp \
uavcan_clock.cpp \