summaryrefslogtreecommitdiff
path: root/nuttx/configs/README.txt
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-03-23 02:24:38 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-03-23 02:24:38 +0000
commit4343c3bdcd0b366f31cf0f17eef01c1f3d1f9c62 (patch)
treefebec22088721155db384fd5d24306221e069ec3 /nuttx/configs/README.txt
parent91451bb1709c1d79fd000e927ee13aace1ca5104 (diff)
downloadpx4-nuttx-4343c3bdcd0b366f31cf0f17eef01c1f3d1f9c62.tar.gz
px4-nuttx-4343c3bdcd0b366f31cf0f17eef01c1f3d1f9c62.tar.bz2
px4-nuttx-4343c3bdcd0b366f31cf0f17eef01c1f3d1f9c62.zip
Initial Release
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@125 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/configs/README.txt')
-rw-r--r--nuttx/configs/README.txt213
1 files changed, 213 insertions, 0 deletions
diff --git a/nuttx/configs/README.txt b/nuttx/configs/README.txt
new file mode 100644
index 000000000..a2faea333
--- /dev/null
+++ b/nuttx/configs/README.txt
@@ -0,0 +1,213 @@
+Board-Specific Configurations
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Table of Contents
+^^^^^^^^^^^^^^^^^
+
+ o Board-Specific Configurations
+ o Summary of Files
+ o Supported Architectures
+ o Configuring NuttX
+
+Board-Specific Configurations
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The configs/ subdirectory contains configuration data for each board. These
+board-specific configurations plus the architecture-specific configurations in
+the arch/ subdirectory complete define a customized port of NuttX.
+
+Directory Structure
+^^^^^^^^^^^^^^^^^^^
+
+The configs directory contains board specific configurationlogic. Each
+board must provide a subdirectory <board-name> under configs/ with the
+following characteristics:
+
+
+ <board-name>
+ |-- Make.defs
+ |-- defconfig
+ `-- setenv.sh
+
+Summary of Files
+^^^^^^^^^^^^^^^^
+
+Make.defs -- This makefile fragment provides architecture and
+ tool-specific build options. It will be included by all other
+ makefiles in the build (once it is installed). This make fragment
+ should define:
+
+ Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP
+ Tool options: CFLAGS, LDFLAGS
+
+ When this makefile fragment runs, it will be passed TOPDIR which
+ is the path to the root directory of the build. This makefile
+ fragment may include ${TOPDIR}/.config to perform configuration
+ specific settings. For example, the CFLAGS will most likely be
+ different if CONFIG_DEBUG=y.
+
+defconfig -- This is a configuration file similar to the Linux
+ configuration file. In contains varialble/value pairs like:
+
+ CONFIG_VARIABLE=value
+
+ This configuration file will be used at build time:
+
+ (1) as a makefile fragment included in other makefiles, and
+ (2) to generate include/nuttx/config.h which is included by
+ most C files in the system.
+
+ The following variables are recognized by the build (you may
+ also include architecture/board-specific settings).
+
+ Architecture selection:
+
+ CONFIG_ARCH - identifies the arch/ subdirectory
+ CONFIG_ARCH_name - for use in C code
+
+ General OS setup
+
+ CONFIG_EXAMPLE - identifies the subdirectory in examples
+ that will be used in the build
+ CONFIG_DEBUG - enables built-in debug options
+ CONFIG_DEBUG_VERBOSE - enables verbose debug output
+ CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
+ time console output
+ CONFIG_MM_REGIONS - If the architecture includes multiple
+ regions of memory to allocate from, this specifies the
+ number of memory regions that the memory manager must
+ handle and enables the API mm_addregion(start, end);
+ CONFIG_RR_INTERVAL - The round robin timeslice will be set
+ this number of milliseconds; Round robin scheduling can
+ be disabled by setting this value to zero.
+ CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
+ scheduler to monitor system performance
+ CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
+ task name to save in the TCB. Useful if scheduler
+ instrumentation is selected. Set to zero to disable.
+ CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
+ Used to initialize the internal time logic.
+ CONFIG_JULIAN_TIME - Enables Julian time conversions
+ CONFIG_DEV_CONSOLE - Set if architecture-specific logic
+ provides /dev/console. Enables stdout, stderr, stdin.
+
+ The following can be used to disable categories of APIs supported
+ by the OS. If the compiler supports weak functions, then it
+ should not be necessary to disable functions unless you want to
+ restrict usage of those APIs.
+
+ There are certain dependency relationships in these features.
+
+ o mq_notify logic depends on signals to awaken tasks
+ waiting for queues to become full or empty.
+ o pthread_condtimedwait() depends on signals to wake
+ up waiting tasks.
+
+ CONFIG_DISABLE_CLOCK, CONFIG_DISABLE_POSIX_TIMERS, CONFIG_DISABLE_PTHREAD.
+ CONFIG_DISABLE_SIGNALS, CONFIG_DISABLE_MQUEUE
+
+
+ Misc libc settings
+
+ CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
+ little smaller if we do not support fieldwidthes
+
+ Allow for architecture optimized implementations
+
+ The architecture can provide optimized versions of the
+ following to improve sysem performance
+
+ CONFIG_ARCH_MEMCPY, CONFIG_ARCH_MEMCMP, CONFIG_ARCH_MEMMOVE
+ CONFIG_ARCH_MEMSET, CONFIG_ARCH_STRCMP, CONFIG_ARCH_STRCPY
+ CONFIG_ARCH_STRNCPY, CONFIG_ARCH_STRLEN, CONFIG_ARCH_BZERO
+ CONFIG_ARCH_KMALLOC, CONFIG_ARCH_KZMALLOC, CONFIG_ARCH_KFREE
+
+ Sizes of configurable things (0 disables)
+
+ CONFIG_MAX_TASKS - The maximum number of simultaneously
+ active tasks. This value must be a power of two.
+ CONFIG_NPTHREAD_KEYS - The number of items of thread-
+ specific data that can be retained
+ CONFIG_NFILE_DESCRIPTORS - The maximum number of file
+ descriptors (one for each open)
+ CONFIG_NFILE_STREAMS - The maximum number of streams that
+ can be fopen'ed
+ CONFIG_NAME_MAX - The maximum size of a file name.
+ CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
+ on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
+ CONFIG_NUNGET_CHARS - Number of characters that can be
+ buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
+ CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
+ structures. The system manages a pool of preallocated
+ message structures to minimize dynamic allocations
+ CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
+ a fixed payload size given by this settin (does not include
+ other message structure overhead.
+ CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
+ structures. The system manages a pool of preallocated
+ watchdog structures to minimize dynamic allocations
+
+ Stack and heap information
+
+ CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
+ operation from FLASH.
+ CONFIG_STACK_POINTER - The initial stack pointer
+ CONFIG_PROC_STACK_SIZE - The size of the initial stack
+ CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
+ CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
+ CONFIG_HEAP_BASE - The beginning of the heap
+ CONFIG_HEAP_SIZE - The size of the heap
+
+setenv.sh -- This is a script that you can include that will be installed at
+ the toplevel of the directory structure and can be sourced to set any
+ necessary environment variables.
+
+Supported Boards
+^^^^^^^^^^^^^^^^
+
+configs/sim
+ A user-mode port of NuttX to the x86 Linux platform is available.
+ The purpose of this port is primarily to support OS feature developement.
+ This port does not support interrupts or a real timer (and hence no
+ round robin scheduler) Otherwise, it is complete.
+
+configs/c5471evm
+ This is a port to the Spectrum Digital C5471 evaluation board. The
+ C5471 is a dual core processor from TI with an ARM7TDMI general purpose
+ processor and a c54 SDP. NuttX runs on the ARM core and is built with
+ with a GNU arm-elf toolchain*. This port is complete, verified, and
+ included in the NuttX release.
+
+configs/ntosd-dm320
+ This port uses the Neuros OSD with a GNU arm-elf toolchain*:
+ see http://wiki.neurostechnology.com/index.php/Developer_Welcome .
+ NuttX operates on the ARM9EJS of this dual core processor.
+ STATUS: This port is code complete, verified, and included in the
+ NuttX 0.2.1 release.
+
+configs/m68322evb
+ This is a work in progress for the venerable m68322evb board from
+ Motorola.
+
+configs/pjrc-8051
+ 8051 Microcontroller. This port uses the PJRC 87C52 development system
+ and the SDCC toolchain. This port is not quite ready for prime time.
+
+Other ports for the for the TI TMS320DM270, M683222 and for MIPS are in various
+states of progress
+
+Configuring NuttX
+^^^^^^^^^^^^^^^^^
+
+Configuring NuttX requires only copying
+
+ configs/<board-name>/Make.def to ${TOPDIR}/Make.defs
+ configs/<board-name>/setenv.sh to ${TOPDIR}/setenv.sh
+ configs/<board-name>/defconfig to ${TOPDIR}/.config
+
+There is a script that automates these steps. The following steps will
+accomplish the same configuration:
+
+ cd tools
+ ./configure.sh <board-name>
+
+