I'm porting Motion Driver to STM32F429-Discovery
I'm using gcc-arm-none-eabi-4_9-2015q3 from launchpad
gcc reported :
arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-wf_sqrt.o): In function sqrtf':
wf_sqrt.c:(.text.sqrtf+0x76): undefined reference to__aeabi_d2f'
but I tried use sqrt(20.0f) it worked. Don't know why the use in DMP (it seems to be usage in mlmath.c) failed to build.
my options for gcc
CC := "$(GCC_ROOT)bin/$(GNU_PREFIX)-gcc"
LD := "$(GCC_ROOT)bin/$(GNU_PREFIX)-gcc"
# for semihosting, should be replaced for production build
CFLAGS += -specs=rdimon.specs
LDFLAGS += -lrdimonCFLAGS += -O0 -g
CFLAGS += -std=gnu99
CFLAGS += -Wall -Werror
CFLAGS += -Wdouble-promotion
CFLAGS += -mcpu=cortex-m4 -mfpu=fpv4-sp-d16
CFLAGS += -mlittle-endian -mthumb -mabi=aapcs -mfloat-abi=hard -fsingle-precision-constant
CFLAGS += -mthumb-interwork
CFLAGS += $(patsubst %,-I%, $(SEARCH_PATH))
ASFLAGS += -Wa,-D
ASFLAGS += $(CFLAGS)
LDFLAGS += $(patsubst %,-L%, $(LIBRARY_PATH))
LDFLAGS += $(patsubst %,-l%, $(LD_LIBRARIES))
LDFLAGS += -T$(LINKER_SCRIPT)
LDFLAGS += -Wl,-Map,$(OUTPUT_DIR)/output.map
# LDFLAGS += -nostartfiles -lgcc -nodefaultlibs -nostdlib
# LDFLAGS += -lc #-L$(GCC_ROOT)arm-none-eabi/lib/fpu -lc
# LDFLAGS += -lgcc #-L$(GCC_ROOT)lib/gcc/arm-none-eabi/4.9.3/fpu -lgcc
# LDFLAGS += -Wl,--verbose
# LDFLAGS += -flto # link time optimization
LDFLAGS += -lgcc
LDFLAGS += -lm -lc
LDFLAGS += $(CFLAGS)