Skip to content
Snippets Groups Projects
NuttX.html 41.5 KiB
Newer Older
patacongo's avatar
patacongo committed
</tr>
<tr>
  <td><br></td>
  <td>
    <p>
      <b>Zilog Z8Encore! Microncontroller</b>.
      This port uses the either:
    </p>
    <ul>
      <li>Zilog z8encore000zco development kit, Z8F6403 part, or</li>
      <li>Zilog z8f64200100kit development kit, Z8F6423 part</li>
    </ul>
    <p>
      and the Zilog ZDS-II Windows command line tools.
patacongo's avatar
patacongo committed
      The development environment is Cygwin under WinXP.
    </p>
    <p>
      <b>STATUS:</b>
      This release has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation
      as of nuttx-0.3.9.
patacongo's avatar
patacongo committed
    </p>
   </td>
</tr>
<tr>
patacongo's avatar
patacongo committed
  <td valign="top"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Zilog Z80</b>
patacongo's avatar
patacongo committed
  </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
patacongo's avatar
patacongo committed
      under Linux or Cygwin (verified using version 2.6.0).
patacongo's avatar
patacongo committed
      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>
patacongo's avatar
patacongo committed
      This port is complete and stable to the extent that it can be tested
patacongo's avatar
patacongo committed
      using an instruction set simulator.
    </p>
   </td>
</tr>
patacongo's avatar
patacongo committed
<tr>
patacongo's avatar
patacongo committed
  <td valign="top"><img height="20" width="20" src="favicon.ico"></td>
patacongo's avatar
patacongo committed
  <td bgcolor="#5eaee1">
    <b>Other ports</b>
  </td>
</tr>
<tr>
  <td><br></td>
  <td>
patacongo's avatar
patacongo committed
    <p>
      There are partial ports for the TI TMS320DM270 and for MIPS.
    </p>
patacongo's avatar
patacongo committed
   </td>
</tr>
</table></center>
patacongo's avatar
patacongo committed

<blockquote>* A highly modified <a href="http://buildroot.uclibc.org/">buildroot</a>
patacongo's avatar
patacongo committed
is available that may be used to build a NuttX-compatible ELF toolchain under
Linux or Cygwin.  Configurations are available in that buildroot to support ARM,
m68k, m68hc11, m68hc12, and SuperH ports.</blockquote>
patacongo's avatar
patacongo committed

<table width ="100%">
  <tr bgcolor="#e4e4e4">
  <td>
    <a name="environments"><h1>Development Environments</h1></a>
  </td>
  </tr>
</table>

<center><table width="90%">
<tr>
patacongo's avatar
patacongo committed
  <td valign="top"><img height="20" width="20" 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.
patacongo's avatar
patacongo committed
      This download may be used to build a NuttX-compatible ELF toolchain under Linux or Cygwin.
      That toolchain will support ARM, m68k, m68hc11, m68hc12, and SuperH ports.
      The buildroot CVS may be accessed in the 
      <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/buildroot/">NuttX CVS</a>.
    </p>
   </td>
</tr>

<tr>
patacongo's avatar
patacongo committed
  <td valign="top"><img height="20" width="20" 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>
patacongo's avatar
patacongo committed
  <td valign="top"><img height="20" width="20" 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>
patacongo's avatar
patacongo committed
  <td valign="top"><img height="20" width="20" 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>
patacongo's avatar
patacongo committed
  <td valign="top"><img height="20" width="20" 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>
patacongo's avatar
patacongo committed
        <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>
patacongo's avatar
patacongo committed
      At present, only the Zilog Z16F, z8Encore, and eZ80Acclaim ports use a native Windows toolchain
      (the Zilog ZDS-II toolchain).
    </p.
  </td>
</tr>

<tr>
patacongo's avatar
patacongo committed
  <td valign="top"><img height="20" width="20" src="favicon.ico"></td>
  <td bgcolor="#5eaee1">
patacongo's avatar
patacongo committed
    <b>Other Environments?</b>
patacongo's avatar
patacongo committed
      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
patacongo's avatar
patacongo committed
      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.
