| <html> |
| <head> |
| <title>NuttX</title> |
| </head> |
| <body background="backgd.gif"> |
| <hr><hr> |
| <table width ="100%"> |
| <tr align="center" bgcolor="#e4e4e4"> |
| <td> |
| <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> |
| <p>Last Updated: February 7, 2008</p> |
| </td> |
| </tr> |
| </table> |
| <hr><hr> |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <h1>Table of Contents</h1> |
| </td> |
| </tr> |
| </table> |
| |
| <center><table width ="80%"> |
| <tr> |
| <td> |
| <table> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="#overview">Overview</a>.<br> |
| What is NuttX? |
| </td> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="#downloads">Downloads</a>.<br> |
| Where can I get NuttX? What is the current development status? |
| </td> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="#platforms">Supported Platforms</a>.<br> |
| What target platforms has NuttX been ported to? |
| </td> |
| </tr> |
| <tr> |
| <td><img 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> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="#footprint">Memory Footprint</a>.<br> |
| Just how big is it? Do I have enough memory to use NuttX? |
| </td> |
| </tr> |
| <tr> |
| <td><img 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> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="#history">Release History</a><br> |
| What has changed in the last release of NuttX? |
| What unreleased changes are pending in CVS? |
| </td> |
| </tr> |
| <tr> |
| <td><img 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. |
| (Do you want to help develop NuttX? If so, send me an email). |
| </td> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="#documentation">Other Documentation</a>.<br> |
| What other NuttX documentation is available? |
| </td> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="#trademarks">Trademarks</a>.<br> |
| Some of the words used in this document belong to other people. |
| </td> |
| </tr> |
| </table> |
| </td> |
| </td> |
| </table></center> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="overview"><h1>Overview</h1></a> |
| </td> |
| </tr> |
| </table> |
| |
| <p> |
| <b>Goals</b>. |
| Nuttx is a real timed embedded operating system (RTOS). |
| Its goals are: |
| <p> |
| <center><table width="90%"> |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Small Footprint</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| Usable in all but the tightest micro-controller environments, |
| The focus is on the tiny-to-small, deeply embedded environment. |
| </p> |
| </tr> |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Rich Feature OS Set</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| The goal is to provide implementations of most standard POSIX OS interfaces |
| to support a rich, multi-threaded development environment for deeply embedded |
| processors. |
| </p> |
| NON-GOALS: (1) It is not a goal to provide the rich level of OS |
| features like those provided with Linux. |
| Small footprint is more important than features. |
| Standard compliance is more important than small footprint. |
| (2) There is no MMU-based support for processes. |
| At present, NuttX assumes a flat address space. |
| </p> |
| </tr> |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Highly Scalable</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <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> |
| </tr> |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Standards Compliance</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| NuttX strives to achieve a high degree of standards compliance. |
| The primary governing standards are POSIX and ANSI standards. |
| Additional standard APIs from Unix and other common RTOS's are |
| adopted for functionality not available under these standards |
| or for functionality that is not appropriate for the deeply-embedded |
| 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> |
| </tr> |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Real-Time</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| Fully pre-emptible, fixed priority and round-robin scheduling. |
| </p> |
| </tr> |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Totally Open</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| Non-restrictive BSD license. |
| </p> |
| </tr> |
| </table></center> |
| |
| <p> |
| <b>Feature Set</b>. |
| Key features of NuttX include: |
| <p> |
| <center><table width="90%"> |
| |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Standards Compliant Core Task Management</b> |
| </td> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Modular, micro-kernel</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Fully pre-emptible.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Naturally scalable.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Easily extensible to new processor architectures, SoC architecture, or board architectures. |
| A <a href="NuttxPortingGuide.html">Porting Guide</a> is in development.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>FIFO and round-robin scheduling.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Realtime, deterministic.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, environment variables, filesystem.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>VxWorks-like task management and watchdog timers.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>BSD socket interface.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Extensions to manage pre-emption.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Well documented in the NuttX <a href="NuttxUserGuide.html">User Guide</a>.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>File system</b> |
| </td> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Tiny in-memory, root pseudo-file-system.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Supports character and block drivers.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Network and serial driver architecture.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Mount-able volumes. Bind mountpoint, filesystem, and block device driver.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>VFAT filesystem support.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>C Library</b> |
| </td> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Fully integrated into the OS.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Networking</b> |
| </td> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>TCP/IP, UDP, ICMP stacks.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Small footprint (based on uIP).</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>BSD compatible socket layer.</li> |
| </p> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>Networking utilities.</li> |
| </p> |
| </tr> |
| </table></center> |
| |
| <p> |
| <b>NuttX Add-Ons</b>. |
| The following packages are available to extend the basic NuttX feature set: |
| <p> |
| <center><table width="90%"> |
| |
| <tr> |
| <td valign="top" width="18"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Pascal Compiler with NuttX runtime P-Code interpreter add-on</b> |
| </td> |
| </tr> |
| |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <li>The Pascal add-on is available for download from the |
| <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> |
| website.</li> |
| </p> |
| </tr> |
| </table></center> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="downloads"><h1>Downloads</h1></a> |
| </td> |
| </tr> |
| </table> |
| |
| <p> |
| The 19th release of NuttX (nuttx-0.3.7) is available for download |
| from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> |
| website. |
| The change log associated with the release is available <a href="#currentrelease">here</a>. |
| Unreleased changes after this release are available in CVS. |
| These unreleased changes are listed <a href="#pendingchanges">here</a>. |
| </p> |
| <p> |
| This release includes the preliminary port of NuttX to the ZiLOG z16f 16-bit microcontroller. |
| This port was verified using the ZiLOG z16f2800100zcog Development and the ZiLOG ZDS-II toolchain. |
| See http://www.zilog.com for further information. |
| </p> |
| <p> |
| I emphasize that this is a preliminary release of the z16f port and is only alpha or, perhaps, |
| pre-alpha quality as of this writing. |
| There are a list of known issues in the TODO file in the <a href="TODO.txt">here</a> |
| The overall quality of NuttX (excluding the z16f port) continues to improve beyond the late beta level. |
| </p> |
| <p> |
| The z16f port required numerous changes to NuttX to handle: |
| </p> |
| <ul> |
| <li>NEAR and FAR addressing, and</li> |
| <li>Use of a Windows native toolchain in a Cygwin build environment.</li> |
| </ul> |
| <p> |
| In addition to the z16f port, at least one very critical bug was found and corrected in NuttX: |
| The thread-specific errno value of one task was being randomly trashed when a different thread exitted. |
| </p> |
| <p> |
| This release were verified on the ZiLOG z16f2800100zcog, Neuros OSD (ARM9), and the simulation platforms. |
| As usual, any feedback about bugs or suggestions for improvement would be greatly appreciated. |
| </p> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="platforms"><h1>Supported Platforms</h1></a> |
| </td> |
| </tr> |
| </table> |
| |
| <center><table width="90%"> |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Linux User Mode</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| A user-mode port of NuttX to the x86 Linux platform is available. |
| The purpose of this port is primarily to support OS feature development. |
| </p> |
| <p> |
| <b>STATUS:</b> |
| Does not support interrupts but is otherwise fully functional. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>ARM7TDMI</b>. |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <b>TI TMS320C5471</b> (also called <b>C5471</b> or <b>TMS320DA180</b> or <b>DA180</b>). |
| NuttX operates on the ARM7 of this dual core processor. |
| This port uses the <a href="http://www.spectrumdigital.com/">Spectrum Digital</a> |
| evaluation board with a GNU arm-elf toolchain* under Linux or Cygwin. |
| </p> |
| <p> |
| <b>STATUS:</b> |
| This port is complete, verified, and included in the initial NuttX release. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <b>NXP LPC214x</b>. |
| Support is provided for the NXP LPC214x family of processors. In particular, |
| support is provided for the mcu123.com lpc214x evaluation board (LPC2148). |
| This port also used the GNU arm-eld toolchain* under Linux or Cygwin. |
| </p> |
| <p> |
| <b>STATUS:</b> |
| Initial coding of this port code complete but has not yet been verified. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>ARM926EJS</b>. |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <b>TI TMS320DM320</b> (also called <b>DM320</b>). |
| NuttX operates on the ARM9 of this dual core processor. |
| This port uses the |
| <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros OSD</a> |
| with a GNU arm-elf toolchain* under Linux or Cygwin. |
| </p> |
| <p> |
| <b>STATUS:</b> |
| This port is complete and verified. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>8052 Microcontroller</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <b>PJRC 87C52 Development Board</b>. |
| This port uses the <a href="http://www.pjrc.com/">PJRC</a> 87C52 development system |
| and the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain under Linux or Cygwin. |
| </p> |
| <p> |
| <b>STATUS:</b> |
| This port is complete but not stable with timer interrupts enabled. |
| There seems to be some issue when the stack pointer enters into the indirect IRAM |
| address space during interrupt handling. |
| This architecture has not been built in some time will likely have some compilation |
| problems because of SDCC compiler differences. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Zilog Z16F</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <b>Zilog z16f Microncontroller</b>. |
| This port use the Zilog z16f2800100zcog development kit and the Zilog |
| ZDS-II Windows command line tools. |
| The development environment is Cygwin under WinXP. |
| </p> |
| <p> |
| <b>STATUS:</b> |
| The preliminary release of support for the z16f was made available in NuttX version 0.3.7. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Zilog Z80</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| <b>Z80 Instruction Set Simulator</b>. |
| This port uses the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain |
| under Linux or Cygwin (verified using version 2.6.0). |
| This port has been verified using only a Z80 instruction simulator. |
| That simulator can be found in the NuttX CVS |
| <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. |
| </p> |
| <p> |
| <b>STATUS:</b> |
| This port is complete and stable to the extent that it can be tested |
| using an instruction set simulator. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Other ports</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| There are partial ports for the TI TMS320DM270 and for MIPS. |
| </p> |
| </td> |
| </tr> |
| </table></center> |
| |
| <blockquote>* A highly modified <a href="http://buildroot.uclibc.org/">buildroot</a> |
| is available that may be used to build a NuttX-compatible arm-elf toolchain under |
| Linux or Cygwin.</blockquote> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="environments"><h1>Development Environments</h1></a> |
| </td> |
| </tr> |
| </table> |
| |
| <center><table width="90%"> |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Linux + GNU make + GCC/binutils</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| The is the most natural development environment for NuttX. |
| Any version of the GCC/binutils toolchain may be used. |
| There is a highly modified <a href="http://buildroot.uclibc.org/">buildroot</a> |
| available for download from the |
| <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">NuttX SourceForge</a> |
| page. |
| This download may be used to build a NuttX-compatible arm-elf toolchain under Linux or Cygwin. |
| Additional support for m68k, m68hc11, and m68hc12 is available in the |
| <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/buildroot/">NuttX CVS</a>. |
| </p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Linux + GNU make + SDCC</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| Also very usable is the Linux environment using the |
| <a href="http://sdcc.sourceforge.net/">SDCC</a> compiler. |
| The SDCC compiler provides support for the 8051/2, z80, hc08, and other microcontrollers. |
| The SDCC-based logic is less well exercised and you will likely find some compilation |
| issues if you use parts of NuttX with SDCC that have not been well-tested. |
| </p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Cygwin + GNU make + GCC/binutils</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| This combination works well too. |
| It works just as well as the native Linux environment except |
| that compilation and build times are a little longer. |
| The custom NuttX buildroot referenced above may be build in |
| the Cygwin environment as well. |
| </p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Cygwin + GNU make + SDCC</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| I have never tried this combination, but it would probably work just fine. |
| </p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Cygwin + GNU make + Windows Native Toolchain</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| This is a tougher environment. |
| In this case, the Windows native toolchain is unaware of the the |
| Cygwin <i>sandbox</i> and, instead, operates in the native Windows environment. |
| The primary difficulties with this are: |
| </p> |
| <ul> |
| <li> |
| <b>Paths</b>. |
| Full paths for the native toolchain must follow Windows standards. |
| For example, the path <code>/home/my\ name/nuttx/include</code> my have to be |
| converted to something like <code>'C:\cygwin\home\my name\nuttx\include'</code> |
| to be usable by the toolchain. |
| </li> |
| <p> |
| Fortunately, this conversion is done simply using the <code>cygpath</code> utility. |
| </p> |
| <li> |
| <b>Symbolic Links</b> |
| NuttX depends on symbolic links to install platform-specific directories in the build system. |
| On Linux, true symbolic links are used. |
| On Cygwin, emulated symbolic links are used. |
| Unfortunately, for native Windows applications that operate outside of the |
| Cygwin <i>sandbox</i>, these symbolic links cannot be used. |
| </li> |
| <p> |
| The NuttX make system works around this limitation by copying the platform |
| specific directories in place. |
| These copied directories make work a little more complex, but otherwise work well. |
| </p> |
| </ul> |
| <p> |
| At present, on the Zilog Z16F port uses a native Windows toolchain |
| (the Zilog ZDS-II toolchain). |
| </p. |
| </td> |
| </tr> |
| |
| <tr> |
| <td valign="top"><img src="favicon.ico"></td> |
| <td bgcolor="#5eaee1"> |
| <b>Others Environments?</b> |
| </td> |
| </tr> |
| <tr> |
| <td><br></td> |
| <td> |
| <p> |
| The primary environmental dependency of NuttX are (1) GNU make, |
| (2) bash scripting, and (3) Linux utilities (such as sed). |
| If you have other platforms that support GNU make or make |
| utilities that are compatible with GNU make, then it is very |
| likely that NuttX would work in that environment as well (with some |
| porting effort). If GNU make is not supported, then some significant |
| modification of the Make system would be required. |
| </p> |
| </td> |
| </tr> |
| </table></center> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="footprint"><h1>Memory Footprint</h1></a> |
| </td> |
| </tr> |
| </table> |
| |
| <ul> |
| <p><b>C5471 (ARM7)</b> |
| The build for this ARM7 target that includes most of the OS features and |
| a broad range of OS tests. The size of this executable as given by the |
| Linux <tt>size</tt> command is (3/9/07): |
| </p> |
| <pre> |
| text data bss dec hex filename |
| 53272 428 3568 57268 dfb4 nuttx |
| </pre> |
| <p><b>DM320 (ARM9)</b> |
| This build for the ARM9 target includes a significant subset of OS |
| features, a filesystem, Ethernet driver, full TCP/IP, UDP and (minimal) |
| ICMP stacks (via uIP) and a small network test application: (11/8/07, |
| configuration netconfig, examples/nettest) |
| </p> |
| <pre> |
| text data bss dec hex filename |
| 49472 296 3972 53740 d1ec nuttx |
| </pre> |
| <p> |
| Another build for the ARM9 target includes a minimal OS feature |
| set, Ethernet driver, full TCP/IP and (minimal) ICMP stacks, and |
| a small webserver: (11/20/07, configuration uipconfig, examples/uip) |
| </p> |
| <pre> |
| text data bss dec hex filename |
| 52040 72 4148 56260 dbc4 nuttx |
| </pre> |
| <p><b>87C52</b> |
| A reduced functionality OS test for the 8052 target requires only |
| about 18-19Kb: |
| </p> |
| <pre> |
| Stack starts at: 0x21 (sp set to 0x20) with 223 bytes available. |
| |
| Other memory: |
| Name Start End Size Max |
| ---------------- -------- -------- -------- -------- |
| PAGED EXT. RAM 0 256 |
| EXTERNAL RAM 0x0100 0x02fd 510 7936 |
| ROM/EPROM/FLASH 0x2100 0x6e55 19798 24384 |
| </pre> |
| </ul> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="licensing"><h1>Licensing</h1></a> |
| </td> |
| </tr> |
| </table> |
| |
| <ul> |
| <p> |
| NuttX is available under the highly permissive |
| <a href="http://en.wikipedia.org/wiki/BSD_license">BSD license</a>. |
| Other than some fine print that you agree to respect the copyright |
| you should feel absolutely free to use NuttX in any environment and |
| without any concern for jeopardizing any proprietary software that |
| you may link with it. |
| </p> |
| </ul> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="history"><h1>Release History</h1></a> |
| </td> |
| </tr> |
| </table> |
| |
| <ul> |
| <p> |
| The current NuttX Change Log is available in CVS <a href="http://nuttx.cvs.sourceforge.net/*checkout*/nuttx/nuttx/ChangeLog">here</a>. |
| ChangeLog snapshots associated with the current release are available below. |
| </p> |
| </ul> |
| |
| <center><table width ="80%"> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="ChangeLog.txt">Change Logs for All NuttX Releases</a><br> |
| </td> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="#currentrelease">ChangeLog for Current Releases</a><br> |
| </td> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td> |
| <a href="#pendingchanges">Unreleased Changes</a> |
| </td> |
| </tr> |
| </table></center> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="currentrelease">ChangeLog for Current Release</a> |
| </td> |
| </tr> |
| </table> |
| |
| <pre><ul> |
| nuttx-0.3.7 2008-01-31 Gregory Nutt <spudmonkey@racsa.co.cr> |
| |
| * Added support for the Zilog Z16F using the Zilog Z16F2800100ZCOG |
| Development Kit. |
| * Add support toolchains that do not support making of dependencies |
| * Fix Cygwin build with spaces in directory names |
| * Name make system changes to deal with non-GNU toolchains (i.e., Zilog) |
| * Add support for Windows native toolchains that cannot follow Cygwin soft links |
| * Modified serial driver interface to handle hardware with non-16550A-like |
| interrupt architecture (like the Z16F) |
| * Added a "dumb" serial console driver to simplify OS bringup |
| * Corrected a bug that caused the errno value of one task to be clobbered |
| when a different task exits. Effects all architectures. |
| |
| pascal-0.1.1 2008-02-01 Gregory Nutt <spudmonkey@racsa.co.cr> |
| |
| * Correct some errors in the NuttX installation logic |
| |
| buildroot-0.1.0 2007-03-09 <spudmonkey@racsa.co.cr> |
| |
| * Support for arm-elf toolchain |
| </pre></ul> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="pendingchanges">Unreleased Changes</a> |
| </td> |
| </tr> |
| </table> |
| |
| <pre><ul> |
| nuttx-0.3.8 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> |
| |
| * Added a test case to verify the Pascal P-Code interpreter |
| * Added /dev/zero |
| * 'errno' is now defined to be *get_errno_ptr() with no name conflicts |
| * Added lseek() and fseek() |
| * 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. |
| - Add logic to a correctly handle read/write access on the same FILE |
| - fseek() flushes read/write data when before moving the file pointer |
| - 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) |
| (see bug 1887170) |
| * Pascal P-Code runtime now compiles with the SDCC toolchain. |
| * Added a generic CAN driver. This driver is untested as of this writing. |
| |
| pascal-0.1.2 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> |
| |
| * Add logic to build and link with the ZDS-II toolchain |
| use with the z16f. |
| |
| buildroot-0.1.1 2007-xx-xx <spudmonkey@racsa.co.cr> |
| |
| * Support for m68k-elf and m68hc11 toolchain |
| </pre></ul> |
| |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="TODO"><h1>Bugs, Issues, <i>Things-To-Do</i></h1></a> |
| </td> |
| </tr> |
| </table> |
| |
| <ul> |
| <p> |
| The current list of NuttX <i>Things-To-Do</i> in CVS <a href="http://nuttx.cvs.sourceforge.net/*checkout*/nuttx/nuttx/TODO">here</a>. |
| A snapshot of the <i>To-Do</i> list associated with the current release are available <a href="TODO.txt">here</a>. |
| </p> |
| </ul> |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="documentation"><h1>Other Documentation</h1></a> |
| </td> |
| </tr> |
| </table> |
| |
| <ul><table> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td><a href="NuttxUserGuide.html">User Guide</a></td> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td><a href="NuttxPortingGuide.html">Porting Guide</a></td> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td><a href="ChangeLog.txt">Change Log</a></td> |
| </tr> |
| <tr> |
| <td><img src="favicon.ico"></td> |
| <td><a href="TODO.txt">To-Do List</a></td> |
| </tr> |
| </center></ul> |
| |
| <small> |
| <table width ="100%"> |
| <tr bgcolor="#e4e4e4"> |
| <td> |
| <a name="trademarks"><h1>Trademarks</h1></a> |
| </td> |
| </tr> |
| </table> |
| <ul> |
| <li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> |
| <li>Cygwin is a trademark of Red Hat, Incorporated.</li> |
| <li>Linux is a registered trademark of Linus Torvalds.</li> |
| <li>LPC2148 is a trademark of NXP Semiconductors.</li> |
| <li>TI is a tradename of Texas Instruments Incorporated.</li> |
| <li>UNIX is a registered trademark of The Open Group.</li> |
| <li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li> |
| <li>ZDS, ZNEO, Z16F, Z80, and Zilog are a registered trademark of Zilog, Inc.</li> |
| </ul> |
| <p> |
| NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. NuttX uses the POSIX |
| standard as a development guideline only. |
| </p> |
| </small> |
| |
| </body> |
| </html> |
| |