Skip to content
NuttX.html 237 KiB
Newer Older
patacongo's avatar
patacongo committed
<html>
<head>
<title>NuttX</title>
</head>
<body background="backgd.gif">
patacongo's avatar
patacongo committed
<hr><hr>
<table width ="100%">
  <tr align="center" bgcolor="#e4e4e4">
    <td>
      <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
patacongo's avatar
patacongo committed
    </td>
  </tr>
</table>
<hr><hr>
<table width ="100%">
  <tr bgcolor="#e4e4e4">
    <td>
patacongo's avatar
patacongo committed
    </td>
  </tr>
</table>

<center><table width ="80%">
<tr>
<td>
<table>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td>
    <a href="#overview">Overview</a>.<br>
patacongo's avatar
patacongo committed
    What is NuttX?  Look at all those files and features... How can it be a tiny OS?
patacongo's avatar
patacongo committed
<tr>
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td>
    <a href="#group">NuttX Discussion Group</a>.<br>
    Do you want to talk about NuttX features?  Do you need some help?  Problems?  Bugs?
  </td>
</tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td>
    <a href="#downloads">Downloads</a>.<br>
    Where can I get NuttX?  What is the current development status?
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td>
    <a href="#platforms">Supported Platforms</a>.<br>
    What target platforms has NuttX been ported to?
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td>
    <a href="#environments">Development Environments</a>.<br>
    What kinds of host cross-development platforms can be used with NuttX?
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td>
    <a href="#licensing">Licensing</a>.<br>
    Are there any licensing restrictions for the use of NuttX? (Almost none)
    Will there be problems if I link my proprietary code with NuttX? (No)
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
    <a href="https://bitbucket.org/nuttx/nuttx/src/master/ReleaseNotes">Release Notes</a>
    What has changed in the last release of NuttX?
Gregory Nutt's avatar
Gregory Nutt committed
    What has changed in previous releases of NuttX?
    Are there any <a href="#changelogs">unreleased changes</a>.
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td>
    <a href="#TODO">Bugs, Issues, <i>Things-To-Do</i></a>.<br>
    Software is never finished nor ever tested well enough.
patacongo's avatar
patacongo committed
    (Do you want to help develop NuttX?  If so, send me an email).
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td>
    <a href="#documentation">Other Documentation</a>.<br>
    What other NuttX documentation is available?
  </td>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td>
    <a href="#trademarks">Trademarks</a>.<br>
    Some of the words used in this document belong to other people.
  </td>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
</table>
</td>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
</table></center>

<table width ="100%">
  <tr bgcolor="#e4e4e4">
  <td>
    <a name="overview"><h1>Overview</h1></a>
  </td>
  </tr>
</table>

patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
  <b>Goals</b>.
  NuttX is a real timed embedded operating system (RTOS).
patacongo's avatar
patacongo committed
  Its goals are:
<p>
patacongo's avatar
patacongo committed
<center><table width="90%">
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Small Footprint</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
patacongo's avatar
patacongo committed
    <p>
      Usable in all but the tightest micro-controller environments,
      The focus is on the tiny-to-small, deeply embedded environment.
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Rich Feature OS Set</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
patacongo's avatar
patacongo committed
    <p>
patacongo's avatar
patacongo committed
      The goal is to provide implementations of most standard POSIX OS interfaces
      to support a rich, multi-threaded development environment for deeply embedded
patacongo's avatar
patacongo committed
      processors.
patacongo's avatar
patacongo committed
    </p>
      NON-GOALS: It is not a goal to provide the level of OS features like those provided by Linux.
      In order to work with smaller MCUs, small footprint must be more important than an extensive feature set.
      But standard compliance is more important than small footprint.
      Surely a smaller RTOS could be produced by ignoring standards.
      Think of NuttX is a tiny Linux work-alike with a much reduced feature set.
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Highly Scalable</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
patacongo's avatar
patacongo committed
    <p>
      Fully scalable from tiny (8-bit) to moderate embedded (32-bit).
      Scalability with rich feature set is accomplished with:
      Many tiny source files, link from static libraries, highly configurable, use of
      weak symbols when available.
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Standards Compliance</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
patacongo's avatar
patacongo committed
    <p>
      NuttX strives to achieve a high degree of standards compliance.
