From 953584777c08ca70a5e70458e5799613e97c7882 Mon Sep 17 00:00:00 2001
From: Gregory Nutt Last Updated: August 24, 2014 Last Updated: August 29, 2014
NuttX RTOS Porting Guide
- CONFIG_NUTTX_KERNEL
configuration.
+ supports the CONFIG_BUILD_PROTECTED
or CONFIG_BUILD_KERNEL
configurations.
uintptr_t sys_call0(unsigned int nbr)
:
@@ -1329,7 +1329,7 @@ include/
Normally the logic in this file builds to a single library (libc.a
).
- However, if NuttX is built as a separately compiled kernel (with CONFIG_NUTTX_KERNEL=y
), then the contents of this directory are built as two libraries:
+ However, if NuttX is built as a separately compiled kernel (with CONFIG_BUILD_PROTECTED=y
or CONFIG_BUILD_KERNEL=y
), then the contents of this directory are built as two libraries:
One for use by user programs (libuc.a
) and one for use only within the <kernel> space (libkc.a
).
@@ -1393,7 +1393,7 @@ libc/
- If NuttX is built as a separately compiled kernel (with CONFIG_NUTTX_KERNEL=y
),
+ If NuttX is built as a separately compiled kernel (with CONFIG_BUILD_PROTECTED=y
or CONFIG_BUILD_KERNEL=y
),
then the contents of this directory are built.
This directory holds a syscall interface that can be used for communication
between user-mode applications and the kernel-mode RTOS.
@@ -1783,13 +1783,10 @@ The system can be re-made subsequently by just typing make
.
This function may also need to set up processor registers so that the new thread executes
with the correct privileges.
- If CONFIG_NUTTX_KERNEL
has been selected in the NuttX configuration,
- then special initialization may need to be performed depending on the task type specified
- in the TCB's flags field:
+ If CONFIG_BUILD_PROTECTED
or CONFIG_BUILD_KERNEL
have been selected in the NuttX configuration, then special initialization may need to be performed depending on the task type specified in the TCB's flags field:
Kernel threads will require kernel-mode privileges;
User tasks and pthreads should have only user-mode privileges.
- If CONFIG_NUTTX_KERNEL
has not been selected,
- then all threads should have kernel-mode privileges.
+ If neither CONFIG_BUILD_PROTECTED
nor CONFIG_BUILD_KERNEL
have been selected, then all threads should have kernel-mode privileges.
up_create_stack()
make
.
This thread type is normally available in the flags field of the TCB, 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 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.
make
.
- This API is NOT required if CONFIG_NUTTX_KERNEL
is undefined or if CONFIG_CUSTOM_STACK
is defined.
+ This API is NOT required if CONFIG_BUILD_PROTECTED
and CONFIG_BUILD_KERNEL
are undefined or if CONFIG_CUSTOM_STACK
is defined.
Input Parameters:
make
.
This thread type is normally available in the flags field of the TCB, 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.
+ If 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
make
.
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_PROTECTED=y
or 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.
If a protected kernel-space heap is provided, the kernel heap must be allocated (and protected) by an analogous up_allocate_kheap()
.