9
0
Fork 0

Prep for 6.19 release

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4847 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2012-06-15 16:23:17 +00:00
parent 0ab2eac9f7
commit bbcdeebda5
13 changed files with 485 additions and 322 deletions

View File

@ -110,7 +110,7 @@
* doc/NxWM-ThreadingModel.ppt: Documented the now rather complex NxWM * doc/NxWM-ThreadingModel.ppt: Documented the now rather complex NxWM
threading model. threading model.
1.2 2012-xx-xx Gregory Nutt <gnutt@nuttx.org> 1.2 2012-06-15 Gregory Nutt <gnutt@nuttx.org>
* NXWidgets::CCallback: callback arguement is now type CCallback and not * NXWidgets::CCallback: callback arguement is now type CCallback and not
CWidgetControl; Added a method to redirect keyboard contacts to either CWidgetControl; Added a method to redirect keyboard contacts to either
@ -121,7 +121,7 @@
the CWidgetControl instance. New method redirectNxConsole() will the CWidgetControl instance. New method redirectNxConsole() will
support redirection of any window keyboard input to the NxConsole support redirection of any window keyboard input to the NxConsole
(via CCallback). (via CCallback).
* NxWM:CNxConsole: Configures the NxConsole window to redirectin keyboard * NxWM:CNxConsole: Configures the NxConsole window to redirection keyboard
input to the NxConsole; redirects standard input to the NxConsole input to the NxConsole; redirects standard input to the NxConsole
device driver. device driver.
* NxWM:CKeyboard: Add a new class that implements a keyboard listener * NxWM:CKeyboard: Add a new class that implements a keyboard listener
@ -136,7 +136,7 @@
* NxWM::CTaskbar: After drawing the task bar, need to raise the * NxWM::CTaskbar: After drawing the task bar, need to raise the
application window otherwise the taskbar will be on the top and application window otherwise the taskbar will be on the top and
keyboard input will not be received by the top application. keyboard input will not be received by the top application.
* NxWM::CTaskbar: Bugfix... previous window should now be minimized * NxWM::CTaskbar: Bugfix... previous window should not be minimized
when a new window is started. It should stay in a maximized state 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 so that it will re-appear with the window above it is closed or
minimized. minimized.
@ -149,7 +149,7 @@
background data because the LCD does not support read operations. background data because the LCD does not support read operations.
In that case, we just use the default background color. However, In that case, we just use the default background color. However,
that doesn't work either for the case where the background color that doesn't work either for the case where the background color
changes when the widget is selected. Thenthe background color changes when the widget is selected. Then the background color
in the font is wrong. Fixed in CButtonArrary, but the problem in the font is wrong. Fixed in CButtonArrary, but the problem
probably exists in other places as well. probably exists in other places as well.
* NxWM: Increase default spacing of icons on the Start Window. * NxWM: Increase default spacing of icons on the Start Window.
@ -158,3 +158,4 @@
* nxwm/Makefile: Fix error that creapt in during some other * nxwm/Makefile: Fix error that creapt in during some other
recent check-ins. recent check-ins.
1.3 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>

View File

@ -66,4 +66,34 @@ Bug fixes include changes to the following (see the ChangeLog for details):
* NxWidgets::CRlePalettBitmap, NxWidgets::CRlePalettBitmap, * NxWidgets::CRlePalettBitmap, NxWidgets::CRlePalettBitmap,
NxWidgets::CGraphicsPort, NxWidgets::CWidgetControl NxWidgets::CGraphicsPort, NxWidgets::CWidgetControl
NxWidgets-1.2
=============
The 3rd release of the NxWidgets package as made on June 15, 2012. This
release depends on NuttX-6.19 or above and should not be used with older
NuttX releases.
New features and enhancements include:
* NxWM::CNxConsole: The NxWM NxConsole windows now correctly receive keyboard
input. In version 1.1, NxConsoles received input from /dev/console. That,
of course, leads to chaos when there a multiple windows trying to get input
from the same device. There is now a keyboard listener task that will
accept input from /dev/console and inject that input into the NX keyboard
interface. NX will give the keyboard input only to the top window that
has focus, eliminating the chaos.
* NxWM::CHexcalculator: The NxWM demonstration/unit test now includes a hex
calculator applications. This demonstrates the use of arrays of buttons
within a window.
Bugfixes:
* NxWM::CTaskbar: Was inappropriately minimizing some windows. Fixes
some window raising/lowering bugs.
* NXWidgets::CButtonArray: Fix some coloring problems when rending button
text in cases where we cannot read from the display device.
As well as other, less critical bugs (see the ChangeLog for details)

