diff --git a/arch/arm/src/armv7-a/arm_copyarmstate.c b/arch/arm/src/armv7-a/arm_copyarmstate.c index 20f1934efff..9c8a7797afa 100644 --- a/arch/arm/src/armv7-a/arm_copyarmstate.c +++ b/arch/arm/src/armv7-a/arm_copyarmstate.c @@ -76,7 +76,7 @@ void up_copyarmstate(uint32_t *dest, uint32_t *src) { int i; - /* In the Cortex-M3 model, the state is copied from the stack to the TCB, + /* In the Cortex-M model, the state is copied from the stack to the TCB, * but only a reference is passed to get the state from the TCB. So the * following check avoids copying the TCB save area onto itself: */ diff --git a/arch/arm/src/common/up_internal.h b/arch/arm/src/common/up_internal.h index 2f20524b5d5..6523f57d30d 100644 --- a/arch/arm/src/common/up_internal.h +++ b/arch/arm/src/common/up_internal.h @@ -124,10 +124,11 @@ /* If the floating point unit is present and enabled, then save the * floating point registers as well as normal ARM registers. This only * applies if "lazy" floating point register save/restore is used - * (i.e., not CONFIG_ARMV7M_CMNVECTOR). + * (i.e., not CONFIG_ARMV7M_CMNVECTOR=y with CONFIG_ARMV7M_LAZYFPU=n). */ -# if defined(CONFIG_ARCH_FPU) && !defined(CONFIG_ARMV7M_CMNVECTOR) +# if defined(CONFIG_ARCH_FPU) && (!defined(CONFIG_ARMV7M_CMNVECTOR) || \ + defined(CONFIG_ARMV7M_LAZYFPU)) # define up_savestate(regs) up_copyarmstate(regs, (uint32_t*)current_regs) # else # define up_savestate(regs) up_copyfullstate(regs, (uint32_t*)current_regs) diff --git a/arch/arm/src/efm32/Make.defs b/arch/arm/src/efm32/Make.defs index bdac6fc2343..e40e240d79c 100644 --- a/arch/arm/src/efm32/Make.defs +++ b/arch/arm/src/efm32/Make.defs @@ -87,6 +87,8 @@ ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) CMN_CSRCS += up_copyarmstate.c +else ifeq ($(CONFIG_ARMV7M_LAZYFPU),y) +CMN_CSRCS += up_copyarmstate.c endif endif diff --git a/arch/arm/src/lpc17xx/Make.defs b/arch/arm/src/lpc17xx/Make.defs index 3157b846bac..daf388a1172 100644 --- a/arch/arm/src/lpc17xx/Make.defs +++ b/arch/arm/src/lpc17xx/Make.defs @@ -100,6 +100,8 @@ ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) CMN_CSRCS += up_copyarmstate.c +else ifeq ($(CONFIG_ARMV7M_LAZYFPU),y) +CMN_CSRCS += up_copyarmstate.c endif endif diff --git a/arch/arm/src/lpc43xx/Make.defs b/arch/arm/src/lpc43xx/Make.defs index dda686e7397..6e0d907e661 100644 --- a/arch/arm/src/lpc43xx/Make.defs +++ b/arch/arm/src/lpc43xx/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/lpc43xx/Make.defs # -# Copyright (C) 2012-2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2012-2015 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -84,6 +84,8 @@ ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) CMN_CSRCS += up_copyarmstate.c +else ifeq ($(CONFIG_ARMV7M_LAZYFPU),y) +CMN_CSRCS += up_copyarmstate.c endif endif diff --git a/arch/arm/src/sam34/Make.defs b/arch/arm/src/sam34/Make.defs index 2e8a03d93aa..551a5cdd682 100644 --- a/arch/arm/src/sam34/Make.defs +++ b/arch/arm/src/sam34/Make.defs @@ -91,6 +91,8 @@ ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) CMN_CSRCS += up_copyarmstate.c +else ifeq ($(CONFIG_ARMV7M_LAZYFPU),y) +CMN_CSRCS += up_copyarmstate.c endif endif diff --git a/arch/arm/src/samv7/Make.defs b/arch/arm/src/samv7/Make.defs index a6c7a6a9595..5545c86c65f 100644 --- a/arch/arm/src/samv7/Make.defs +++ b/arch/arm/src/samv7/Make.defs @@ -77,6 +77,8 @@ ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) CMN_CSRCS += up_copyarmstate.c +else ifeq ($(CONFIG_ARMV7M_LAZYFPU),y) +CMN_CSRCS += up_copyarmstate.c endif endif diff --git a/arch/arm/src/stm32/Make.defs b/arch/arm/src/stm32/Make.defs index 8f4e473f7a2..2bff63515ad 100644 --- a/arch/arm/src/stm32/Make.defs +++ b/arch/arm/src/stm32/Make.defs @@ -95,6 +95,8 @@ ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) CMN_CSRCS += up_copyarmstate.c +else ifeq ($(CONFIG_ARMV7M_LAZYFPU),y) +CMN_CSRCS += up_copyarmstate.c endif endif diff --git a/arch/arm/src/stm32f7/Make.defs b/arch/arm/src/stm32f7/Make.defs index d6b4e369e23..1fa9d5de13e 100644 --- a/arch/arm/src/stm32f7/Make.defs +++ b/arch/arm/src/stm32f7/Make.defs @@ -77,6 +77,8 @@ ifeq ($(CONFIG_ARCH_FPU),y) CMN_ASRCS += up_fpu.S ifneq ($(CONFIG_ARMV7M_CMNVECTOR),y) CMN_CSRCS += up_copyarmstate.c +else ifeq ($(CONFIG_ARMV7M_LAZYFPU),y) +CMN_CSRCS += up_copyarmstate.c endif endif