arch/arm/src/armv7-m: Add ARMv7-M setjmp/longjump functions.
This commit is contained in:
parent
ec5120f69e
commit
ced0dc1e16
34
Kconfig
34
Kconfig
@ -425,11 +425,11 @@ config ARCH_STDARG_H
|
|||||||
bool "stdarg.h"
|
bool "stdarg.h"
|
||||||
default n
|
default n
|
||||||
---help---
|
---help---
|
||||||
There is also a redirecting version of stdarg.h in the source tree
|
There is a redirecting version of stdarg.h in the source tree. It
|
||||||
as well. It also resides out-of-the-way at include/nuttx/lib/stdarg.h.
|
resides out-of-the-way at include/nuttx/lib/stdarg.h. This is
|
||||||
This is because you should normally use your toolchain's stdarg.h
|
because you should normally use your toolchain's stdarg.h file. But
|
||||||
file. But sometimes, your toolchain's stdarg.h file may have other
|
sometimes, your toolchain's stdarg.h file may have other header
|
||||||
header file dependencies and so may not be usable in the NuttX build
|
file dependencies and so may not be usable in the NuttX build
|
||||||
environment. In those cases, you may have to create a architecture-
|
environment. In those cases, you may have to create a architecture-
|
||||||
specific stdarg.h header file at nuttx/arch/<architecture>/include/stdarg.h
|
specific stdarg.h header file at nuttx/arch/<architecture>/include/stdarg.h
|
||||||
|
|
||||||
@ -440,6 +440,30 @@ config ARCH_STDARG_H
|
|||||||
ARCH_STDARG_H=y and providing. If ARCH_STDARG_H, is not defined, then
|
ARCH_STDARG_H=y and providing. If ARCH_STDARG_H, is not defined, then
|
||||||
the stdarg.h header file will stay out-of-the-way in include/nuttx/.
|
the stdarg.h header file will stay out-of-the-way in include/nuttx/.
|
||||||
|
|
||||||
|
config ARCH_HAVE_SETJMP
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
|
||||||
|
config ARCH_SETJMP_H
|
||||||
|
bool "setjmp.h"
|
||||||
|
default n
|
||||||
|
depends on ARCH_HAVE_SETJMP
|
||||||
|
---help---
|
||||||
|
There is a redirecting version of setjmp.h in the source tree. It
|
||||||
|
resides out-of-the-way at include/nuttx/lib/setjmp.h. This is
|
||||||
|
because you should normally use your toolchain's setjmp.h file. But
|
||||||
|
sometimes, your toolchain's setjmp.h file may have other header
|
||||||
|
file dependencies and so may not be usable in the NuttX build
|
||||||
|
environment. In those cases, you may have to create a architecture-
|
||||||
|
specific setjmp.h header file at nuttx/arch/<architecture>/include/setjmp.h
|
||||||
|
|
||||||
|
If ARCH_SETJMP_H=y is defined, the top-level makefile will copy the
|
||||||
|
re-directing setjmp.h header file from include/nuttx/lib/setjmp.h to
|
||||||
|
include/setjmp.h. So for the architectures that cannot use their
|
||||||
|
toolchain's setjmp.h file, they can use this alternative by defining
|
||||||
|
ARCH_SETJMP_H=y and providing. If ARCH_SETJMP_H, is not defined, then
|
||||||
|
the setjmp.h header file will stay out-of-the-way in include/nuttx/.
|
||||||
|
|
||||||
config ARCH_DEBUG_H
|
config ARCH_DEBUG_H
|
||||||
bool "debug.h"
|
bool "debug.h"
|
||||||
default n
|
default n
|
||||||
|
@ -514,6 +514,7 @@ config ARCH_CORTEXM23
|
|||||||
config ARCH_ARMV7M
|
config ARCH_ARMV7M
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
select ARCH_HAVE_SETJMP if ARCH_TOOLCHAIN_GNU
|
||||||
|
|
||||||
config ARCH_CORTEXM3
|
config ARCH_CORTEXM3
|
||||||
bool
|
bool
|
||||||
|
98
arch/arm/include/setjmp.h
Normal file
98
arch/arm/include/setjmp.h
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* arch/arm/include/setjmp.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2019 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: David S. Alessio <David@DSA.Consulting>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __ARCH_ARM_INCLUDE_SETJUMP_H
|
||||||
|
#define __ARCH_ARM_INCLUDE_SETJUMP_H 1
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_ARMV7M
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Types
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
struct setjmp_buf_s
|
||||||
|
{
|
||||||
|
/* Note: core registers r0-r3 are caller-saved */
|
||||||
|
|
||||||
|
unsigned r4;
|
||||||
|
unsigned r5;
|
||||||
|
unsigned r6;
|
||||||
|
unsigned r7;
|
||||||
|
unsigned r8;
|
||||||
|
unsigned r9;
|
||||||
|
unsigned r10;
|
||||||
|
unsigned r11;
|
||||||
|
unsigned ip; /* this is really sp */
|
||||||
|
unsigned lr;
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_FPU
|
||||||
|
/* note: FPU registers s0-s15 are caller-saved */
|
||||||
|
|
||||||
|
float s16;
|
||||||
|
float s17;
|
||||||
|
float s18;
|
||||||
|
float s19;
|
||||||
|
float s20;
|
||||||
|
float s21;
|
||||||
|
float s22;
|
||||||
|
float s23;
|
||||||
|
float s24;
|
||||||
|
float s25;
|
||||||
|
float s26;
|
||||||
|
float s27;
|
||||||
|
float s28;
|
||||||
|
float s29;
|
||||||
|
float s30;
|
||||||
|
float s31;
|
||||||
|
|
||||||
|
unsigned fpscr;
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Traditional typedef for setjmp_buf */
|
||||||
|
|
||||||
|
typedef struct setjmp_buf_s jmp_buf[1];
|
||||||
|
|
||||||
|
#else
|
||||||
|
# error "setjmp() not compiled!"
|
||||||
|
#endif /* CONFIG_ARCH_ARMV7M */
|
||||||
|
|
||||||
|
#endif /* __ARCH_ARM_INCLUDE_SETJUMP_H */
|
162
arch/arm/src/armv7-m/gnu/up_setjmp.S
Normal file
162
arch/arm/src/armv7-m/gnu/up_setjmp.S
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
/************************************************************************************
|
||||||
|
* arch/arm/src/armv7-m/gnu/up_setjmp.S
|
||||||
|
*
|
||||||
|
* Copyright (C) 2019 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: David S. Alessio <David@DSA.Consulting>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
/* When this file is assembled, it will require the following GCC options:
|
||||||
|
*
|
||||||
|
* -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -meabi=5 -mthumb
|
||||||
|
*/
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Included Files
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Pre-processor Definitions
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Public Symbols
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
.globl setjmp
|
||||||
|
.globl longjmp
|
||||||
|
|
||||||
|
.syntax unified
|
||||||
|
.thumb
|
||||||
|
.file "setjmp.S"
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Name: setjmp
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Given the pointer to a register save area (in R0), save the state of the
|
||||||
|
* all callee-saved registers
|
||||||
|
*
|
||||||
|
* C Function Prototype:
|
||||||
|
* int setjmp(jmp_buf env);
|
||||||
|
*
|
||||||
|
* Input Parameters:
|
||||||
|
* env - A pointer to the register save area in which to save the floating point
|
||||||
|
* registers and core registers. Since setjmp() can not be inlined, we
|
||||||
|
* only need to save the ABI-specified callee-saved registers.
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* 0 setjmp called directly
|
||||||
|
* non-0 we justed returned from a longjmp()
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
.thumb_func
|
||||||
|
.type setjmp, function
|
||||||
|
setjmp:
|
||||||
|
|
||||||
|
/* Store callee-saved Core registers */
|
||||||
|
|
||||||
|
mov ip, sp /* move sp to ip so we can save it */
|
||||||
|
stmia r0!, {r4-r11, ip, lr}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_FPU
|
||||||
|
vstmia r0!, {s16-s31} /* Save the callee-saved FP registers */
|
||||||
|
|
||||||
|
/* Store the floating point control and status register. At the end of the
|
||||||
|
* vstmia, r0 will point to the FPCSR storage location.
|
||||||
|
*/
|
||||||
|
|
||||||
|
vmrs r1, fpscr /* Fetch the FPCSR */
|
||||||
|
str r1, [r0], #4 /* Save the floating point control and status register */
|
||||||
|
// DSA: don't need to inc r0
|
||||||
|
#endif /* CONFIG_ARCH_FPU */
|
||||||
|
|
||||||
|
/* we're done, we're out of here */
|
||||||
|
|
||||||
|
mov r0, #0
|
||||||
|
bx lr
|
||||||
|
|
||||||
|
.size setjmp, .-setjmp
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Name: longjmp
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The longjmp() function used the information saved in env to transfer control
|
||||||
|
* control back to the point where setjmp() was called and to restore ("rewind")
|
||||||
|
* the stack to its state at the time of the setjmp() call. When control is
|
||||||
|
* passed back to where setjmp() had been called, setjmp() will return with
|
||||||
|
* 'val', the second paramater passed to longjmp().
|
||||||
|
*
|
||||||
|
* C Function Prototype:
|
||||||
|
* void longjmp(jmp_buf env, int val);
|
||||||
|
*
|
||||||
|
* Input Parameters:
|
||||||
|
* jmp_buf env
|
||||||
|
* int val
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* This function does not return anything explicitly.
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
.thumb_func
|
||||||
|
.type longjmp, function
|
||||||
|
longjmp:
|
||||||
|
|
||||||
|
/* Load callee-saved Core registers */
|
||||||
|
|
||||||
|
ldmia r0!, {r4-r11, ip, lr}
|
||||||
|
mov sp, ip /* restore sp */
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_FPU
|
||||||
|
/* Load callee-saved floating point registers. */
|
||||||
|
|
||||||
|
vldmia r0!, {s16-s31} /* Restore FP context */
|
||||||
|
|
||||||
|
/* Load the floating point control and status register. */
|
||||||
|
|
||||||
|
ldr r2, [r0], #4 /* Fetch the floating point control and status register */
|
||||||
|
/* DSA: don't need to inc r0 */
|
||||||
|
vmsr fpscr, r2 /* Restore the FPCSR */
|
||||||
|
#endif /* CONFIG_ARCH_FPU */
|
||||||
|
|
||||||
|
mov r0, r1 /* return val */
|
||||||
|
bx lr
|
||||||
|
|
||||||
|
.size longjmp, .-longjmp
|
||||||
|
.end
|
@ -40,6 +40,12 @@ HEAD_ASRC =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S vfork.S
|
CMN_ASRCS += up_testset.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
||||||
CMN_CSRCS += up_createstack.c up_mdelay.c up_udelay.c up_exit.c
|
CMN_CSRCS += up_createstack.c up_mdelay.c up_udelay.c up_exit.c
|
||||||
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
||||||
|
@ -41,6 +41,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_allocateheap.c up_assert.c up_blocktask.c up_copyfullstate.c
|
CMN_CSRCS = up_allocateheap.c up_assert.c up_blocktask.c up_copyfullstate.c
|
||||||
CMN_CSRCS += up_createstack.c up_doirq.c up_exit.c up_hardfault.c
|
CMN_CSRCS += up_createstack.c up_doirq.c up_exit.c up_hardfault.c
|
||||||
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
||||||
|
@ -41,6 +41,12 @@ HEAD_ASRC =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
||||||
CMN_CSRCS += up_createstack.c up_mdelay.c up_udelay.c up_exit.c
|
CMN_CSRCS += up_createstack.c up_mdelay.c up_udelay.c up_exit.c
|
||||||
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
||||||
|
@ -41,6 +41,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_mdelay.c up_udelay.c up_exit.c up_initialize.c up_memfault.c
|
CMN_CSRCS += up_mdelay.c up_udelay.c up_exit.c up_initialize.c up_memfault.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_modifyreg8.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_modifyreg8.c
|
||||||
|
@ -43,6 +43,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += vfork.S
|
CMN_ASRCS += vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
||||||
CMN_CSRCS += up_createstack.c up_mdelay.c up_udelay.c up_exit.c
|
CMN_CSRCS += up_createstack.c up_mdelay.c up_udelay.c up_exit.c
|
||||||
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
||||||
|
@ -45,6 +45,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_mdelay.c up_udelay.c up_exit.c up_initialize.c up_memfault.c
|
CMN_CSRCS += up_mdelay.c up_udelay.c up_exit.c up_initialize.c up_memfault.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_modifyreg8.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_modifyreg8.c
|
||||||
|
@ -38,6 +38,12 @@ HEAD_ASRC =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
||||||
|
@ -38,6 +38,12 @@ HEAD_ASRC =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
||||||
|
@ -40,6 +40,12 @@ HEAD_ASRC =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_allocateheap.c up_assert.c up_blocktask.c up_copyfullstate.c
|
CMN_CSRCS = up_allocateheap.c up_assert.c up_blocktask.c up_copyfullstate.c
|
||||||
CMN_CSRCS += up_createstack.c up_doirq.c up_exit.c up_hardfault.c
|
CMN_CSRCS += up_createstack.c up_doirq.c up_exit.c up_hardfault.c
|
||||||
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
||||||
|
@ -38,6 +38,12 @@ HEAD_ASRC =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S vfork.S
|
CMN_ASRCS += up_testset.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c
|
||||||
CMN_CSRCS += up_createstack.c up_doirq.c up_exit.c up_hardfault.c
|
CMN_CSRCS += up_createstack.c up_doirq.c up_exit.c up_hardfault.c
|
||||||
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
CMN_CSRCS += up_initialize.c up_initialstate.c up_interruptcontext.c
|
||||||
|
@ -46,6 +46,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
||||||
|
@ -45,6 +45,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_allocateheap.c up_assert.c up_blocktask.c up_copyfullstate.c
|
CMN_CSRCS = up_allocateheap.c up_assert.c up_blocktask.c up_copyfullstate.c
|
||||||
CMN_CSRCS += up_createstack.c up_exit.c up_initialize.c up_initialstate.c
|
CMN_CSRCS += up_createstack.c up_exit.c up_initialize.c up_initialstate.c
|
||||||
CMN_CSRCS += up_interruptcontext.c up_mdelay.c up_memfault.c up_modifyreg8.c
|
CMN_CSRCS += up_interruptcontext.c up_mdelay.c up_memfault.c up_modifyreg8.c
|
||||||
|
@ -46,6 +46,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
||||||
|
@ -41,6 +41,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_exit.c up_hardfault.c up_initialize.c up_initialstate.c
|
CMN_CSRCS += up_exit.c up_hardfault.c up_initialize.c up_initialstate.c
|
||||||
CMN_CSRCS += up_interruptcontext.c up_mdelay.c up_memfault.c up_modifyreg8.c
|
CMN_CSRCS += up_interruptcontext.c up_mdelay.c up_memfault.c up_modifyreg8.c
|
||||||
|
@ -46,6 +46,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
||||||
|
@ -46,6 +46,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S vfork.S
|
CMN_ASRCS += up_testset.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c up_memfault.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c up_memfault.c
|
||||||
|
@ -47,6 +47,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c up_memfault.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c up_memfault.c
|
||||||
|
@ -39,6 +39,12 @@ HEAD_ASRC =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
CMN_CSRCS += up_doirq.c up_exit.c up_hardfault.c up_initialize.c
|
||||||
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
CMN_CSRCS += up_initialstate.c up_interruptcontext.c up_mdelay.c
|
||||||
|
@ -41,6 +41,12 @@ CMN_UCSRCS =
|
|||||||
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
CMN_ASRCS = up_saveusercontext.S up_fullcontextrestore.S up_switchcontext.S
|
||||||
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
CMN_ASRCS += up_testset.S up_fetchadd.S vfork.S
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||||
|
CMN_ASRCS += up_setjmp.S
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
CMN_CSRCS = up_assert.c up_blocktask.c up_copyfullstate.c up_createstack.c
|
||||||
CMN_CSRCS += up_doirq.c up_exit.c up_initialize.c up_initialstate.c
|
CMN_CSRCS += up_doirq.c up_exit.c up_initialize.c up_initialstate.c
|
||||||
CMN_CSRCS += up_hardfault.c up_interruptcontext.c up_memfault.c up_mdelay.c
|
CMN_CSRCS += up_hardfault.c up_interruptcontext.c up_memfault.c up_mdelay.c
|
||||||
|
1
include/.gitignore
vendored
1
include/.gitignore
vendored
@ -4,6 +4,7 @@
|
|||||||
/math.h
|
/math.h
|
||||||
/float.h
|
/float.h
|
||||||
/stdarg.h
|
/stdarg.h
|
||||||
|
/setjmp.h
|
||||||
/features.h
|
/features.h
|
||||||
/uClibc++
|
/uClibc++
|
||||||
/libcxx
|
/libcxx
|
||||||
|
64
include/nuttx/lib/setjmp.h
Normal file
64
include/nuttx/lib/setjmp.h
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* include/nuttx/lib/setjmp.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2019 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __INCLUDE_NUTTX_LIB_SETJMP_H
|
||||||
|
#define __INCLUDE_NUTTX_LIB_SETJMP_H
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
/* If CONFIG_ARCH_SETJMP_H is defined, then the top-level Makefile will copy
|
||||||
|
* this header file to include/setjmp.h where it will become the system
|
||||||
|
* setjmp.h header file. In this case, the architecture specific code must
|
||||||
|
* provide an arch/<architecture>/include/setjmp.h file which will be
|
||||||
|
* included below:
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_SETJMP_H
|
||||||
|
# include <arch/setjmp.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Type Definitions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Function Prototypes
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* __INCLUDE_NUTTX_LIB_SETJMP_H */
|
@ -240,6 +240,18 @@ else
|
|||||||
include/stdarg.h:
|
include/stdarg.h:
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Target used to copy include/nuttx/lib/setjmp.h. If CONFIG_ARCH_SETJMP_H is
|
||||||
|
# defined, then there is an architecture specific setjmp.h header file
|
||||||
|
# that will be included indirectly from include/lib/setjmp.h. But first, we
|
||||||
|
# have to copy setjmp.h from include/nuttx/. to include/.
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
include/setjmp.h: include/nuttx/lib/setjmp.h
|
||||||
|
$(Q) cp -f include/nuttx/lib/setjmp.h include/setjmp.h
|
||||||
|
else
|
||||||
|
include/setjmp.h:
|
||||||
|
endif
|
||||||
|
|
||||||
# Targets used to build include/nuttx/version.h. Creation of version.h is
|
# Targets used to build include/nuttx/version.h. Creation of version.h is
|
||||||
# part of the overall NuttX configuration sequence. Notice that the
|
# part of the overall NuttX configuration sequence. Notice that the
|
||||||
# tools/mkversion tool is built and used to create include/nuttx/version.h
|
# tools/mkversion tool is built and used to create include/nuttx/version.h
|
||||||
@ -341,7 +353,7 @@ dirlinks: include/arch include/arch/board include/arch/chip $(ARCH_SRC)/board $(
|
|||||||
# the config.h and version.h header files in the include/nuttx directory and
|
# the config.h and version.h header files in the include/nuttx directory and
|
||||||
# the establishment of symbolic links to configured directories.
|
# the establishment of symbolic links to configured directories.
|
||||||
|
|
||||||
context: check_context staging include/nuttx/config.h include/nuttx/version.h include/math.h include/float.h include/stdarg.h dirlinks
|
context: check_context staging include/nuttx/config.h include/nuttx/version.h include/math.h include/float.h include/stdarg.h include/setjmp.h dirlinks
|
||||||
$(Q) for dir in $(CONTEXTDIRS) ; do \
|
$(Q) for dir in $(CONTEXTDIRS) ; do \
|
||||||
$(MAKE) -C $$dir TOPDIR="$(TOPDIR)" context; \
|
$(MAKE) -C $$dir TOPDIR="$(TOPDIR)" context; \
|
||||||
done
|
done
|
||||||
@ -358,6 +370,7 @@ clean_context:
|
|||||||
$(call DELFILE, include/nuttx/version.h)
|
$(call DELFILE, include/nuttx/version.h)
|
||||||
$(call DELFILE, include/math.h)
|
$(call DELFILE, include/math.h)
|
||||||
$(call DELFILE, include/stdarg.h)
|
$(call DELFILE, include/stdarg.h)
|
||||||
|
$(call DELFILE, include/setjmp.h)
|
||||||
$(Q) $(DIRUNLINK) include/arch/board
|
$(Q) $(DIRUNLINK) include/arch/board
|
||||||
$(Q) $(DIRUNLINK) include/arch/chip
|
$(Q) $(DIRUNLINK) include/arch/chip
|
||||||
$(Q) $(DIRUNLINK) include/arch
|
$(Q) $(DIRUNLINK) include/arch
|
||||||
|
@ -235,6 +235,18 @@ else
|
|||||||
include\stdarg.h:
|
include\stdarg.h:
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Target used to copy include\nuttx\setjmp.h. If CONFIG_ARCH_SETJMP_H is
|
||||||
|
# defined, then there is an architecture specific setjmp.h header file
|
||||||
|
# that will be included indirectly from include\setjmp.h. But first, we
|
||||||
|
# have to copy setjmp.h from include\nuttx\. to include\.
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_SETJMP_H),y)
|
||||||
|
include\setjmp.h: include\nuttx\setjmp.h
|
||||||
|
$(Q) cp -f include\nuttx\setjmp.h include\setjmp.h
|
||||||
|
else
|
||||||
|
include\setjmp.h:
|
||||||
|
endif
|
||||||
|
|
||||||
# Targets used to build include\nuttx\version.h. Creation of version.h is
|
# Targets used to build include\nuttx\version.h. Creation of version.h is
|
||||||
# part of the overall NuttX configuration sequence. Notice that the
|
# part of the overall NuttX configuration sequence. Notice that the
|
||||||
# tools\mkversion tool is built and used to create include\nuttx\version.h
|
# tools\mkversion tool is built and used to create include\nuttx\version.h
|
||||||
@ -363,7 +375,7 @@ dirlinks: include\arch include\arch\board include\arch\chip $(ARCH_SRC)\board $(
|
|||||||
# the config.h and version.h header files in the include\nuttx directory and
|
# the config.h and version.h header files in the include\nuttx directory and
|
||||||
# the establishment of symbolic links to configured directories.
|
# the establishment of symbolic links to configured directories.
|
||||||
|
|
||||||
context: check_context staging include\nuttx\config.h include\nuttx\version.h include\math.h include\float.h include\stdarg.h dirlinks
|
context: check_context staging include\nuttx\config.h include\nuttx\version.h include\math.h include\float.h include\stdarg.h include\setjmp.h dirlinks
|
||||||
$(Q) for %%G in ($(CONTEXTDIRS)) do ( $(MAKE) -C %%G TOPDIR="$(TOPDIR)" context )
|
$(Q) for %%G in ($(CONTEXTDIRS)) do ( $(MAKE) -C %%G TOPDIR="$(TOPDIR)" context )
|
||||||
|
|
||||||
# clean_context
|
# clean_context
|
||||||
@ -378,6 +390,7 @@ clean_context:
|
|||||||
$(call DELFILE, include\nuttx\version.h)
|
$(call DELFILE, include\nuttx\version.h)
|
||||||
$(call DELFILE, include\math.h)
|
$(call DELFILE, include\math.h)
|
||||||
$(call DELFILE, include\stdarg.h)
|
$(call DELFILE, include\stdarg.h)
|
||||||
|
$(call DELFILE, include\setjmp.h)
|
||||||
$(call DELDIR, include\arch\board)
|
$(call DELDIR, include\arch\board)
|
||||||
$(call DELDIR, include\arch\chip)
|
$(call DELDIR, include\arch\chip)
|
||||||
$(call DELDIR, include\arch)
|
$(call DELDIR, include\arch)
|
||||||
|
Loading…
Reference in New Issue
Block a user