blob: 417c28c3a6e77affbe9a7a600349c2793dc22f8d [file] [log] [blame]
<html>
<head>
<title>NuttX</title>
<link rel="stylesheet" href="style.css">
</head>
<body background="backgd.gif">
<div class="container">
<div class="toc">
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
<h1>Table of Contents</h1>
</td>
</tr>
</table>
<table width ="80%" class="toc_table">
<tr>
<td>
<table>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td>
<a href="#overview">Overview</a>.<br>
What is NuttX? Look at all those files and features... How can it be a tiny OS?
</td>
</tr>
<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>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td>
<a href="https://bitbucket.org/nuttx/nuttx/src/master/ReleaseNotes">Release Notes</a>
What has changed in the last release of NuttX?
What has changed in previous releases of NuttX?
Are there any <a href="#changelogs">unreleased changes</a>.
</td>
</tr>
<tr>
<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.
(Do you want to help develop NuttX? If so, send me an email).
</td>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="main">
<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: July 21, 2019</p>
</td>
</tr>
</table>
<hr><hr>
<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="22"><img height="20" width="20" 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="22"><img height="20" width="20" 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: 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.
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" 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="22"><img height="20" width="20" 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="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Real-Time</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
Fully pre-emptible; fixed priority, round-robin, and &quot;sporadic&quot; scheduling.
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" 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>
<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>
to provide a complete development environment for many architectures.
</p>
</tr>
</table></center>
<p>
<b>Feature Set</b>.
Key features of NuttX include:
<p>
<center><table width="90%">
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Standards Compliant Core Task Management</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Fully pre-emptible.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Naturally scalable.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Highly configurable.</li>
</p>
</td>
</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 available.
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>FIFO and round-robin scheduling.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Realtime, deterministic, with support for priority inheritance</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Tickless Operation</li>
</p>
</tr>
<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>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Standard default signal actions (optional).</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>VxWorks-like task management and watchdog timers.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>BSD socket interface.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Extensions to manage pre-emption.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Optional tasks with address environments (<i>Processes</i>).</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Loadable kernel modules; lightweight, embedded shared libraries.</li>
</p>
</td>
</tr>
<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>
</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>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Inheritable &quot;controlling terminals&quot; and I/O re-direction. Pseudo-terminals</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>On-demand paging.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<li>System logging.</li>
</p>
</td>
</tr>
<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>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Built-in, per-thread CPU load measurements.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Well documented in the NuttX <a href="NuttxUserGuide.html">User Guide</a>.</li>
</p>
</td>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" 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>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Virtual file system (VFS) supports drivers and mountpoints.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
Mount-able volumes. Bind mountpoint, filesystem, and block device driver.
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Generic system logging (SYSLOG) support.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
FAT12/16/32 filesystem support with optional FAT long file name support<small><sup>1</sup></small>.
</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>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
NXFFS. The tiny NuttX wear-leveling FLASH file system.
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
SMART. FLASH file system from Ken Pettit.
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
SPIFFS. FLASH file system, originally by Peter Anderson.
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
LittleFS. FLASH file system from ARM mbed..
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>ROMFS filesystem support (XIP capabable).</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>CROMFS (Compressed ROMFS) filesystem support.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>TMPFS RAM filesystem support.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>BINFS pseudo-filesystem support.</li>
</p>
</td>
</tr>
<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>
</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>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
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>
<li>
&quot;Built-In&quot; applications.</li>
</li>
</ul>
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>PATH variable support.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<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>
</p>
</td>
</tr>
<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>
</td>
</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>
</p>
</td>
</tr>
<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>
<tr>
<td><br></td>
<td>
<p>
<li>
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.
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
RAMDISK, pipes, FIFO, <code>/dev/null</code>, <code>/dev/zero</code>, <code>/dev/random</code>, and loop drivers.
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Generic driver for SPI-based or SDIO-based MMC/SD/SDH cards.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
Graphics: framebuffer drivers, graphic- and segment-LCD drivers.
VNC server.
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Audio subsystem: CODECs, audio input and output drivers. Command line and graphic media player applications.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Cryptographic subsystem.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li><a href="NuttxPortingGuide.html#pwrmgmt">Power Management</a> sub-system.</li>
</p>
</td>
</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>
</td>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>C/C++ Libraries</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Standard C Library Fully integrated into the OS.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Includes floating point support via a Standard Math Library.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Add-on <a href="http://cxx.uclibc.org/">uClibc++</a> module provides Standard C++ Library (LGPL).</li>
</p>
</td>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<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>
<tr>
<td><br></td>
<td>
<p>
<li>IPv4, IPv6, TCP/IP, UDP, ICMP, ICMPv6, IGMPv2 and MLDv1/v2 (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>), raw Bluetooth (<code>AF_BLUETOOTH</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>
</p>
</td>
</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, Bluetooth LE</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>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>A port cJSON</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Small footprint.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>BSD compatible socket layer.</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<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>
</p>
</td>
</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>
</td>
</tr>
<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.
</li>
</p>
</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).
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
XML RPC Server (Contributed by Richard Cochran).
</li>
</p>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
Support for networking modules (e.g., ESP8266).
</li>
</p>
</td>
</tr>
<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>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li><i>FTL</i>. Simple <i>F</i>lash <i>T</i>ranslation <i>L</i>ayer support file systems on FLASH.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Wear-Leveling FLASH File Systems: NXFFS, SmartFS, SPIFFS.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Support for SPI-based FLASH and FRAM devices.</li>
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>USB Host Support</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>USB host architecture for USB host controller drivers and device-dependent USB class drivers.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>USB host controller drivers available for the Atmel SAMA5Dx, NXP LPC17xx, LPC31xx, and STmicro STM32</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Device-dependent USB class drivers available for USB mass storage, CDC/ACM serial, HID keyboard, and HID mouse.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Seam-less support for USB hubs.</li>
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>USB Device Support</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li><i>Gadget</i>-like architecture for USB device controller drivers and device-dependent USB class drivers.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>USB device controller drivers available for the most MCU architectures includeing PIC32, Atmel AVR, SAM3, SAM4, SAMv7, and SAMA5Dx, NXP/Freescale LPC17xx, LPC214x, LPC313x, LPC43xx, and Kinetis, Silicon Laboraties EFM32, STMicro STM32 F1, F2, F3, F4, and F7, TI DM320, and others.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Device-dependent USB class drivers available for USB serial (CDC/ACM and a PL2303 emulation), for USB mass storage, for USB networking (RNDIS and CDC/ECM), DFU, and for a dynamically configurable, composite USB devices.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Built-in <a href="UsbTrace.html">USB device</a> and USB host trace functionality for non-invasive USB debug.</li>
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Graphics Support</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Framebuffer drivers.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Graphic LCD drivers for both parallel and SPI LCDs and OLEDs.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Segment LCD drivers.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>VNC Server.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li><code>mmap</code>-able, framebuffer character driver.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
NX: A graphics library, tiny windowing system and tiny font support that works with either framebuffer or LCD drivers.
Documented in the <a href="NXGraphicsSubsystem.html">NX Graphics Subsystem</a>
manual.
</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Font management sub-system.</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
<a href="NxWidgets.html">NxWidgets</a>: NXWidgets is library of graphic objects, or &quot;widgets,&quot (labels, buttons, text boxes, images, sliders, progress bars, etc.). NXWidgets is written in C++ and integrates seamlessly with the NuttX NX graphics and font management subsystems.
</li>
</p>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>
<a href="NxWidgets.html">NxWM</a>: NxWM is the tiny NuttX window manager based on NX and NxWidgets.
</li>
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Input Devices</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Touchscreen, USB keyboard, GPIO-based buttons and keypads. </li>
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Analog Devices</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Support for Analog-to-Digital conversion (ADC), Digital-to-Analog conversion (DAC), multiplexers, and amplifiers.</li>
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Motor Control</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Pulse width modulation (PWM) / Pulse count modulation.</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="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>NuttShell (NSH)</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>A small, scalable, bash-like shell for NuttX with rich feature set and small footprint.
See the <a href="NuttShell.html">NuttShell User Guide</a>.</li>
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>BAS 2.4</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<li>Seamless integration of Michael Haardt's BAS 2.4:
&quot;Bas is an interpreter for the classic dialect of the programming language
BASIC. It is pretty compatible to typical BASIC interpreters of the 1980s,
unlike some other UNIX BASIC interpreters, that implement a different
syntax, breaking compatibility to existing programs. Bas offers many ANSI
BASIC statements for structured programming, such as procedures, local
variables and various loop types. Further there are matrix operations,
automatic LIST indentation and many statements and functions found in
specific classic dialects. Line numbers are not required.&quot;</li>
</p>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" 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="https://bitbucket.org/nuttx/pascal/downloads/">Bitbucket.org</a>
website.</li>
</p>
</td>
</tr>
</table></center>
<p>
<b>Look at all those files and features... How can it be a tiny OS?</b>.
The NuttX feature list (above) is fairly long and if you look at the NuttX
source tree, you will see that there are hundreds of source files comprising
NuttX. How can NuttX be a tiny OS with all of that?
</p>
<center><table width="90%">
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Lots of Features -- More can be smaller!</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
The philosophy behind that NuttX is that lots of features are great... <i>BUT</i>
also that if you don't use those features, then you should not have to pay a penalty
for the unused features.
And, with NuttX, you don't! If you don't use a feature, it will not
be included in the final executable binary.
You only have to pay the penalty of increased footprint for the features
that you actually use.
</p>
<p>
Using a variety of technologies, NuttX can scale from the very tiny to
the moderate-size system. I have executed NuttX with some simple applications
in as little as 32K <i>total</i> memory (code and data).
On the other hand, typical, richly featured NuttX builds require more like 64K
(and if all of the features are used, this can push 100K).
</p>
</td>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Many, many files -- More really is smaller!</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
One may be intimidated by the size NuttX source tree. There are hundreds of source files!
How can that be a tiny OS?
Actually, the large number of files is one of the tricks to keep NuttX small and
as scalable as possible.
Most files contain only a single function.
Sometimes just one tiny function with only a few lines of code.
Why?
</p>
<ul>
<li>
<b>Static Libraries</b>.
Because in the NuttX build processed, objects are compiled and saved into
<i>static libraries</i> (<i>archives</i>).
Then, when the file executable is linked, only the object files that are needed
are extracted from the archive and added to the final executable.
By having many, many tiny source files, you can assure that no code that you do
not execute is ever included in the link.
And by having many, tiny source files you have better granularity --
if you don't use that tiny function of even just a few lines of code, it will
not be included in the binary.
</li>
</ul>
</td>
</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<b>Other Tricks</b>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
As mentioned above, the use of many, tiny source files and linking from static
libraries keeps the size of NuttX down.
Other tricks used in NuttX include:
</p>
<ul>
<li>
<b>Configuration Files</b>.
Before you build NuttX, you must provide a configuration file that specifies
what features you plan to use and which features you do not.
This configuration file contains a long list of settings that control
what is built into NuttX and what is not.
There are hundreds of such settings
(see the <a href="NuttXConfigVariables.html">Configuration Variable Documentation</a>
for a partial list that excludes platform specific settings).
These many, many configuration options allow NuttX to be highly tuned to
meet size requirements.
The downside to all of these configuration options is that it greatly
complicates the maintenance of NuttX -- but that is my problem, not yours.
</li>
<li>
<b>Weak Symbols</b>
The GNU toolchain supports <i>weak</i> symbols and these also help to keep
the size of NuttX down.
Weak symbols prevent object files from being drawn into the link even if they
are accessed from source code.
Careful use of weak symbols is another trick for keep unused code out of the
final binary.
</li>
</ul>
</td>
</tr>
</table></center>
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
<a name="group"><h1>NuttX Discussion Group</h1></a>
</td>
</tr>
</table>
<p>
Most NuttX-related discussion occurs on the <a href="https://groups.google.com/forum/#!forum/nuttx"><i>Google</i> NuttX group</a>.
You are cordially invited to join.
In most cases, I make a special effort to answer any questions and provide any help that I can.
</p>
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
<a name="downloads"><h1>Downloads</h1></a>
</td>
</tr>
</table>
<h2>Git Repository</h2>
<p>
The working version of NuttX is available from the Bitbucket GIT repository <a href="https://bitbucket.org/nuttx/nuttx/src/master/" target="_blank">here</a>.
That same page provides the URLs and instructions for <i>cloning</i> the GIT repository.
</p>
<h2>Released Versions</h2>
<p>
In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available.
The current release is NuttX 7.31.
NuttX 7.31 is the 131<sup>st</sup> release of NuttX.
It was released on July 21, 2019, and is available for download from the
<a href="https://bitbucket.org/nuttx/nuttx/downloads/">Bitbucket.org</a> website.
Note that the release consists of two tarballs: <code>nuttx-7.31.tar.gz</code> and <code>apps-7.31.tar.gz</code>.
Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information).
</p>
<h2><a name="changelogs"><b>Release Notes and Change Logs</b>:</a></h2>
<ul>
<li><b>nuttx</b>.
<ul><p>
Release notes for NuttX 7.31 are available <a href="https://bitbucket.org/nuttx/nuttx/downloads/">here</a>.
Release notes for all released versions on NuttX are available in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/ReleaseNotes" target="_blank">Bitbucket GIT</a>.
The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/ChangeLog" target="_blank">Bitbucket GIT</a>.
The ChangeLog for the current release is at the bottom of that file.
</p>
</li></ul>
<li><b>apps</b>.
<ul><p>
Release notes for NuttX 7.31 are available <a href="https://bitbucket.org/nuttx/apps/downloads/">here</a>.
Release notes for all released versions on NuttX are available in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/ReleaseNotes" target="_blank">Bitbucket GIT</a>
The ChangeLog for the all releases of <code>apps/</code> is available in the ChangeLog file that can viewed in the <a href="https://bitbucket.org/nuttx/apps/src/master/ChangeLog.txt" target="_blank">Bitbucket GIT</a>.
The ChangeLog for the current release is at the bottom of that file.
</p>
</li></ul>
<li><b>NxWidgets</b>.
<ul><p>
<p>
As of NuttX-7.27, the content of the NxWidgets repository has been included within the <code>apps/</code> package and no longer has separate releases.
</p>
</li></ul>
<li><b>pascal</b>.
<ul><p>
Release notes for all released versions on pascal are available in the <a href="https://bitbucket.org/nuttx/pascal/ReleaseNotes" target="_blank">Bitbucket GIT</a>
The ChangeLog for all releases of pascal is available at the bottom of the ChangeLog file that can viewed in the <a href="https://bitbucket.org/nuttx/pascal/ChangeLog" target="_blank">Bitbucket GIT</a>.
</p>
</li></ul>
<li><b>buildroot</b>.
<ul><p>
Release notes for buildroot 1.14 are available <a href="https://bitbucket.org/nuttx/buildroot/downloads/">here</a>.
Release notes for all released versions on buildroot are available in the <a href="https://bitbucket.org/nuttx/buildroot/src/master/ReleaseNotes" target="_blank">Bitbucket GIT</a>
The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the <a href="https://bitbucket.org/nuttx/buildroot/src/master/ChangeLog" target="_blank">Bitbucket GIT</a>.
</p>
</li></ul>
</ul>
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
<a name="platforms"><h1>Supported Platforms</h1></a>
</td>
</tr>
</table>
<p><b>Supported Platforms by CPU core</b>.
The number of ports to this CPU follow in parentheses.
The state of the various ports vary from board-to-board.
Follow the links for the details:
</p>
<center><table width="90%">
<ul>
<tr>
<td bgcolor="#e4e4e4" valign="top" width="34%">
<li><a href="#linuxusermode">Linux/Cygwin user mode simulation</a> (1)</li>
<li>ARM
<ul>
<li><a href="#arm7tdmi">ARM7TDMI</b></a> (4)</li>
<li><a href="#arm920t">ARM920T</a> (1)</li>
<li><a href="#arm926ejs">ARM926EJS</a> (4)</li>
<li><a href="#armv4">Other ARMv4</a> (1)</li>
<li><a href="#arm1176jz">ARM1176JZ</a> (1)</li>
<li><a href="#armcortexa5">ARM Cortex-A5</a> (3)</li>
<li><a href="#armcortexa8">ARM Cortex-A8</a> (2)</li>
<li><a href="#armcortexa9">ARM Cortex-A9</a> (1)</li>
<li><a href="#armcortexr4">ARM Cortex-R4</a> (2)</li>
<li><a href="#armcortexm0">ARM Cortex-M0/M0+</a> (10)</li>
<li><a href="#armcortexm3">ARM Cortex-M3</a> (39)</li>
<li><a href="#armcortexm4">ARM Cortex-M4</a> (57)</li>
<li><a href="#armcortexm7">ARM Cortex-M7</a> (14)</li>
</ul>
<li>Atmel AVR
<ul>
<li><a href="#atmelavr">Atmel 8-bit AVR</a> (5) </li>
<li><a href="#atmelavr32">Atmel AVR32</a> (1) </li>
</ul>
</li>
</td>
<td bgcolor="#e4e4e4" valign="top" width="33%">
<li>Freescale
<ul>
<li><a href="#m68hcs12">M68HCS12</a> (2)</li>
</ul>
</li>
<li>Intel
<ul>
<li><a href="#80x86">Intel 80x86</a> (2)</li>
</ul>
</li>
<li>MicroChip
<ul>
<li><a href="#pic32mxmips">PIC32MX</a> (MIPS 24Kc) (4)</li>
<li><a href="#pic32mzmips">PIC32MZ</a> (MIPS M14K) (2)</li>
</ul>
</li>
<li>Misoc
<ul>
<li><a href="#misoclm32">LM32</a> (1)</li>
<li><a href="#minerva">Minerva</a> (1)</li>
</ul>
</li>
<li>OpenRISC
<ul>
<li><a href="#mor1kx">mor1kx</a> (1)</li>
</ul>
</li>
</td>
<td bgcolor="#e4e4e4" valign="top" width="33%">
<li>Renesas/Hitachi:
<ul>
<li><a href="#superh">Renesas/Hitachi SuperH</a> (1/2)</li>
<li><a href="#m16c">Renesas M16C/26</a> (1/2)</li>
</ul>
</li>
<li><a href="#riscv">RISC-V</a> (2)
<ul>
<li><a href="#nr5mxx"> NEXT RISC-V NR5Mxx</a> (1)</li>
<li><a href="#gwgap8">GreenWaves GAP8 (1)</li>
</ul>
</li>
<li>Xtensa LX6:
<ul>
<li><a href="#esp32">ESP32</a> (1)</li>
</ul>
</li>
<li>ZiLOG
<ul>
<li><a href="#zilogz16f">ZiLOG ZNEO Z16F</a> (2)</li>
<li><a href="#zilogez80acclaim">ZiLOG eZ80 Acclaim!</a> (1)</li>
<li><a href="#zilogz8encore">ZiLOG Z8Encore!</a> (2)</li>
<li><a href="#zilogz180">ZiLOG Z180</a> (1)</li>
<li><a href="#zilogz80">ZiLOG Z80</a> (2)</li>
</ul>
</li>
</td>
</tr>
</table></center>
<p><b>Supported Platforms by Manufacturer/MCU Family</b>.
CPU core type follows in parentheses.
The state of the various ports vary from MCU to MCU.
Follow the links for the details:
</p>
<center><table width="90%">
<ul>
<tr>
<td bgcolor="#e4e4e4" valign="top" width="34%">
<li>Allwinner
<ul>
<li><a href="#allwinnera10">A10</a> <small>(Cortex-A8)</small></li>
</ul>
</li>
<li>Broadcom
<ul>
<li><a href="#bcm2708">BCM2708</a> <small>(ARM1176JZ)</small></li>
</ul>
</li>
<li>Expressif
<ul>
<li><a href="#esp32">ESP32</a> <small>(Dual Xtensa LX6)</small></li>
</ul>
<li>GreenWaves
<ul>
<li><a href="#gwgap8">GAP8</a> <small>(RISC-V RV32IM)</small></li>
</ul>
</li>
<li>Host PC based simulations
<ul>
<li><a href="#linuxusermode">Linux/Cygwin user mode simulation</a></li>
</ul>
</li>
<li>Infineon
<ul>
<li><a href="#xmd45xx">Infineon XMC45xx</a></li>
</ul>
</li>
<li>Intel
<ul>
<li><a href="#80x86">Intel 80x86</a></li>
</ul>
</li>
<li>Maxim Integrated
<ul>
<li><a href="#max3660">MAX32660</a> <small>(ARM Cortex-M3)</small></li>
</ul>
</li>
<li>MicroChip
<ul>
<li><a href="#pic32mx2xx">PIC32MX2xx Family</a> <small>(MIPS32 24Kc)</small></li>
<li><a href="#pic32mx4xx">PIC32MX4xx Family</a> <small>(MIPS32 24Kc)</small></li>
<li><a href="#pic32mx7xx">PIC32MX7xx Family</a> <small>(MIPS32 24Kc)</small></li>
<li><a href="#pic32mzec">PIC32MZEC Family</a> <small>(MIPS32 M14K)</small></li>
<li><a href="#pic32mzef">PIC32MZEF Family</a> <small>(MIPS32 M14K)</small></li>
</ul>
</li>
<li>Microchip (Formerly Atmel)
<ul>
<li><a href="#avratmega128">AVR ATMega128</a> <small>(8-bit AVR)</small></li>
<li><a href="#avratmega1284p">AVR ATMega1284p</a> <small>(8-bit AVR)</small></li>
<li><a href="#avratmega2560">AVR ATMega2560</a> <small>(8-bit AVR)</small></li>
<li><a href="#avrat90usbxxx">AVR AT90USB64x and AT90USB6128x</a> <small>(8-bit AVR)</small></li>
<li><a href="#at32uc3bxxx">AVR32 AT32UC3BXXX</a> <small>(32-bit AVR32)</small></li>
<li><a href="#at91samd20">Atmel SAMD20</a> <small>(ARM Cortex-M0+)</small></li>
<li><a href="#at91saml21">Atmel SAML21</a> <small>(ARM Cortex-M0+)</small></li>
<li><a href="#at91sam3u">Atmel SAM3U</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#at91sam3x">Atmel SAM3X</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#at91sam4c">Atmel SAM4C</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#at91sam4e">Atmel SAM4E</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#at91sam4l">Atmel SAM4L</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#at91sam4s">Atmel SAM4S</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#at91samd5e5">Atmel SAMD5x/E5x</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#at91same70">Atmel SAME70</a> <small>(ARM Cortex-M7)</small></li>
<li><a href="#at91samv71">Atmel SAMV71</a> <small>(ARM Cortex-M7)</small></li>
<li><a href="#at91sama5d2">Atmel SAMA5D2</a> <small>(ARM Cortex-A5)</small></li>
<li><a href="#at91sama5d3">Atmel SAMA5D3</a> <small>(ARM Cortex-A5)</small></li>
<li><a href="#at91sama5d4">Atmel SAMA5D4</a> <small>(ARM Cortex-A5)</small></li>
</ul>
</li>
<li>Moxa
<ul>
<li><a href="#moxart">Moxa NP51x0</a> <small>(ARMv4)</small></li>
</ul>
</li>
<li>nuvoTon
<ul>
<li><a href="#nuvotonnu120">nuvoTon NUC120</a> <small>(ARM Cortex-M0)</small></li>
</ul>
</li>
<li>Nordic Semiconductor
<ul>
<li><a href="#nrf52">NRF52xxx</a> <small>(ARM Cortex-M4)</small></li>
</ul>
</li>
<li>NXP/Freescale
<ul>
<li><a href="#m68hcs12">M68HCS12</a></li>
<li><a href="#freescaleimx1">NXP/Freescale i.MX1</a> <small>(ARM920-T)</small></li>
<li><a href="#freescaleimx6">NXP/Freescale i.MX6</a> <small>(ARM Cortex-A9)</small></li>
<li><a href="#freescaleimxrt">NXP/Freescale i.MX RT</a> <small>(ARM Cortex-M7)</small></li>
</ul>
</li>
</td>
<td bgcolor="#e4e4e4" valign="top" width="33%">
<li>NXP/Freescale (Continued)
<ul>
<li><a href="#freescalekl25z">NXP/FreeScale KL25Z</a> <small>(ARM Cortex-M0+)</small></li>
<li><a href="#freescalekl26z">NXP/FreeScale KL26Z</a> <small>(ARM Cortex-M0+)</small></li>
<li><a href="#kinetisk20">NXP/FreeScale Kinetis K20</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#kinetisk28">NXP/FreeScale Kinetis K28</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#kinetisk40">NXP/FreeScale Kinetis K40</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#kinetisk60">NXP/FreeScale Kinetis K60</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#kinetisk64">NXP/FreeScale Kinetis K64</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#kinetisk66">NXP/FreeScale Kinetis K66</a> <small>(ARM Cortex-M4)</small></li>
</ul>
<ul>
<li><a href="#nxplpc11xx">NXP LPC11xx</a> <small>(Cortex-M0)</small></li>
<li><a href="#nxplpc214x">NXP LPC214x</a> <small>(ARM7TDMI)</small></li>
<li><a href="#nxplpc2378">NXP LPC2378</a> <small>(ARM7TDMI)</small></li>
<li><a href="#nxplpc3131">NXP LPC3131</a> <small>(ARM9E6JS)</small></li>
<li><a href="#nxplpc315x">NXP LPC315x</a> <small>(ARM9E6JS)</small></li>
<li><a href="#nxplpc176x">NXP LPC176x</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#nxplpc178x">NXP LPC178x</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#nxplpc40xx">NXP LPC40xx</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#nxplpc43xx">NXP LPC43xx</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#nxplpc54xx">NXP LPC54xx</a> <small>(ARM Cortex-M4)</small></li>
</ul>
</li>
<li>ON Semiconductor:
<ul>
<li><a href="#lc823450">LC823450</a> <small>(Dual core ARM Cortex-M3)</small></li>
</ul>
</li>
<li>Renesas/Hitachi:
<ul>
<li><a href="#superh">Renesas/Hitachi SuperH</a></li>
<li><a href="#m16c">Renesas M16C/26</a></li>
</ul>
</li>
<li>Silicon Laboratories, Inc.
<ul>
<li><a href="#efm32g">EFM32 Gecko</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#efm32gg">EFM32 Giant Gecko</a> <small>(ARM Cortex-M3)</small></li>
</ul>
</li>
<li>Sony.
<ul>
<li><a href="#cxd56xx">CXD56<i>xx</i></a> <small>(6 x ARM Cortex-M4)</small></li>
</ul>
</li>
<li>STMicroelectronics
<ul>
<li><a href="#str71x">STMicro STR71x</a> <small>(ARM7TDMI)</small></li>
<li><a href="#stm32f0xx">STMicro STM32F0xx</a> <small>(STM32 F0, ARM Cortex-M0)</small></li>
<li><a href="#stm32L0xx">STMicro STM32L0xx</a> <small>(STM32 L0, ARM Cortex-M0)</small></li>
<li><a href="#stm32l152">STMicro STM32L152</a> <small>(STM32 L1 &quot;EnergyLite&quot; Line, ARM Cortex-M3)</small></li>
<li><a href="#stm32l162">STMicro STM32L162</a> <small>(STM32 L1 &quot;EnergyLite&quot; Medium+ Density, ARM Cortex-M3)</small></li>
<li><a href="#stm32f100x">STMicro STM32F100x</a> <small>(STM32 F1 &quot;Value Line&quot;Family, ARM Cortex-M3)</small></li>
<li><a href="#stm32f102x">STMicro STM32F102x</a> <small>(STM32 F1 Family, ARM Cortex-M3)</small></li>
<li><a href="#stm32f103cx">STMicro STM32F103C4/C8</a> <small>(STM32 F1 &quot;Low- and Medium-Density Line&quot; Family, ARM Cortex-M3)</small></li>
<li><a href="#stm32f103x">STMicro STM32F103x</a> <small>(STM32 F1 Family, ARM Cortex-M3)</small></li>
<li><a href="#stm32f105x">STMicro STM32F105x</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#stm32f107x">STMicro STM32F107x</a> <small>(STM32 F1 &quot;Connectivity Line&quot; family, ARM Cortex-M3)</small></li>
<li><a href="#stm32f205x">STMicro STM32F205x</a> <small>(STM32 F2 family, ARM Cortex-M3)</small></li>
<li><a href="#stm32f207x">STMicro STM32F207x</a> <small>(STM32 F2 family, ARM Cortex-M3)</small></li>
<li><a href="#stm32f302x">STMicro STM32F302x</a> <small>(STM32 F3 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f303x">STMicro STM32F303x</a> <small>(STM32 F3 family, ARM Cortex-M4)</small></li>
</ul>
</li>
</td>
<td bgcolor="#e4e4e4" valign="top" width="33%">
<li>STMicroelectronics (Continued)
<ul>
<li><a href="#stm32f334x">STMicro STM32F334</a> <small>(STM32 F3 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f372x">STMicro STM32 F372/F373</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#stm32f4x1">STMicro STM32F4x1</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f410">STMicro STM32F410</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f407x">STMicro STM32F405x/407x</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f427x">STMicro STM32 F427/F437</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f429x">STMicro STM32 F429</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f433x">STMicro STM32 F433</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f446x">STMicro STM32 F446</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f46xxx">STMicro STM32 F46xx</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32l4x2">STMicro STM32 L4x2</a> <small>(STM32 L4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32l475">STMicro STM32 L475</a> <small>(STM32 L4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32l476">STMicro STM32 L476</a> <small>(STM32 L4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32l496">STMicro STM32 L496</a> <small>(STM32 L4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32l4rx">STMicro STM32 L4Rx</a> <small>(STM32 L4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f72x3x">STMicro STM32 F72x/F73x</a> <small>(STM32 F7 family, ARM Cortex-M7)</small></li>
<li><a href="#stm32f74x">STMicro STM32 F745/F746</a> <small>(STM32 F7 family, ARM Cortex-M7)</small></li>
<li><a href="#stm32f75x">STMicro STM32 F756</a> <small>(STM32 F7 family, ARM Cortex-M7)</small></li>
<li><a href="#stm32f76xx77xx">STMicro STM32 F76xx/F77xx</a> <small>(STM32 F7 family, ARM Cortex-M7)</small></li>
<li><a href="#stm32h7x3">STMicro STM32 H7x3</a> <small>(STM32 H7 family, ARM Cortex-M7)</small></li>
</ul>
<li>Texas Instruments (some formerly Luminary)
<ul>
<li><a href="#tms320c5471">TI TMS320-C5471</a> <small>(ARM7TDMI)</small></li>
<li><a href="#titms320dm320">TI TMS320-DM320</a> <small>(ARM9E6JS)</small></li>
<li><a href="#tilms6432">TI/Stellaris LM3S6432</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#tilm3s6432s2e">TI/Stellaris LM3S6432S2E</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#tilms6918">TI/Stellaris LM3S6918</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#tilms6965">TI/Stellaris LM3S6965</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#tilms8962">TI/Stellaris LM3S8962</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#tilms9b92">TI/Stellaris LM3S9B92</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#tilms9b96">TI/Stellaris LM3S9B96</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#tilcc13x0">TI/SimpleLink CC13x0</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#tilm4f120x">TI/Stellaris LM4F120x</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#titm4c123g">TI/Tiva TM4C123G</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#titm4c1294">TI/Tiva TM4C1294</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#titm4c129x">TI/Tiva TM4C129X</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#tilcc13x2">TI/SimpleLink CC13x2</a> <small>(ARM Cortex-M4)</small></li>
<li><a href="#tms570ls04x">TI/Hercules TMS570LS04xx</a> <small>(ARM Cortex-R4)</small></li>
<li><a href="#tms570ls31x">TI/Hercules TMS570LS31xx</a> <small>(ARM Cortex-R4)</small></li>
<li><a href="#tiam355x">TI/Sitara AM335x</a> <small>(Cortex-A8)</small></li>
</ul>
</li>
<li>ZiLOG
<ul>
<li><a href="#zilogz16f">ZiLOG ZNEO Z16F</a></li>
<li><a href="#zilogez80acclaim">ZiLOG eZ80 Acclaim!</a></li>
<li><a href="#zilogz8encore">ZiLOG Z8Encore!</a></li>
<li><a href="#zilogz180">ZiLOG Z180</a></li>
<li><a href="#zilogz80">ZiLOG Z80</a></li>
</ul>
</li>
</td>
<td bgcolor="#e4e4e4" valign="top">
</td>
<td bgcolor="#e4e4e4" valign="top">
</td>
</tr>
</table></center>
<p>
<b>Details</b>.
The details, caveats and fine print follow.
For even more information see the <i>README</i> files that can be found <a href="README.html">here</a>.
</p>
<center><table width="90%">
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="linuxusermode"><b>Linux User Mode</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
A user-mode port of NuttX to the x86 Linux/Cygwin platform is available.
The purpose of this port is primarily to support OS feature development.
</p>
<ul>
<p>
<b>STATUS:</b>
Does not support interrupts but is otherwise fully functional.
Refer to the NuttX <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/sim/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="arm7tdmi"><b>ARM7TDMI</b></a>.
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tms320c5471"><b>TI TMS320C5471</b></a>
(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-nuttx-elf toolchain* under Linux or Cygwin.
</p>
<ul>
<p>
<b>STATUS:</b>
This port is complete, verified, and included in the initial NuttX release.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/c5471evm/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="nxplpc214x"><b>NXP LPC214x</b>.</a>
Support is provided for the NXP LPC214x family of processors. In particular,
support is provided for (1) the mcu123.com lpc214x evaluation board (LPC2148)
and (1) the The0.net ZPA213X/4XPA development board (with the The0.net UG-2864AMBAG01 OLED)
This port also used the GNU arm-nuttx-elf toolchain* under Linux or Cygwin.
</p>
<ul>
<p>
<b>STATUS:</b>
This port boots and passes the OS test (apps/examples/ostest).
The port is complete and verified. As of NuttX 0.3.17, the port includes:
timer interrupts, serial console, USB driver, and SPI-based MMC/SD card
support. A verified NuttShell (<a href="NuttShell.html">NSH</a>)
configuration is also available.
Refer to the NuttX board README files for the <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/mcu123-lpc214x/README.txt" target="_blank">mcu123.com</a> and for the <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/zp214xpa/README.txt" target="_blank">ZPA213X/4XPA</a> boards for further information.
</p>
<p>
<b>Development Environments:</b>
1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS
with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux
or Cygwin is provided by the NuttX
<a href="https://bitbucket.org/nuttx/buildroot/downloads/">buildroot</a>
package.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="nxplpc2378"><b>NXP LPC2378</b></a>.
Support is provided for the NXP LPC2378 MCU. In particular,
support is provided for the Olimex-LPC2378 development board.
This port was contributed by Rommel Marcelo is was first released in NuttX-5.3.
This port also used the GNU arm-nuttx-elf toolchain* under Linux or Cygwin.
</p>
<ul>
<p>
<b>STATUS:</b>
This port boots and passes the OS test (apps/examples/ostest) and includes a
working implementation of the NuttShell (<a href="NuttShell.html">NSH</a>).
The port is complete and verified.
As of NuttX 5.3, the port included only basic timer interrupts and serial console support.
In NuttX 7.1, Lizhuoyi contributed additional I2C and SPI drivers.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/olimex-lpc2378/README.txt" target="_blank">README</a> file for further information.
</p>
<p>
<b>Development Environments:</b> (Same as for the NXP LPC214x).
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="str71x"><b>STMicro STR71x</b>.</a>
Support is provided for the STMicro STR71x family of processors. In particular,
support is provided for the Olimex STR-P711 evaluation board.
This port also used the GNU arm-nuttx-elf toolchain* under Linux or Cygwin.
</p>
<ul>
<p>
<b>STATUS:</b>
Integration is complete on the basic port (boot logic, system time, serial console).
Two configurations have been verified: (1) The board boots and passes the OS test
with console output visible on UART0, and the NuttShell (<a href="NuttShell.html">NSH</a>)
is fully functional with interrupt driven serial console. An SPI driver is available
but only partially tested. Additional features are needed: USB driver, MMC integration,
to name two (the slot on the board appears to accept on MMC card dimensions; I have only
SD cards).
An SPI-based ENC28J60 Ethernet driver for add-on hardware is available and
but has not been fully verified on the Olimex board (due to issues powering the ENC28J60 add-on board).
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/olimex-strp711/README.txt" target="_blank">README</a> file for further information.
</p>
<p>
<b>Development Environments:</b>
1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS
with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux
or Cygwin is provided by the NuttX
<a href="https://bitbucket.org/nuttx/buildroot/downloads/">buildroot</a>
package.
</p>
</ul>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="arm920t"><b>ARM920T</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="freescaleimx1"><b>Freescale MC9328MX1</b> or <b>i.MX1</b>.</a>
This port uses the Freescale MX1ADS development board with a GNU arm-nuttx-elf toolchain*
under either Linux or Cygwin.
</p>
<ul>
<p>
<b>STATUS:</b>
This port has stalled due to development tool issues.
Coding is complete on the basic port (timer, serial console, SPI).
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/obsoleted/src/master/nuttx/configs/mx1ads/" target="_blank">README</a> file for further information.
</p>
<p>
NOTE: This port has been obsoleted.
I know longer have the hardware and the likelihood that the port would ever be completed is infitesmal.
The unfinished board support is still available in the <code>Obsoleted</code> repository if anyone would ever like to resurrect it.
</ul>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="arm926ejs"><b>ARM926EJS</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="titms320dm320"><b>TI TMS320DM320</b></a>
(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-nuttx-elf toolchain* under Linux or Cygwin.
The port was performed using the OSD v1.0, development board.
</p>
<ul>
<p>
<b>STATUS:</b>
The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete.
All implemented features have been verified with the exception of the USB device-side
driver; that implementation is complete but untested.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/ntosd-dm320/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="nxplpc3131"><b>NXP LPC3131</b>.</a>
Two boards based on the NXP LPC3131 are supported:
</p>
<ul>
<li>
<p>
First, a port for the NXP <a href="http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/">LPC3131</a> on the <a href="http://www.embeddedartists.com/products/kits/lpc3131_kit.php">Embedded Artists EA3131</a> development board was first released in NuttX-5.1 (but was not functional until NuttX-5.2).
</p>
<ul>
<p>
<b>STATUS:</b>
The basic EA3131 port is complete and verified in NuttX-5.2.
This basic port includes basic boot-up, serial console, and timer interrupts.
This port was extended in NuttX 5.3 with a USB high speed driver contributed by David Hewson.
David also contributed I2C and SPI drivers plus several important LPC313x USB bug fixes that appear in the NuttX 5.6 release.
This port has been verified using the NuttX OS test, USB serial and mass storage tests and includes a working implementation of the NuttShell (<a href="NuttShell.html">NSH</a>).
</p>
<p>
Support for <a href="NuttXDemandPaging.html">on-demand paging</a> has been developed for the EA3131.
That support would all execute of a program in SPI FLASH by paging code sections out of SPI flash as needed.
However, as of this writing, I have not had the opportunity to verify this new feature.
</p>
<p>
Refer to the Embedded Artists EA3131 board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/ea3131/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</li>
<li>
<p>
A second port to the NXP <a href="http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/">LPC3131</a> on the <a href="https://www.olimex.com/Products/ARM/NXP/LPC-H3131/">Olimex LPC-H3131</a> development board was added in NuttX-6.32.
</p>
<ul>
<p>
<b>STATUS:</b>
The basic H3131 port is complete and verified in NuttX-6.3.
It is similar to the EA3131 port except: (1) I have not yet gotten the SDRAM to work, and (2) this board was used to develop and verify the USB 2.0, low-/full-/high-speed EHCI host controller driver.
NOTE: That driver should work on the EA3131 as well. However, the EA3131 uses a PCA9532 PWM part to controller the port power so the it would not quite be a simple drop-in.
</p>
<p>
Refer to the Olimex LPC-H3131 board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/olimex-lpc-h3131/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</li>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<a name="nxplpc315x"><b>NXP LPC315x</b>.</a>
Support for the NXP <a href="http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/">LPC315x</a> family has been incorporated into the code base as of NuttX-6.4.
Support was added for the Embedded Artists EA3152 board in NuttX-6.11.
</p>
<ul>
<p>
<b>STATUS:</b>
Basic support is in place for both the LPC3152 MCU and the EA3152 board.
Verification of the port was deferred due to tool issues
However, because of the high degree of compatibility between the LPC313x and LPC315x family, it
is very likely that the support is in place (or at least very close).
At this point, verification of the EA3152 port has been overcome by events and
may never happen.
However, the port is available for anyone who may want to use it.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/ea3152/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="armv4"><b>Other ARMv4</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="moxart"><b>MoxaRT</b></a>
A port to the Moxa NP51x0 series of 2-port advanced RS-232/422/485 serial device servers was contributed by Anton D. Kachalov in NuttX-7.11.
This port includes a NuttShell (NSH) configuraion with support for the Faraday FTMAC100 Ethernet MAC Driver.
</p>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="arm1176jz"><b>ARM1176JZ</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="bcm2708"><b>Broadcom BCM2708</b></a>.
Very basic support for the Broadcom BCM2708 was released with NuttX-7.23.
</p>
<a name="pizero"><b>Raspberry Pi Zero</b><a/>.
This support was provided for the Raspberry Pi Zero which is based on the BCM2835.
Basic logic is in place but the port is incomplete and completely untested as of the NuttX-7.23 released.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/obsoleted/src/master/nuttx/configs/pizero/README.txt" target="_blank">README</a> file for further information.
</p>
<p>
<b>Obsoleted:</b>: Support for the Raspberry Pi Zero was never completed.
The incomplete port along with all support for the BCM2708 was removed from the repository with the NuttX-7.28 release but can still be be found in the <i>Obsoleted</i> repository.
</p>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="armcortexa5"><b>ARM Cortex-A5</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="at91sama5d2"><b>Atmel SAMA5D2</b>.</a>
<p>
<ul>
<li><p><b>Atmel SAMA5D2 Xplained Ultra development board</b>.
This is the port of NuttX to the Atmel SAMA5D2 Xplained Ultra development board.
This board features the Atmel SAMA5D27 microprocessor.
</p>
<ul>
<p>
<b>STATUS</b>.
Initial support for the SAMA5D2 was released in NuttX-7.12.
This port is code complete but, however, still a work in progress and has not been verified in this this initial release.
</p>
</ul>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="at91sama5d3"><b>Atmel SAMA5D3</b>.</a>
There are ports to two Atmel SAMA5D3 boards:
<p>
<ul>
<li><p><b>Atmel SAMA5D3<i>x</i>-EK development boards</b>.
This is the port of NuttX to the Atmel SAMA5D3<i>x</i>-EK development boards (where <i>x</i>=1,3,4, or 5).
These boards feature the Atmel SAMA5D3<i>x</i> microprocessors.
Four different SAMA5D3<i>x</i>-EK kits are available
</p>
<ul>
<li>SAMA5D31-EK with the <a href="http://www.atmel.com/devices/sama5d31.aspx">ATSAMA5D31</a></li>
<li>SAMA5D33-EK with the <a href="http://www.atmel.com/devices/sama5d33.aspx">ATSAMA5D33</a></li>
<li>SAMA5D34-EK with the <a href="http://www.atmel.com/devices/sama5d34.aspx">ATSAMA5D34</a></li>
<li>SAMA5D35-EK with the <a href="http://www.atmel.com/devices/sama5d35.aspx">ATSAMA5D35</a></li>
</ul>
<p>
The each kit consist of an identical base board with different plug-in modules for each CPU.
All four boards are supported by NuttX with a simple reconfiguration of the processor type.
</p>
<ul>
<p>
<b>STATUS</b>.
Initial support for the SAMA5D3x-EK was released in NuttX-6.29.
That initial support was minimal:
There are simple test configurations that run out of internal SRAM and extended configurations that run out of the on-board NOR FLASH:
</p>
<ul>
<li>
A barebones NuttShell (<a href="NuttShell.html">NSH</a>) configuration that can be used as the basis for further application development.
</li>
<li>
A full-loaded NuttShell (<a href="NuttShell.html">NSH</a>) configuration that demonstrates all of the SAMA5D3x features.
</li>
</ul>
<p>
The following support was added in Nuttx 6.30:
</p>
<ul>
<li>
DMA support, and
</li>
<li>
PIO interrupts,
</li>
</ul>
<p>
And drivers for
</p>
<ul>
<li>
SPI (with DMA support),
</li>
<li>
AT25 Serial Flash,
</li>
<li>
Two Wire Interface (TWI), and
</li>
<li>
HSMCI memory cards.
</li>
</ul>
<p>
NuttX-6.30 also introduces full USB support:
</p>
<ul>
<li>
High speed device controller driver,
</li>
<li>
OHCI (low- and full-speed) and
</li>
<li>
EHCI (high-speed) host controller driver support.
</li>
</ul>
<p>
With NuttX-6.31, these additional drivers were added:
</p>
<ul>
<li>
A 10/100Base-T Ethernet (EMAC) driver,
</li>
<li>
A 1000Base-T Ethernet (GMAC) driver,
</li>
<li>
A Real Time Clock (RTC) driver and integrated with the NuttX system time logic
</li>
<li>
<code>/dev/random</code> using the SAMA5D3x True Random Number Generator (TRNG),
</li>
<li>
A Watchdog Timer (WDT) driver,
</li>
<li>
A Timer/Counter (TC) library with interface that make be used by other drivers that need timer support,
</li>
<li>
An ADC driver that can collect multiple samples using the sequencer, can be trigger by a timer/counter, and supports DMA data transfers,
</li>
<li>
A touchscreen driver based on the special features of the SAMA5D3 ADC peripheral,
An LCD controller (LCDC) frame buffer driver, and
</li>
<li>
A CAN driver (Testing of the CAN has been delayed because of cabling issues).
</li>
</ul>
<p>
Additional board configurations were added to test and demonstrate these new drivers including new graphics and NxWM configurations.
</p>
<p>
These drivers were added in NuttX-6.32:
</p>
<ul>
<li>
A PWM driver with DMA support
</li>
<li>
An SSC-based I2S driver
</li>
<li>
Support for Programmable clock outputs
</li>
<li>
NAND support including support for the PMECC hardware ECC and for DMA transfers.
</li>
</ul>
<p>
DBGU support was added in NuttX-7.2 (primarily for the SAMA5D3 Xplained board).
</p>
<p>
NuttX-7.4 added support for the on-board WM8904 CODEC chip and for <i>Tickless</i> operation.
</p>
<p>
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/sama5d3x-ek/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
<li>
<p>
<b>Atmel SAMA5D3 Xplained development board</b>
This is the port of NuttX to the Atmel SAMA5D3 Xplained development board.
The board features the Atmel SAMA5D36 microprocessor.
See the <a href="http://www.atmel.com/devices/sama5d36.aspx">Atmel Website</a> for additional information about this board.
</p>
<p>
<b>STATUS</b>.
This port is complete as of this writing and ready for general use.
The basic port is expected to be simple because of the similarity to the SAMAD3<i>x</i>-EK boards and is available in the NuttX 7.2 release.
</p>
<p>
Most of the drivers and capabilities of the SAMA5D3x-EK boards can be used with the SAMA5D3 Xplained board.
The primary difference between the ports is that the SAMA5D3x-EK supports NOR FLASH and NuttX can be configured to boot directly from NOR FLASH.
The SAMA5D3 Xplained board does not have NOR FLASH and, as a consequence NuttX must boot into SDRAM with the help of U-Boot.
</p>
<p>
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/sama5d3-xplained/README.txt" target="_blank">README</a> file for further information.
</p>
</li>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="at91sama5d4"><b>Atmel SAMA5D4</b>.</a>
There is a port in progress on one Atmel SAMA5D4 board:
<p>
<ul>
<li><p><b>Atmel SAMA5D4-EK/MB development boards</b>
This is the port of NuttX to the Atmel SAMA5D4-MB Rev C. development board (which should be compatible with the SAMA5D4-EK).
These boards feature the Atmel SAMA5D44 microprocessors with compatibility with most of the SAMA5D3 peripherals.
</p>
<p><b>STATUS</b>.
At the time of the release of NuttX-7.3, the basic port for the SAMA5D4-MB was complete.
The board had basic functionality.
But full functionality was not available until NuttX-7.4.
In NuttX-7.4 support was added for the L2 cache, many security features, XDMAC, HSMCI and Ethernet integrated with XDMAC, the LCDC, TWI, SSC, and most of the existing SAMA5 drivers.
Timers were added to support <i>Tickless</i> operation.
The TM7000 LCDC with the maXTouch multi-touch controller are also fully support in a special NxWM configuration for that larger display.
Support for a graphics media player is included (although there were issues with the WM8904 audio CODEC on my board).
An SRAM bootloader was also included.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/sama5d4-ek/README.txt" target="_blank">README</a> file for current status.
<p></li>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<b>Development Environments:</b>
1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows.
All testing has been performed with the CodeSourcery toolchain (GCC version 4.7.3) in the Cygwin environment under Windows.
</p>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="armcortexa8"><b>ARM Cortex-A8</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="allwinnera10"><b>Allwinner A10</b>.</a>
These following boards are based on the Allwinner A10 have are supported by NuttX:
</p>
<ul>
<li>
<p>
<b>pcDuino v1</b>.
A port of NuttX to the pcDuino v1 board was first released in NuttX-6.33.
See http://www.pcduino.com/ for information about pcDuino Lite, v1, and v2 boards.
These boards are based around the Allwinner A10 Cortex-A8 CPU.
This port was developed on the v1 board, but the others may be compatible:
</p>
<p>
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/pcduino-a10/README.txt" target="_blank">README</a> file for further information.
</p>
<p>
<b>STATUS</b>.
This port was an experiment was was not completely developed.
This configuration builds and runs an NuttShell (NSH), but only if a patch to work around some issues is applied.
While not ready for &quot;prime time&quot;, the pcDuino port is functional and could the basis for a more extensive development.
There is, at present, no work in progress to extend this port, however.
</p>
</li>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tiam355x"><b>TI/Sitara AM335x</b>.</a>
These following boards are based on the TI/Sitara AM335x are supported by NuttX:
</p>
<ul>
<li>
<p>
<b>Beaglebone Black</b>.
A port of NuttX to the Beaglebone Black board was first released in NuttX-7.28.
This port was contributed by Petro Karashchenko.
This board is based on the TI/Sitara AM3358 Cortex-A8 CPU running 1GHz.
</p>
<ul>
<li>
<b>NuttX-7.28</b>.
This initial port in NuttX-7.28 is very sparse.
While not ready for prodcution use, the Beaglebone Black port is functional and will be the basis for a more extensive development.
Additional work in progress to extend this port and more capable is anticipated in NuttX-7.29.
</li>
<li>
<b>NuttX-7.31</b>.
An LCD driver was added in NuttX-7.31.
</li>
</ul>
<p>
Refer to the Beaglebone Black board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/beaglebone-black/README.txt" target="_blank">README</a> file for further, up-to-date information.
</p>
</li>
</ul>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="armcortexa9"><b>ARM Cortex-A9</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="freescaleimx6"><b>NXP/Freescale i.MX6</b>.</a>
The basic port has been completed for the following i.MX6 board
<p>
<ul>
<li>
<p>
<b>Sabre-6Quad</b>.
This is a port to the NXP/Freescale Sabre-6Quad board.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/sabre-6quad/README.txt" target="_blank">README</a> file for further information.
</p>
<p>
<b>STATUS:</b>
The basic, minimal port is code complete and introduced in NuttX-7.15, but had not yet been tested at that time due to the inavailability of hardware.
This basic port was verified in the NuttX-7.16 release, however.
The port is still mininal and more device drivers are needed to make the port usable.
</p>
<p>
Basic support of NuttX running in SMP mode on the i.MX6Q was also accomplished in NuttX-7.16.
However, there are still known issues with SMP support on this platform as described in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/sabre-6quad/README.txt" target="_blank">README</a> file for the board.
</p>
</li>
</ul>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="armcortexr4"><b>ARM Cortex-R4</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tms570ls04x"><b>TI/Hercules TMS570LS04xx</b>.</a>
A port is available for the Texas Instruments Hercules TMS570LS04x/03x LaunchPad Evaluation Kit (<i>LAUNCHXL-TMS57004</i>) featuring the Hercules TMS570LS0432PZ chip.
</p>
<ul>
<p>
<b>STATUS</b>.
My porting efforts were stalled due to tool-related issues.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/launchxl-tms57004/README.txt" target="_blank">README</a> file for further information.
However, my understanding is that other people have successfully completed the port and submitted changes to the NuttX repository.
</p>
<p>
<b>Toolchain:</b>
The TMS570 is a big-endian ARM platform and requires a big-endian ARM toolchain.
All testing has been performed using a big-endian NuttX buildroot toolchain.
Instructions for building this toolchain are included in the board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/launchxl-tms57004/README.txt" target="_blank">README</a> file.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tms570ls31x"><b>TI/Hercules TMS570LS31xx</b>.</a>
Archicture support for the TMS570LS3137ZWT part was added in NuttX 7.25 by Ivan Ucherdzhiev.
Ivan also added support for the TI Hercules TMS570LS31x USB Kit.
</p>
<ul>
<p>
<b>STATUS</b>.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/tms570ls31x-usb-kit/README.txt" target="_blank">README</a> file for further information.
</p>
<p>
<b>Toolchain:</b>
See discussion related to the <a href="#tms570ls04x">TI/Hercules TMS570LS04xx</a> above.
</p>
</ul>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="armcortexm0"><b>ARM Cortex-M0/M0+</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="nuvotonnu120"><b>nuvoTon NUC120</b>.</a>
This is a port of NuttX to the nuvoTon NuTiny-SDK-NUC120 that features the NUC120LE3AN MCU.
</p>
<ul>
<p>
<b>STATUS</b>.
Initial support for the NUC120 was released in NuttX-6.26.
This initial support is very minimal:
There is a NuttShell (<a href="NuttShell.html">NSH</a>) configuration that might be the basis for an application development.
As of this writing, more device drivers are needed to make this a more complete port.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nutiny-nuc120/README.txt" target="_blank">README</a> file for further information.
</p>
<p>
<b>Memory Usage</b>.
For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the NUC120 demonstrates the scalability of NuttX. The NUC120LE2AN comes in a 48-pin package and has 128KB FLASH and 16KB of SRAM.
When running the NSH configuration (itself a full up application), there is still more than 90KB of FLASH and 10KB or SRAM available for further application development).
</p>
<p>
Static memory usage can be shown with <code>size</code> command:
</p>
<ul><pre>
$ size nuttx
text data bss dec hex filename
35037 106 1092 36235 8d8b nuttx
</pre></ul>
<p>
NuttX, the NSH application, and GCC libraries use 34.2KB of FLASH leaving 93.8KB of FLASH (72%) free from additional application development.
Static SRAM usage is about 1.2KB (&lt;4%) and leaves 14.8KB (86%) available for heap at runtime.
SRAM usage at run-time can be shown with the NSH <code>free</code> command:
</p>
<ul><pre>
NuttShell (NSH) NuttX-6.26
nsh> free
total used free largest
Mem: 14160 3944 10216 10216
nsh>
</pre></ul>
<p>
You can see that 10.0KB (62%) is available for further application development.
</p>
<p>
<b>Development Environments:</b>
1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS
with Windows native toolchain, or 4) Native Windows.
A DIY toolchain for Linux or Cygwin is provided by the NuttX
<a href="https://bitbucket.org/nuttx/buildroot/downloads/">buildroot</a> package.
</p>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="freescalekl25z"><b>FreeScale KL25Z</b>.</a>
There are two board ports for the KL25Z parts:
</p>
<ul>
<p><b>Freedom KL25Z</b>.
This is a port of NuttX to the Freedom KL25Z board that features the MKL25Z128 Cortex-M0+ MCU, 128KB of FLASH and 16KB of SRAM.
See the <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FRDM-KL25Z&tid=vanFRDM-KL25Z">Freescale</a> website for further information about this board.
</p>
<ul>
<p>
<b>STATUS</b>.
This is the work of Alan Carvalho de Assis.
Verified, initial, minimal support for the Freedom KL25Z is in place in NuttX 6.27 and 6.28:
There is a working NuttShell (<a href="NuttShell.html">NSH</a>) configuration that might be the basis for an application development.
As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG.
A TSI and a SPI driver were added in NuttX-6.29.
Alan contributed a PWM driver in NuttX-6.32.
Refer to the Freedom KL25Z board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/freedom-kl25z/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
<p>
<b>PJRC Teensy-LC</b>.
This is a port of NuttX to the PJRC Teensy-LC board that features the MKL25Z64 Cortex-M0+ MCU, 64KB of FLASH and 8KB of SRAM.
The Teensy LC is a DIP style breakout board for the MKL25Z64 and comes with a USB based bootloader.
See the <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FRDM-KL25Z&tid=vanFRDM-KL25Z">Freescale</a> website for further information about this board.
</p>
<ul>
<p>
<b>STATUS</b>.
This is the work of Michael Hope.
Verified, initial support for the Teensy-LC first appeared in NuttX-7.10.
Refer to the Teensy-LC board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/teensy-lc/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="freescalekl26z"><b>FreeScale Freedom KL26Z</b>.</a>
This is a port of NuttX to the Freedom KL25Z board that features the MK26Z128VLH4 Cortex-M0+ MCU, 128KB of FLASH and 16KB of SRAM.
See the <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FRDM-KL26Z&tid=vanFRDM-KL26Z">Freescale</a> website for further information about this board.
</p>
<ul>
<p>
<b>STATUS</b>.
This work was contributed in NuttX 7.8 by Derek B. Noonburg.
The board support is very similar to the Freedom-KL25Z.
It was decided to support this a a separate board, however, due to some small board-level differences.
Refer to the Freedom KL26Z board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/freedom-kl26z/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="at91samd20"><b>Atmel SAMD20</b>.</a>
The port of NuttX to the Atmel SAMD20-Xplained Pro development board.
This board features the ATSAMD20J18A MCU (Cortex-M0+ with 256KB of FLASH and 32KB of SRAM).
</p>
<ul>
<p>
<b>STATUS</b>.
The initial SAMD20 Xplained Pro release (NuttX 7.1) included a functional NuttShell (NSH) configuration.
An SPI driver was also included to support the OLED1 and I/O1 modules.
That SPI driver, however, was not completely verified due to higher priority tasks that came up (I hope to get back to this later).
Refer to the SAMD20 Explained Pro board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/samd20-xplained/README.txt" target="_blank">README</a> file for further information.
</p>
<p>
The fully verified SPI driver appeared in the NuttX-7.22 release.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="at91saml21"><b>Atmel SAML21</b>.</a>
The port of NuttX to the Atmel SAML21-Xplained Pro development board.
This board features the ATSAML21J18A MCU (Cortex-M0+ with 256KB of FLASH and 32KB of SRAM).
</p>
<ul>
<p>
<b>STATUS</b>.
Initial support for the SAML21 Xplained Pro was release in the NuttX 7.10.
This initial support included a basic configuration for the NuttShell (NSH)
(see the <a href="http://www.nuttx.org/Documentation/NuttShell.html">NSH User Guide</a>).
Refer to the SAML21 Explained Pro board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/saml21-xplained/README.txt" target="_blank">README</a> file for further information.
</p>
<p>
The fully verified SPI driver appeared in the NuttX-7.22 release along with an I2C and USB device driver.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="nxplpc11xx"><b>NXP LPC11xx</b>.</a>
Support is provided for the NXP LPC11xx family of processors.
In particular, support is provided for LPCXpresso LPC1115 board.
This port was contributed by Alan Carvalho de Assis.
</p>
<ul>
<p>
<b>STATUS:</b>
The first released version was provided in NuttX 7.10.
Refer to the board <a href="https://bitbucket.org/nuttx/obsoleted/src/master/nuttx/configs/lpcxpresso-lpc1115/README.txt" target="_blank">README.txt</a> file for further information.
</p>
<p>
<b>Obsoleted:</b>
Support for the LPCXpresso-LPC1115 and for the LPC1115 architecture in general was removed after NuttX-7.30.
The LPC11 port was never really used (to my knowledge) and was no longer supported.
A snapshot of the port is still available in the <a href="https://bitbucket.org/nuttx/obsoleted/src/master/ChangeLog" target="_blank">Obsoleted</a> repository.
It can be brought back into the main repository at any time if anyone is willing to provide support for the architecture.
</p>
</ul>
</td>
</tr>
<tr>
<td valign="top"><img height="20" width="20" src="favicon.ico"></td>
<td bgcolor="#5eaee1">
<a name="armcortexm3"><b>ARM Cortex-M3</b>.</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tilms6432"><b>TI/Stellaris LM3S6432</b>.</a>
This is a port of NuttX to the Stellaris RDK-S2E Reference Design Kit and the MDL-S2E Ethernet to Serial module
(contributed by Mike Smith).
</p>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tilm3s6432s2e"><b>TI/Stellaris LM3S6432S2E</b>.</a>
This port uses Serial-to-Ethernet Reference Design Kit (<a href="http://www.ti.com/tool/rdk-s2e">RDK-S2E</a>) and has similar support as for the other Stellaris family members.
A configuration is available for the NuttShell (NSH)
(see the <a href="http://www.nuttx.org/Documentation/NuttShell.html">NSH User Guide</a>).
The NSH configuration including networking support with a Telnet NSH console.
This port was contributed by Mike Smith.
</p>
<ul>
<p>
<b>STATUS:</b>
This port was was released in NuttX 6.14.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/lm3s6432-s2e/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tilms6918"><b>TI/Stellaris LM3S6918</b>.</a>
This port uses the <a href=" http://www.micromint.com/">Micromint</a> Eagle-100 development
board with a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin.
</p>
<ul>
<p>
<b>STATUS:</b>
The initial, release of this port was included in NuttX version 0.4.6.
The current port includes timer, serial console, Ethernet, SSI, and microSD support.
There are working configurations to run the <a href="NuttShell.html">NuttShell
(NSH)</a>, the NuttX networking test, and the uIP web server.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/eagle100/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
<p>
<b>Development Environments:</b>
1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS
with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux
or Cygwin is provided by the NuttX
<a href="https://bitbucket.org/nuttx/buildroot/downloads/">buildroot</a>
package.
</p>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tilms6965"><b>TI/Stellaris LM3S6965</b>.</a>
This port uses the Stellaris LM3S6965 Ethernet Evalution Kit with a GNU arm-nuttx-elf toolchain*
under either Linux or Cygwin.
</p>
<ul>
<p>
<b>STATUS:</b>
This port was released in NuttX 5.5.
Features are the same as with the Eagle-100 LM3S6918 described above.
The apps/examples/ostest configuration has been successfully verified and an
NSH configuration with Telnet support is available.
MMC/SD and Networking support was not been thoroughly verified:
Current development efforts are focused on porting the NuttX window system (NX)
to work with the Evaluation Kits OLED display.
</p>
<p><small>
<b>NOTE</b>: As it is configured now, you MUST have a network connected.
Otherwise, the NSH prompt will not come up because the Ethernet
driver is waiting for the network to come up.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/lm3s6965-ek/README.txt" target="_blank">README</a> file for further information.
</small></p>
</ul>
<p>
<b>Development Environments:</b> See the Eagle-100 LM3S6918 above.
</p>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tilms8962"><b>TI/Stellaris LM3S8962</b>.</a>
This port uses the Stellaris EKC-LM3S8962 Ethernet+CAN Evalution Kit with a GNU arm-nuttx-elf toolchain*
under either Linux or Cygwin.
Contributed by Larry Arnold.
</p>
<ul>
<p>
<b>STATUS:</b>
This port was released in NuttX 5.10.
Features are the same as with the Eagle-100 LM3S6918 described above.
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/lm3s8962-ek/README.txt" target="_blank">README</a> file for further information.
</p>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tilms9b92"><b>TI/Stellaris LM3S9B92</b>.</a>
Architectural support for the LM3S9B92 was contributed by Lwazi Dube in NuttX 7.28. No board support for boards using the LM3S9B92 are currently available.
</p>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="tilms9b96"><b>TI/Stellaris LM3S9B96</b>.</a>
Header file support was contributed by Tiago Maluta for this part.