summaryrefslogtreecommitdiff
path: root/nuttx/Kconfig
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-08-29 14:47:22 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-08-29 14:47:22 -0600
commit64892e44f2ce2612c77b1b20497fb007adafafb8 (patch)
tree2c917f29727a017b85193ac85959663d504b26e5 /nuttx/Kconfig
parentc48af0eb9c61462f59a7ba63ca7a73e8df146f49 (diff)
downloadnuttx-64892e44f2ce2612c77b1b20497fb007adafafb8.tar.gz
nuttx-64892e44f2ce2612c77b1b20497fb007adafafb8.tar.bz2
nuttx-64892e44f2ce2612c77b1b20497fb007adafafb8.zip
Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL
Diffstat (limited to 'nuttx/Kconfig')
-rw-r--r--nuttx/Kconfig67
1 files changed, 51 insertions, 16 deletions
diff --git a/nuttx/Kconfig b/nuttx/Kconfig
index eb1a43e9a..d8960a951 100644
--- a/nuttx/Kconfig
+++ b/nuttx/Kconfig
@@ -111,37 +111,79 @@ config APPS_DIR
`-application
|
`- Makefile
-
+
Then you would set APPS_DIR=../application.
The application direction must contain Makefile and this make
file must support the following targets:
-
+
1)libapps$(LIBEXT) (usually libapps.a). libapps.a is a static
library ( an archive) that contains all of application object
files.
-
+
2)clean. Do whatever is appropriate to clean the application
directories for a fresh build.
-
+
3)distclean. Clean everything -- auto-generated files, symbolic
links etc. -- so that the directory contents are the same as
the contents in your configuration management system.
This is only done when you change the NuttX configuration.
-
+
4)depend. Make or update the application build dependencies.
-
+
When this application is invoked it will receive the setting TOPDIR like:
-
+
$(MAKE) -C $(CONFIG_APPS_DIR) TOPDIR="$(TOPDIR)" <target>
-
+
TOPDIR is the full path to the NuttX directory. It can be used, for
example, to include makefile fragments (e.g., .config or Make.defs)
or to set up include file paths.
+choice
+ prompt "Memory organization"
+ default BUILD_FLAT
+
+config BUILD_FLAT
+ bool "Flat address space"
+ ---help---
+ Build NuttX as one large, executable "blob". All of the code
+ within the blob can interrupt with all of the other code within
+ the blob. There are no special privileges, protections, or
+ restraints.
+
+config BUILD_PROTECTED
+ bool "NuttX protected build"
+ default n
+ depends on ARCH_USE_MPU
+ select LIB_SYSCALL
+ select BUILD_2PASS
+ ---help---
+ Builds NuttX and selected applications as two "blobs": A protected, privileged kernel blob and a separate unprivileged, user blob. This require sue of the two pass build with each blob being build on each pass.
+
+ NOTE: This build configuration requires that the platform support
+ a memory protection unit (MPU). Support, however, may not be
+ implemented on all platforms.
+
+config BUILD_KERNEL
+ bool "NuttX kernel build"
+ default n
+ depends on ARCH_USE_MMU && ARCH_ADDRENV && EXPERIMENTAL
+ select LIB_SYSCALL
+ ---help---
+ Builds NuttX as a separately compiled kernel. No applications are
+ built. All user applications must reside in a file system where
+ they can be loaded into memory for execution.
+
+ NOTE: This build configuration requires that the platform support
+ a memory management unit (MPU) and address environments. Support,
+ however, may not be implemented on all platforms.
+
+endchoice # Build configuration
+
config BUILD_2PASS
bool "Two pass build"
default n
+ depends on !BUILD_KERNEL
---help---
Enables the two pass build options.
@@ -183,17 +225,10 @@ config PASS1_OBJECT
from the PASS1_TARGET. It may be available at link time
in the arch/<architecture>/src directory.
-config NUTTX_KERNEL
- bool "NuttX kernel build"
- default n
- select LIB_SYSCALL
- ---help---
- Builds NuttX as a separately compiled kernel.
-
config NUTTX_USERSPACE
hex "Beginning of user-space blob"
default 0x0
- depends on NUTTX_KERNEL
+ depends on BUILD_PROTECTED
---help---
In the kernel build, the NuttX kernel and the user-space blob are
built separately linked objects. NUTTX_USERSPACE provides the