patacongo's avatar
patacongo committed
      The primary governing standards are POSIX and ANSI standards.
patacongo's avatar
patacongo committed
      Additional standard APIs from Unix and other common RTOS's are
      adopted for functionality not available under these standards
patacongo's avatar
patacongo committed
      or for functionality that is not appropriate for the deeply-embedded
patacongo's avatar
patacongo committed
      RTOS (such as <code>fork()</code>).
    </p>
    <p>
      Because of this standards conformance, software developed under other
      standard OSs (such as Linux) should port easily to NuttX.
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Real-Time</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
patacongo's avatar
patacongo committed
    <p>
      Fully pre-emptible; fixed priority, round-robin, and &quot;sporadic&quot; scheduling.
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Totally Open</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
patacongo's avatar
patacongo committed
    <p>
      Non-restrictive BSD license.
    </p>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td bgcolor="#5eaee1">
    <b>GNU Toolchains</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      Compatible GNU toolchains based on <a href="http://buildroot.uclibc.org/">buildroot</a>
      available for
      <a href="https://bitbucket.org/nuttx/buildroot/downloads/">download</a>
patacongo's avatar
patacongo committed
      to provide a complete development environment for many architectures.
    </p>
</tr>
patacongo's avatar
patacongo committed
</table></center>
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
<p>
  <b>Feature Set</b>.
  Key features of NuttX include:
<p>
<center><table width="90%">

<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Standards Compliant Core Task Management</b>
  </td>
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>Fully pre-emptible.</li>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>Naturally scalable.</li>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Highly configurable.</li>
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
</tr>

patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>
        Easily extensible to new processor architectures, SoC architecture, or board architectures.
        A <a href="NuttxPortingGuide.html">Porting Guide</a> is available.
patacongo's avatar
patacongo committed
      </li>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>FIFO and round-robin scheduling.</li>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
      <li>Realtime, deterministic, with support for priority inheritance</li>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Tickless Operation</li>
    </p>
</tr>

patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, robust mutexes, cancellation points, environment variables, filesystem.</li>
patacongo's avatar
patacongo committed
    </p>
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>VxWorks-like task management and watchdog timers.</li>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>BSD socket interface.</li>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>Extensions to manage pre-emption.</li>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Optional tasks with address environments (<i>Processes</i>).</li>
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
      <li>Loadable kernel modules; lightweight, embedded shared libraries.</li>
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Memory Configurations:  (1) Flat embedded build, (2) Protected build with MPU, and (3) Kernel build with MMU.</li>
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
      <li>Memory Allocators:  (1) standard heap memory allocation, (2) granule allocator, (3) shared memory, and (4) dynamically sized, per-process heaps.</li>
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Inheritable &quot;controlling terminals&quot; and I/O re-direction. Pseudo-terminals</li>
patacongo's avatar
patacongo committed
    </p>
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>On-demand paging.</li>
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
</tr>

patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>May be built either as an open, flat embedded RTOS or as a separately built, secure, monolithic kernel with a system call interface.</li>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
</tr>

Gregory Nutt's avatar
Gregory Nutt committed
<tr>
  <td><br></td>
  <td>
    <p>
Gregory Nutt's avatar
Gregory Nutt committed
      <li>Built-in, per-thread CPU load measurements.</li>
Gregory Nutt's avatar
Gregory Nutt committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Well documented in the NuttX <a href="NuttxUserGuide.html">User Guide</a>.</li>
patacongo's avatar
patacongo committed
    </p>
Gregory Nutt's avatar
Gregory Nutt committed
  </td>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>File system</b>
  </td>
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>Tiny, in-memory, root pseudo-file-system.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
Gregory Nutt's avatar
Gregory Nutt committed
      <li>Virtual file system (VFS) supports drivers and mountpoints.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>
