Prep for 6.19 release

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4847 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2012-06-15 16:23:17 +00:00
parent 83265966a7
commit 3f24a58606
2 changed files with 305 additions and 219 deletions
+69 -28
View File
@@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4"> <tr align="center" bgcolor="#e4e4e4">
<td> <td>
<h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1> <h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1>
<p>Last Updated: June 11, 2012</p> <p>Last Updated: June 15, 2012</p>
</td> </td>
</tr> </tr>
</table> </table>
@@ -227,79 +227,85 @@
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdping">2.25 Check Network Peer (ping)</a> <a href="#cmdnfsmount">2.25 Mount an NFS file system (nfsmount)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdput">2.26 Send File Via TFTP (put)</a> <a href="#cmdping">2.26 Check Network Peer (ping)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdpwd">2.27 Show Current Working Directory (pwd)</a> <a href="#cmdput">2.27 Send File Via TFTP (put)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdrm">2.28 Remove a File (rm)</a> <a href="#cmdpwd">2.28 Show Current Working Directory (pwd)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdrmdir">2.29 Remove a Directory (rmdir)</a> <a href="#cmdrm">2.29 Remove a File (rm)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdset">2.30 Set an Environment Variable (set)</a> <a href="#cmdrmdir">2.30 Remove a Directory (rmdir)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdsh">2.31 Execute an NSH Script (sh)</a> <a href="#cmdset">2.31 Set an Environment Variable (set)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdsleep">2.32 Wait for Seconds (sleep)</a> <a href="#cmdsh">2.32 Execute an NSH Script (sh)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdunmount">2.33 Unmount a File System (umount)</a> <a href="#cmdsleep">2.33 Wait for Seconds (sleep)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdunset">2.34 Unset an Environment Variable (unset)</a> <a href="#cmdunmount">2.34 Unmount a File System (umount)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdusleep">2.35 Wait for Microseconds (usleep)</a> <a href="#cmdunset">2.35 Unset an Environment Variable (unset)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdwget">2.36 Get File Via HTTP (wget)</a> <a href="#cmdusleep">2.36 Wait for Microseconds (usleep)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><br></td> <td><br></td>
<td> <td>
<a href="#cmdxd">2.37 Hexadecimal Dump (xd)</a> <a href="#cmdwget">2.37 Get File Via HTTP (wget)</a>
</td>
</tr>
<tr>
<td><br></td>
<td>
<a href="#cmdxd">2.38 Hexadecimal Dump (xd)</a>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -1507,7 +1513,26 @@ mv &lt;old-path&gt; &lt;new-path&gt;
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdping"><h2>2.25 Check Network Peer (ping)</h2></a> <a name="cmdnfsmount"><h2>2.25 Mount an NFS file system (nfsmount)</h2></a>
</td>
</tr>
</table>
<a href="#"></a>
<p><b>Command Syntax:</b></p>
<ul><pre>
nfsmount &lt;server-address&gt; &lt;mount-point&gt; &lt;remote-path&gt;
</pre></ul>
<p>
<b>Synopsis</b>.
Mount the remote NFS server directory&lt;remote-path&gt; at &lt;mount-point&gt; on the target machine.
&lt;server-address&gt; is the IP address of the remote server.
</p>
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
<a name="cmdping"><h2>2.26 Check Network Peer (ping)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1540,7 +1565,7 @@ nsh&gt;
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdput"><h2>2.26 Send File Via TFTP (put)</h2></a> <a name="cmdput"><h2>2.27 Send File Via TFTP (put)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1575,7 +1600,7 @@ put [-b|-n] [-f &lt;remote-path&gt;] -h &lt;ip-address&gt; &lt;local-path&gt;
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdpwd"><h2>2.27 Show Current Working Directory (pwd)</h2></a> <a name="cmdpwd"><h2>2.28 Show Current Working Directory (pwd)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1605,7 +1630,7 @@ nsh&gt;
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdrm"><h2>2.28 Remove a File (rm)</h2></a> <a name="cmdrm"><h2>2.29 Remove a File (rm)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1639,7 +1664,7 @@ nsh>
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdrmdir"><h2>2.29 Remove a Directory (rmdir)</h2></a> <a name="cmdrmdir"><h2>2.30 Remove a Directory (rmdir)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1674,7 +1699,7 @@ nsh>
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdset"><h2>2.30 Set an Environment Variable (set)</h2></a> <a name="cmdset"><h2>2.31 Set an Environment Variable (set)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1700,7 +1725,7 @@ nsh&gt;
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdsh"><h2>2.31 Execute an NSH Script (sh)</h2></a> <a name="cmdsh"><h2>2.32 Execute an NSH Script (sh)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1718,7 +1743,7 @@ sh &lt;script-path&gt;
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdsleep"><h2>2.32 Wait for Seconds (sleep)</h2></a> <a name="cmdsleep"><h2>2.33 Wait for Seconds (sleep)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1735,7 +1760,7 @@ sleep &lt;sec&gt;
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdunmount"><h2>2.33 Unmount a File System (umount)</h2></a> <a name="cmdunmount"><h2>2.34 Unmount a File System (umount)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1765,7 +1790,7 @@ nsh>
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdunset"><h2>2.34 Unset an Environment Variable (unset)</h2></a> <a name="cmdunset"><h2>2.35 Unset an Environment Variable (unset)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1791,7 +1816,7 @@ nsh&gt;
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdusleep"><h2>2.35 Wait for Microseconds (usleep)</h2></a> <a name="cmdusleep"><h2>2.36 Wait for Microseconds (usleep)</h2></a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1808,7 +1833,7 @@ usleep &lt;usec&gt;
<table width ="100%"> <table width ="100%">
<tr bgcolor="#e4e4e4"> <tr bgcolor="#e4e4e4">
<td> <td>
<a name="cmdwget">2.36 Get File Via HTTP (wget)</a> <a name="cmdwget">2.37 Get File Via HTTP (wget)</a>
</td> </td>
</tr> </tr>
</table> </table>
@@ -2018,6 +2043,11 @@ nsh>
<td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>3</sup></td> <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>3</sup></td>
<td><code>CONFIG_NSH_DISABLE_MV</code></td> <td><code>CONFIG_NSH_DISABLE_MV</code></td>
</tr> </tr>
<tr>
<td><b><code>nfsmount</code></b></td>
<td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NFS</code></td>
<td><code>CONFIG_NSH_DISABLE_NFSMOUNT</code></td>
</tr>
<tr> <tr>
<td><b><code>ping</code></b></td> <td><b><code>ping</code></b></td>
<td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_ICMP</code> &amp;&amp; <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_ICMP</code> &amp;&amp;
@@ -2564,6 +2594,8 @@ nsh>
<li><a href="#cmdcd"><code>cd</code></a></li> <li><a href="#cmdcd"><code>cd</code></a></li>
<li><a href="#commands">Command summaries</a></li> <li><a href="#commands">Command summaries</a></li>
<li><a href="#conditional">Conditional command execution</a></li> <li><a href="#conditional">Conditional command execution</a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_ARCHINIT</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_BUILTIN_APPS</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_CONSOLE</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_NSH_CONSOLE</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_DHCPC</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_NSH_DHCPC</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_DISABLEBG</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_NSH_DISABLEBG</code></a></li>
@@ -2588,6 +2620,14 @@ nsh>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_ROMFSSECTSIZE</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_NSH_ROMFSSECTSIZE</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_STRERROR</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_NSH_STRERROR</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_TELNET</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_NSH_TELNET</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_USBCONDEV</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_USBCONSOLE</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_UBSDEV_MINOR</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_USBDEV_TRACECLASS</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_USBDEV_TRACECONTROLLER</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_USBDEV_TRACEINIT</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_USBDEV_TRACEINTERRUPTS</code></a></li>
<li><a href="#nshconfiguration"><code>CONFIG_NSH_USBDEV_TRACETRANSFERS</code></a></li>
<li><a href="#configuration">Configuration settings</a></li> <li><a href="#configuration">Configuration settings</a></li>
<li><a href="#cmddependencies">Configuration settings, command dependencies</a></li> <li><a href="#cmddependencies">Configuration settings, command dependencies</a></li>
<li><a href="#nshconfiguration">Configuration settings, NSH-specific</a></li> <li><a href="#nshconfiguration">Configuration settings, NSH-specific</a></li>
@@ -2596,10 +2636,10 @@ nsh>
<li><a href="#cmddate"><code>date</code></a></li> <li><a href="#cmddate"><code>date</code></a></li>
<li><a href="#cmddd"><code>dd</code></a></li> <li><a href="#cmddd"><code>dd</code></a></li>
<li><a href="#cmdecho"><code>echo</code></a></li> <li><a href="#cmdecho"><code>echo</code></a></li>
<li><a href="#environvars">Environment Variables</a></li>
<li><a href="#startupscript"><code>/etc/init.d/rcS</code></a>
</ul></td> </ul></td>
<td></ul> <td></ul>
<li><a href="#environvars">Environment Variables</a></li>
<li><a href="#startupscript"><code>/etc/init.d/rcS</code></a>
<li><a href="#cmdexec"><code>exec</code></a></li> <li><a href="#cmdexec"><code>exec</code></a></li>
<li><a href="#cmdexit"><code>exit</code></a></li> <li><a href="#cmdexit"><code>exit</code></a></li>
<li><a href="#cmdfree"><code>free</code></a></li> <li><a href="#cmdfree"><code>free</code></a></li>
@@ -2620,6 +2660,7 @@ nsh>
<li><a href="#cmdmkrd"><code>mkrd</code></a></li> <li><a href="#cmdmkrd"><code>mkrd</code></a></li>
<li><a href="#cmdmount"><code>mount</code></a></li> <li><a href="#cmdmount"><code>mount</code></a></li>
<li><a href="#cmdmv"><code>mv</code></a></li> <li><a href="#cmdmv"><code>mv</code></a></li>
<li><a href="#cmdnfsmount"><code>nfsmount</code></a></li>
<li><a href="#cmdoverview"><code>nice</code></a></li> <li><a href="#cmdoverview"><code>nice</code></a></li>
<li><a href="#environvars"><code>OLDPWD</code></a></li> <li><a href="#environvars"><code>OLDPWD</code></a></li>
<li><a href="#overview">Overview</a></li> <li><a href="#overview">Overview</a></li>
+236 -191
View File
@@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4"> <tr align="center" bgcolor="#e4e4e4">
<td> <td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
<p>Last Updated: June 13, 2012</p> <p>Last Updated: June 15, 2012</p>
</td> </td>
</tr> </tr>
</table> </table>
@@ -968,46 +968,70 @@
</tr> </tr>
</table> </table>
<h2>NuttX-6.18 Release Notes</h2> <h2>NuttX-6.19 Release Notes</h2>
<p> <p>
The 85<sup>th</sup> release of NuttX, Version 6.18, was made on May 19, 2012, and is available for download from the The 86<sup>th</sup> release of NuttX, Version 6.19, was made on June 15, 2012, and is available for download from the
<a href="http://sourceforge.net/projects/nuttx/files/">SourceForge</a> website. <a href="http://sourceforge.net/projects/nuttx/files/">SourceForge</a> website.
Note that the release consists of two tarballs: <code>nuttx-6.18.tar.gz</code> and <code>apps-6.18.tar.gz</code>. Note that the release consists of two tarballs: <code>nuttx-6.19.tar.gz</code> and <code>apps-6.19.tar.gz</code>.
Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information) Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information)
The change log associated with the release is available <a href="#currentrelease">here</a>. The change log associated with the release is available <a href="#currentrelease">here</a>.
Unreleased changes after this release are available in SVN. Unreleased changes after this release are available in SVN.
These unreleased changes are also listed <a href="#pendingchanges">here</a>. These unreleased changes are also listed <a href="#pendingchanges">here</a>.
</p> </p>
<p><b>NFS client</b>.
This release features new support for a Network File System (NFS) client.
This feature allows a tiny, embedded MCU to mount a remote file system exported by an NFS server and then to access the file system as it would any local file system.
Then the tiny MCU can effectively have terabyte of storage!
</p>
<p> <p>
The majority of changes in this release are focused on supporting the synchronized release of NxWM, the NuttX tiny window manager. This might be useful for data collection, for MCU configuration information, for software updates, for providing modular, loadable code modes, controlling a &quot;farm&quot; of MCUs ... there are many possibilities and opportunities for innovation!
That window manager is released as part of the NxWidgets package, but depends upon many of the changes in this NuttX release.
</p> </p>
<p><b>New Features</b>. <p>
New or extended features in this release include: The NuttShell (NSH) now supports the following command:
</p> </p>
<ul><pre>
nfsmount &lt;server-address&gt; &lt;mount-point&gt; &lt;remote-path&gt;
</pre></ul>
<p>
That command will mount the remote NFS server directory &lt;remote-path&gt; at &lt;mount-point&gt; on the target machine.
&lt;server-address&gt; is the IP address of the remote server.
</p>
<p>
The NFS development was the graduation project of Jose Pablo Rojas V. who is a student at the <i>Instituto Tecnológico de Costa Rica</i> (ITCR, or TEC).
A lot of effort went into understanding what a tiny, embedded NFS client should do and getting the target resource usage to a bare minimum.
Only around a kilobyte or so of memory is required to run the NFS client (and most of that for I/O buffers).
Jose Pablo has spent several months living with NFS and should be congratulated for his success.
</p>
<p>
<p>
<p><b>Additional new features and extended functionality</b>.</p>
<ul> <ul>
<li><b>Drivers</b>. <li><b>Drivers</b>:
Added a watchdog timer driver infrastructure. SSD1289 LCD driver, MIO283QT2 LCD driver
Add general support for STMicro STMPE811 I/O Expander/touchscreen device.
</li> </li>
<li><b>STM32</b>.
Add support for the STM32 IWDG and WWDG watchodog timers. <li><b>LM3S</b>:
DMA now supports cicular buffer mode; Additional register definition header files (contributed by Max Neklyudov).
serial driver now uses circular DMA to improve Rx performance (Contributed by Mike Smith).
</li> </li>
<li><b>STM3240G-EVAL Board</b>.
Add support for the LCD and for the STMPE811 I/O Expander as a touchscreen controller. <li><b>STM32 Boards</b>:
The STM32F4Discovery will now support an SSD1289 LCD, STM3220G-EVAL
board support is now equivalent to the STM3240G-EVAL board support.
</li> </li>
<li><b>PIC32 Boards</b>.
Board support for the Mikroelektronika PIC32MX7 Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board. <li><b>PIC32 Boards</b>:
The Mikroelektronika PIC32MX7 MMB board port is now functional, very complete, and stable.
</li> </li>
<li><b>NX</b>.
Framed windows are now draw in three colors instead of just two. <li><b>Graphics</b>:
Numerous other extensions needed to support NxWM (see the ChangeLog for details). The NxConsole will now take keyboard input from the NX graphics subsystem.
This means that if there are multiple NxConsole windows, only the top instance that has focus will receive the keyboard input.
</li> </li>
<li><b>Library</b>.
Add <code>prctl()</code> command that can be used to setting and getting the names of threads. <li><b>apps/</b>:
This (plus several other improvements and bug fixes) are part of a larger effort to improve task monitoring capabilities. Add the capability to use an arbitrary USB device as the console (not necessarily <code>/dev/console</code>).
Additional enhancements for USB consoles.
Added the <code>mv</code> command.
</li> </li>
</ul> </ul>
@@ -1016,10 +1040,6 @@
</p> </p>
<ul> <ul>
<li><b>NFS Client</b>.
Work is progressing on support for an NFS client file system.
This is a port of the BSD NFS client file system that is being done by Jose Pablo Rojas V.
</li>
<li><b>Automated Configuration</b>. <li><b>Automated Configuration</b>.
Automated configuration based on the <code>kconfig-frontends</code> tool is being incorporated into the build system. Automated configuration based on the <code>kconfig-frontends</code> tool is being incorporated into the build system.
The configuration is still not complete enough for general use in this release. The configuration is still not complete enough for general use in this release.
@@ -1029,38 +1049,20 @@
</li> </li>
</ul> </ul>
<p><b>Bugfixes</b>:</p> <p><b>Bugfixes</b> (see the change log for details):</p>
<ul> <ul>
<li><b<code>sched_setscheduler()</code></b>. <li><b>General</b>:
Correct return value (Contributed by Richard Cochran). <code>sleep()</code> and <code>usleep()</code> return values,
<code>sig_timedwait()</code> errno setting on timeout.
</li> </li>
<li><b>stdio</b>. <li><b>Drivers</b>:
Ignore <code>CONFIG_STDIO_LINEBUFFER</code> if the file was opened in binary mode. STMPE811 touchscreen driver, USB PLC2303, USB CDC/ACM
</li> </li>
<li><b><code>fopen()</code></b>. <li><b>STM32</b>:
Correct an error in parsing open mode string. Several USB device controller driver fixes, F4 interrrupt priorities (contributed by Mike Smith).
</li> </li>
<li><b>Standard serial driver</b>. <li><b>Graphics</b>:
Improved performance be reducing the amount of time that Rx interrupts are disabled. Keyboard input, fill trapezoid bug
</li>
<li><b><code>recvfrom()</code></b>.
Fix a compilation problem.
</li>
<li><b>CDC/ACM device driver</b>.
Fix an infinite loop that occurs when the serial device is unregistered.
</li>
<li><b>STM32 OTG FS device driver</b>.
Numerous fixes and the driver is partially functional but there are still some issues that become apparent when debug output is disabled.
</li>
<li><b> <code>fcntl()</code></b>.
Always returned zero on success; however, some fcntl commands need to return non-zero values on success.
</li>
<li><b>graphics</b>.
Many multi-use mode fixes added to support NxWM (see the ChangeLog for details).
Auto-raise is temporarily disabled in multi-user mode because it causes some problems with NxWM.
</li>
<li><b><code>on_exit()</code></b>.
Fix compilation errors if <code>CONFIG_SCHED_ONEXIT</code> is enabled.
</li> </li>
</ul> </ul>
<p> <p>
@@ -2888,145 +2890,188 @@ Other memory:
</table> </table>
<ul><pre> <ul><pre>
nuttx-6.18 2012-05-19 Gregory Nutt &lt;gnutt@nuttx.org&gt; nuttx-6.19 2012-06-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
* Kconfig: Continued Kconfig file updates (no longer tracking on a per-file * graphics/nxconsole/nxcon_kbdin.c: If selected, the NxConsole will take
basis in the ChangeLog) input from the NX keyboard input callback. If this option is set, then
* arch/arm/src/stm32/stm32_iwdog.c and stm32_wwdog.c: Add the STM32 IWDG the interface nxcon_kdbin() is enabled. That interface may be driven by
and WWDIG watchdog timer driver. window callback functions so that keyboard input *only* goes to the top
* configs/stm3240g-eval/src/up_lcd.c: Add LCD from for the STM3240G-EVAL (the window. If CONFIG_NXCONSOLE_NXKBDIN is not selected, then the NxConsole
initial check-in is just a stm3210e-eval driver with renaming). will receive its input from stdin (/dev/console). This works great but
* sched/sched_setscheduler.c: Correct successful return value (Contributed cannot be shared between different windows. Chaos will ensue if you
by Richard Cochran). try to support multiple NxConsole windows without CONFIG_NXCONSOLE_NXKBDIN
* include/fcntl.h and lib/stdio: Ignore CONFIG_STDIO_LINEBUFFER is the * graphics/nxmu/nx_kbdin.c: Fix pointer argument. This is a error
file was opened in binary mode. introduced in changes leading up to the 6.18 release. This error will
* lib/stdio/lib_fopen.c: Correct an error in parsing open mode string. The cause crashes or perhaps simply not work when you try to handle window
plus sign may not appear right after the basic mode. For example, &quot;r+&quot;, &quot;rb+&quot;, keyboard data in multi-user mode.
and &quot;r+b&quot; are all valid open strings and mean the same thing. * graphics/nxconsole/nxcon_kdbind.c: Fixed unmatched sem_wait and sem_post.
* lib/stdio/lib_fopen.c: Correct return errno value from f_open() and Fix some conditional compilation that included a few too many lines of code.
f_fdopen() if the open mode string is invalid. * drivers/input/stmpe811_tsc.c and stmpe811.h: Add a timeout to catch missed
* drivers/serial/serial.c: Do not disable Rx interrupts on each byte. pen up events. Now the STM3240G-EVAL touchscreen works very smoothly.
Rather, only disable Rx interrupts when the Rx ring buffer may be empty. * configs/stm3240g-eval/nxwm/defconfig: Enable support for NxConsole keyboard
* include/nuttx/usb/audio.h: USB Audio 1.0 definitions (in progress). input. Increasing spacing of icons.
* arch/arm/src/stm32/stm32fxx_dma.c: STM32 F4 DMA now supports circular * configs/stm3240g-eval/nxwm/defconfig: Use a larger font for the calculator.
buffer mode (contributed by Mike Smith) * include/nuttx/lcd/ssd1289.h, drivers/lcd/ssd1289.c and .h: Generic LCD
* arch/arm/src/stm32/stm32_serial.c: The serial driver can now support driver for LCDs based on the Solomon Systech SSD1289 LCD driver. This
Rx DMA into a circular buffer (contributed by Mike Smith) of this as a template for an LCD driver that will have to be cusomized
* configs/pic32mx7mmb: Beginning of a configuration for the Mikroelektronka for your particular LCD hardware.
PIC32MX7 Multimedia Board (MMB). * configs/stm32f4discovery/src/up_extmem.c and up_ssd1289.c: Add support to
* net/recvfrom.c: Fix a compilation problem. Some UDP logic was conditioned STM32F4Discovery for than an external, SSD1289-based LCD.
on TCP, not UDP. * configs/stm32f4discovery/nxlines: Add an STM32F4Discovery configuration
* drivers/usbdev/cdcacm.c: Fix an infinite loop that occurs when the serial to thest the SSD1289-based LCD.
device is unregisters. * configs/stm3240g-eval/src: Add USB GPIO initialization logic needed
* arch/arm/src/stm32/stm32_otgfs.c: The driver needs to reset the software (in in board-specific boot logic.
order to flush the requests) and to disable the software connection when the * configs/stm32f4discovery/src: Add USB GPIO initialization logic needed
device is unregistered. in board-specific boot logic.
* include/sys/prctl.h, sched/prctl.c, include/pthread.h: Add interfaces to * drivers/usbdev/pl2303.c and cdcacm.c: Fix the request size used for sending
support getting and setting of the thread or task name. packets. It was not using the maximum request size, but instead the previous
* configs/ubw32: Added a configuration to support the Sparkfun UBW32 PIC32 board. request size. As a result, packets get smaller, and smaller, and ... This
* configs/ubw32/nsh: Added an NSH configuration for the Sparkfun UBW32 PIC32 board. is an important USB serial fix.
* configs/ubw32/up_buttons.c: Added button support for Bit Whacker board. * arch/arc/src/stm32_otgfsdev.c: Bug fix: Don't process TXFE if we have
* configs/stm3240g-eval/nxconsole: Added a configuration to run the NSH already processed an XFRC interrupt. We have already done what needs
shell in an NX window for the STM3240G-EVAL board. to done in that case.
* include/cxx/cunistd: C++ header file to make sure that everything in * arch/arc/src/stm32_otgfsdev.c: Fixed some status settings in queuing of write
unistd.h is in the std:: namespace. messages. Added a &quot;hack&quot; to work around missing TxFIFO empty interrupts. The
* configs/sim/nxwm: Added a configuration for testing the NuttX Window Manager hack is basically to poll for space in the TxFIFO instead of of setting up
(NxWM) the interrupt.
* fs/fs_fcntl.h: On success, always returned OK. However, some fcntl commands * arch/arm/src/stm32/stm32f2* and chip/stm32f2*: Update all STM32 F2 file so
require returning other values on success. that they are equivalent to F4 files. This is kind of a maintenance nightmare.
* Various files. Fix warnings about variables that were initialized by not used. * configs/stm3220g-eval/: Update existing configurations to the same level
* configs/sim/*/defconfig: Changes to build a 32-bit simulation on a 32-bit as the corresponding STM3240G-EVAL configurations. This adds FSMC SRAM,
platform did not make into all of the Make.defs files. touchscreen, and LCD support.
* graphics/nxmu/nx_move.c: Wrong opcode was being used in the server message; * configs/stm3220g-eval/: Add a NxWM configuration for the STM3220G-EVAL.
Also there was an error in the offset calculation. * stmpe11*: Fix a massive naming problem. All references to STMPE11 should be
* graphics/nxglib/fb/nxglib_moverectangle.c: Offset argument is really a STMPE812.
position, not an offset. * arch/arm/src/stm32/stm32_otgfsdev.c: Need to enabled USB reset interrupt
* graphics/nxtk/nxtk_drawframe.c: Framed windows are now drawn in three (contributed by Erik Van Der Zalm).
colors (instead of just two). * sched/sleep.c: Fix the return value from sleep(). The correct behavior is
* drivers/input/stmpe811_*: Added a driver to support the STMicro STMPE811 to return the number of unwaited seconds; the implementation was always
IO Expander and touchscreen driver. returning zero.
* configs/stm3240g-eval/nxwm: Added to configuration for testing the NxWM * sched/usleep.c and include/unistd.h: Was a void function, but should return
window manager on the STM3240G-EVAL board. 0 on success. usleep() needs to check the return value from sigtimedwait().
* graphics/nxtk/nxtk_toolbarbounds.c: Added an interface to get the toolbar sigtimewait() returns the signal number that awakened it and an error (EAGAIN)
bounding box. if the timeout expired (normal case).
* graphics/nxtk/nxtk_drawframe.c: Fix an error in drawing the window frame. * sched/sig_timedwait.c: Fix sigtimedwait() return value. On a timeout, it was
* NX, NxConsole: Replace CONFIG_NXCONSOLE_NOGETRUN to CONFIG_LCD_GETRUN. The setting the 8-bit si_signo field to -1 and eded up reported successfully awakened
inability to read from the LCD is a property of the LCD, not of NxConsole. by signal 255! Now detects the timeout and errors -1 with errno == EGAIN. If
Then add CONFIG_NX_WRITEONLY which is the more generic way of saying that sigtimedwait() is awakened by an unblocked signal, but it is not one of the
no NX component should try to read from the underlying graphic device (LCD signals in the waited-for set, it will return -1 with errno == EINTR.
or other). * arch/arm/src/stm32_i2c.c: Fix STM32 F2 I2C. It is apparently bug-for-bug
* configs/stm3240g-eval/src/up_stmpe811.c: Add board-specific support for the compatible with the F4 and needs the same work-around for the missing BTF
the STMPE811 I/O expander on the STM3240G-EVAL board. Verfied that the signal that was needed for the F4.
STM3240G-EVAL touchscreen is now fully functional. * drivers/lcd/ssd1289.*: Fix some of the initial register settings.
* include/cxx/cfcntl: Added std:: header file. * configs/stm32f4discovery/src/up_ssd1289.c: FSMC address bit 16 is used to
* graphics/nxbe/nxbe_filltrapezoid.c and graphics/nxglib/fb/nxglib_filltrapezoid.c: distinguish command and data. But FSMC address bits 0-24 correspond to ARM
Fix several errors in the trapezoid fill logic. address bits 1-25, se we need to set bit 17 in order generate output on
* include/nuttx/input/touchscreen.h, configs/hymini-stm32, configs/stm3240g-evel, FSMC_A16.
* configs/sam3u-ek, configs/sim, arch/sim/src/up_touchscreen.c, and * arch/arm/src/lm3s/lm3s_epi.h and lm3s_timer.h: LM3S header files
apps/examples/touchscreen: Standardize the board-specific, touchscreen (contributed by Max Neklyudov).
initialization interfaces. * arch/arm/src/stm32/stm32_irq.c: Some of the interrupt priorities were
* drivers/input/stmpe811_base.c and configs/stm3240g-eval: The STMPE811-based not be initialized (F2 and F4 only). Thus, the very high numbered
touchscreen seems to work better with edge (vs. level) interrupts interrupts (like UART6) and cause nested interrupts. This leads to
* drivers/input/stmpe811_tsc.c: Fix some status checks so that the touchscreen some very difficult to debug crashes. Fix contributed by Mike Smith.
interrupt handling logic does not read data if the fifo is not at the * arch/mips/src/pic32/pic32_head.S and pic32_config.h and
threshold level. configs/pic32mx7mmb/include/board.h: Extended PIC32 device configuration
* include/nuttx/wqueue.h: Add macro work_available() to determine if the capabilities and change board.h to support unique clocking requirements
previously scheduled work has completed. of the Mikroelektronika PIC32MX7 MMB. That board now works!
* drivers/stmpe811_tsc.c: Correct errors: (1) Since all interrupt logic is done on * configs/pic32mx7mmb/nsh: Added and verify a NuttShell configuration
the worker thread, disabling interrupts does not provide protected; Need to for the Mikroelektronika PIC32MX7 MMB board.
disable pre-emption. (2) Fix handling of touch ID and (2) add some logic to * arch/mips/pic32/pic32mx-ethernet.c: Fix logic that guesses PHY address;
prevent certain kinds of data overrun. the search loop missed the PHY address needed by the Mikroelektronika
* include/nx/nxtk.h and graphics/nx/nxtk/nxtk_internal.h: Move setting PIC32MX7 MMB board.
of configuration defaults from the internal header file to a place where * configs/pic32mx7mmb/nsh: Configuration now supports a network by default.
other logic can use the defaults. * configs/pic32mx7mmb/src: Add support for the MMC/SD slot on board
* graphics/nxtk/nxtk_events.c: Fixed an important but in the logic that the Mikroelektronika PIC32MX7 MMB board (not working on initial check-in).
translates the mouse/touchscreen position data for framed windows and toolbars. * arch/mips/src/pic32/pic32mx-spi.c: Add support for very low-level,
* drivers/input/stmpe811_tsc.c, tsc2007.c, and ads7843e.c: Need to keep track of register access debug output.
when if positional data is valid. When the touch is released, the X/Y position * configs//pic32mx7mmb/include/board.h: Reduced peripheral clock to
of the release must be the same as the X/Y position of the last touch (se that 4MHz to match other PIC32 configurations.
the release occurs in the same window as the last touch). * configs/pic32mx7mmb/src/up_nsh.c: SD card needs to operate in SPI
* graphics/nxtk/nxtk_events.c: Fix an error in mouse/touchscreen input logic: mode 2.
Was autoraising the window AFTER processing the mouse press. This raises havoc * configs/pic32mx7mmb/nsh/defconfig: MMC/SD card support is now
if the result of processing the mouse click was to raise some other window! enabled by default in the PIC32MX7 MMB board configuration.
* graphics/nxtk/nxtk_events.c: I had to disable the whole autoraise feature * configs/pic32mx7mmb/nsh/defconfig: Verified the USB Mass Storage
for multi-user case because it does not work correctly. In a scenario where (1) there Class (MSC) using MMC/SD card as the logical unit. Updated the default
are multiple queued touchscreen events for the same window and (2) the result of the PIC32MX7 MMB board configuration so that USB and the mass storage class
first input was to switch windows, then the autoraise implementation will cause the are enabled by default.
window to revert to the previous window. Not good behavior. * drivers/lcd/mio283qt2.c and include/nuttx/lcd/mio283qt2.h: Add generic
* sched/sched_mergepending.c: Add task switching instrumentation. There is a case support for the MIO283QT2 LCD.
here where instrumentation was missing. Contributed by Petri Tanskanen. * configs/pic32mx7mmb/src/up_mio283qt2.c: Add support for the MIO283QT2
* CONFIG_STMPE811_THRESHX, CONFIG_STMPE811_THRESHX, and drivers/stmpe811_tsc.c: Add some LCD on the PIC32MX7 MMB board.
thresholding controls to all slow down processing of touchscreen samples. * configs/pic32mx7mmb/src/up_touchscreen.c: Add an ADC-based touchscreen
This is a problem with NX in multi-user mode: touchscreen data gets sent driver for the PIC32MX7 MMB board. Kind of works, but needs more
via a message and when the message queue gets full the sender blocks and verification and tuning.
touch events are lost. Basic data overrun. The badly effects touchscreen * arch/mips/src/common/up_idle.c: Strange but important fix. For some still-
human factors. unknown reason, interrupts are left in an unhealthy state in the IDLE
* include/sched.h: Fix a typo (missing semicolon) in prototype of on_exit(); when the work queue is enabled. This is partially because some interrupt
* sched/on_exit.c and include/nuttx/sched.h: Fix some old typos that caused related logic is not built in that case. Simply disabling then re-
compilation errors when CONFIG_SCHED_ONEXIT is defined. enabling interrupts restores the proper state.
* configs/stm3240g-eval/nxwm/defconfig: The default NxWM now uses the STMPE811 * graphics/nxglib/lcd/nxglib_filltrapezoid.c and fb/nxglib_filltrapezoid.c:
touchscreen. Fix an error when the trapezoid is only 1 line high. In this case, a
* include/cxx/csched: Added divide by zero error would occur. The fix is to draw the 1 line high
* graphic/nxmu/nxmu_sendserver.c, nxmu_sendwindow.c, and nxmu_sendclient.c: trapezoid as a run.
Refactor NX messaging logic in preparation for a new message control * drivers/usbdev/pl2303.c: Fixe a cut'n'paste error that snuck into
feature. the PL2303 emulation driver several months back.
* graphics/nxtk, graphics/nxmu, include/nuttx/nx: Add a new window communication
to support blocking and flushing of client window messages. If there are
stale, queue window messages at the time that a window is destroyed, very bad
things happen.
apps-6.18 2012-05-19 Gregory Nutt &lt;gnutt@nuttx.org&gt; apps-6.19 2012-06-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
* Kconfig: Continued Kconfig file updates (no longer tracking on a per-file * apps/nshlib/nsh_usbdev.c: Add the capability to use an arbitrary USB
basis in the ChangeLog) device as the console (not necessarily /dev/console). This is a useful
* apps/examples/watchdog: Add a watchdog timer example. option because then you can still use the serial console to debug with.
* apps/examples/tiff: Fix wrong path used for temporary file. * apps/nshlib/nsh_usbdev.c: User now has to press ENTER 3 times before
* apps/examples/touchscreen: Standardize the board-specific, touchscreen USB console will start. Otherwise, the USB console starts before there
initialization interfaces. is anyone at the other end to listen.
* apps/nshlib/nsh_usbdev.c and nsh_consolemain.c: Add support for the USB
capability when a USB console is used.
* apps/nshlib/nsh_fscmds.c: Add the 'mv' command
NxWidgets-1.0 2012-03-22 Gregory Nutt &lt;gnutt@nuttx.org&gt; NxWidgets-1.2 2012-06-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
* This is the initial release of NxWidgets, the C++ graphics package for NuttX. * NXWidgets::CCallback: callback arguement is now type CCallback and not
CWidgetControl; Added a method to redirect keyboard contacts to either
the widgets in the window (via CWidgetControl) or to an NxConsole (via
nxcon_kbdin()).
* NXWidgets::INxWindow, CBgWindow, CNxTkWindow, CNxToolbar, CNxWindow:
Now pass the CCallback intances as the callback argument instead of
the CWidgetControl instance. New method redirectNxConsole() will
support redirection of any window keyboard input to the NxConsole
(via CCallback).
* NxWM:CNxConsole: Configures the NxConsole window to redirection keyboard
input to the NxConsole; redirects standard input to the NxConsole
device driver.
* NxWM:CKeyboard: Add a new class that implements a keyboard listener
thread. This thread reads from /dev/console and injects the keyboard
input into NX. NX will determine which window is at the top of the
heirarchy and re-direct the keyboard input to only that top window.
This solves an important problem with, for example, running multiple
copies of the NxConsole: On the copy of the NxConsole at the top of
the heirarchy should get the keyboard input.
* UnitTests/nxwm/main.cxx: Now starts the keyboard thread if
CONFIG_NXWM_KEYBOARD is defined.
* NxWM::CTaskbar: After drawing the task bar, need to raise the
application window otherwise the taskbar will be on the top and
keyboard input will not be received by the top application.
* NxWM::CTaskbar: Bugfix... previous window should not be minimized
when a new window is started. It should stay in a maximized state
so that it will re-appear with the window above it is closed or
minimized.
* NxWM::CHexCalculator: Add a hexadecimal/decimal calculator
example.
* NXWidgets::CNxTkWindow: Back out height adjustment in the getSize()
method. The code was correct as it was before.
* NXWidgets::CButtonArray and NXWidgets::CGraphicsPort: There is
a kludge in there to handle the case where we cannot read the
background data because the LCD does not support read operations.
In that case, we just use the default background color. However,
that doesn't work either for the case where the background color
changes when the widget is selected. Then the background color
in the font is wrong. Fixed in CButtonArrary, but the problem
probably exists in other places as well.
* NxWM: Increase default spacing of icons on the Start Window.
* NxWM::CHexCalculator: Fix some non-standard calculator behavior
after = is pressed. Use upper case hex. Increase font size.
* nxwm/Makefile: Fix error that creapt in during some other
recent check-ins.
pascal-3.0 2011-05-15 Gregory Nutt &lt;gnutt@nuttx.org&gt; pascal-3.0 2011-05-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;