Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL

This commit is contained in:
Gregory Nutt 2014-08-29 14:47:22 -06:00
parent 67721c50f1
commit e11679acf8
132 changed files with 372 additions and 445 deletions

View file

@ -154,6 +154,10 @@ config ARCH_HAVE_MMU
bool
default n
config ARCH_HAVE_MPU
bool
default n
config ARCH_NAND_HWECC
bool
default n
@ -162,6 +166,26 @@ config ARCH_HAVE_EXTCLK
bool
default n
config ARCH_USE_MMU
bool "Enable MMU"
default n
depends on ARCH_HAVE_MMU
---help---
The architecture supports supports an MMU. Enable this option in
order to enable use of the MMU. For most architectures, this is
not really an option: It is required to use the MMU. In those
cases, this selection will always be forced.
config ARCH_USE_MPU
bool "Enable MPU"
default n
depends on ARCH_HAVE_MPU
---help---
The architecture supports supports an MPU. Enable this option in
order to enable use of the MPU. For most architectures, this option
is enabled by other, platform-specific logic. In those cases, this
selection will always be forced.
menuconfig ARCH_ADDRENV
bool "Address environments"
default n
@ -224,12 +248,12 @@ config ARCH_STACK_NPAGES
This, along with knowledge of the page size, determines the size of
the stack virtual address space. Default is 1.
endif # ARCH_ADDRENV && ARCH_HAVE_MMU
endif # ARCH_ADDRENV && ARCH_NEED_ADDRENV_MAPPING
menuconfig PAGING
bool "On-demand paging"
default n
depends on ARCH_HAVE_MMU && !ARCH_ROMPGTABLE
depends on ARCH_USE_MMU && !ARCH_ROMPGTABLE
---help---
If set =y in your configation file, this setting will enable the on-demand
paging feature as described in http://www.nuttx.org/NuttXDemandPaging.html.
@ -537,7 +561,7 @@ config ARCH_HIPRI_INTERRUPT
int up_prioritize_irq(int irq, int priority)
NOTE: ARCH_INTERRUPTSTACK must be set in kernel mode (NUTTX_KERNEL).
NOTE: ARCH_INTERRUPTSTACK must be set in kernel mode (BUILD_KERNEL).
In kernel mode without an interrupt stack, the interrupt handler
will set the MSP to the stack pointer of the interrupted thread. If
the interrupted thread was a privileged thread, that will be the MSP
@ -641,7 +665,7 @@ config RAM_START
config RAM_VSTART
hex "Primary RAM start address (virtual)"
default 0x0
depends on ARCH_HAVE_MMU
depends on ARCH_USE_MMU
help
The virtual start address of installed primary RAM. "Primary" RAM
refers to the RAM that you link program code into. If program code
@ -657,7 +681,7 @@ config RAM_SIZE
does not execute out of RAM but from FLASH, then you may designate
any block of RAM as "primary."
if BOOT_RUNFROMFLASH && ARCH_HAVE_MMU
if BOOT_RUNFROMFLASH && ARCH_USE_MMU
config FLASH_START
hex "Boot FLASH start address (physical)"
@ -680,7 +704,7 @@ config FLASH_SIZE
The size in bytes of the installed boot FLASH. "Boot" FLASH
refers to the FLASH that you link program code into.
endif # BOOT_RUNFROMFLASH && ARCH_HAVE_MMU
endif # BOOT_RUNFROMFLASH && ARCH_USE_MMU
config ARCH_HAVE_SDRAM
bool

View file

@ -15,11 +15,12 @@ config ARCH_CHIP_A1X
select ARCH_CORTEXA8
select ARCH_HAVE_FPU
select ARCH_HAVE_MMU
select ARCH_USE_MMU
select ARCH_HAVE_LOWVECTORS
select ARCH_HAVE_SDRAM
select BOOT_RUNFROMSDRAM
select ARCH_HAVE_ADDRENV if EXPERIMENTAL
select ARCH_NEED_ADDRENV_MAPPING if EXPERIMENTAL
select ARCH_HAVE_ADDRENV
select ARCH_NEED_ADDRENV_MAPPING
---help---
Allwinner A1X family: A10, A10S (A12), A13 (ARM Cortex-A8)
@ -137,8 +138,8 @@ config ARCH_CHIP_SAMA5
select ARCH_HAVE_LOWVECTORS
select ARCH_HAVE_I2CRESET
select ARCH_HAVE_TICKLESS
select ARCH_HAVE_ADDRENV if EXPERIMENTAL
select ARCH_NEED_ADDRENV_MAPPING if EXPERIMENTAL
select ARCH_HAVE_ADDRENV
select ARCH_NEED_ADDRENV_MAPPING
---help---
Atmel SAMA5 (ARM Cortex-A5)
@ -182,11 +183,13 @@ config ARCH_ARM926EJS
bool
default n
select ARCH_HAVE_MMU
select ARCH_USE_MMU
config ARCH_ARM920T
bool
default n
select ARCH_HAVE_MMU
select ARCH_USE_MMU
config ARCH_CORTEXM0
bool
@ -212,6 +215,7 @@ config ARCH_CORTEXA5
default n
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_MMU
select ARCH_USE_MMU
select ARCH_HAVE_COHERENT_DCACHE if ELF
config ARCH_CORTEXA8
@ -219,6 +223,7 @@ config ARCH_CORTEXA8
default n
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_MMU
select ARCH_USE_MMU
select ARCH_HAVE_COHERENT_DCACHE if ELF
config ARCH_FAMILY
@ -288,14 +293,12 @@ config ARCH_FPU
Build in support for the ARM Cortex-M4 Floating Point Unit (FPU).
Check your chip specifications first; not all Cortex-M4 chips support the FPU.
config ARCH_HAVE_MPU
bool
default n
config ARMV7M_MPU
bool "MPU support"
default n
default n if !ARCH_USE_MPU
default y if ARCH_USE_MPU
depends on ARCH_HAVE_MPU
select ARCH_USE_MPU
---help---
Build in support for the ARM Cortex-M3/4 Memory Protection Unit (MPU).
Check your chip specifications first; not all Cortex-M3/4 chips support the MPU.
@ -305,7 +308,7 @@ config ARMV7M_MPU_NREGIONS
default 8
depends on ARMV7M_MPU
---help---
This is the number of protection regions supported by the MPU.
This is the number of protection regions supported by the MPU.
config ARCH_HAVE_LOWVECTORS
bool
@ -320,7 +323,7 @@ config ARCH_LOWVECTORS
config ARCH_ROMPGTABLE
bool "ROM page table"
default n
depends on ARCH_HAVE_MMU
depends on ARCH_USE_MMU
---help---
Support a fixed memory mapping use a (read-only) page table in ROM/FLASH.

View file

@ -85,7 +85,7 @@
* modes.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
# define REG_EXC_RETURN (10) /* EXC_RETURN */
# define SW_XCPT_REGS (11)
#else
@ -178,11 +178,11 @@ struct xcptcontext
uint32_t saved_pc;
uint32_t saved_primask;
uint32_t saved_xpsr;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
uint32_t saved_lr;
#endif
# ifdef CONFIG_NUTTX_KERNEL
# ifdef CONFIG_BUILD_PROTECTED
/* This is the saved address to use when returning from a user-space
* signal handler.
*/

View file

