From 559434afcae38ce02f476b53f022f8a95b04784f Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Wed, 31 Aug 2016 13:37:43 -0700 Subject: [PATCH] atmel-samd: Support floats. --- atmel-samd/Makefile | 27 ++++++++++++++++++++++++--- atmel-samd/mpconfigport.h | 2 +- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/atmel-samd/Makefile b/atmel-samd/Makefile index 9e02d7f73e..f57f837cfe 100644 --- a/atmel-samd/Makefile +++ b/atmel-samd/Makefile @@ -71,7 +71,27 @@ INC += -Iboards/$(BOARD)/ INC += -I$(BUILD) ifeq ($(CROSS), 1) -CFLAGS_CORTEX_M0 = -mthumb -mabi=aapcs-linux -mcpu=cortex-m0plus -fsingle-precision-constant -Wdouble-promotion -D__SAMD21G18A__ -DUSB_DEVICE_PRODUCT_ID=0x024D -DUSB_DEVICE_VENDOR_ID=0x4123 -DBOARD=USER_BOARD -ffunction-sections -fdata-sections -fshort-enums -D ARM_MATH_CM0PLUS=true -DSYSTICK_MODE -DEXTINT_CALLBACK_MODE=true -DUDD_ENABLE -DUSART_CALLBACK_MODE=true -DUSB_DEVICE_LPM_SUPPORT +CFLAGS_CORTEX_M0 = \ + -mthumb \ + -mabi=aapcs-linux \ + -mcpu=cortex-m0plus \ + -msoft-float \ + -mfloat-abi=soft \ + -fsingle-precision-constant \ + -Wdouble-promotion \ + -D__SAMD21G18A__ \ + -DUSB_DEVICE_PRODUCT_ID=0x024D \ + -DUSB_DEVICE_VENDOR_ID=0x4123 \ + -DBOARD=USER_BOARD \ + -ffunction-sections \ + -fdata-sections \ + -fshort-enums \ + -D ARM_MATH_CM0PLUS=true \ + -DSYSTICK_MODE \ + -DEXTINT_CALLBACK_MODE=true \ + -DUDD_ENABLE \ + -DUSART_CALLBACK_MODE=true \ + -DUSB_DEVICE_LPM_SUPPORT CFLAGS = $(INC) -Wall -Werror -ansi -std=gnu99 -nostdlib $(CFLAGS_CORTEX_M0) $(COPT) else CFLAGS = -m32 $(INC) -Wall -Werror -ansi -std=gnu99 $(COPT) @@ -87,8 +107,9 @@ endif LIBS = ifeq ($(CROSS), 1) LIBGCC_FILE_NAME = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) -LDFLAGS = -Lasf/thirdparty/CMSIS/Lib/GCC/ -L $(dir $(LIBGCC_FILE_NAME)) -nostdlib -T $(LD_FILE) -Map=$@.map --cref --gc-sections -LIBS += -larm_cortexM0l_math -lgcc +LIBM_FILE_NAME = $(shell $(CC) $(CFLAGS) -print-file-name=libm.a) +LDFLAGS = -Lasf/thirdparty/CMSIS/Lib/GCC/ -L $(dir $(LIBGCC_FILE_NAME)) -L $(dir $(LIBM_FILE_NAME)) -nostdlib -T $(LD_FILE) -Map=$@.map --cref --gc-sections +LIBS += -larm_cortexM0l_math -lm -lgcc -lc else LD = gcc LDFLAGS = -m32 -Wl,-Map=$@.map,--cref diff --git a/atmel-samd/mpconfigport.h b/atmel-samd/mpconfigport.h index 4142767e2e..c4a0199be9 100644 --- a/atmel-samd/mpconfigport.h +++ b/atmel-samd/mpconfigport.h @@ -51,7 +51,7 @@ #define MICROPY_MODULE_FROZEN_MPY (1) #define MICROPY_CPYTHON_COMPAT (0) #define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE) -#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE) +#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT) #define MICROPY_PY_MACHINE (1) #define MICROPY_MODULE_WEAK_LINKS (1)