summaryrefslogtreecommitdiff
path: root/nuttx/Documentation/NuttxPortingGuide.html
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/Documentation/NuttxPortingGuide.html')
-rw-r--r--nuttx/Documentation/NuttxPortingGuide.html174
1 files changed, 89 insertions, 85 deletions
diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html
index 2d77d4ab9..85fc8010d 100644
--- a/nuttx/Documentation/NuttxPortingGuide.html
+++ b/nuttx/Documentation/NuttxPortingGuide.html
@@ -12,7 +12,7 @@
<h1><big><font color="#3c34ec">
<i>NuttX RTOS Porting Guide</i>
</font></big></h1>
- <p>Last Updated: March 19, 2011</p>
+ <p>Last Updated: March 20, 2011</p>
</td>
</tr>
</table>
@@ -37,30 +37,31 @@
<a href="#summaryofarchfiles">2.2.2 Summary of Files</a><br>
<a href="#supportedarchitectures">2.2.3 Supported Architectures</a>
</ul>
- <a href="#DirStructBinFmt">2.2 binfmt/</a><br>
+ <a href="#DirStructBinFmt">2.3 binfmt/</a><br>
<a href="#DirStructConfigs">2.4 configs/</a>
<ul>
- <a href="#configsdirectorystructure">2.3.1 Subdirectory Structure</a><br>
- <a href="#summaryofconfigfiles">2.3.2 Summary of Files</a>
+ <a href="#configsdirectorystructure">2.4.1 Subdirectory Structure</a><br>
+ <a href="#summaryofconfigfiles">2.4.2 Summary of Files</a>
<ul>
<a href="#boardlogic">2.4.2.1 Board Specific Logic</a><br>
- <a href="#boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a>
+ <a href="#boardconfigsubdirs">2.4.2.2 Board Specific Configuration Sub-Directories</a>
</ul>
<a href="#supportedboards">2.4.3 Supported Boards</a>
</ul>
- <a href="#DirStructDrivers">2.5 drivers/</a><br>
- <a href="#DirStructExamples">2.6 examples/</a><br>
- <a href="#DirStructFs">2.7 fs/</a><br>
- <a href="#DirStructGraphics">2.8 graphics/</a><br>
- <a href="#DirStructInclude">2.9 include/</a><br>
- <a href="#DirStructLib">2.10 lib/</a><br>
- <a href="#DirStructLibXX">2.11 libxx/</a><br>
- <a href="#DirStructMm">2.12 mm/</a><br>
- <a href="#DirStructNet">2.13 net</a><br>
- <a href="#DirStructNetUtils">2.14 netutils</a><br>
- <a href="#DirStructSched">2.15 sched/</a><br>
- <a href="#DirStructTools">2.16 tools/</a><br>
- <a href="#topmakefile">2.17 Makefile</a>
+ <a href="#DirStructDrivers">2.5 nuttx/drivers/</a><br>
+ <a href="#DirStructFs">2.6 nuttx/fs/</a><br>
+ <a href="#DirStructGraphics">2.7 nuttx/graphics/</a><br>
+ <a href="#DirStructInclude">2.8 nuttx/include/</a><br>
+ <a href="#DirStructLib">2.9 nuttx/lib/</a><br>
+ <a href="#DirStructLibXX">2.10 nuttx/libxx/</a><br>
+ <a href="#DirStructMm">2.11 nuttx/mm/</a><br>
+ <a href="#DirStructNet">2.12 nuttx/net</a><br>
+ <a href="#DirStructSched">2.13 nuttx/sched/</a><br>
+ <a href="#DirStructTools">2.14 nuttx/tools/</a><br>
+ <a href="#topmakefile">2.15 nuttx/Makefile</a>
+ <a href="#DirStructNetUtils">2.16 apps/netutils</a><br>
+ <a href="#DirStructNshLib">2.17 apps/nshlib</a><br>
+ <a href="#DirStructExamples">2.18 apps/examples/</a><br>
</ul>
<a href="#configandbuild">3.0 Configuring and Building</a>
<ul>
@@ -200,10 +201,6 @@
| | |-- <i>(driver-specific sub-directories)/</i>
| | | `-- <i>(driver-specific source files)</i>
| | `-- <i>(common driver source files)</i>
-| |-- <a href="#DirStructExamples">examples</a>/
-| | `-- <i>(example)</i>/
-| | |-- Makefile
-| | `-- <i>(example source files)</i>
| |-- <a href="#DirStructFs">fs</a>/
| | |-- Makefile
| | |-- <i>(file system-specific sub-directories)</i>/
@@ -245,14 +242,18 @@
| |-- <i>(network feature sub-directories)</i>/
| | `-- <i>(network feature source files)</i>
| `-- <i>(netutils common files)</i>
- |-- nshlib/
+ |-- <a href="#DirStructNshLib">nshlib</a>/
| |-- Makefile
| `-- <i>NuttShell (NSH) files</i>
- `-- <i>(Board-specific applications)</i>/
- |-- Makefile
- |-- <i>(Board-specific application sub-directories)</i>/
- | `-- <i>(Board-specific application source files)</i>
- `-- <i>(Board-specific common files)</i>
+ |-- <i>(Board-specific applications)</i>/
+ | |-- Makefile
+ | |-- <i>(Board-specific application sub-directories)</i>/
+ | | `-- <i>(Board-specific application source files)</i>
+ | `-- <i>(Board-specific common files)</i>
+ `-- <a href="#DirStructExamples">examples</a>/
+ `-- <i>(example)</i>/
+ |-- Makefile
+ `-- <i>(example source files)</i>
</pre></ul>
<p>
@@ -295,7 +296,7 @@
General documentation for the NuttX OS resides in this directory.
</p>
-<h2>2.2 <a name="DirStructArch">arch</a></h2>
+<h2>2.2 <a name="DirStructArch">nuttx/arch</a></h2>
<h3><a name="archdirectorystructure">2.2.1 Subdirectory Structure</a></h3>
<p>
@@ -460,7 +461,7 @@
<li><code>arch/arm/include/lpc214x</code> and <code>arch/arm/src/lpc214x</code>:
These directories provide support for NXP LPC214x family of
processors.
- STATUS: This port boots and passes the OS test (examples/ostest).
+ STATUS: This port boots and passes the OS test (apps/examples/ostest).
The port is complete and verified. As of NuttX 0.3.17, the port includes:
timer interrupts, serial console, USB driver, and SPI-based MMC/SD card
support. A verified NuttShell configuration is also available.
@@ -544,21 +545,21 @@
of progress
</p>
-<h2>2.3 <a name="DirStructBinFmt">binfmt</a></h2>
+<h2>2.3 <a name="DirStructBinFmt">nuttx/binfmt</a></h2>
<p>
The <code>binfmt/</code> subdirectory contains logic for loading binaries in the file
system into memory in a form that can be used to execute them.
</p>
-<h2>2.4 <a name="DirStructConfigs">configs</a></h2>
+<h2>2.4 <a name="DirStructConfigs">nuttx/configs</a></h2>
<p>
The <code>configs/</code> subdirectory contains configuration data for each board.
These board-specific configurations plus the architecture-specific configurations in
the <code>arch/</code> subdirectory complete define a customized port of NuttX.
</p>
-<h3><a name="configsdirectorystructure">2.3.1 Subdirectory Structure</a></h3>
+<h3><a name="configsdirectorystructure">2.4.1 Subdirectory Structure</a></h3>
<p>
The configs directory contains board specific configuration files. Each board must
provide a subdirectory &lt;board-name&gt; under <code>configs/</code> with the following characteristics:
@@ -589,8 +590,8 @@
</small></p>
</ul>
-<h3><a name="summaryofconfigfiles">2.3.2 Summary of Files</a></h3>
-<h4><a name="boardlogic">2.3.2.1 Board Specific Logic</a></h4>
+<h3><a name="summaryofconfigfiles">2.4.2 Summary of Files</a></h3>
+<h4><a name="boardlogic">2.4.2.1 Board Specific Logic</a></h4>
<ul>
<li>
<code>include/</code>:
@@ -612,7 +613,7 @@
It must support the following targets: <code>libext$(LIBEXT)</code>, <code>clean</code>, and <code>distclean</code>.
</li>
</ul>
-<h4><a name="boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a></h4>
+<h4><a name="boardconfigsubdirs">2.4.2.2 Board Specific Configuration Sub-Directories</a></h4>
<p>
The <code>configs/</code><i>&lt;board-name&gt;</i><code>/</code> sub-directory holds all of the
files that are necessary to configure NuttX for the particular board.
@@ -676,7 +677,7 @@
</li>
</ul>
-<h3><a name="supportedboards">2.3.3 Supported Boards</a></h3>
+<h3><a name="supportedboards">2.4.3 Supported Boards</a></h3>
<p>
All of the specific boards supported by NuttX are identified below.
These are the specific <i>&lt;board-name&gt;</i>'s that may be used to configure NuttX
@@ -790,7 +791,7 @@
is available to build these toolchains under Linux or Cygwin.
</blockquote></small></p>
-<h2>2.5 <a name="DirStructDrivers">drivers</a></h2>
+<h2>2.5 <a name="DirStructDrivers">nuttx/drivers</a></h2>
<p>
This directory holds architecture-independent device drivers.
@@ -816,13 +817,7 @@ drivers/
`-- <i>(common driver source files)</i>
</pre></ul>
-<h2>2.6 <a name="DirStructExamples">examples</a></h2>
-
-<p>
- Example and test programs to build against.
-</p>
-
-<h2>2.7 <a name="DirStructFs">fs</a></h2>
+<h2>2.6 <a name="DirStructFs">nuttx/fs</a></h2>
<p>
This directory contains the NuttX file system.
@@ -840,7 +835,7 @@ fs/
`-- <i>(common file system source files)</i>
</pre></ul>
-<h2>2.8 <a name="DirStructGraphics">graphics</a></h2>
+<h2>2.7 <a name="DirStructGraphics">nuttx/graphics</a></h2>
<p>
This directory contains files for graphics/video support under NuttX.
@@ -857,7 +852,7 @@ graphics/
`-- <i>(common file system source files)</i>
</pre></ul>
-<h2>2.9 <a name="DirStructInclude">include</a></h2>
+<h2>2.8 <a name="DirStructInclude">nuttx/include</a></h2>
<p>
This directory holds NuttX header files.
Standard header files file retained in can be included in the <i>normal</i> fashion:
@@ -886,30 +881,64 @@ include/
`-- <i>(more standard header files)</i>
</per></ul>
-<h2>2.10 <a name="DirStructLib">lib</a></h2>
+<h2>2.9 <a name="DirStructLib">nuttx/lib</a></h2>
<p>
This directory holds a collection of standard libc-like functions with custom
interfaces into NuttX.
</p>
-<h2>2.11 <a name="DirStructLibXX">libxx</a></h2>
+<h2>2.10 <a name="DirStructLibXX">nuttx/libxx</a></h2>
<p>
This directory holds a tiny, minimal standard std C++ that can be used to
build some, simple C++ applications in NuttX.
</p>
-<h2>2.12 <a name="DirStructMm">mm</a></h2>
+<h2>2.11 <a name="DirStructMm">nuttx/mm</a></h2>
<p>
This is the NuttX memory manager.
</p>
-<h2>2.13 <a name="DirStructNet">net</a></h2>
+<h2>2.12 <a name="DirStructNet">nuttx/net</a></h2>
<p>
This directory contains the implementation of the socket APIs.
The subdirectory, <code>uip</code> contains the uIP port.
</P>
-<h2>2.14 <a name="DirStructNetUtils">netutils</a></h2>
+<h2>2.13 <a name="DirStructSched">nuttx/sched</a></h2>
+<p>
+ The files forming core of the NuttX RTOS reside here.
+</p>
+
+<h2>2.14 <a name="DirStructTools">nuttx/tools</a></h2>
+<p>
+ This directory holds a collection of tools and scripts to simplify
+ configuring, building and maintaining NuttX.
+</p>
+<ul><pre>
+tools/
+|-- Makefile.mkconfig
+|-- configure.sh
+|-- incdir.sh
+|-- indent.sh
+|-- link.sh
+|-- mkconfig.c
+|-- mkdeps.sh
+|-- mkimage.sh
+|-- mknulldeps.sh
+|-- mkromfsimg.sh
+|-- unlink.sh
+|-- winlink.sh
+`-- zipme
+</pre></ul>
+
+<h2>2.15 <a name="topmakefile">nuttx/Makefile</a></h2>
+<p>
+ The top-level <code>Makefile</code> in the <code>${TOPDIR}</code> directory contains all of the top-level control
+ logic to build NuttX.
+ Use of this <code>Makefile</code> to build NuttX is described <a href="#buildingnuttx">below</a>.
+</p>
+
+<h2>2.16 <a name="DirStructNetUtils">apps/netutils</a></h2>
<p>
This directory contains most of the network applications.
Some of these are original with NuttX (like tftpc and dhcpd) and others were leveraged from the uIP-1.0 apps directory.
@@ -951,38 +980,14 @@ netutils/
`-- <i>(netutils common files)</i>
</pre></ul>
-<h2>2.15 <a name="DirStructSched">sched</a></h2>
+<h2>2.17 <a name="DirStructNshLib">apps/nshlib</a></h2>
<p>
- The files forming core of the NuttX RTOS reside here.
+ This directory contains for the core of the NuttShell (NSH) application.
</p>
-<h2>2.16 <a name="DirStructTools">tools</a></h2>
+<h2>2.18 <a name="DirStructExamples">apps/examples</a></h2>
<p>
- This directory holds a collection of tools and scripts to simplify
- configuring, building and maintaining NuttX.
-</p>
-<ul><pre>
-tools/
-|-- Makefile.mkconfig
-|-- configure.sh
-|-- incdir.sh
-|-- indent.sh
-|-- link.sh
-|-- mkconfig.c
-|-- mkdeps.sh
-|-- mkimage.sh
-|-- mknulldeps.sh
-|-- mkromfsimg.sh
-|-- unlink.sh
-|-- winlink.sh
-`-- zipme
-</pre></ul>
-
-<h2>2.17 <a name="topmakefile">Makefile</a></h2>
-<p>
- The top-level <code>Makefile</code> in the <code>${TOPDIR}</code> directory contains all of the top-level control
- logic to build NuttX.
- Use of this <code>Makefile</code> to build NuttX is described <a href="#buildingnuttx">below</a>.
+ Example and test programs to build against.
</p>
<table width ="100%">
@@ -2663,10 +2668,9 @@ extern void up_ledoff(int led);
<ul>
<li>
<p>
- <code>CONFIG_APP_DIR</code>: Ldentifies the directory that builds the application to link with NuttX.
- This symbol must be assigned to the path to the application build directory <i>relative</i> to the NuttX top build direcory.
- As an an example, there are several example applicatins in the NuttX <code>examples/</code> sub-directory.
- To use one of these example applications, say <code>nsh</code>, you would set <code>CONFIG_APP_DIR=examples/nsh</code>.
+ <code>CONFIG_APP_DIR</code>: Identifies the directory that builds the application to link with NuttX.
+ This symbol must be assigned to the path to the application build directory <i>relative</i> to the NuttX top build directory.
+ If the application resides in the top-level <code>apps</code> directory, it is not necessary to define <code>CONFIG_APP_DIR</code>.
If you had an application directory and the NuttX directory both within another directory like this:
<ul><pre>
build
@@ -2874,7 +2878,7 @@ build
<li>
<code>CONFIG_NXFLAT</code>: Enable support for the NXFLAT binary format.
This format will support execution of NuttX binaries located
- in a ROMFS filesystem (see <code>examples/nxflat</code>).
+ in a ROMFS filesystem (see <code>apps/examples/nxflat</code>).
</li>
<li>
<code>CONFIG_SCHED_WORKQUEUE</code>: Create a dedicated "worker" thread to