patacongo's avatar
patacongo committed
<table width ="100%">
  <tr bgcolor="#e4e4e4">
  <td>
    <a name="footprint"><h1>Memory Footprint</h1></a>
  </td>
  </tr>
</table>
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
<ul>
<p><b>C5471 (ARM7)</b>
patacongo's avatar
patacongo committed
  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):
patacongo's avatar
patacongo committed
<pre>
   text    data     bss     dec     hex filename
  53272     428    3568   57268    dfb4 nuttx
</pre>
<p><b>DM320 (ARM9)</b>
patacongo's avatar
patacongo committed
  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
patacongo's avatar
patacongo committed
  49472     296    3972   53740    d1ec nuttx
patacongo's avatar
patacongo committed
<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>
patacongo's avatar
patacongo committed
<p><b>87C52</b>
  A reduced functionality OS test for the 8052 target requires only
  about 18-19Kb:
<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>
patacongo's avatar
patacongo committed
</ul>
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
<table width ="100%">
  <tr bgcolor="#e4e4e4">
  <td>
    <a name="licensing"><h1>Licensing</h1></a>
  </td>
  </tr>
</table>
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
<ul>
<p>
  NuttX is available under the highly permissive
patacongo's avatar
patacongo committed
  <a href="http://en.wikipedia.org/wiki/BSD_license">BSD license</a>.
patacongo's avatar
patacongo committed
  Other than some fine print that you agree to respect the copyright
patacongo's avatar
patacongo committed
  you should feel absolutely free to use NuttX in any environment and
  without any concern for jeopardizing any proprietary software that
patacongo's avatar
patacongo committed
  you may link with it.
</p>
</ul>
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
<table width ="100%">
  <tr bgcolor="#e4e4e4">
  <td>
    <a name="history"><h1>Release History</h1></a>
  </td>
  </tr>
</table>
patacongo's avatar
patacongo committed
<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>

patacongo's avatar
patacongo committed
<center><table width ="80%">
<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>
patacongo's avatar
patacongo committed
      <a href="ChangeLog.txt">Change Logs for All NuttX Releases</a><br>
patacongo's avatar
patacongo committed
   </td>
</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>
patacongo's avatar
patacongo committed
      <a href="#currentrelease">ChangeLog for Current Releases</a><br>
patacongo's avatar
patacongo committed
   </td>
</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>
      <a href="#pendingchanges">Unreleased Changes</a>
   </td>
</tr>
</table></center>

patacongo's avatar
patacongo committed
<table width ="100%">
  <tr bgcolor="#e4e4e4">
  <td>
patacongo's avatar
patacongo committed
    <a name="currentrelease">ChangeLog for Current Release</a>
patacongo's avatar
patacongo committed
  </td>
  </tr>
</table>

<pre><ul>
patacongo's avatar
patacongo committed
nuttx-0.4.5 2009-04-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;

	* Add an enumeration argument to the SPI chip select and status methods so
	  that the interface can handle more than one device.
	* eZ80Acclaim!: Add a generic SPI driver for all eZ80 boards.
	* Add a setmode() method to the SPI interface to handle parts with differing
	  mode requirements.
	* include/nuttx/i2c.h: Defined a standard I2C interface
	* eZ80Acclaim!: Add an I2C driver.
	* eZ8Encore!: Add an I2C driver.
	* Add support for the Freescale i.MX1/L architecture and a configuration for
	  the Freescale MX1ADS development board.
	* examples/helloxx: Added a simple C++ hello world example
	* include/css: Added std header files
	* libxx: New C++-only directory provides support for minimal C++ applications
patacongo's avatar
patacongo committed

pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;

	* Add logic to build and link with the ZDS-II toolchain
	  use with the z16f.
	* Make sure that POFF header structures are aligned
	* Standardized POFF file format to big-endian
	* Break up large switch statements to lower complexity
	  and eliminate a compiler bug
	* Changes so that runtime compiles with SDCC.

