Newer
Older
<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 initial release of support for the z16f was made available in NuttX version 0.3.7.
</p>
</td>
</tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<b>Zilog eZ80Acclaim! Microncontroller</b>.
<ul>
<li>One uses the ZiLOG ez80f0910200kitg development kit, and
<li>The other uses the ZiLOG ez80f0910200zcog-d development kit.
</ul>
Both boards are based on the eZ80F091 part and both use the Zilog ZDS-II
Windows command line tools.
The development environment is Cygwin under WinXP.
Integration and testing of NuttX on the ZiLOG ez80f0910200zcog-d is complete.
The first integrated version was released in NuttX version 0.4.2 (with important early bugfixes
in 0.4.3 and 0.4.4).
As of this writing, that port provides basic board support with a serial console, SPI, and eZ80F91 EMAC driver.
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Zilog Z8Encore!</b>
</td>
</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.
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.
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
</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
<td valign="top"><img height="20" width="20" 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>
<blockquote>* A highly modified <a href="http://buildroot.uclibc.org/">buildroot</a>
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>
<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 height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
</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 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>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
</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 height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
</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 height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
</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 height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
</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>
<li>
<b>Dependencies</b>
NuttX uses the GCC compiler's <code>-M</code> option to generate make dependencies. These
dependencies are retained in files called <code>Make.deps</code> throughout the system.
For compilers other than GCC, there is no support for making dependencies in this way.
For Windows native GCC compilers, the generated dependencies are windows paths and not
directly usable in the Cygwin make. By default, dependencies are surpressed for these
compilers as well.
</li>
<p><small>
NOTE: dependencies are suppress by setting the make variable <code>MKDEPS</code> to point
to the do-nothing dependency script, <code>tools/mknulldeps.sh</code>.
Dependencies can be enabled for the Windows native GCC compilers by setting
<code>MKDEPS</code> to point to <code>$(TOPDIR)/tools/mkdeps.sh --winpaths $(TOPDIR)</code>.
</small></p>
At present, only the Zilog Z16F, z8Encore, and eZ80Acclaim ports use a non-GCC native Windows
toolchain(the Zilog ZDS-II toolchain).
Support for Windows native GCC toolchains (CodeSourcery and devkitARM) is currently implemented
for the NXP LPC214x, STMicro STR71x, and Luminary LMS6918 ARM ports.
(but could easily be extended to any other GCC-based platform with a small effort).
</p>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Other Environments?
Windows Native <code>make</code> + Windows Native Toolchain?</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 cat, sed, etc.).
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>
<b>GNUWin32</b>.
For example, with suitable make system changes, it should be possible to
use native GNU tools (such as those from
<a href="http://sourceforge.net/projects/gnuwin32/">GNUWin32</a>)
to build NuttX.
However, that environment has not been used as of this writing.
</p>
</td>
</tr>
</table></center>
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
<a name="footprint"><h1>Memory Footprint</h1></a>
</td>
</tr>
</table>
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):
<pre>
text data bss dec hex filename
53272 428 3568 57268 dfb4 nuttx
</pre>
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
<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>
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>
<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>.
you should feel absolutely free to use NuttX in any environment and
without any concern for jeopardizing any proprietary software that
<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>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td>
<a href="#pendingchanges">Unreleased Changes</a>
</td>
</tr>
</table></center>
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
nuttx-0.4.8 2009-06-13 Gregory Nutt <spudmonkey@racsa.co.cr>
* lib/lib_*stream.c: Extend internal stream logic to support incoming streams.
* arch/arm/src/str71x: Serial output is now correct and timer interrupts are
working. The test at configs/olimex-strp711/ostest passes. This means that
the basic STR-P711 port is complete.
* configs/olimex-strp711/nsh: Add and verifed a NuttShell (NSH) configuration
for the STR-P711.
* arch/arm/str71x/str71x_serial.c: The STR711 interrupt driven serial driver
finally works after some extradinary measures to handle missed interrupts.
NSH is fully functional on the Olimex STR-P711 board.
* example/nsh: Moved architecture specific files from NSH directory to board-
specific directories.
* config/olimex-strp711/src/up_nsh.c: Add an NSH board specific directory for
for the Olimex STR7P11 board.
* Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain. There
were lots of issues with Cygwin paths and Cygwin symbolic links. These changes
may work with the devarmKIT as well, but that remains untested.
* The NXP LPC2148 and STR711 targets can now also be built using the CodeSourcery
or devkitARM Windows native toolchains.
pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr>
* 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.
buildroot-0.1.6 2009-xx-xx <spudmonkey@racsa.co.cr>
* 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.
</pre></ul>
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
<a name="pendingchanges">Unreleased Changes</a>
</td>
</tr>
</table>
<pre><ul>
nuttx-0.4.9 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
* Add strtoll() and strtoull(); Add macros for atol() and atoll().
* dup() and dup2() will now clone socket descriptors
* All socket descriptors ar now cloned when when a new task is started
via task_create().
* Use of C++ reserved word 'private' in C header files causes problems
for C++ that include them.
* Added 'binfmt' support to allow execution of programs in a file system,
binding to NuttX symbols. A custom format call NXFLAT is used; this
derives from http://xflat.sourceforge.net. At present is supports on
XIP execution from ROMFS file systems. Initial check-in is untested
and probably breaks many builds.
* examples/lib: Added qsort()
* examples/nxflat: Added support for symbol tables
patacongo
committed
* Correct logic that creates compiler include paths. On Cygwin, the
include paths for Cygwin-based GCC were being converted to windows
native paths. That causes many problems -- breaking dependencies
for one.
* Fixed an important bug in ROMFS. The initial XIP offset was set
incorrectly so if sector zero was read first, there was a bad read.
I don't know how it worked before.
pascal-0.1.3 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
buildroot-0.1.7 2009-xx-xx <spudmonkey@racsa.co.cr>
* configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX
port of the ATmega128.
* toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools
<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>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<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>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td><a href="ChangeLog.txt">Change Log</a></td>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<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 Cortex-M3 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>Eagle-100 is a trademark of <a href=" http://www.micromint.com/">Micromint USA, LLC</a>.
<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>
NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. NuttX uses the POSIX
standard as a development guideline only.