From 7aa2d7ac7678b5b7ee7dc2a817f123f0b8a366b4 Mon Sep 17 00:00:00 2001
From: patacongo Last Updated: February 5, 2008 Last Updated: February 7, 2008 by Gregory Nutt Last Update: January 10, 2008 Last Update: February 7, 2008 Overview
This document provides and overview of the NuttX build and configuration
- logic and provides hints for the incorporation of new processor/board archectures
+ logic and provides hints for the incorporation of new processor/board architectures
into the build.
@@ -132,7 +132,7 @@
| | | `-- (chip-specific source files)
| | |--<other-chips>/
| | `-- (architecture-specific source files)
-| `-- <other-architectures>/
+| `-- <other-architecture directories>/
|-- configs/
| |-- <board-name>/
| | |-- include/
@@ -140,8 +140,10 @@
| | |-- src/
| | | |-- Makefile
| | | `-- (board-specific source files)
-| | `-- (board-specific configuration files)
-| `-- <other-boards>/
+| | |---<config1-dir>/
+| | | `-- (board-specific/configuration-specific files)
+| | `---(other board-specific configuration sub-directories)/
+| `-- <(other board directories)>/
|-- drivers/
| |-- Makefile
| `-- (common driver source files)
@@ -226,14 +228,14 @@
These board-specific configuration files can be found in the
@@ -974,9 +974,10 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
* Added /dev/zero
* 'errno' is now defined to be *get_errno_ptr() with no name conflicts
* Added lseek() and fseek()
- * Integrated pascal test case on the simulation platform. Needs pascal-0.1.1.
- * Integrated pascal test case on the z16f platform. Needs pascal-0.1.2 (not
- yet released).
+ * Integrated Pascal interpreter test case on the simulation platform. Needs
+ pascal-0.1.1.
+ * Add Pascal test case on the z16f platform. Needs pascal-0.1.2 (does not
+ yet work due to some tool issues).
* C buffered I/O fixes:
- Fix fflush() return value,
- Add correct fflush behavior when the FILE argument is null.
@@ -985,8 +986,9 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
- When read data is flushed, reposition the file pointer to account for
buffered, but unreand data
* Pascal P-Code files are now standardized to big-endian for portability
- * Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed).
+ * Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed)
(see bug 1887170)
+ * Pascal P-Code runtime now compiles with the SDCC toolchain.
pascal-0.1.2 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html
index 9ae720862..3f6a84e39 100644
--- a/nuttx/Documentation/NuttxPortingGuide.html
+++ b/nuttx/Documentation/NuttxPortingGuide.html
@@ -16,7 +16,7 @@
NuttX RTOS
- Table of Contents
1.0 Introduction
configs/
<board-name>/
sub-directories and are discussed
- in a a paragraph below.
+ in a paragraph below.
arch/
containing logic specific
- to the new architecuture.
+ add a new subdirectory under arch/
containing logic specific
+ to the new architecture.
The complete board port in is defined by the architecture-specific code in this
directory (plus the board-specific configurations in the config/
subdirectory).
@@ -468,15 +470,24 @@
provide a subdirectory <board-name> under configs/
with the following characteristics:
+ |-- Make.defs + |-- defconfig + `-- setenv.sh <board-name> |-- include/ | `-- (board-specific header files) |-- src/ | |-- Makefile | `-- (board-specific source files) - |-- Make.defs - |-- defconfig - `-- setenv.sh + |-- <config1-dir> + | |-- Make.defs + | |-- defconfig + | `-- setenv.sh + |-- <config2-dir> + | |-- Make.defs + | |-- defconfig + | `-- setenv.sh + `-- (other board-specific configuration sub-directories)/
libext$(LIBEXT)
, clean
, and distclean
.
-
The configs/
<board-name>/
sub-directory holds all of the
files that are necessary to configure Nuttx for the particular board.
+ A board may have various different configurations using the common source files.
+ Each board configuration is described by three files: Make.defs
, defconfig
, and setenv.sh
.
+ Typically, each set of configuration files is retained in a separate configuration sub-directory
+ (<config1-dir>, <config2-dir>, .. in the above diagram).
+
The procedure for configuring NuttX is described below,
This paragraph will describe the contents of these configuration files.
defconfig
: This is a configuration file similar to the Linux
- configuration file. In contains varialble/value pairs like:
+ configuration file. In contains variable/value pairs like:
CONFIG_VARIABLE
=value
Manual Configuration.
Configuring NuttX requires only copying the
- board-specific configuration files into the top level directory which appears in the make files as the make variable, ${TOPDIR}
.
+ board-specific configuration files into the top level directory which appears in the make files as the make variable, ${TOPDIR}
.
This could be done manually as follows:
configs/
<board-name>/Make.def to ${TOPDIR}/Make.defs
,configs/
<board-name>/setenv.sh to ${TOPDIR}/setenv.sh
, andconfigs/
<board-name>/defconfig to ${TOPDIR}/.config
configs/
<board-name>/[
<config-dir>/]Make.def
to ${TOPDIR}/Make.defs
,configs/
<board-name>/[
<config-dir>/]setenv.sh
to ${TOPDIR}/setenv.sh
, andconfigs/
<board-name>/[
<config-dir>/]defconfig
to ${TOPDIR}/.config
Where <board-name> is the name of one of the sub-directories of the
NuttX configs/
directory.
This sub-directory name corresponds to one of the supported boards
identified above.
+ And <config-dir> is the optional, specific configuration directory for the board.
Automated Configuration. @@ -718,7 +735,7 @@
cd tools - ./configure.sh <board-name> + ./configure.sh <board-name>[/
<config-dir>]
@@ -747,14 +764,14 @@ make That directory also holds:
.config
that describes the current configuration.Make.defs
that provides customized build targers, andsetenv.sh
that sets up the configuration environment for the build..config
that describes the current configuration.Make.defs
that provides customized build targers, andsetenv.sh
that sets up the configuration environment for the build.
-The setenv.sh
contains Linux environmental settings that are needed for the build.
-The specific environmental definitions are unique for each board but should include, as a minimum, updates to the PATH
variable to include the full path to the architecture-specific toolchain identified in Make.defs
.
-The setenv.sh
only needs to be source'ed at the beginning of a session.
+The setenv.sh
contains Linux/Cygwin environmental settings that are needed for the build.
+The specific environmental definitions are unique for each board but should include, as a minimum, updates to the PATH
variable to include the full path to the architecture-specific toolchain identified in Make.defs
.
+The setenv.sh
only needs to be source'ed at the beginning of a session.
The system can be re-made subsequently by just typing make
.
@@ -1548,6 +1565,22 @@ The system can be re-made subsequently by just typing make
.
+ NOTE: NuttX is not licensed to use the POSIX trademark. NuttX uses the POSIX + standard as a development guideline only. +
+