patacongo's avatar
patacongo committed
buildroot-0.1.5 2009-04-25 &lt;spudmonkey@racsa.co.cr&gt;
patacongo's avatar
patacongo committed
	* Replaced config/arm-defconfig-4.2.4 with config/arm920t-defconfig-4.2.4
	  and config/arm926t-defconfig-4.2.4 because of differences in the
	  way that soft floating point is handled between these two
	  architectures.
	* Add support for gcc-4.3.3 and the ARM Cortex-M3 processor (thumb2)
	* Add support for binutils 2.19.1
patacongo's avatar
patacongo committed
</pre></ul>

<table width ="100%">
  <tr bgcolor="#e4e4e4">
  <td>
    <a name="pendingchanges">Unreleased Changes</a>
  </td>
  </tr>
</table>

<pre><ul>
patacongo's avatar
patacongo committed
nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
patacongo's avatar
patacongo committed

	* Change SPI interface so that is can accomodate interfaces where the
	  number of bits per word is greater an 8 (such as with many 9-bit display
	  interfaces). -- this might have broken a few things which will need to
	  be retested!
	* arch/arm/src/imx: Added i.MX SPI driver
	* SPI: Add a method to set the number of bits per word.  Also add an
	  alternative interface for so that (eventually) I can phase the sndblock
	  and recvblock methods and replace them with a single exchange method
	* Build:  objcopy fails with toolchains that use newer GCC and binutils.  The
	  following arguments need to be included in the objcopy command line "-R .note
	  -R .note.gnu.build-id -R .comment"  This has bin fixed in arch/arm/src/Makefile,
	  but other architectures may have the same problem.  Thanks to Dave Marples
	  for verifying this.
	* Began adding support for the MicroMint Eagle100 board.  This board has a
	  Luminary LM3S6918 Cortex-M3.
	* Add configuration option to enable fast GPIO (vs. legacy, "slow" GPIO) for
	  LPC214x.
patacongo's avatar
patacongo committed
pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt;
patacongo's avatar
patacongo committed

	* Added config/arm7tdmi-defconfig-4.2.4
	* Added config/arm920t-defconfig-4.3.3
	* Correct error in arm-defconfig gcc-3.4.6 build. The gcc-3.4.6 configuration
	  does not not take --with-abi
	* Correct error in gcc-3.4.6/gcc/collect.c.  Calls open with O_CREAT but
	  does not specify mode.  Newer host compilers can error out on this.
patacongo's avatar
patacongo committed
</pre></ul>

patacongo's avatar
patacongo committed
<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>
patacongo's avatar
patacongo committed
<table width ="100%">
  <tr bgcolor="#e4e4e4">
  <td>
    <a name="documentation"><h1>Other Documentation</h1></a>
  </td>
  </tr>
</table>
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
<ul><table>
<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><a href="NuttxUserGuide.html">User Guide</a></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>
patacongo's avatar
patacongo committed
  <td><a href="NuttxPortingGuide.html">Porting Guide</a></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>
patacongo's avatar
patacongo committed
  <td><a href="NuttShell.html">NuttShell (NSH)</a></td>
</tr>
<tr>
  <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
  <td><a href="NXGraphicsSubsystem.html">NX Graphics Subsystem</a></td>
</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>
patacongo's avatar
patacongo committed
  <td><a href="ChangeLog.txt">Change Log</a></td>
</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><a href="TODO.txt">To-Do List</a></td>
</tr>
patacongo's avatar
patacongo committed
</center></ul>
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
<small>
<table width ="100%">
  <tr bgcolor="#e4e4e4">
  <td>
    <a name="trademarks"><h1>Trademarks</h1></a>
  </td>
  </tr>
</table>
<ul>
  <li>ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li>
patacongo's avatar
patacongo committed
  <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>
patacongo's avatar
patacongo committed
  <li>ZDS, ZNEO, Z16F, Z80, and Zilog are a registered trademark of Zilog, Inc.</li>
patacongo's avatar
patacongo committed
</ul>
<p>
patacongo's avatar
patacongo committed
  NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark.  NuttX uses the POSIX
  standard as a development guideline only.
patacongo's avatar
patacongo committed
</p>
</small>

patacongo's avatar
patacongo committed
</body>
</html>