patacongo's avatar
patacongo committed
        Mount-able volumes.  Bind mountpoint, filesystem, and block device driver.
patacongo's avatar
patacongo committed
      </li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Generic system logging (SYSLOG) support.</li>
    </p>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>
patacongo's avatar
patacongo committed
        FAT12/16/32 filesystem support with optional FAT long file name support<small><sup>1</sup></small>.
patacongo's avatar
patacongo committed
      </li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>
        NFS Client. Client side support for a Network File System (NFS, version 3, UDP).
      </li>
    </p>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>
patacongo's avatar
patacongo committed
        NXFFS. The tiny NuttX wear-leveling FLASH file system.
patacongo's avatar
patacongo committed
      </li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>
        SMART. FLASH file system from Ken Pettit.
      </li>
    </p>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>ROMFS filesystem support.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>TMPFS RAM filesystem support.</li>
    </p>
  </td>
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>BINFS pseudo-filesystem support.</li>
    </p>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>HOSTFS filesystem support (simulation only).</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Union filesystem - Supports combining and overlaying file systems.</li>
    </p>
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>UserFS - User application file system.</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li><code>procfs/</code> pseudo-filesystem support.</li>
    </p>
        A <a href="NuttXBinfmt.html">binary loader</a> with support for the following formats:
        <ul>
          <li>Separately linked ELF modules.</li>
          <li>
            Separately linked <a href="NuttXNxFlat.html">NXFLAT</a> modules.
            NXFLAT is a binary format that can be XIP from a file system.
          </li>
patacongo's avatar
patacongo committed
          <li>
            &quot;Built-In&quot; applications.</li>
          </li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>PATH variable support.</li>
    </p>
patacongo's avatar
patacongo committed
</tr>
Gregory Nutt's avatar
Gregory Nutt committed
      <li>
        File transfers via TFTP and FTP (<code>get</code> and <code>put</code>), HTML (<code>wget</code>), and Zmodem (<code>sz</code> and <code>rz</code>).
      </li>
      <li>
        Intel HEX file conversions.
      </li>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p><small>
      <sup>1</sup>
      FAT long file name support may be subject to certain Microsoft patent restrictions if enabled.
      See the top-level <code>COPYING</code> file for details.
    </small></p>
patacongo's avatar
patacongo committed
</tr>

<tr>
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td bgcolor="#5eaee1">
    <b>Device Drivers</b>
  </td>
</tr>

<tr>
  <td><br></td>
  <td>
    <p>
      <li>Supports character and block drivers as well as specialized driver interfaces.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
Gregory Nutt's avatar
Gregory Nutt committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Full VFS integration.</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Asynchronous I/O (AIO)</li>
    </p>
  </td>
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>
Gregory Nutt's avatar
Gregory Nutt committed
        Network, USB (host), USB (device), serial, I2C, I2S, NAND, CAN, ADC, DAC, PWM, Quadrature Encoder, I/O Expander, Wireless, generic timer, and watchdog timer driver architectures.
patacongo's avatar
patacongo committed
      </li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>
        RAMDISK, pipes, FIFO, <code>/dev/null</code>, <code>/dev/zero</code>, <code>/dev/random</code>, and loop drivers.
patacongo's avatar
patacongo committed
      </li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>Generic driver for SPI-based or SDIO-based MMC/SD/SDH cards.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
Gregory Nutt's avatar
Gregory Nutt committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>
        Graphics: framebuffer drivers, graphic- and segment-LCD drivers.
        VNC server.
      </li>
Gregory Nutt's avatar
Gregory Nutt committed
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
Gregory Nutt's avatar
Gregory Nutt committed
      <li>Audio subsystem: CODECs, audio input and output drivers.  Command line and graphic media player applications.</li>
Gregory Nutt's avatar
Gregory Nutt committed
    </p>
  </td>
</tr>
Gregory Nutt's avatar
Gregory Nutt committed
      <li>Cryptographic subsystem.</li>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
patacongo's avatar
patacongo committed
    <p>