View File

@ -229,7 +229,7 @@
* apps/examples/touchscreen: Standardize the board-specific, touchscreen * apps/examples/touchscreen: Standardize the board-specific, touchscreen
initialization interfaces. initialization interfaces.
6.19 2012-xx-xx Gregory Nutt <gnutt@nuttx.org> 6.19 2012-06-15 Gregory Nutt <gnutt@nuttx.org>
* apps/nshlib/nsh_usbdev.c: Add the capability to use an arbitrary USB * apps/nshlib/nsh_usbdev.c: Add the capability to use an arbitrary USB
device as the console (not necessarily /dev/console). This is a useful device as the console (not necessarily /dev/console). This is a useful
@ -240,3 +240,5 @@
* apps/nshlib/nsh_usbdev.c and nsh_consolemain.c: Add support for the USB * apps/nshlib/nsh_usbdev.c and nsh_consolemain.c: Add support for the USB
capability when a USB console is used. capability when a USB console is used.
* apps/nshlib/nsh_fscmds.c: Add the 'mv' command * apps/nshlib/nsh_fscmds.c: Add the 'mv' command
6.20 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>

View File

@ -607,6 +607,11 @@ o mv <old-path> <new-path>
Rename the file object at <old-path> to <new-path>. Both paths must Rename the file object at <old-path> to <new-path>. Both paths must
reside in the same mounted filesystem. reside in the same mounted filesystem.
o nfsmount <server-address> <mount-point> <remote-path>
Mount the remote NFS server directory <remote-path> at <mount-point> on the target machine.
<server-address> is the IP address of the remote server.
o ps o ps
Show the currently active threads and tasks. For example, Show the currently active threads and tasks. For example,
@ -808,6 +813,7 @@ Command Dependencies on Configuration Settings
mkrd !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE (see note 4) mkrd !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE (see note 4)
mount !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_READABLE (see note 3) mount !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_READABLE (see note 3)
mv !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE (see note 4) mv !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE (see note 4)
nfsmount !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NET && CONFIG_NFS
ping CONFIG_NET && CONFIG_NET_ICMP && CONFIG_NET_ICMP_PING && !CONFIG_DISABLE_CLOCK && !CONFIG_DISABLE_SIGNALS ping CONFIG_NET && CONFIG_NET_ICMP && CONFIG_NET_ICMP_PING && !CONFIG_DISABLE_CLOCK && !CONFIG_DISABLE_SIGNALS
ps -- ps --
put CONFIG_NET && CONFIG_NET_UDP && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NET_BUFSIZE >= 558 (see note 1,2) put CONFIG_NET && CONFIG_NET_UDP && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NET_BUFSIZE >= 558 (see note 1,2)
@ -846,12 +852,12 @@ also allow it to squeeze into very small memory footprints.
CONFIG_NSH_DISABLE_LOSETUP, CONFIG_NSH_DISABLE_LS, CONFIG_NSH_DISABLE_MB, CONFIG_NSH_DISABLE_LOSETUP, CONFIG_NSH_DISABLE_LS, CONFIG_NSH_DISABLE_MB,
CONFIG_NSH_DISABLE_MKDIR, CONFIG_NSH_DISABLE_MKFATFS, CONFIG_NSH_DISABLE_MKFIFO, CONFIG_NSH_DISABLE_MKDIR, CONFIG_NSH_DISABLE_MKFATFS, CONFIG_NSH_DISABLE_MKFIFO,
CONFIG_NSH_DISABLE_MKRD, CONFIG_NSH_DISABLE_MH, CONFIG_NSH_DISABLE_MOUNT, CONFIG_NSH_DISABLE_MKRD, CONFIG_NSH_DISABLE_MH, CONFIG_NSH_DISABLE_MOUNT,
CONFIG_NSH_DISABLE_MW, CONFIG_NSH_DISABLE_MV, CONFIG_NSH_DISABLE_PS, CONFIG_NSH_DISABLE_MW, CONFIG_NSH_DISABLE_MV, CONFIG_NSH_DISABLE_NFSMOUNT,
CONFIG_NSH_DISABLE_PING, CONFIG_NSH_DISABLE_PUT, CONFIG_NSH_DISABLE_PWD, CONFIG_NSH_DISABLE_PS, CONFIG_NSH_DISABLE_PING, CONFIG_NSH_DISABLE_PUT,
CONFIG_NSH_DISABLE_RM, CONFIG_NSH_DISABLE_RMDIR, CONFIG_NSH_DISABLE_SET, CONFIG_NSH_DISABLE_PWD, CONFIG_NSH_DISABLE_RM, CONFIG_NSH_DISABLE_RMDIR,
CONFIG_NSH_DISABLE_SH, CONFIG_NSH_DISABLE_SLEEP, CONFIG_NSH_DISABLE_TEST, CONFIG_NSH_DISABLE_SET, CONFIG_NSH_DISABLE_SH, CONFIG_NSH_DISABLE_SLEEP,
CONFIG_NSH_DISABLE_UMOUNT, CONFIG_NSH_DISABLE_UNSET, CONFIG_NSH_DISABLE_USLEEP, CONFIG_NSH_DISABLE_TEST, CONFIG_NSH_DISABLE_UMOUNT, CONFIG_NSH_DISABLE_UNSET,
CONFIG_NSH_DISABLE_WGET, CONFIG_NSH_DISABLE_XD CONFIG_NSH_DISABLE_USLEEP, CONFIG_NSH_DISABLE_WGET, CONFIG_NSH_DISABLE_XD
NSH-Specific Configuration Settings NSH-Specific Configuration Settings
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -1261,7 +1261,7 @@ int cmd_mv(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
****************************************************************************/ ****************************************************************************/
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && CONFIG_NFILE_DESCRIPTORS > 0 && \ #if !defined(CONFIG_DISABLE_MOUNTPOINT) && CONFIG_NFILE_DESCRIPTORS > 0 && \
defined(CONFIG_FS_READABLE) && defined(CONFIG_NET) && defined(CONFIG_NFS) defined(CONFIG_NET) && defined(CONFIG_NFS)
#ifndef CONFIG_NSH_DISABLE_NFSMOUNT #ifndef CONFIG_NSH_DISABLE_NFSMOUNT
int cmd_nfsmount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) int cmd_nfsmount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{ {

View File

@ -274,7 +274,7 @@ static const struct cmdmap_s g_cmdmap[] =
#endif #endif
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && CONFIG_NFILE_DESCRIPTORS > 0 && \ #if !defined(CONFIG_DISABLE_MOUNTPOINT) && CONFIG_NFILE_DESCRIPTORS > 0 && \
defined(CONFIG_FS_READABLE) && defined(CONFIG_NET) && defined(CONFIG_NFS) defined(CONFIG_NET) && defined(CONFIG_NFS)
# ifndef CONFIG_NSH_DISABLE_NFSMOUNT # ifndef CONFIG_NSH_DISABLE_NFSMOUNT
{ "nfsmount", cmd_nfsmount, 4, 4, "<server-address> <mount-point> <remote-path>" }, { "nfsmount", cmd_nfsmount, 4, 4, "<server-address> <mount-point> <remote-path>" },
# endif # endif

View File

@ -120,6 +120,27 @@ The HID Parser in drivers/usbhost
Certain functions in the NuttX C-library derive from other BSD-compatible Certain functions in the NuttX C-library derive from other BSD-compatible
sources: sources:
fs/nfs:
^^^^^^^
NFS:
Copyright (c) 1989, 1991, 1993, 1995 The Regents of the University of
California. All rights reserved.
and RPC also has:
Copyright (c) 2004 The Regents of the University of Michigan.
Copyright (c) 2004 Weston Andros Adamson <muzzle@umich.edu>.
Copyright (c) 2004 Marius Aamodt Eriksen <marius@umich.edu>.
The University of Michigan uses a modified BSD license equivalent to
the NuttX license. The University of California code uses the original
BSD license and requires that I state the following:
"This product includes software developed by the University of
California, Berkeley and its contributors."
strtod(): strtod():
^^^^^^^^ ^^^^^^^^

View File

@ -2780,7 +2780,7 @@
stale, queue window messages at the time that a window is destroyed, very bad stale, queue window messages at the time that a window is destroyed, very bad
things happen. things happen.
6.19 2012-xx-xx Gregory Nutt <gnutt@nuttx.org> 6.19 2012-06-15 Gregory Nutt <gnutt@nuttx.org>
* graphics/nxconsole/nxcon_kbdin.c: If selected, the NxConsole will take * graphics/nxconsole/nxcon_kbdin.c: If selected, the NxConsole will take
input from the NX keyboard input callback. If this option is set, then input from the NX keyboard input callback. If this option is set, then
@ -2829,7 +2829,7 @@
* configs/stm3220g-eval/: Update existing configurations to the same level * configs/stm3220g-eval/: Update existing configurations to the same level
as the corresponding STM3240G-EVAL configurations. This adds FSMC SRAM, as the corresponding STM3240G-EVAL configurations. This adds FSMC SRAM,
touchscreen, and LCD support. touchscreen, and LCD support.
* configs/stm3220g-eval/: Add a NxWM configuration for the STM3220G-EVAL. * configs/stm3220g-eval/: Add a NxWM configuration for the STM3220G-EVAL.
* stmpe11*: Fix a massive naming problem. All references to STMPE11 should be * stmpe11*: Fix a massive naming problem. All references to STMPE11 should be
STMPE812. STMPE812.
* arch/arm/src/stm32/stm32_otgfsdev.c: Need to enabled USB reset interrupt * arch/arm/src/stm32/stm32_otgfsdev.c: Need to enabled USB reset interrupt
@ -2888,7 +2888,7 @@
support for the MIO283QT2 LCD. support for the MIO283QT2 LCD.
* configs/pic32mx7mmb/src/up_mio283qt2.c: Add support for the MIO283QT2 * configs/pic32mx7mmb/src/up_mio283qt2.c: Add support for the MIO283QT2
LCD on the PIC32MX7 MMB board. LCD on the PIC32MX7 MMB board.
* configs/pic32mx7mmb/src/up_touchscreen.c: Add an ACD-based touchscreen * configs/pic32mx7mmb/src/up_touchscreen.c: Add an ADC-based touchscreen
driver for the PIC32MX7 MMB board. Kind of works, but needs more driver for the PIC32MX7 MMB board. Kind of works, but needs more
verification and tuning. verification and tuning.
* arch/mips/src/common/up_idle.c: Strange but important fix. For some still- * arch/mips/src/common/up_idle.c: Strange but important fix. For some still-
@ -2903,3 +2903,4 @@
* drivers/usbdev/pl2303.c: Fixe a cut'n'paste error that snuck into * drivers/usbdev/pl2303.c: Fixe a cut'n'paste error that snuck into
the PL2303 emulation driver several months back. the PL2303 emulation driver several months back.
6.20 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>

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>

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;

View File

@ -2837,3 +2837,82 @@ Bugfixes (see the change log for details) :
* on_exit(): Fix compilation errors if CONFIG_SCHED_ONEXIT is enabled. * on_exit(): Fix compilation errors if CONFIG_SCHED_ONEXIT is enabled.
NuttX-6.19
^^^^^^^^^^
The 86th release of NuttX, Version 6.19, was made on June 15, 2012,
and is available for download from the SourceForge website. Note
that release consists of two tarballs: nuttx-6.19.tar.gz and
apps-6.19.tar.gz. Both may be needed (see the top-level nuttx/README.txt
file for build information).
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 terabytes
of storage!
This might be useful for data collection, for MCU configuration information,
for software updates, for providing modular, loadable code modes, controlling
a "farm" of MCUs, ... there are many possibilities and opportunities for
innovation!
The NuttShell (NSH) now supports the following command:
nfsmount <server-address> <mount-point> <remote-path>
That command will mount the remote NFS server directory <remote-path> at
<mount-point> on the target machine. <server-address> is the IP address of
the remote server.
The NFS development was the graduation project of Jose Pablo Rojas V. who
is a student at the Instituto Tecnológico de Costa Rica (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.
Additional new features and extended functionality:
* Drivers: SSD1289 LCD driver, MIO283QT2 LCD driver
* LM3S: Additiona; register definition header files (contributed by Max
Neklyudov).
* STM32 Boards: The STM32F4Discovery will now support an SSD1289 LCD,
The STM3220G-EVAL board support is now equivalent to the STM3240G-EVAL
board support.
* PIC32 Boards: The Mikroelektronika PIC32MX7 MMB board port is now
functional, very complete, and stable.
* Graphics: 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.
* apps/: Add the capability to use an arbitrary USB device as the console
(not necessarily /dev/console). Additional enhancements for USB consoles.
Added the 'mv' command.
Work in progress. This release includes some partially completed
work that is still not ready for prime time.
* Automated Configuration. Automated configuration based on the
kconfig-frontends tool is being incorporated into the build
system. The configuration is still not complete enough for
general use in this release.
* STM32 Drivers. Added files that will (eventually) hold an STM32
OTG FS host driver. This is still a work in progress.
Bugfixes (see the change log for details) :
* General: sleep() and usleep() return values, sig_timedwait() errno setting
on timeout.
* Drivers: STMPE811 touchscreen driver, USB PLC2303, USB CDC/ACM
* STM32: Several USB device controller driver fixes, F4 interrrupt priorities
(contributed by Mike Smith).
* Graphics: Keyboard input, fill trapezoid bug
As well as other, less critical bugs (see the ChangeLog for details)

View File

@ -142,25 +142,12 @@
#define RPCMNT_PATHLEN 1024 #define RPCMNT_PATHLEN 1024
#define RPCPROG_NFS 100003 #define RPCPROG_NFS 100003
/* for rpcclnt's rc_flags */
#define RPCCLNT_SOFT (1 << 0) /* soft mount (hard is details) */
#define RPCCLNT_INT (1 << 1) /* allow interrupts on hard mounts */
#define RPCCLNT_NOCONN (1 << 2) /* dont connect the socket (udp) */
#define RPCCLNT_DUMBTIMR (1 << 4)
/* XXX should be replaced with real locks */
#define RPCCLNT_SNDLOCK 0x100
#define RPCCLNT_WANTSND 0x200
#define RPCCLNT_RCVLOCK 0x400
#define RPCCLNT_WANTRCV 0x800
/* RPC definitions for the portmapper. */ /* RPC definitions for the portmapper. */
#define PMAPPORT 111 #define PMAPPORT 111
#define PMAPPROG 100000 #define PMAPPROG 100000
#define PMAPVERS 2 #define PMAPVERS 2
#define PMAPPROC_NULL 0 #define PMAPPROC_NULL 0
#define PMAPPROC_SET 1 #define PMAPPROC_SET 1
#define PMAPPROC_UNSET 2 #define PMAPPROC_UNSET 2
@ -168,36 +155,8 @@
#define PMAPPROC_DUMP 4 #define PMAPPROC_DUMP 4
#define PMAPPROC_CALLIT 5 #define PMAPPROC_CALLIT 5
#define RPCCLNT_DEBUG 1
#define RPC_TICKINTVL 5
/* from nfs/nfsproto.h */
#define RPC_MAXDATA 32768
#define RPC_MAXPKTHDR 404
#define RPC_MAXPACKET (RPC_MAXPKTHDR + RPC_MAXDATA)
#define RPCX_UNSIGNED 4
#define RPC_SUCCESS 0 #define RPC_SUCCESS 0
/* Flag values for r_flags */
#define RPCCALL_MUSTRESEND (1 << 0) /* Must resend request */
#define RPC_HZ (CLOCKS_PER_SEC / rpcclnt_ticks) /* Ticks/sec */
#define RPC_TIMEO (1 * RPC_HZ) /* Default timeout = 1 second */
#define RPC_MAXREXMIT 100 /* Stop counting after this many */
#define RPCAUTH_ROOTCREDS NULL
#define RPCCLNTINT_SIGMASK(set) \
(SIGISMEMBER(set, SIGINT) || SIGISMEMBER(set, SIGTERM) || \
SIGISMEMBER(set, SIGHUP) || SIGISMEMBER(set, SIGKILL) || \
SIGISMEMBER(set, SIGQUIT))
/**************************************************************************** /****************************************************************************
* Public Types * Public Types
****************************************************************************/ ****************************************************************************/
@ -504,19 +463,15 @@ struct rpc_reply_setattr
struct rpcclnt struct rpcclnt
{ {
nfsfh_t rc_fh; /* File handle of root dir */ nfsfh_t rc_fh; /* File handle of the root directory */
char *rc_path; /* server's path of the directory being mount */ char *rc_path; /* Server's path of the mounted directory */
struct sockaddr *rc_name; struct sockaddr *rc_name;
struct socket *rc_so; /* RPC socket */ struct socket *rc_so; /* RPC socket */
uint8_t rc_clntflags; /* For RPCCLNT_* flags */ bool rc_timeout; /* Receipt of reply timed out */
uint8_t rc_sotype; /* Type of socket */ uint8_t rc_sotype; /* Type of socket */
uint8_t rc_retry; /* Max retries */ uint8_t rc_retry; /* Max retries */
/* These describe the current RPC call */
uint8_t rc_callflags; /* For RPCCALL_* flags */
}; };
/**************************************************************************** /****************************************************************************

View File

@ -167,12 +167,6 @@ static int rpcclnt_send(FAR struct rpcclnt *rpc, int procid, int prog,
ssize_t nbytes; ssize_t nbytes;
int error = OK; int error = OK;
DEBUGASSERT(rpc && call);
/* Assume that we will not have to resend */
rpc->rc_callflags &= ~RPCCALL_MUSTRESEND;
/* Send the call message /* Send the call message
* *
* On success, psock_sendto returns the number of bytes sent; * On success, psock_sendto returns the number of bytes sent;
@ -183,14 +177,10 @@ static int rpcclnt_send(FAR struct rpcclnt *rpc, int procid, int prog,
rpc->rc_name, sizeof(struct sockaddr)); rpc->rc_name, sizeof(struct sockaddr));
if (nbytes < 0) if (nbytes < 0)
{ {
/* psock_sendto failed, Sample the error value (subsequent /* psock_sendto failed */
* calls can change the errno value!)
*/
error = errno; error = errno;
fdbg("ERROR: psock_sendto failed: %d\n", error); fdbg("ERROR: psock_sendto failed: %d\n", error);
rpc->rc_callflags |= RPCCALL_MUSTRESEND;
} }
return error; return error;
@ -212,11 +202,6 @@ static int rpcclnt_receive(FAR struct rpcclnt *rpc, FAR struct sockaddr *aname,
ssize_t nbytes; ssize_t nbytes;
int error = 0; int error = 0;
if (rpc->rc_so == NULL)
{
return EACCES;
}
socklen_t fromlen = sizeof(struct sockaddr); socklen_t fromlen = sizeof(struct sockaddr);
nbytes = psock_recvfrom(rpc->rc_so, reply, resplen, 0, aname, &fromlen); nbytes = psock_recvfrom(rpc->rc_so, reply, resplen, 0, aname, &fromlen);
if (nbytes < 0) if (nbytes < 0)
@ -248,7 +233,7 @@ static int rpcclnt_reply(FAR struct rpcclnt *rpc, int procid, int prog,
error = rpcclnt_receive(rpc, rpc->rc_name, procid, prog, reply, resplen); error = rpcclnt_receive(rpc, rpc->rc_name, procid, prog, reply, resplen);
if (error != 0) if (error != 0)
{ {
fdbg("ERROR: rpcclnt_receive returned: %d\n"); fdbg("ERROR: rpcclnt_receive returned: %d\n", error);
/* If we failed because of a timeout, then try sending the CALL /* If we failed because of a timeout, then try sending the CALL
* message again. * message again.
@ -256,24 +241,23 @@ static int rpcclnt_reply(FAR struct rpcclnt *rpc, int procid, int prog,
if (error == EAGAIN || error == ETIMEDOUT) if (error == EAGAIN || error == ETIMEDOUT)
{ {
rpc->rc_callflags |= RPCCALL_MUSTRESEND; rpc->rc_timeout = true;
} }
}
return error;
}
/* Get the xid and check that it is an RPC replysvr */ /* Get the xid and check that it is an RPC replysvr */
replyheader = (FAR struct rpc_reply_header *)reply; else
rxid = replyheader->rp_xid;
if (replyheader->rp_direction != rpc_reply)
{ {
fdbg("ERROR: Different RPC REPLY returned\n"); replyheader = (FAR struct rpc_reply_header *)reply;
rpc_statistics(rpcinvalid); rxid = replyheader->rp_xid;
rpc->rc_callflags |= RPCCALL_MUSTRESEND;
error = EPROTO; if (replyheader->rp_direction != rpc_reply)
return error; {
fdbg("ERROR: Different RPC REPLY returned\n");
rpc_statistics(rpcinvalid);
error = EPROTO;
}
} }
return OK; return OK;
@ -596,12 +580,9 @@ bad:
void rpcclnt_disconnect(struct rpcclnt *rpc) void rpcclnt_disconnect(struct rpcclnt *rpc)
{ {
struct socket *so;
if (rpc->rc_so != NULL) if (rpc->rc_so != NULL)
{ {
so = rpc->rc_so; (void)psock_close(rpc->rc_so);
(void)psock_close(so);
} }
} }
@ -748,7 +729,8 @@ int rpcclnt_request(FAR struct rpcclnt *rpc, int procnum, int prog,
/* Do the client side RPC. */ /* Do the client side RPC. */
rpc_statistics(rpcrequests); rpc_statistics(rpcrequests);
rpc->rc_timeout = false;
/* Send the RPC CALL message */ /* Send the RPC CALL message */
error = rpcclnt_send(rpc, procnum, prog, request, reqlen); error = rpcclnt_send(rpc, procnum, prog, request, reqlen);
@ -770,7 +752,7 @@ int rpcclnt_request(FAR struct rpcclnt *rpc, int procnum, int prog,
retries++; retries++;
} }
while ((rpc->rc_callflags & RPCCALL_MUSTRESEND) != 0 && retries <= rpc->rc_retry); while (rpc->rc_timeout && retries <= rpc->rc_retry);
if (error != OK) if (error != OK)
{ {