diff options
Diffstat (limited to 'nuttx/Documentation/NuttxPortingGuide.html')
-rw-r--r-- | nuttx/Documentation/NuttxPortingGuide.html | 174 |
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 <board-name> 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><board-name></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><board-name></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 |