Gregory Nutt's avatar
Gregory Nutt committed
      <li><a href="NuttxPortingGuide.html#pwrmgmt">Power Management</a> sub-system.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>ModBus support provided by built-in <a href="http://freemodbus.berlios.de/">FreeModBus</a> version 1.5.0.</li>
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
<tr>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
patacongo's avatar
patacongo committed
    <b>C/C++ Libraries</b>
patacongo's avatar
patacongo committed
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>Standard C Library Fully integrated into the OS.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
patacongo's avatar
patacongo committed
      <li>Includes floating point support via a Standard Math Library.</li>
      <li>Add-on <a href="http://cxx.uclibc.org/">uClibc++</a> module provides Standard C++ Library (LGPL).</li>
patacongo's avatar
patacongo committed
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Networking</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Multiple network interface support; multiple network link layer support.</li>
    </p>
  </td>
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>IPv4, IPv6, TCP/IP, UDP, ICMP, IGMPv2 (client) stacks.</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>IP Forwarding (routing) support.</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>User space stacks.</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Stream and datagram sockets.</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Address Families:  IPv4/IPv6 (<code>AF_INET</code>/<code>AF_INET6</code>), Raw socket (<code>AF_PACKET</code>), raw IEEE 802.15.4 (<code>AF_IEEE802154</code>), and local, Unix domain socket support (<code>AF_LOCAL</code>).</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Special <code>INET</code> protocol sockets:  Raw ICMP and ICMPv6 protocol ping sockets (<code>IPPROTO_ICMP</code>/<code>IPPROTO_ICMP6</code>).</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Custom user sockets.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>IP Forwarding.</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>DNS name resolution / NetDB</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>IEEE 802.11 FullMac</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Radio Network Drivers:  IEEE 802.15.4 MAC, Generic Packet Radio</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>6LoWPAN for radio network drivers (IEEE 802.15.4 MAC and generic packet radios)</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>SLIP, TUN/PPP, Local loopback devices</li>
patacongo's avatar
patacongo committed
  </td>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>A port cJSON</li>
    </p>
  </td>
</tr>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>Small footprint.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
patacongo's avatar
patacongo committed
      <li>BSD compatible socket layer.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
Gregory Nutt's avatar
Gregory Nutt committed
      <li>Networking utilities (DHCP server and client, SMTP client, Telnet server and client, FTP server and client, TFTP client, HTTP server and client, PPPD, NTP client).
      Inheritable TELNET server sessions (as &quot;controlling terminal&quot;).
      VNC server.</li>
patacongo's avatar
patacongo committed
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li> ICMPv6 autonomous auto-configuration</li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>
        NFS Client. Client side support for a Network File System (NFS, version 3, UDP).
      </li>
    </p>
patacongo's avatar
patacongo committed
  </td>
patacongo's avatar
patacongo committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>
        A NuttX port of Jeff Poskanzer's <a href="http://acme.com/software/thttpd">THTTPD</a> HTTP server
        integrated with the NuttX <a href="NuttXBinfmt.html">binary loader</a> to provide true, embedded CGI.
patacongo's avatar
patacongo committed
      </li>
    </p>
patacongo's avatar
patacongo committed
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>
        PHY Link Status Management.
      </li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>
        UDP Network Discovery (Contributed by Richard Cochran).
patacongo's avatar
patacongo committed
      </li>
    </p>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>
        XML RPC Server (Contributed by Richard Cochran).
      </li>
    </p>
  </td>
patacongo's avatar
patacongo committed
</tr>
Gregory Nutt's avatar
Gregory Nutt committed
<tr>
  <td><br></td>
  <td>
    <p>
      <li>
        Support for networking modules (e.g., ESP8266).
Gregory Nutt's avatar
Gregory Nutt committed
      </li>
    </p>
  </td>
</tr>
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
<tr>
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td bgcolor="#5eaee1">
    <b>FLASH Support</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li><i>MTD</i>-inspired interface for <i>M</i>emory <i>T</i>echnology <i>D</i>evices.</li>
    </p>
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <li>NAND support.</li>