summaryrefslogtreecommitdiff
path: root/nuttx/arch/README.txt
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-03-23 02:25:54 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-03-23 02:25:54 +0000
commitd4c9de657a2009c457316b79a5f668e7a04abdf6 (patch)
treef239dd46d4a76e9736c5f2cc6bbc00e942c37094 /nuttx/arch/README.txt
parent4343c3bdcd0b366f31cf0f17eef01c1f3d1f9c62 (diff)
downloadnuttx-d4c9de657a2009c457316b79a5f668e7a04abdf6.tar.gz
nuttx-d4c9de657a2009c457316b79a5f668e7a04abdf6.tar.bz2
nuttx-d4c9de657a2009c457316b79a5f668e7a04abdf6.zip
Create configs/ dir; separate board configuration from processor architecture
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@126 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/README.txt')
-rw-r--r--nuttx/arch/README.txt171
1 files changed, 12 insertions, 159 deletions
diff --git a/nuttx/arch/README.txt b/nuttx/arch/README.txt
index 63288f114..3dfaa66e8 100644
--- a/nuttx/arch/README.txt
+++ b/nuttx/arch/README.txt
@@ -18,14 +18,14 @@ arch/<arch-name>/arch.h as described below).
Directory Structure
^^^^^^^^^^^^^^^^^^^
-The arch directory contains architecture specific logic. Each architecture must
-provide a subdirectory <arch-name> under arch/ with the folling characteristics:
+The arch directory contains architecture specific logic. The complete
+board port in is defined by the architecture-specific code in this
+directory (plus the board-specific configurations in the config/
+subdirectory). Each architecture must provide a subdirectory <arch-name>
+under arch/ with the following characteristics:
<arch-name>
- |-- Make.defs
- |-- defconfig
- |-- setenv.sh
|-- include
| |-- arch.h
| |-- irq.h
@@ -37,136 +37,6 @@ provide a subdirectory <arch-name> under arch/ with the folling characteristics:
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-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.
-
include/arch.h
This is a hook for any architecture specific definitions that may
be needed by the system. It is included by include/nuttx/arch.h
@@ -225,37 +95,20 @@ arch/sim
arch/c5471
TI TMS320C5471 (also called TMS320DM180 or just C5471).
NuttX operates on the ARM7 of this dual core processor. This port
- uses the Spectrum Digital evaluation board with a GNU arm-elf toolchain*.
- This port is complete, verified, and included in the NuttX release.
+ complete, verified, and included in the NuttX release 0.1.1.
arch/dm320
TI TMS320DM320 (also called just DM320).
- NuttX operates on the ARM9EJS of this dual core processor.
- This port uses the Neuros OSD with a GNU arm-elf toolchain*:
- see http://wiki.neurostechnology.com/index.php/Developer_Welcome .
- STATUS: This port is code complete but totally untested due to
- hardware issues with my OSD.
+ NuttX operates on the ARM9EJS of this dual core processor. This port
+ complete, verified, and included in the NuttX release 0.2.1.
+
+arch/m68322
+ A work in progress.
arch/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.
+ 8051 Microcontroller. This port is not quite ready for prime time.
Other ports for the for the TI TMS320DM270 and for MIPS are in various states
of progress
-Configuring NuttX
-^^^^^^^^^^^^^^^^^
-
-Configuring NuttX requires only copying
-
- arch/<arch-name>/Make.def to ${TOPDIR}/Make.defs
- arch/<arch-name>/setenv.sh to ${TOPDIR}/setenv.sh
- arch/<arch-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 <arch-name>
-