@ -200,7 +200,7 @@
#ifdef CONFIG_LIB_SYSCALL
struct xcpt_syscall_s
{
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
uint32_t cpsr; /* The CPSR value */
#endif
uint32_t sysreturn; /* The return PC */

View file

@ -140,11 +140,11 @@ struct xcptcontext
uint32_t saved_primask;
#endif
uint32_t saved_xpsr;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
uint32_t saved_lr;
#endif
# ifdef CONFIG_NUTTX_KERNEL
# ifdef CONFIG_BUILD_PROTECTED
/* This is the saved address to use when returning from a user-space
* signal handler.
*/

View file

@ -65,7 +65,7 @@
#define REG_R10 (8) /* R10 */
#define REG_R11 (9) /* R11 */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
# define REG_EXC_RETURN (10) /* EXC_RETURN */
# define SW_INT_REGS (11)
#else

View file

@ -356,16 +356,6 @@ void up_boot(void)
up_earlyserialinit();
#endif
#ifdef CONFIG_NUTTX_KERNEL
/* For the case of the separate user-/kernel-space build, perform whatever
* platform specific initialization of the user memory is required.
* Normally this just means initializing the user space .data and .bss
* segments.
*/
a1x_userspace();
#endif
/* Perform board-specific initialization, This must include:
*
* - Initialization of board-specific memory resources (e.g., SDRAM)

View file

@ -114,7 +114,7 @@ void up_initial_state(struct tcb_s *tcb)
* what kind of thread is being started. Disable FIQs in any event
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
if ((tcb->flags & TCB_FLAG_TTYPE_MASK) == TCB_FLAG_TTYPE_KERNEL)
{
/* It is a kernel thread.. set supervisor mode */

View file

@ -53,11 +53,11 @@
/* Configuration ********************************************************************/
/* This logic uses three system calls {0,1,2} for context switching and one for the
* syscall return. So a minimum of four syscall values must be reserved. If
* CONFIG_NUTTX_KERNEL is defined, then four more syscall values must be reserved.
* CONFIG_BUILD_PROTECTED is defined, then four more syscall values must be reserved.
*/
#ifdef CONFIG_LIB_SYSCALL
# ifdef CONFIG_NUTTX_KERNEL
# ifdef CONFIG_BUILD_PROTECTED
# ifndef CONFIG_SYS_RESERVED
# error "CONFIG_SYS_RESERVED must be defined to have the value 8"
# elif CONFIG_SYS_RESERVED != 8
@ -103,7 +103,7 @@
#define SYS_syscall_return (3)
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* SYS call 4:
*
* void up_task_start(main_t taskentry, int argc, FAR char *argv[])
@ -135,7 +135,7 @@
#define SYS_signal_handler_return (7)
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */
#endif /* CONFIG_LIB_SYSCALL */
/************************************************************************************

View file

@ -160,7 +160,7 @@ static inline void up_registerdump(void)
current_regs[REG_R10], current_regs[REG_R11],
current_regs[REG_R12], current_regs[REG_R13],
current_regs[REG_R14], current_regs[REG_R15]);
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
lldbg("xPSR: %08x PRIMASK: %08x EXEC_RETURN: %08x\n",
current_regs[REG_XPSR], current_regs[REG_PRIMASK],
current_regs[REG_EXC_RETURN]);

View file

@ -92,7 +92,7 @@ exception_common:
* the context is on the MSP or PSP.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
mov r0, r14 /* Copy high register to low register */
lsl r0, #(31 - EXC_RETURN_PROCESS_BITNO) /* Move to bit 31 */
bmi 1f /* Test bit 31 */
@ -129,7 +129,7 @@ exception_common:
mov r3, r9
mov r4, r10
mov r5, r11
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
mov r6, r14
stmia r0!, {r2-r6} /* Save the high registers r8-r11 and r14 */
#else
@ -200,7 +200,7 @@ exception_common:
mov r2, #(4*REG_R8) /* R2=Offset to R8 storage */
add r0, r1, r2 /* R0=Address of R8 storage */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r0!, {r2-r6} /* Recover R8-R11 and R14 (5 registers)*/
mov r8, r2 /* Move to position in high registers */
mov r9, r3
@ -227,7 +227,7 @@ exception_common:
* context is on the MSP or PSP.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
mov r0, r14 /* Copy high register to low register */
lsl r0, #(31 - EXC_RETURN_PROCESS_BITNO) /* Move to bit 31 */
bmi 5f /* Test bit 31 */

View file

@ -99,7 +99,7 @@ int up_hardfault(int irq, FAR void *context)
* REVISIT: What if the PC lies in "unknown" external memory?
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* In the kernel build, SVCalls are expected in either the base, kernel
* FLASH region or in the user FLASH region.
*/

View file

@ -126,9 +126,9 @@ void up_initial_state(struct tcb_s *tcb)
#endif
#endif /* CONFIG_PIC */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* All tasks start via a stub function in kernel space. So all
* tasks must start in privileged thread mode. If CONFIG_NUTTX_KERNEL
* tasks must start in privileged thread mode. If CONFIG_BUILD_PROTECTED
* is defined, then that stub function will switch to unprivileged
* mode before transferring control to the user task.
*/

View file

@ -152,7 +152,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
tcb->xcp.saved_pc = current_regs[REG_PC];
tcb->xcp.saved_primask = current_regs[REG_PRIMASK];
tcb->xcp.saved_xpsr = current_regs[REG_XPSR];
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
tcb->xcp.saved_lr = current_regs[REG_LR];
#endif
/* Then set up to vector to the trampoline with interrupts
@ -163,7 +163,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
current_regs[REG_PC] = (uint32_t)up_sigdeliver;
current_regs[REG_PRIMASK] = 1;
current_regs[REG_XPSR] = ARMV6M_XPSR_T;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
current_regs[REG_LR] = EXC_RETURN_PRIVTHR;
#endif
/* And make sure that the saved context in the TCB is the same
@ -190,7 +190,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
tcb->xcp.saved_pc = tcb->xcp.regs[REG_PC];
tcb->xcp.saved_primask = tcb->xcp.regs[REG_PRIMASK];
tcb->xcp.saved_xpsr = tcb->xcp.regs[REG_XPSR];
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
tcb->xcp.saved_lr = tcb->xcp.regs[REG_LR];
#endif
@ -202,7 +202,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
tcb->xcp.regs[REG_PC] = (uint32_t)up_sigdeliver;
tcb->xcp.regs[REG_PRIMASK] = 1;
tcb->xcp.regs[REG_XPSR] = ARMV6M_XPSR_T;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
tcb->xcp.regs[REG_LR] = EXC_RETURN_PRIVTHR;
#endif
}

View file

@ -109,7 +109,7 @@ void up_sigdeliver(void)
regs[REG_PC] = rtcb->xcp.saved_pc;
regs[REG_PRIMASK] = rtcb->xcp.saved_primask;
regs[REG_XPSR] = rtcb->xcp.saved_xpsr;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
regs[REG_LR] = rtcb->xcp.saved_lr;
#endif

View file

@ -41,7 +41,7 @@
#include <arch/syscall.h>
#if defined(CONFIG_NUTTX_KERNEL) && !defined(__KERNEL__)
#if defined(CONFIG_BUILD_PROTECTED) && !defined(__KERNEL__)
/****************************************************************************
* File info
@ -112,4 +112,4 @@ up_signal_handler:
.size up_signal_handler, .-up_signal_handler
.end
#endif /* CONFIG_NUTTX_KERNEL && !__KERNEL__ */
#endif /* CONFIG_BUILD_PROTECTED && !__KERNEL__ */

View file

@ -181,7 +181,7 @@ int up_svcall(int irq, FAR void *context)
svcdbg(" R8: %08x %08x %08x %08x %08x %08x %08x %08x\n",
regs[REG_R8], regs[REG_R9], regs[REG_R10], regs[REG_R11],
regs[REG_R12], regs[REG_R13], regs[REG_R14], regs[REG_R15]);
# ifdef CONFIG_NUTTX_KERNEL
# ifdef CONFIG_BUILD_PROTECTED
svcdbg(" PSR: %08x PRIMASK: %08x EXC_RETURN: %08x\n",
regs[REG_XPSR], regs[REG_PRIMASK], regs[REG_EXC_RETURN]);
# else
@ -312,7 +312,7 @@ int up_svcall(int irq, FAR void *context)
* R3 = argv
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
case SYS_task_start:
{
/* Set up to return to the user-space task start-up function in
@ -344,7 +344,7 @@ int up_svcall(int irq, FAR void *context)
* R2 = arg
*/
#if defined(CONFIG_NUTTX_KERNEL) && !defined(CONFIG_DISABLE_PTHREAD)
#if defined(CONFIG_BUILD_PROTECTED) && !defined(CONFIG_DISABLE_PTHREAD)
case SYS_pthread_start:
{
/* Set up to return to the user-space pthread start-up function in
@ -378,7 +378,7 @@ int up_svcall(int irq, FAR void *context)
* ucontext (on the stack)
*/
#if defined(CONFIG_NUTTX_KERNEL) && !defined(CONFIG_DISABLE_SIGNALS)
#if defined(CONFIG_BUILD_PROTECTED) && !defined(CONFIG_DISABLE_SIGNALS)
case SYS_signal_handler:
{
struct tcb_s *rtcb = sched_self();
@ -421,7 +421,7 @@ int up_svcall(int irq, FAR void *context)
* R0 = SYS_signal_handler_return
*/
#if defined(CONFIG_NUTTX_KERNEL) && !defined(CONFIG_DISABLE_SIGNALS)
#if defined(CONFIG_BUILD_PROTECTED) && !defined(CONFIG_DISABLE_SIGNALS)
case SYS_signal_handler_return:
{
struct tcb_s *rtcb = sched_self();
@ -497,7 +497,7 @@ int up_svcall(int irq, FAR void *context)
current_regs[REG_R10], current_regs[REG_R11],
current_regs[REG_R12], current_regs[REG_R13],
current_regs[REG_R14], current_regs[REG_R15]);
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
svcdbg(" PSR: %08x PRIMASK: %08x EXC_RETURN: %08x\n",
current_regs[REG_XPSR], current_regs[REG_PRIMASK],
current_regs[REG_EXC_RETURN]);

View file

@ -114,7 +114,7 @@ void up_initial_state(struct tcb_s *tcb)
* what kind of thread is being started. Disable FIQs in any event
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
if ((tcb->flags & TCB_FLAG_TTYPE_MASK) == TCB_FLAG_TTYPE_KERNEL)
{
/* It is a kernel thread.. set supervisor mode */

View file

@ -157,7 +157,7 @@ static void dispatch_syscall(void)
uint32_t *arm_syscall(uint32_t *regs)
{
uint32_t cmd;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
uint32_t cpsr;
#endif
@ -214,7 +214,7 @@ uint32_t *arm_syscall(uint32_t *regs)
*/
regs[REG_PC] = rtcb->xcp.syscall[index].sysreturn;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
regs[REG_CPSR] = rtcb->xcp.syscall[index].cpsr;
#endif
rtcb->xcp.nsyscalls = index;
@ -239,7 +239,7 @@ uint32_t *arm_syscall(uint32_t *regs)
* R3 = argv
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
case SYS_task_start:
{
/* Set up to return to the user-space task start-up function in
@ -272,7 +272,7 @@ uint32_t *arm_syscall(uint32_t *regs)
* R2 = arg
*/
#if defined(CONFIG_NUTTX_KERNEL) && !defined(CONFIG_DISABLE_PTHREAD)
#if defined(CONFIG_BUILD_KERNEL) && !defined(CONFIG_DISABLE_PTHREAD)
case SYS_pthread_start:
{
/* Set up to return to the user-space pthread start-up function in
@ -307,7 +307,7 @@ uint32_t *arm_syscall(uint32_t *regs)
* ucontext (on the stack)
*/
#if defined(CONFIG_NUTTX_KERNEL) && !defined(CONFIG_DISABLE_SIGNALS)
#if defined(CONFIG_BUILD_KERNEL) && !defined(CONFIG_DISABLE_SIGNALS)
case SYS_signal_handler:
{
struct tcb_s *rtcb = sched_self();
@ -351,7 +351,7 @@ uint32_t *arm_syscall(uint32_t *regs)
* R0 = SYS_signal_handler_return
*/
#if defined(CONFIG_NUTTX_KERNEL) && !defined(CONFIG_DISABLE_SIGNALS)
#if defined(CONFIG_BUILD_KERNEL) && !defined(CONFIG_DISABLE_SIGNALS)
case SYS_signal_handler_return:
{
struct tcb_s *rtcb = sched_self();
@ -392,13 +392,13 @@ uint32_t *arm_syscall(uint32_t *regs)
/* Setup to return to dispatch_syscall in privileged mode. */
rtcb->xcp.syscall[index].sysreturn = regs[REG_PC];
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
rtcb->xcp.syscall[index].cpsr = regs[REG_CPSR];
#endif
rtcb->xcp.nsyscalls = index + 1;
regs[REG_PC] = (uint32_t)dispatch_syscall;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
regval = regs[REG_CPSR] & ~PSR_MODE_MASK;
regs[REG_CPSR] = regval | PSR_MODE_SVC;
#endif

View file

@ -54,11 +54,11 @@
/* Configuration ********************************************************************/
/* This logic uses one system call for the syscall return. So a minimum of one
* syscall values must be reserved. If CONFIG_NUTTX_KERNEL is defined, then four
* syscall values must be reserved. If CONFIG_BUILD_KERNEL is defined, then four
* more syscall values must be reserved.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
# ifndef CONFIG_SYS_RESERVED
# error "CONFIG_SYS_RESERVED must be defined to have the value 5"
# elif CONFIG_SYS_RESERVED != 5
@ -81,7 +81,7 @@
#define SYS_syscall_return (0)
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_KERNEL
/* SYS call 1:
*
* void up_task_start(main_t taskentry, int argc, FAR char *argv[])
@ -113,7 +113,7 @@
#define SYS_signal_handler_return (4)
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_KERNEL */
/************************************************************************************
* Inline Functions

View file

@ -53,11 +53,11 @@
/* Configuration ********************************************************************/
/* This logic uses three system calls {0,1,2} for context switching and one for the
* syscall return. So a minimum of four syscall values must be reserved. If
* CONFIG_NUTTX_KERNEL is defined, then four more syscall values must be reserved.
* CONFIG_BUILD_PROTECTED is defined, then four more syscall values must be reserved.
*/
#ifdef CONFIG_LIB_SYSCALL
# ifdef CONFIG_NUTTX_KERNEL
# ifdef CONFIG_BUILD_PROTECTED
# ifndef CONFIG_SYS_RESERVED
# error "CONFIG_SYS_RESERVED must be defined to have the value 8"
# elif CONFIG_SYS_RESERVED != 8
@ -103,7 +103,7 @@
#define SYS_syscall_return (3)
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* SYS call 4:
*
* void up_task_start(main_t taskentry, int argc, FAR char *argv[])
@ -135,7 +135,7 @@
#define SYS_signal_handler_return (7)
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */
#endif /* CONFIG_LIB_SYSCALL */
/************************************************************************************

View file

@ -66,7 +66,7 @@
* no privileged task has run.
*/
# if defined(CONFIG_NUTTX_KERNEL) && CONFIG_ARCH_INTERRUPTSTACK < 4
# if defined(CONFIG_BUILD_PROTECTED) && CONFIG_ARCH_INTERRUPTSTACK < 4
# error Interrupt stack must be used with high priority interrupts in kernel mode
# endif
@ -259,7 +259,7 @@ exception_common:
/* The EXC_RETURN value tells us whether we are returning on the MSP or PSP
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)

View file

@ -108,7 +108,7 @@ int up_hardfault(int irq, FAR void *context)
* use the BASEPRI register if you have external memory.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* In the kernel build, SVCalls are expected in either the base, kernel
* FLASH region or in the user FLASH region.
*/

View file

@ -126,16 +126,16 @@ void up_initial_state(struct tcb_s *tcb)
#endif
#endif /* CONFIG_PIC */
#if defined(CONFIG_ARMV7M_CMNVECTOR) || defined(CONFIG_NUTTX_KERNEL)
#if defined(CONFIG_ARMV7M_CMNVECTOR) || defined(CONFIG_BUILD_PROTECTED)
/* All tasks start via a stub function in kernel space. So all
* tasks must start in privileged thread mode. If CONFIG_NUTTX_KERNEL
* tasks must start in privileged thread mode. If CONFIG_BUILD_PROTECTED
* is defined, then that stub function will switch to unprivileged
* mode before transferring control to the user task.
*/
xcp->regs[REG_EXC_RETURN] = EXC_RETURN_PRIVTHR;
#endif /* CONFIG_ARMV7M_CMNVECTOR || CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_ARMV7M_CMNVECTOR || CONFIG_BUILD_PROTECTED */
#if defined(CONFIG_ARMV7M_CMNVECTOR) && defined(CONFIG_ARCH_FPU)

View file

@ -157,7 +157,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
tcb->xcp.saved_primask = current_regs[REG_PRIMASK];
#endif
tcb->xcp.saved_xpsr = current_regs[REG_XPSR];
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
tcb->xcp.saved_lr = current_regs[REG_LR];
#endif
/* Then set up to vector to the trampoline with interrupts
@ -172,7 +172,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
current_regs[REG_PRIMASK] = 1;
#endif
current_regs[REG_XPSR] = ARMV7M_XPSR_T;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
current_regs[REG_LR] = EXC_RETURN_PRIVTHR;
#endif
/* And make sure that the saved context in the TCB is the same
@ -203,7 +203,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
tcb->xcp.saved_primask = tcb->xcp.regs[REG_PRIMASK];
#endif
tcb->xcp.saved_xpsr = tcb->xcp.regs[REG_XPSR];
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
tcb->xcp.saved_lr = tcb->xcp.regs[REG_LR];
#endif
/* Then set up to vector to the trampoline with interrupts
@ -218,7 +218,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
tcb->xcp.regs[REG_PRIMASK] = 1;
#endif
tcb->xcp.regs[REG_XPSR] = ARMV7M_XPSR_T;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
tcb->xcp.regs[REG_LR] = EXC_RETURN_PRIVTHR;
#endif
}

View file

@ -108,7 +108,7 @@ void up_sigdeliver(void)
regs[REG_PRIMASK] = rtcb->xcp.saved_primask;
#endif
regs[REG_XPSR] = rtcb->xcp.saved_xpsr;
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
regs[REG_LR] = rtcb->xcp.saved_lr;
#endif

View file

@ -41,7 +41,7 @@
#include <arch/syscall.h>
#if defined(CONFIG_NUTTX_KERNEL) && !defined(__KERNEL__)
#if defined(CONFIG_BUILD_PROTECTED) && !defined(__KERNEL__)
/****************************************************************************
* File info
@ -115,4 +115,4 @@ up_signal_handler:
.size up_signal_handler, .-up_signal_handler
.end
#endif /* CONFIG_NUTTX_KERNEL && !__KERNEL__ */
#endif /* CONFIG_BUILD_PROTECTED && !__KERNEL__ */

View file

@ -311,7 +311,7 @@ int up_svcall(int irq, FAR void *context)
* R3 = argv
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
case SYS_task_start:
{
/* Set up to return to the user-space task start-up function in
@ -343,7 +343,7 @@ int up_svcall(int irq, FAR void *context)
* R2 = arg
*/
#if defined(CONFIG_NUTTX_KERNEL) && !defined(CONFIG_DISABLE_PTHREAD)
#if defined(CONFIG_BUILD_PROTECTED) && !defined(CONFIG_DISABLE_PTHREAD)
case SYS_pthread_start:
{
/* Set up to return to the user-space pthread start-up function in
@ -377,7 +377,7 @@ int up_svcall(int irq, FAR void *context)
* ucontext (on the stack)
*/
#if defined(CONFIG_NUTTX_KERNEL) && !defined(CONFIG_DISABLE_SIGNALS)
#if defined(CONFIG_BUILD_PROTECTED) && !defined(CONFIG_DISABLE_SIGNALS)
case SYS_signal_handler:
{
struct tcb_s *rtcb = sched_self();
@ -420,7 +420,7 @@ int up_svcall(int irq, FAR void *context)
* R0 = SYS_signal_handler_return
*/
#if defined(CONFIG_NUTTX_KERNEL) && !defined(CONFIG_DISABLE_SIGNALS)
#if defined(CONFIG_BUILD_PROTECTED) && !defined(CONFIG_DISABLE_SIGNALS)
case SYS_signal_handler_return:
{
struct tcb_s *rtcb = sched_self();

View file

@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src/common/up_allocateheap.c
*
* Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
* Copyright (C) 2007, 2008, 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -55,6 +55,13 @@
/****************************************************************************
* Private Definitions
****************************************************************************/
/* Configuration */
#undef HAVE_KERNEL_HEAP
#if (defined(CONFIG_BUILD_PROTECTED) || defined(CONFIG_BUILD_KERNEL)) && \
defined(CONFIG_MM_KERNEL_HEAP)
# define HAVE_KERNEL_HEAP 1
#endif
/****************************************************************************
* Private Data
@ -74,9 +81,9 @@
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
* For the kernel build (CONFIG_BUILD_KERNEL/PROTECTED=y) with both kernel-
* and user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides
* the size of the unprotected, user-space heap.
*
* If a protected kernel-space heap is provided, the kernel heap must be
* allocated by an analogous up_allocate_kheap(). A custom version of this
@ -104,7 +111,7 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#ifdef HAVE_KERNEL_HEAP
/* Get the unaligned size and position of the user-space heap.
* This heap begins after the user-space .bss section at an offset
* of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
@ -134,14 +141,14 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
* Name: up_allocate_kheap
*
* Description:
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function allocates
* For the kernel build (CONFIG_BUILD_PROTECTED/KERNEL=y) with both kernel-
* and user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function allocates
* the kernel-space heap. A custom version of this function is need if
* memory protection of the kernel heap is required.
*
****************************************************************************/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#ifdef HAVE_KERNEL_HEAP
void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
{
/* Get the unaligned size and position of the user-space heap.

View file

@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src/common/up_createstack.c
*
* Copyright (C) 2007-2013 Gregory Nutt. All rights reserved.
* Copyright (C) 2007-2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -54,6 +54,13 @@
/****************************************************************************
* Pre-processor Macros
****************************************************************************/
/* Configuration */
#undef HAVE_KERNEL_HEAP
#if (defined(CONFIG_BUILD_PROTECTED) || defined(CONFIG_BUILD_KERNEL)) && \
defined(CONFIG_MM_KERNEL_HEAP)
# define HAVE_KERNEL_HEAP 1
#endif
/* ARM requires at least a 4-byte stack alignment. For use with EABI and
* floating point, the stack must be aligned to 8-byte addresses.
@ -120,10 +127,11 @@
* however, there are certain contexts where the TCB may not be fully
* initialized when up_create_stack is called.
*
* If CONFIG_NUTTX_KERNEL is defined, then this thread type may affect
* how the stack is allocated. For example, kernel thread stacks should
* be allocated from protected kernel memory. Stacks for user tasks and
* threads must come from memory that is accessible to user code.
* If either CONFIG_BUILD_PROTECTED or CONFIG_BUILD_KERNEL are defined,
* then this thread type may affect how the stack is allocated. For
* example, kernel thread stacks should be allocated from protected
* kernel memory. Stacks for user tasks and threads must come from
* memory that is accessible to user code.
*
****************************************************************************/
@ -149,7 +157,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
* then create a zeroed stack to make stack dumps easier to trace.
*/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#ifdef HAVE_KERNEL_HEAP
/* Use the kernel allocator if this is a kernel thread */
if (ttype == TCB_FLAG_TTYPE_KERNEL)

View file

@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src/common/up_pthread_start.c
*
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
* Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -44,7 +44,9 @@
#include "svcall.h"
#include "up_internal.h"
#if defined(CONFIG_NUTTX_KERNEL) && defined(__KERNEL__) && !defined(CONFIG_DISABLE_PTHREAD)
#if ((defined(CONFIG_BUILD_PROTECTED) && defined(__KERNEL__) || \
defined(defined(CONFIG_BUILD_KERNEL)) && \
!defined(CONFIG_DISABLE_PTHREAD)
/****************************************************************************
* Pre-processor Definitions
@ -93,4 +95,4 @@ void up_pthread_start(pthread_startroutine_t entrypt, pthread_addr_t arg)
sys_call2(SYS_pthread_start, (uintptr_t)entrypt, (uintptr_t)arg);
}
#endif /* CONFIG_NUTTX_KERNEL &&& __KERNEL__ && !CONFIG_DISABLE_PTHREAD */
#endif /* (CONFIG_BUILD_PROTECTED || CONFIG_BUILD_KERNEL) && !CONFIG_DISABLE_PTHREAD */

View file

@ -47,6 +47,17 @@
#include "up_internal.h"
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration */
#undef HAVE_KERNEL_HEAP
#if (defined(CONFIG_BUILD_PROTECTED) || defined(CONFIG_BUILD_KERNEL)) && \
defined(CONFIG_MM_KERNEL_HEAP)
# define HAVE_KERNEL_HEAP 1
#endif
/****************************************************************************
* Private Types
****************************************************************************/
@ -79,11 +90,11 @@
* however, there are certain error recovery contexts where the TCB may
* not be fully initialized when up_release_stack is called.
*
* If CONFIG_NUTTX_KERNEL is defined, then this thread type may affect
* how the stack is freed. For example, kernel thread stacks may have
* been allocated from protected kernel memory. Stacks for user tasks
* and threads must have come from memory that is accessible to user
* code.
* If either CONFIG_BUILD_PROTECTED or CONFIG_BUILD_KERNEL are defined,
* then this thread type may affect how the stack is freed. For example,
* kernel thread stacks may have been allocated from protected kernel
* memory. Stacks for user tasks and threads must have come from memory
* that is accessible to user code.
*
* Returned Value:
* None
@ -96,7 +107,7 @@ void up_release_stack(FAR struct tcb_s *dtcb, uint8_t ttype)
if (dtcb->stack_alloc_ptr)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#ifdef HAVE_KERNEL_HEAP
/* Use the kernel allocator if this is a kernel thread */
if (ttype == TCB_FLAG_TTYPE_KERNEL)

View file

@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src/common/up_signal_dispatch.c
*
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
* Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -43,7 +43,9 @@
#include "svcall.h"
#include "up_internal.h"
#if defined(CONFIG_NUTTX_KERNEL) && defined(__KERNEL__) && !defined(CONFIG_DISABLE_SIGNALS)
#if ((defined(CONFIG_BUILD_PROTECTED) && defined(__KERNEL__) || \
defined(defined(CONFIG_BUILD_KERNEL)) && \
!defined(CONFIG_DISABLE_SIGNALS)
/****************************************************************************
* Pre-processor Definitions
@ -99,4 +101,4 @@ void up_signal_dispatch(_sa_sigaction_t sighand, int signo,
(uintptr_t)info, (uintptr_t)ucontext);
}
#endif /* CONFIG_NUTTX_KERNEL && __KERNEL__ && !CONFIG_DISABLE_SIGNALS */
#endif /* (CONFIG_BUILD_PROTECTED || CONFIG_BUILD_KERNEL) && !CONFIG_DISABLE_PTHREAD */

View file

@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src/common/up_task_start.c
*
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
* Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -43,7 +43,7 @@
#include "svcall.h"
#include "up_internal.h"
#ifdef CONFIG_NUTTX_KERNEL
#if defined(CONFIG_BUILD_PROTECTED) || defined(CONFIG_BUILD_KERNEL)
/****************************************************************************
* Pre-processor Definitions
@ -94,4 +94,4 @@ void up_task_start(main_t taskentry, int argc, FAR char *argv[])
(uintptr_t)argv);
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED || CONFIG_BUILD_KERNEL */

View file

@ -71,7 +71,7 @@
* This function will be called to dynamically set aside
* the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both
* For the kernel build (CONFIG_BUILD_KERNEL=y) with both
* kernel- and user-space heaps (CONFIG_MM_KERNEL_HEAP=y),
* this function provides the size of the unprotected,
* user-space heap.

View file

@ -74,7 +74,7 @@
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_KERNEL=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
*

View file

@ -58,7 +58,7 @@ ifeq ($(CONFIG_ARCH_MEMCPY),y)
CMN_ASRCS += up_memcpy.S
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c up_stackframe.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_signal_dispatch.c
@ -91,7 +91,7 @@ ifneq ($(CONFIG_SCHED_TICKLESS),y)
CHIP_CSRCS += kinetis_timerisr.c
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += kinetis_userspace.c kinetis_mpuinit.c
endif

View file

@ -76,7 +76,7 @@
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
*
@ -105,7 +105,7 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
/* Get the unaligned size and position of the user-space heap.
* This heap begins after the user-space .bss section at an offset
* of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
@ -151,13 +151,13 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
* Name: up_allocate_kheap
*
* Description:
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function allocates
* (and protects) the kernel-space heap.
*
****************************************************************************/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
{
/* Get the unaligned size and position of the user-space heap.

View file

@ -46,7 +46,7 @@
#include "mpu.h"
#include "kinetis_mpuinit.h"
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_ARMV7M_MPU)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_ARMV7M_MPU)
/****************************************************************************
* Private Definitions
@ -120,5 +120,5 @@ void kinetis_mpu_uheap(uintptr_t start, size_t size)
mpu_userintsram(start, size);
}
#endif /* CONFIG_NUTTX_KERNEL && CONFIG_ARMV7M_MPU */
#endif /* CONFIG_BUILD_PROTECTED && CONFIG_ARMV7M_MPU */

View file

@ -67,7 +67,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void kinetis_mpuinitialize(void);
#else
# define kinetis_mpuinitialize()
@ -81,7 +81,7 @@ void kinetis_mpuinitialize(void);
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void kinetis_mpu_uheap(uintptr_t start, size_t size);
#else
# define kinetis_mpu_uheap(start,size)

View file

@ -146,7 +146,7 @@ void __start(void)
* segments.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
kinetis_userspace();
#endif

View file

@ -47,7 +47,7 @@
#include "kinetis_mpuinit.h"
#include "kinetis_userspace.h"
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/****************************************************************************
* Pre-processor Definitions
@ -115,5 +115,5 @@ void kinetis_userspace(void)
kinetis_mpuinitialize();
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */

View file

@ -69,7 +69,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void kinetis_userspace(void);
#endif

View file

@ -63,7 +63,7 @@
* nested interrupt, the interrupt stack if no privileged task has run.
*/
# if defined(CONFIG_NUTTX_KERNEL) && CONFIG_ARCH_INTERRUPTSTACK < 4
# if defined(CONFIG_BUILD_PROTECTED) && CONFIG_ARCH_INTERRUPTSTACK < 4
# error Interrupt stack must be used with high priority interrupts in kernel mode
# endif
@ -621,7 +621,7 @@ exception_common:
/* Complete the context save */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)
@ -663,7 +663,7 @@ exception_common:
* r14=register values.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
stmdb sp!, {r2-r11,r14} /* Save the remaining registers plus the SP value */
#else
stmdb sp!, {r2-r11} /* Save the remaining registers plus the SP value */
@ -751,7 +751,7 @@ exception_common:
ldmia r1, {r4-r11} /* Fetch eight registers in HW save area */
ldr r1, [r0, #(4*REG_SP)] /* R1=Value of SP before interrupt */
stmdb r1!, {r4-r11} /* Store eight registers in HW save area */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r0, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r0, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -766,7 +766,7 @@ exception_common:
*/
2:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r1!, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r1!, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -791,7 +791,7 @@ exception_common:
3:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)

View file

@ -47,7 +47,7 @@ CMN_CSRCS += up_schedulesigaction.c up_sigdeliver.c up_systemreset.c
CMN_CSRCS += up_unblocktask.c up_usestack.c up_doirq.c up_hardfault.c
CMN_CSRCS += up_svcall.c up_vectors.c up_vfork.c
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_task_start.c up_pthread_start.c up_stackframe.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_signal_dispatch.c
@ -75,7 +75,7 @@ ifneq ($(CONFIG_SCHED_TICKLESS),y)
CHIP_CSRCS += kl_timerisr.c
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += kl_userspace.c
endif

View file

@ -162,7 +162,7 @@ void __start(void)
* segments.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
kl_userspace();
showprogress('E');
#endif

View file

@ -46,7 +46,7 @@
#include "kl_userspace.h"
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/****************************************************************************
* Pre-processor Definitions
@ -110,5 +110,5 @@ void kl_userspace(void)
}
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */

View file

@ -69,7 +69,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void kl_userspace(void);
#endif

View file

@ -70,7 +70,7 @@ ifeq ($(CONFIG_ARCH_MEMCPY),y)
CMN_ASRCS += up_memcpy.S
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c up_stackframe.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_signal_dispatch.c
@ -113,7 +113,7 @@ ifeq ($(CONFIG_ARMV7M_CMNVECTOR),y)
CHIP_ASRCS += lpc17_vectors.S
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += lpc17_userspace.c lpc17_mpuinit.c
endif

View file

@ -186,7 +186,7 @@
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
*
@ -215,7 +215,7 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
/* Get the unaligned size and position of the user-space heap.
* This heap begins after the user-space .bss section at an offset
* of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
@ -261,13 +261,13 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
* Name: up_allocate_kheap
*
* Description:
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function allocates
* (and protects) the kernel-space heap.
*
****************************************************************************/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
{
/* Get the unaligned size and position of the user-space heap.
@ -326,7 +326,7 @@ void up_addregion(void)
*/
#ifdef LPC17_AHB_HEAPBASE
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
/* Yes.. allow user-mode access to the AHB SRAM user heap memory */

View file

@ -46,7 +46,7 @@
#include "mpu.h"
#include "lpc17_mpuinit.h"
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_ARMV7M_MPU)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_ARMV7M_MPU)
/****************************************************************************
* Private Definitions
@ -120,5 +120,5 @@ void lpc17_mpu_uheap(uintptr_t start, size_t size)
mpu_userintsram(start, size);
}
#endif /* CONFIG_NUTTX_KERNEL && CONFIG_ARMV7M_MPU */
#endif /* CONFIG_BUILD_PROTECTED && CONFIG_ARMV7M_MPU */

View file

@ -67,7 +67,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void lpc17_mpuinitialize(void);
#else
# define lpc17_mpuinitialize()
@ -81,7 +81,7 @@ void lpc17_mpuinitialize(void);
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void lpc17_mpu_uheap(uintptr_t start, size_t size);
#else
# define lpc17_mpu_uheap(start,size)

View file

@ -239,7 +239,7 @@ void __start(void)
* segments.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
lpc17_userspace();
showprogress('E');
#endif

View file

@ -47,7 +47,7 @@
#include "lpc17_mpuinit.h"
#include "lpc17_userspace.h"
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/****************************************************************************
* Pre-processor Definitions
@ -115,5 +115,5 @@ void lpc17_userspace(void)
lpc17_mpuinitialize();
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */

View file

@ -69,7 +69,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void lpc17_userspace(void);
#endif

View file

@ -64,7 +64,7 @@
* nested interrupt, the interrupt stack if no privileged task has run.
*/
# if defined(CONFIG_NUTTX_KERNEL) && CONFIG_ARCH_INTERRUPTSTACK < 4
# if defined(CONFIG_BUILD_PROTECTED) && CONFIG_ARCH_INTERRUPTSTACK < 4
# error Interrupt stack must be used with high priority interrupts in kernel mode
# endif
@ -233,7 +233,7 @@ exception_common:
/* Complete the context save */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)
@ -275,7 +275,7 @@ exception_common:
* r14=register values.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
stmdb sp!, {r2-r11,r14} /* Save the remaining registers plus the SP value */
#else
stmdb sp!, {r2-r11} /* Save the remaining registers plus the SP value */
@ -363,7 +363,7 @@ exception_common:
ldmia r1, {r4-r11} /* Fetch eight registers in HW save area */
ldr r1, [r0, #(4*REG_SP)] /* R1=Value of SP before interrupt */
stmdb r1!, {r4-r11} /* Store eight registers in HW save area */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r0, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r0, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -378,7 +378,7 @@ exception_common:
*/
2:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r1!, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r1!, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -403,7 +403,7 @@ exception_common:
3:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)

View file

@ -159,7 +159,7 @@
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_KERNEL=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
*

View file

@ -59,7 +59,7 @@ ifeq ($(CONFIG_ARCH_MEMCPY),y)
CMN_ASRCS += up_memcpy.S
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c up_stackframe.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_signal_dispatch.c
@ -91,7 +91,7 @@ ifneq ($(CONFIG_SCHED_TICKLESS),y)
CHIP_CSRCS += lpc43_timerisr.c
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += lpc43_userspace.c lpc43_mpuinit.c
endif

View file

@ -234,7 +234,7 @@ const uint32_t g_idle_topstack = (uint32_t)&_ebss + CONFIG_IDLETHREAD_STACKSIZE;
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
*

View file

@ -46,7 +46,7 @@
#include "mpu.h"
#include "lpc43_mpuinit.h"
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_ARMV7M_MPU)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_ARMV7M_MPU)
/****************************************************************************
* Private Definitions
@ -120,5 +120,5 @@ void lpc43_mpu_uheap(uintptr_t start, size_t size)
mpu_userintsram(start, size);
}
#endif /* CONFIG_NUTTX_KERNEL && CONFIG_ARMV7M_MPU */
#endif /* CONFIG_BUILD_PROTECTED && CONFIG_ARMV7M_MPU */

View file

@ -67,7 +67,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void lpc43_mpuinitialize(void);
#else
# define lpc43_mpuinitialize()
@ -81,7 +81,7 @@ void lpc43_mpuinitialize(void);
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void lpc43_mpu_uheap(uintptr_t start, size_t size);
#else
# define lpc43_mpu_uheap(start,size)

View file

@ -339,7 +339,7 @@ void __start(void)
* segments.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
lpc43_userspace();
showprogress('F');
#endif

View file

@ -47,7 +47,7 @@
#include "lpc43_mpuinit.h"
#include "lpc43_userspace.h"
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/****************************************************************************
* Pre-processor Definitions
@ -115,5 +115,5 @@ void lpc43_userspace(void)
lpc43_mpuinitialize();
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */

View file

@ -69,7 +69,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void lpc43_userspace(void);
#endif

View file

@ -47,7 +47,7 @@ CMN_CSRCS += up_schedulesigaction.c up_sigdeliver.c up_systemreset.c
CMN_CSRCS += up_unblocktask.c up_usestack.c up_doirq.c up_hardfault.c
CMN_CSRCS += up_svcall.c up_vectors.c up_vfork.c
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_task_start.c up_pthread_start.c up_stackframe.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_signal_dispatch.c
@ -75,7 +75,7 @@ ifneq ($(CONFIG_SCHED_TICKLESS),y)
CHIP_CSRCS += nuc_timerisr.c
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += nuc_userspace.c
endif

View file

@ -156,7 +156,7 @@ void __start(void)
* segments.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
nuc_userspace();
showprogress('E');
#endif

View file

@ -46,7 +46,7 @@
#include "nuc_userspace.h"
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/****************************************************************************
* Pre-processor Definitions
@ -110,5 +110,5 @@ void nuc_userspace(void)
}
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */

View file

@ -69,7 +69,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void nuc_userspace(void);
#endif

View file

@ -62,7 +62,7 @@ ifeq ($(CONFIG_ARCH_MEMCPY),y)
CMN_ASRCS += up_memcpy.S
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c up_stackframe.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_signal_dispatch.c
@ -104,7 +104,7 @@ else
CHIP_CSRCS += sam_clockconfig.c sam_gpio.c
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += sam_userspace.c sam_mpuinit.c
endif

View file

@ -175,7 +175,7 @@
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
*
@ -204,7 +204,7 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
/* Get the unaligned size and position of the user-space heap.
* This heap begins after the user-space .bss section at an offset
* of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
@ -250,13 +250,13 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
* Name: up_allocate_kheap
*
* Description:
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function allocates
* (and protects) the kernel-space heap.
*
****************************************************************************/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
{
/* Get the unaligned size and position of the user-space heap.

View file

@ -46,7 +46,7 @@
#include "mpu.h"
#include "sam_mpuinit.h"
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_ARMV7M_MPU)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_ARMV7M_MPU)
/****************************************************************************
* Private Definitions
@ -120,5 +120,5 @@ void sam_mpu_uheap(uintptr_t start, size_t size)
mpu_userintsram(start, size);
}
#endif /* CONFIG_NUTTX_KERNEL && CONFIG_ARMV7M_MPU */
#endif /* CONFIG_BUILD_PROTECTED && CONFIG_ARMV7M_MPU */

View file

@ -85,7 +85,7 @@ extern "C"
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void sam_mpuinitialize(void);
#else
# define sam_mpuinitialize()
@ -99,7 +99,7 @@ void sam_mpuinitialize(void);
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void sam_mpu_uheap(uintptr_t start, size_t size);
#else
# define sam_mpu_uheap(start,size)

View file

@ -154,7 +154,7 @@ void __start(void)
* segements.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
sam_userspace();
showprogress('C');
#endif

View file

@ -47,7 +47,7 @@
#include "sam_mpuinit.h"
#include "sam_userspace.h"
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/****************************************************************************
* Private Definitions
@ -115,5 +115,5 @@ void sam_userspace(void)
sam_mpuinitialize();
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */

View file

@ -92,7 +92,7 @@ extern "C"
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void sam_userspace(void);
#endif

View file

@ -62,7 +62,7 @@
* nested interrupt, the interrupt stack if no privileged task has run.
*/
# if defined(CONFIG_NUTTX_KERNEL) && CONFIG_ARCH_INTERRUPTSTACK < 4
# if defined(CONFIG_BUILD_PROTECTED) && CONFIG_ARCH_INTERRUPTSTACK < 4
# error Interrupt stack must be used with high priority interrupts in kernel mode
# endif
@ -246,7 +246,7 @@ exception_common:
/* Complete the context save */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)
@ -288,7 +288,7 @@ exception_common:
* r14=register values.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
stmdb sp!, {r2-r11,r14} /* Save the remaining registers plus the SP value */
#else
stmdb sp!, {r2-r11} /* Save the remaining registers plus the SP value */
@ -376,7 +376,7 @@ exception_common:
ldmia r1, {r4-r11} /* Fetch eight registers in HW save area */
ldr r1, [r0, #(4*REG_SP)] /* R1=Value of SP before interrupt */
stmdb r1!, {r4-r11} /* Store eight registers in HW save area */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r0, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r0, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -391,7 +391,7 @@ exception_common:
*/
2:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r1!, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r1!, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -416,7 +416,7 @@ exception_common:
3:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)

View file

@ -46,7 +46,6 @@
#include <nuttx/arch.h>
#include <nuttx/kmalloc.h>
#include <nuttx/userspace.h>
#include <arch/board/board.h>
@ -219,7 +218,7 @@
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_KERNEL=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
*
@ -249,7 +248,7 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
/* Get the unaligned size and position of the user-space heap.
* This heap begins after the user-space .bss section at an offset
* of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
@ -291,14 +290,14 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
* Name: up_allocate_kheap
*
* Description:
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_KERNEL=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function allocates
* the kernel-space heap. A custom version of this function is need if
* memory protection of the kernel heap is required.
*
****************************************************************************/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
{
/* Get the unaligned size and position of the user-space heap.
@ -341,7 +340,7 @@ void up_addregion(void)
vaddr = (uintptr_t)SAM_ISRAM0_VADDR
size = SAM_ISRAM0_SIZE + SAM_ISRAM1_SIZE;
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
/* Allow user-mode access to the ISRAM heap */
sam_uheap(vaddr, size);
@ -360,7 +359,7 @@ void up_addregion(void)
vaddr = (uintptr_t)SAM_DDRCS_VSECTION + SAMA5_DDRCS_HEAP_OFFSET;
size = SAMA5_DDRCS_HEAP_SIZE;
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
/* Allow user-mode access to the DDR-SDRAM heap */
sam_uheap(vaddr, size);
@ -385,7 +384,7 @@ void up_addregion(void)
vaddr = (uintptr_t)SAM_EBICS0_VSECTION + SAMA5_EBICS0_HEAP_OFFSET;
size = SAMA5_EBICS0_HEAP_SIZE;
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
/* Allow user-mode access to the EBICS0 heap */
sam_uheap(vaddr, size);
@ -410,7 +409,7 @@ void up_addregion(void)
vaddr = (uintptr_t)SAM_EBICS1_VSECTION + SAMA5_EBICS1_HEAP_OFFSET;
size = SAMA5_EBICS1_HEAP_SIZE;
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
/* Allow user-mode access to the EBICS1 heap */
sam_uheap(vaddr, size);
@ -435,7 +434,7 @@ void up_addregion(void)
vaddr = (uintptr_t)SAM_EBICS2_VSECTION + SAMA5_EBICS2_HEAP_OFFSET;
size = SAMA5_EBICS2_HEAP_SIZE;
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
/* Allow user-mode access to the EBICS2 heap */
sam_uheap(vaddr, size);
@ -460,7 +459,7 @@ void up_addregion(void)
vaddr = (uintptr_t)SAM_EBICS3_VSECTION + SAMA5_EBICS3_HEAP_OFFSET;
size = SAMA5_EBICS3_HEAP_SIZE;
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
/* Allow user-mode access to the EBICS3 heap */
sam_uheap(vaddr, size);

View file

@ -782,14 +782,4 @@ void up_boot(void)
sam_earlyserialinit();
#endif
#ifdef CONFIG_NUTTX_KERNEL
/* For the case of the separate user-/kernel-space build, perform whatever
* platform specific initialization of the user memory is required.
* Normally this just means initializing the user space .data and .bss
* segments.
*/
sam_userspace();
#endif
}

View file

@ -47,7 +47,7 @@ CMN_CSRCS += up_schedulesigaction.c up_sigdeliver.c up_systemreset.c
CMN_CSRCS += up_unblocktask.c up_usestack.c up_doirq.c up_hardfault.c
CMN_CSRCS += up_svcall.c up_vectors.c up_vfork.c
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_task_start.c up_pthread_start.c up_stackframe.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_signal_dispatch.c
@ -76,7 +76,7 @@ ifneq ($(CONFIG_SCHED_TICKLESS),y)
CHIP_CSRCS += sam_timerisr.c
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += sam_userspace.c
endif

View file

@ -157,7 +157,7 @@ void __start(void)
* segments.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
sam_userspace();
showprogress('E');
#endif

View file

@ -46,7 +46,7 @@
#include "sam_userspace.h"
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/****************************************************************************
* Pre-processor Definitions
@ -110,4 +110,4 @@ void sam_userspace(void)
}
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */

View file

@ -69,7 +69,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void sam_userspace(void);
#endif

View file

@ -67,7 +67,7 @@ ifeq ($(CONFIG_ARCH_MEMCPY),y)
CMN_ASRCS += up_memcpy.S
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c up_stackframe.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_signal_dispatch.c
@ -105,7 +105,7 @@ ifeq ($(CONFIG_ARMV7M_CMNVECTOR),y)
CHIP_ASRCS += stm32_vectors.S
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += stm32_userspace.c stm32_mpuinit.c
endif

View file

@ -426,7 +426,7 @@ static inline void up_heap_color(FAR void *start, size_t size)
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
*
@ -455,7 +455,7 @@ static inline void up_heap_color(FAR void *start, size_t size)
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
/* Get the unaligned size and position of the user-space heap.
* This heap begins after the user-space .bss section at an offset
* of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
@ -509,13 +509,13 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
* Name: up_allocate_kheap
*
* Description:
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function allocates
* (and protects) the kernel-space heap.
*
****************************************************************************/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
{
/* Get the unaligned size and position of the user-space heap.
@ -562,7 +562,7 @@ void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
void up_addregion(void)
{
#ifndef CONFIG_STM32_CCMEXCLUDE
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
/* Allow user-mode access to the STM32F20xxx/STM32F40xxx CCM SRAM heap */
@ -580,7 +580,7 @@ void up_addregion(void)
#endif
#ifdef CONFIG_STM32_FSMC_SRAM
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
/* Allow user-mode access to the FSMC SRAM user heap memory */

View file

@ -46,7 +46,7 @@
#include "mpu.h"
#include "stm32_mpuinit.h"
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_ARMV7M_MPU)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_ARMV7M_MPU)
/****************************************************************************
* Private Definitions
@ -120,5 +120,5 @@ void stm32_mpu_uheap(uintptr_t start, size_t size)
mpu_userintsram(start, size);
}
#endif /* CONFIG_NUTTX_KERNEL && CONFIG_ARMV7M_MPU */
#endif /* CONFIG_BUILD_PROTECTED && CONFIG_ARMV7M_MPU */

View file

@ -67,7 +67,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void stm32_mpuinitialize(void);
#else
# define stm32_mpuinitialize()
@ -81,7 +81,7 @@ void stm32_mpuinitialize(void);
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void stm32_mpu_uheap(uintptr_t start, size_t size);
#else
# define stm32_mpu_uheap(start,size)

View file

@ -280,7 +280,7 @@ void __start(void)
* segments.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
stm32_userspace();
showprogress('E');
#endif

View file

@ -47,7 +47,7 @@
#include "stm32_mpuinit.h"
#include "stm32_userspace.h"
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/****************************************************************************
* Pre-processor Definitions
@ -115,5 +115,5 @@ void stm32_userspace(void)
stm32_mpuinitialize();
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */

View file

@ -69,7 +69,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void stm32_userspace(void);
#endif

View file

@ -70,7 +70,7 @@
* no privileged task has run.
*/
# if defined(CONFIG_NUTTX_KERNEL) && CONFIG_ARCH_INTERRUPTSTACK < 4
# if defined(CONFIG_BUILD_PROTECTED) && CONFIG_ARCH_INTERRUPTSTACK < 4
# error Interrupt stack must be used with high priority interrupts in kernel mode
# endif
@ -248,7 +248,7 @@ exception_common:
/* Complete the context save */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)
@ -290,7 +290,7 @@ exception_common:
* r14=register values.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
stmdb sp!, {r2-r11,r14} /* Save the remaining registers plus the SP value */
#else
stmdb sp!, {r2-r11} /* Save the remaining registers plus the SP value */
@ -378,7 +378,7 @@ exception_common:
ldmia r1, {r4-r11} /* Fetch eight registers in HW save area */
ldr r1, [r0, #(4*REG_SP)] /* R1=Value of SP before interrupt */
stmdb r1!, {r4-r11} /* Store eight registers in HW save area */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r0, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r0, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -393,7 +393,7 @@ exception_common:
*/
2:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r1!, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r1!, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -418,7 +418,7 @@ exception_common:
3:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)

View file

@ -58,7 +58,7 @@ ifeq ($(CONFIG_DEBUG_STACK),y)
CMN_CSRCS += up_checkstack.c
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_mpu.c up_task_start.c up_pthread_start.c up_stackframe.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_signal_dispatch.c
@ -81,7 +81,7 @@ ifneq ($(CONFIG_SCHED_TICKLESS),y)
CHIP_CSRCS += tiva_timerisr.c
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += tiva_userspace.c tiva_mpuinit.c
endif

View file

@ -76,7 +76,7 @@
* Description:
* This function will be called to dynamically set aside the heap region.
*
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the
* size of the unprotected, user-space heap.
*
@ -105,7 +105,7 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
/* Get the unaligned size and position of the user-space heap.
* This heap begins after the user-space .bss section at an offset
* of CONFIG_MM_KERNEL_HEAPSIZE (subject to alignment).
@ -151,13 +151,13 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
* Name: up_allocate_kheap
*
* Description:
* For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and
* For the kernel build (CONFIG_BUILD_PROTECTED=y) with both kernel- and
* user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function allocates
* (and protects) the kernel-space heap.
*
****************************************************************************/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP)
void up_allocate_kheap(FAR void **heap_start, size_t *heap_size)
{
/* Get the unaligned size and position of the user-space heap.

View file

@ -46,7 +46,7 @@
#include "mpu.h"
#include "tiva_mpuinit.h"
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_ARMV7M_MPU)
#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_ARMV7M_MPU)
/****************************************************************************
* Private Definitions
@ -120,5 +120,5 @@ void tiva_mpu_uheap(uintptr_t start, size_t size)
mpu_userintsram(start, size);
}
#endif /* CONFIG_NUTTX_KERNEL && CONFIG_ARMV7M_MPU */
#endif /* CONFIG_BUILD_PROTECTED && CONFIG_ARMV7M_MPU */

View file

@ -67,7 +67,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void tiva_mpuinitialize(void);
#else
# define tiva_mpuinitialize()
@ -81,7 +81,7 @@ void tiva_mpuinitialize(void);
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void tiva_mpu_uheap(uintptr_t start, size_t size);
#else
# define tiva_mpu_uheap(start,size)

View file

@ -150,7 +150,7 @@ void __start(void)
* segments.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
tiva_userspace();
showprogress('E');
#endif

View file

@ -47,7 +47,7 @@
#include "tiva_mpuinit.h"
#include "tiva_userspace.h"
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/****************************************************************************
* Pre-processor Definitions
@ -115,4 +115,4 @@ void tiva_userspace(void)
tiva_mpuinitialize();
}
#endif /* CONFIG_NUTTX_KERNEL */
#endif /* CONFIG_BUILD_PROTECTED */

View file

@ -69,7 +69,7 @@
*
****************************************************************************/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
void tiva_userspace(void);
#endif

View file

@ -69,7 +69,7 @@
* no privileged task has run.
*/
# if defined(CONFIG_NUTTX_KERNEL) && CONFIG_ARCH_INTERRUPTSTACK < 4
# if defined(CONFIG_BUILD_PROTECTED) && CONFIG_ARCH_INTERRUPTSTACK < 4
# error Interrupt stack must be used with high priority interrupts in kernel mode
# endif
@ -223,7 +223,7 @@ exception_common:
/* Complete the context save */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)
@ -265,7 +265,7 @@ exception_common:
* r14=register values.
*/
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
stmdb sp!, {r2-r11,r14} /* Save the remaining registers plus the SP value */
#else
stmdb sp!, {r2-r11} /* Save the remaining registers plus the SP value */
@ -353,7 +353,7 @@ exception_common:
ldmia r1, {r4-r11} /* Fetch eight registers in HW save area */
ldr r1, [r0, #(4*REG_SP)] /* R1=Value of SP before interrupt */
stmdb r1!, {r4-r11} /* Store eight registers in HW save area */
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r0, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r0, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -368,7 +368,7 @@ exception_common:
*/
2:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
ldmia r1!, {r2-r11,r14} /* Recover R4-R11, r14 + 2 temp values */
#else
ldmia r1!, {r2-r11} /* Recover R4-R11 + 2 temp values */
@ -393,7 +393,7 @@ exception_common:
3:
#ifdef CONFIG_NUTTX_KERNEL
#ifdef CONFIG_BUILD_PROTECTED
/* The EXC_RETURN value will be 0xfffffff9 (privileged thread) or 0xfffffff1
* (handler mode) if the stack is on the MSP. It can only be on the PSP if
* EXC_RETURN is 0xfffffffd (unprivileged thread)

View file

@ -96,11 +96,6 @@
* however, there are certain contexts where the TCB may not be fully
* initialized when up_create_stack is called.
*
* If CONFIG_NUTTX_KERNEL is defined, then this thread type may affect
* how the stack is allocated. For example, kernel thread stacks should
* be allocated from protected kernel memory. Stacks for user tasks and
* threads must come from memory that is accessible to user code.
*
****************************************************************************/
int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
@ -125,28 +120,11 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
* then create a zeroed stack to make stack dumps easier to trace.
*/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
/* Use the kernel allocator if this is a kernel thread */
if (ttype == TCB_FLAG_TTYPE_KERNEL)
{
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (uint32_t *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kumalloc(stack_size);
#endif
}
else
#endif
{
/* Use the user-space allocator if this is a task or pthread */
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (uint32_t *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kumalloc(stack_size);
#endif
}
#ifdef CONFIG_DEBUG
/* Was the allocation successful? */

View file

@ -95,7 +95,7 @@
* however, there are certain contexts where the TCB may not be fully
* initialized when up_create_stack is called.
*
* If CONFIG_NUTTX_KERNEL is defined, then this thread type may affect
* If CONFIG_BUILD_KERNEL is defined, then this thread type may affect
* how the stack is allocated. For example, kernel thread stacks should
* be allocated from protected kernel memory. Stacks for user tasks and
* threads must come from memory that is accessible to user code.
@ -124,7 +124,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
* then create a zeroed stack to make stack dumps easier to trace.
*/
#if defined(CONFIG_NUTTX_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
#if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_KERNEL_HEAP)
/* Use the kernel allocator if this is a kernel thread */
if (ttype == TCB_FLAG_TTYPE_KERNEL)

Some files were not shown because too many files have changed in this diff Show more