diff --git a/NxWidgets/ChangeLog.txt b/NxWidgets/ChangeLog.txt index b017b2033..b74ba32bc 100644 --- a/NxWidgets/ChangeLog.txt +++ b/NxWidgets/ChangeLog.txt @@ -110,7 +110,7 @@ * doc/NxWM-ThreadingModel.ppt: Documented the now rather complex NxWM threading model. -1.2 2012-xx-xx Gregory Nutt +1.2 2012-06-15 Gregory Nutt * NXWidgets::CCallback: callback arguement is now type CCallback and not CWidgetControl; Added a method to redirect keyboard contacts to either @@ -121,7 +121,7 @@ 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 redirectin keyboard +* 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 @@ -136,7 +136,7 @@ * 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 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 so that it will re-appear with the window above it is closed or minimized. @@ -149,7 +149,7 @@ 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. Thenthe 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. @@ -158,3 +158,4 @@ * nxwm/Makefile: Fix error that creapt in during some other recent check-ins. +1.3 2012-xx-xx Gregory Nutt diff --git a/NxWidgets/ReleaseNotes.txt b/NxWidgets/ReleaseNotes.txt index d140d45d1..96ce29e1a 100644 --- a/NxWidgets/ReleaseNotes.txt +++ b/NxWidgets/ReleaseNotes.txt @@ -66,4 +66,34 @@ Bug fixes include changes to the following (see the ChangeLog for details): * NxWidgets::CRlePalettBitmap, NxWidgets::CRlePalettBitmap, 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) diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt index aa2bd8236..6aa705545 100755 --- a/apps/ChangeLog.txt +++ b/apps/ChangeLog.txt @@ -229,7 +229,7 @@ * apps/examples/touchscreen: Standardize the board-specific, touchscreen initialization interfaces. -6.19 2012-xx-xx Gregory Nutt +6.19 2012-06-15 Gregory Nutt * 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 @@ -240,3 +240,5 @@ * 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 + +6.20 2012-xx-xx Gregory Nutt diff --git a/apps/nshlib/README.txt b/apps/nshlib/README.txt index 2ac9dfb19..08ecccbfd 100644 --- a/apps/nshlib/README.txt +++ b/apps/nshlib/README.txt @@ -607,6 +607,11 @@ o mv Rename the file object at to . Both paths must reside in the same mounted filesystem. +o nfsmount + + Mount the remote NFS server directory at on the target machine. + is the IP address of the remote server. + o ps 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) 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) + 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 ps -- 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_MKDIR, CONFIG_NSH_DISABLE_MKFATFS, CONFIG_NSH_DISABLE_MKFIFO, 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_PING, CONFIG_NSH_DISABLE_PUT, CONFIG_NSH_DISABLE_PWD, - CONFIG_NSH_DISABLE_RM, CONFIG_NSH_DISABLE_RMDIR, CONFIG_NSH_DISABLE_SET, - CONFIG_NSH_DISABLE_SH, CONFIG_NSH_DISABLE_SLEEP, CONFIG_NSH_DISABLE_TEST, - CONFIG_NSH_DISABLE_UMOUNT, CONFIG_NSH_DISABLE_UNSET, CONFIG_NSH_DISABLE_USLEEP, - CONFIG_NSH_DISABLE_WGET, CONFIG_NSH_DISABLE_XD + CONFIG_NSH_DISABLE_MW, CONFIG_NSH_DISABLE_MV, CONFIG_NSH_DISABLE_NFSMOUNT, + CONFIG_NSH_DISABLE_PS, CONFIG_NSH_DISABLE_PING, CONFIG_NSH_DISABLE_PUT, + CONFIG_NSH_DISABLE_PWD, CONFIG_NSH_DISABLE_RM, CONFIG_NSH_DISABLE_RMDIR, + CONFIG_NSH_DISABLE_SET, CONFIG_NSH_DISABLE_SH, CONFIG_NSH_DISABLE_SLEEP, + CONFIG_NSH_DISABLE_TEST, CONFIG_NSH_DISABLE_UMOUNT, CONFIG_NSH_DISABLE_UNSET, + CONFIG_NSH_DISABLE_USLEEP, CONFIG_NSH_DISABLE_WGET, CONFIG_NSH_DISABLE_XD NSH-Specific Configuration Settings ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/apps/nshlib/nsh_fscmds.c b/apps/nshlib/nsh_fscmds.c index 4b43e1573..bc723728c 100644 --- a/apps/nshlib/nsh_fscmds.c +++ b/apps/nshlib/nsh_fscmds.c @@ -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 && \ - defined(CONFIG_FS_READABLE) && defined(CONFIG_NET) && defined(CONFIG_NFS) + defined(CONFIG_NET) && defined(CONFIG_NFS) #ifndef CONFIG_NSH_DISABLE_NFSMOUNT int cmd_nfsmount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) { diff --git a/apps/nshlib/nsh_parse.c b/apps/nshlib/nsh_parse.c index bc6f8576a..76cd4664e 100644 --- a/apps/nshlib/nsh_parse.c +++ b/apps/nshlib/nsh_parse.c @@ -274,7 +274,7 @@ static const struct cmdmap_s g_cmdmap[] = #endif #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 { "nfsmount", cmd_nfsmount, 4, 4, " " }, # endif diff --git a/nuttx/COPYING b/nuttx/COPYING index 80fa48897..82d3a8a58 100644 --- a/nuttx/COPYING +++ b/nuttx/COPYING @@ -120,6 +120,27 @@ The HID Parser in drivers/usbhost Certain functions in the NuttX C-library derive from other BSD-compatible 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 . + Copyright (c) 2004 Marius Aamodt Eriksen . + + 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(): ^^^^^^^^ diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index d7d6f7fc4..8eb1235ed 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -2780,7 +2780,7 @@ stale, queue window messages at the time that a window is destroyed, very bad things happen. -6.19 2012-xx-xx Gregory Nutt +6.19 2012-06-15 Gregory Nutt * graphics/nxconsole/nxcon_kbdin.c: If selected, the NxConsole will take 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 as the corresponding STM3240G-EVAL configurations. This adds FSMC SRAM, 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 STMPE812. * arch/arm/src/stm32/stm32_otgfsdev.c: Need to enabled USB reset interrupt @@ -2888,7 +2888,7 @@ support for the MIO283QT2 LCD. * configs/pic32mx7mmb/src/up_mio283qt2.c: Add support for the MIO283QT2 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 verification and tuning. * 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 the PL2303 emulation driver several months back. +6.20 2012-xx-xx Gregory Nutt diff --git a/nuttx/Documentation/NuttShell.html b/nuttx/Documentation/NuttShell.html index 72629580f..5e6202eb3 100644 --- a/nuttx/Documentation/NuttShell.html +++ b/nuttx/Documentation/NuttShell.html @@ -8,7 +8,7 @@

NuttShell (NSH)

-

Last Updated: June 11, 2012

+

Last Updated: June 15, 2012

@@ -227,79 +227,85 @@
- 2.25 Check Network Peer (ping) + 2.25 Mount an NFS file system (nfsmount)
- 2.26 Send File Via TFTP (put) + 2.26 Check Network Peer (ping)
- 2.27 Show Current Working Directory (pwd) + 2.27 Send File Via TFTP (put)
- 2.28 Remove a File (rm) + 2.28 Show Current Working Directory (pwd)
- 2.29 Remove a Directory (rmdir) + 2.29 Remove a File (rm)
- 2.30 Set an Environment Variable (set) + 2.30 Remove a Directory (rmdir)
- 2.31 Execute an NSH Script (sh) + 2.31 Set an Environment Variable (set)
- 2.32 Wait for Seconds (sleep) + 2.32 Execute an NSH Script (sh)
- 2.33 Unmount a File System (umount) + 2.33 Wait for Seconds (sleep)
- 2.34 Unset an Environment Variable (unset) + 2.34 Unmount a File System (umount)
- 2.35 Wait for Microseconds (usleep) + 2.35 Unset an Environment Variable (unset)
- 2.36 Get File Via HTTP (wget) + 2.36 Wait for Microseconds (usleep)
- 2.37 Hexadecimal Dump (xd) + 2.37 Get File Via HTTP (wget) + + + +
+ + 2.38 Hexadecimal Dump (xd) @@ -1507,7 +1513,26 @@ mv <old-path> <new-path> + +
-

2.25 Check Network Peer (ping)

+

2.25 Mount an NFS file system (nfsmount)

+
+ + +

Command Syntax:

+
    +nfsmount <server-address> <mount-point> <remote-path>
    +
+

+ Synopsis. + 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. +

+ + + +
+

2.26 Check Network Peer (ping)

@@ -1540,7 +1565,7 @@ nsh>
-

2.26 Send File Via TFTP (put)

+

2.27 Send File Via TFTP (put)

@@ -1575,7 +1600,7 @@ put [-b|-n] [-f <remote-path>] -h <ip-address> <local-path>
-

2.27 Show Current Working Directory (pwd)

+

2.28 Show Current Working Directory (pwd)

@@ -1605,7 +1630,7 @@ nsh>
-

2.28 Remove a File (rm)

+

2.29 Remove a File (rm)

@@ -1639,7 +1664,7 @@ nsh>
-

2.29 Remove a Directory (rmdir)

+

2.30 Remove a Directory (rmdir)

@@ -1674,7 +1699,7 @@ nsh>
-

2.30 Set an Environment Variable (set)

+

2.31 Set an Environment Variable (set)

@@ -1700,7 +1725,7 @@ nsh>
-

2.31 Execute an NSH Script (sh)

+

2.32 Execute an NSH Script (sh)

@@ -1718,7 +1743,7 @@ sh <script-path>
-

2.32 Wait for Seconds (sleep)

+

2.33 Wait for Seconds (sleep)

@@ -1735,7 +1760,7 @@ sleep <sec>
-

2.33 Unmount a File System (umount)

+

2.34 Unmount a File System (umount)

@@ -1765,7 +1790,7 @@ nsh>
-

2.34 Unset an Environment Variable (unset)

+

2.35 Unset an Environment Variable (unset)

@@ -1791,7 +1816,7 @@ nsh>
-

2.35 Wait for Microseconds (usleep)

+

2.36 Wait for Microseconds (usleep)

@@ -1808,7 +1833,7 @@ usleep <usec>
- 2.36 Get File Via HTTP (wget) + 2.37 Get File Via HTTP (wget)
@@ -2018,6 +2043,11 @@ nsh> !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE3 CONFIG_NSH_DISABLE_MV + + nfsmount + !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NET && CONFIG_NFS + CONFIG_NSH_DISABLE_NFSMOUNT + ping CONFIG_NET && CONFIG_NET_ICMP && @@ -2564,6 +2594,8 @@ nsh>
  • cd
  • Command summaries
  • Conditional command execution
  • +
  • CONFIG_NSH_ARCHINIT
  • +
  • CONFIG_NSH_BUILTIN_APPS
  • CONFIG_NSH_CONSOLE
  • CONFIG_NSH_DHCPC
  • CONFIG_NSH_DISABLEBG
  • @@ -2588,6 +2620,14 @@ nsh>
  • CONFIG_NSH_ROMFSSECTSIZE
  • CONFIG_NSH_STRERROR
  • CONFIG_NSH_TELNET
  • +
  • CONFIG_NSH_USBCONDEV
  • +
  • CONFIG_NSH_USBCONSOLE
  • +
  • CONFIG_NSH_UBSDEV_MINOR
  • +
  • CONFIG_NSH_USBDEV_TRACECLASS
  • +
  • CONFIG_NSH_USBDEV_TRACECONTROLLER
  • +
  • CONFIG_NSH_USBDEV_TRACEINIT
  • +
  • CONFIG_NSH_USBDEV_TRACEINTERRUPTS
  • +
  • CONFIG_NSH_USBDEV_TRACETRANSFERS
  • Configuration settings
  • Configuration settings, command dependencies
  • Configuration settings, NSH-specific
  • @@ -2596,10 +2636,10 @@ nsh>
  • date
  • dd
  • echo
  • -
  • Environment Variables
  • -
  • /etc/init.d/rcS +
  • Environment Variables
  • +
  • /etc/init.d/rcS
  • exec
  • exit
  • free
  • @@ -2620,6 +2660,7 @@ nsh>
  • mkrd
  • mount
  • mv
  • +
  • nfsmount
  • nice
  • OLDPWD
  • Overview
  • diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index a3f87f917..510715fe8 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: June 13, 2012

    +

    Last Updated: June 15, 2012

    @@ -968,46 +968,70 @@ -

    NuttX-6.18 Release Notes

    +

    NuttX-6.19 Release Notes

    - The 85th release of NuttX, Version 6.18, was made on May 19, 2012, and is available for download from the + 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 the release consists of two tarballs: nuttx-6.18.tar.gz and apps-6.18.tar.gz. + Note that the 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) The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are also listed here.

    +

    NFS client. + 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! +

    - The majority of changes in this release are focused on supporting the synchronized release of NxWM, the NuttX tiny window manager. - That window manager is released as part of the NxWidgets package, but depends upon many of the changes in this NuttX release. + 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!

    -

    New Features. - New or extended features in this release include: +

    + 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 for his success. +

    +

    +

    +

    Additional new features and extended functionality.

      -
    • Drivers. - Added a watchdog timer driver infrastructure. - Add general support for STMicro STMPE811 I/O Expander/touchscreen device. +
    • Drivers: + SSD1289 LCD driver, MIO283QT2 LCD driver
    • -
    • STM32. - Add support for the STM32 IWDG and WWDG watchodog timers. - DMA now supports cicular buffer mode; - serial driver now uses circular DMA to improve Rx performance (Contributed by Mike Smith). + +
    • LM3S: + Additional register definition header files (contributed by Max Neklyudov).
    • -
    • STM3240G-EVAL Board. - Add support for the LCD and for the STMPE811 I/O Expander as a touchscreen controller. + +
    • STM32 Boards: + The STM32F4Discovery will now support an SSD1289 LCD, STM3220G-EVAL + board support is now equivalent to the STM3240G-EVAL board support.
    • -
    • PIC32 Boards. - Board support for the Mikroelektronika PIC32MX7 Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board. + +
    • PIC32 Boards: + The Mikroelektronika PIC32MX7 MMB board port is now functional, very complete, and stable.
    • -
    • NX. - Framed windows are now draw in three colors instead of just two. - Numerous other extensions needed to support NxWM (see the ChangeLog for details). + +
    • 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.
    • -
    • Library. - Add prctl() command that can be used to setting and getting the names of threads. - This (plus several other improvements and bug fixes) are part of a larger effort to improve task monitoring capabilities. + +
    • 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.
    @@ -1016,10 +1040,6 @@

      -
    • NFS Client. - 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. -
    • 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. @@ -1029,38 +1049,20 @@
    -

    Bugfixes:

    +

    Bugfixes (see the change log for details):

      -
    • sched_setscheduler(). - Correct return value (Contributed by Richard Cochran). +
    • General: + sleep() and usleep() return values, + sig_timedwait() errno setting on timeout.
    • -
    • stdio. - Ignore CONFIG_STDIO_LINEBUFFER if the file was opened in binary mode. +
    • Drivers: + STMPE811 touchscreen driver, USB PLC2303, USB CDC/ACM
    • -
    • fopen(). - Correct an error in parsing open mode string. +
    • STM32: + Several USB device controller driver fixes, F4 interrrupt priorities (contributed by Mike Smith).
    • -
    • Standard serial driver. - Improved performance be reducing the amount of time that Rx interrupts are disabled. -
    • -
    • recvfrom(). - Fix a compilation problem. -
    • -
    • CDC/ACM device driver. - Fix an infinite loop that occurs when the serial device is unregistered. -
    • -
    • STM32 OTG FS device driver. - Numerous fixes and the driver is partially functional but there are still some issues that become apparent when debug output is disabled. -
    • -
    • fcntl(). - Always returned zero on success; however, some fcntl commands need to return non-zero values on success. -
    • -
    • graphics. - 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. -
    • -
    • on_exit(). - Fix compilation errors if CONFIG_SCHED_ONEXIT is enabled. +
    • Graphics: + Keyboard input, fill trapezoid bug

    @@ -2888,145 +2890,188 @@ Other memory:

      -nuttx-6.18 2012-05-19 Gregory Nutt <gnutt@nuttx.org>
      +nuttx-6.19 2012-06-15 Gregory Nutt <gnutt@nuttx.org>
       
      -    * Kconfig:  Continued Kconfig file updates (no longer tracking on a per-file
      -      basis in the ChangeLog)
      -    * arch/arm/src/stm32/stm32_iwdog.c and stm32_wwdog.c:  Add the STM32 IWDG
      -      and WWDIG watchdog timer driver.
      -    * configs/stm3240g-eval/src/up_lcd.c: Add LCD from for the STM3240G-EVAL (the
      -      initial check-in is just a stm3210e-eval driver with renaming).
      -    * sched/sched_setscheduler.c:  Correct successful return value (Contributed
      -      by Richard Cochran).
      -    * include/fcntl.h and lib/stdio:  Ignore CONFIG_STDIO_LINEBUFFER is the
      -      file was opened in binary mode.
      -    * lib/stdio/lib_fopen.c:  Correct an error in parsing open mode string.  The
      -      plus sign may not appear right after the basic mode.  For example, "r+", "rb+",
      -      and "r+b" are all valid open strings and mean the same thing.
      -    * lib/stdio/lib_fopen.c:  Correct return errno value from f_open() and
      -      f_fdopen() if the open mode string is invalid.
      -    * drivers/serial/serial.c:  Do not disable Rx interrupts on each byte.
      -      Rather, only disable Rx interrupts when the Rx ring buffer may be empty.
      -    * include/nuttx/usb/audio.h:  USB Audio 1.0 definitions (in progress).
      -    * arch/arm/src/stm32/stm32fxx_dma.c:  STM32 F4 DMA now supports circular
      -      buffer mode (contributed by Mike Smith)
      -    * arch/arm/src/stm32/stm32_serial.c:  The serial driver can now support
      -      Rx DMA into a circular buffer (contributed by Mike Smith)
      -    * configs/pic32mx7mmb: Beginning of a configuration for the Mikroelektronka
      -      PIC32MX7 Multimedia Board (MMB).
      -    * net/recvfrom.c:  Fix a compilation problem.  Some UDP logic was conditioned
      -      on TCP, not UDP.
      -    * drivers/usbdev/cdcacm.c: Fix an infinite loop that occurs when the serial
      -      device is unregisters.
      -    * arch/arm/src/stm32/stm32_otgfs.c: The driver needs to reset the software (in
      -      order to flush the requests) and to disable the software connection when the
      -      device is unregistered.
      -    * include/sys/prctl.h, sched/prctl.c, include/pthread.h:  Add interfaces to
      -      support getting and setting of the thread or task name.
      -    * configs/ubw32:  Added a configuration to support the Sparkfun UBW32 PIC32 board.
      -    * configs/ubw32/nsh:  Added an NSH configuration for the Sparkfun UBW32 PIC32 board.
      -    * configs/ubw32/up_buttons.c:  Added button support for Bit Whacker board.
      -    * configs/stm3240g-eval/nxconsole:  Added a configuration to run the NSH
      -      shell in an NX window for the STM3240G-EVAL board.
      -    * include/cxx/cunistd:  C++ header file to make sure that everything in
      -      unistd.h is in the std:: namespace.
      -    * configs/sim/nxwm:  Added a configuration for testing the NuttX Window Manager
      -      (NxWM)
      -    * fs/fs_fcntl.h:  On success, always returned OK.  However, some fcntl commands
      -      require returning other values on success.
      -    * Various files.  Fix warnings about variables that were initialized by not used.
      -    * configs/sim/*/defconfig:  Changes to build a 32-bit simulation on a 32-bit
      -      platform did not make into all of the Make.defs files.
      -    * graphics/nxmu/nx_move.c:  Wrong opcode was being used in the server message;
      -      Also there was an error in the offset calculation.
      -    * graphics/nxglib/fb/nxglib_moverectangle.c:  Offset argument is really a 
      -      position, not an offset.
      -    * graphics/nxtk/nxtk_drawframe.c:  Framed windows are now drawn in three
      -      colors (instead of just two).
      -    * drivers/input/stmpe811_*:  Added a driver to support the STMicro STMPE811
      -      IO Expander and touchscreen driver.
      -    * configs/stm3240g-eval/nxwm:  Added to configuration for testing the NxWM
      -      window manager on the STM3240G-EVAL board.
      -    * graphics/nxtk/nxtk_toolbarbounds.c:  Added an interface to get the toolbar
      -      bounding box.
      -    * graphics/nxtk/nxtk_drawframe.c:  Fix an error in drawing the window frame.
      -    * NX, NxConsole:  Replace CONFIG_NXCONSOLE_NOGETRUN to CONFIG_LCD_GETRUN.  The
      -      inability to read from the LCD is a property of the LCD, not of NxConsole.
      -      Then add CONFIG_NX_WRITEONLY which is the more generic way of saying that
      -      no NX component should try to read from the underlying graphic device (LCD
      -      or other).
      -    * configs/stm3240g-eval/src/up_stmpe811.c:  Add board-specific support for the
      -      the STMPE811 I/O expander on the STM3240G-EVAL board.  Verfied that the
      -      STM3240G-EVAL touchscreen is now fully functional.
      -    * include/cxx/cfcntl:  Added std:: header file.
      -    * graphics/nxbe/nxbe_filltrapezoid.c and graphics/nxglib/fb/nxglib_filltrapezoid.c:
      -      Fix several errors in the trapezoid fill logic.
      -    * include/nuttx/input/touchscreen.h, configs/hymini-stm32, configs/stm3240g-evel,
      -    * configs/sam3u-ek, configs/sim, arch/sim/src/up_touchscreen.c, and
      -      apps/examples/touchscreen: Standardize the board-specific, touchscreen
      -      initialization interfaces.
      -    * drivers/input/stmpe811_base.c and configs/stm3240g-eval:  The STMPE811-based
      -      touchscreen seems to work better with edge (vs. level) interrupts
      -    * drivers/input/stmpe811_tsc.c:  Fix some status checks so that the touchscreen
      -      interrupt handling logic does not read data if the fifo is not at the
      -      threshold level.
      -    * include/nuttx/wqueue.h: Add macro work_available() to determine if the
      -      previously scheduled work has completed.
      -    * drivers/stmpe811_tsc.c:  Correct errors: (1) Since all interrupt logic is done on
      -      the worker thread, disabling interrupts does not provide protected; Need to
      -      disable pre-emption.  (2) Fix handling of touch ID and (2) add some logic to
      -      prevent certain kinds of data overrun.
      -    * include/nx/nxtk.h and graphics/nx/nxtk/nxtk_internal.h:  Move setting
      -      of configuration defaults from the internal header file to a place where
      -      other logic can use the defaults.
      -    * graphics/nxtk/nxtk_events.c:  Fixed an important but in the logic that
      -      translates the mouse/touchscreen position data for framed windows and toolbars.
      -    * drivers/input/stmpe811_tsc.c, tsc2007.c, and ads7843e.c:  Need to keep track of
      -      when if positional data is valid.  When the touch is released, the X/Y position
      -      of the release must be the same as the X/Y position of the last touch (se that
      -      the release occurs in the same window as the last touch).
      -    * graphics/nxtk/nxtk_events.c:  Fix an error in mouse/touchscreen input logic:
      -      Was autoraising the window AFTER processing the mouse press.  This raises havoc
      -      if the result of processing the mouse click was to raise some other window!
      -    * graphics/nxtk/nxtk_events.c:  I had to disable the whole autoraise feature
      -      for multi-user case because it does not work correctly.  In a scenario where (1) there
      -      are multiple queued touchscreen events for the same window and (2) the result of the
      -      first input was to switch windows, then the autoraise implementation will cause the
      -      window to revert to the previous window.  Not good behavior.
      -    * sched/sched_mergepending.c:  Add task switching instrumentation.  There is a case
      -      here where instrumentation was missing.  Contributed by Petri Tanskanen.
      -    * CONFIG_STMPE811_THRESHX, CONFIG_STMPE811_THRESHX, and drivers/stmpe811_tsc.c:  Add some
      -      thresholding controls to all slow down processing of touchscreen samples.
      -      This is a problem with NX in multi-user mode:  touchscreen data gets sent
      -      via a message and when the message queue gets full the sender blocks and
      -      touch events are lost.  Basic data overrun.  The badly effects touchscreen
      -      human factors.
      -    * include/sched.h:  Fix a typo (missing semicolon) in prototype of on_exit();
      -    * sched/on_exit.c and include/nuttx/sched.h:  Fix some old typos that caused
      -      compilation errors when CONFIG_SCHED_ONEXIT is defined.
      -    * configs/stm3240g-eval/nxwm/defconfig:  The default NxWM now uses the STMPE811
      -      touchscreen.
      -    * include/cxx/csched: Added
      -    * graphic/nxmu/nxmu_sendserver.c, nxmu_sendwindow.c, and nxmu_sendclient.c:
      -      Refactor NX messaging logic in preparation for a new message control
      -      feature.
      -    * 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.
      +    * graphics/nxconsole/nxcon_kbdin.c:  If selected, the NxConsole will take
      +      input from the NX keyboard input callback.  If this option is set, then
      +      the interface nxcon_kdbin() is enabled.  That interface may be driven by
      +      window callback functions so that keyboard input *only* goes to the top
      +      window. If CONFIG_NXCONSOLE_NXKBDIN is not selected, then the NxConsole
      +      will receive its input from stdin (/dev/console).  This works great but
      +      cannot be shared between different windows.  Chaos will ensue if you
      +      try to support multiple NxConsole windows without CONFIG_NXCONSOLE_NXKBDIN
      +    * graphics/nxmu/nx_kbdin.c:  Fix pointer argument.  This is a error
      +      introduced in changes leading up to the 6.18 release.  This error will
      +      cause crashes or perhaps simply not work when you try to handle window
      +      keyboard data in multi-user mode.
      +    * graphics/nxconsole/nxcon_kdbind.c:  Fixed unmatched sem_wait and sem_post.
      +      Fix some conditional compilation that included a few too many lines of code.
      +    * drivers/input/stmpe811_tsc.c and stmpe811.h:  Add a timeout to catch missed
      +      pen up events.  Now the STM3240G-EVAL touchscreen works very smoothly.
      +    * configs/stm3240g-eval/nxwm/defconfig: Enable support for NxConsole keyboard
      +      input. Increasing spacing of icons.
      +    * configs/stm3240g-eval/nxwm/defconfig: Use a larger font for the calculator.
      +    * include/nuttx/lcd/ssd1289.h, drivers/lcd/ssd1289.c and .h:  Generic LCD
      +      driver for LCDs based on the Solomon Systech SSD1289 LCD driver.  This
      +      of this as a template for an LCD driver that will have to be cusomized
      +      for your particular LCD hardware.
      +    * configs/stm32f4discovery/src/up_extmem.c and up_ssd1289.c:  Add support to
      +      STM32F4Discovery for than an external, SSD1289-based LCD.
      +    * configs/stm32f4discovery/nxlines:  Add an STM32F4Discovery configuration
      +      to thest the SSD1289-based LCD.
      +    * configs/stm3240g-eval/src: Add USB GPIO initialization logic needed
      +      in board-specific boot logic.
      +    * configs/stm32f4discovery/src: Add USB GPIO initialization logic needed
      +      in board-specific boot logic.
      +    * drivers/usbdev/pl2303.c and cdcacm.c:  Fix the request size used for sending
      +      packets.  It was not using the maximum request size, but instead the previous
      +      request size.  As a result, packets get smaller, and smaller, and ...  This
      +      is an important USB serial fix.
      +    * arch/arc/src/stm32_otgfsdev.c: Bug fix: Don't process TXFE if we have
      +      already processed an XFRC interrupt.  We have already done what needs
      +      to done in that case.
      +    * arch/arc/src/stm32_otgfsdev.c:  Fixed some status settings in queuing of write
      +      messages. Added a "hack" to work around missing TxFIFO empty interrupts.  The
      +      hack is basically to poll for space in the TxFIFO instead of of setting up
      +      the interrupt.
      +    * arch/arm/src/stm32/stm32f2* and chip/stm32f2*:  Update all STM32 F2 file so
      +      that they are equivalent to F4 files.  This is kind of a maintenance nightmare.
      +    * configs/stm3220g-eval/: Update existing configurations to the same level
      +      as the corresponding STM3240G-EVAL configurations.  This adds FSMC SRAM,
      +      touchscreen, and LCD support.
      +    * configs/stm3220g-eval/: Add a NxWM configuration for the STM3220G-EVAL.
      +    * stmpe11*: Fix a massive naming problem.  All references to STMPE11 should be
      +      STMPE812.
      +    * arch/arm/src/stm32/stm32_otgfsdev.c: Need to enabled USB reset interrupt
      +      (contributed by Erik Van Der Zalm).
      +    * sched/sleep.c:  Fix the return value from sleep().  The correct behavior is
      +      to return the number of unwaited seconds; the implementation was always
      +      returning zero.
      +    * sched/usleep.c and include/unistd.h:  Was a void function, but should return
      +      0 on success.  usleep() needs to check the return value from sigtimedwait().
      +      sigtimewait() returns the signal number that awakened it and an error (EAGAIN)
      +      if the timeout expired (normal case).
      +    * sched/sig_timedwait.c:  Fix sigtimedwait() return value.  On a timeout, it was
      +      setting the 8-bit si_signo field to -1 and eded up reported successfully awakened
      +      by signal 255!  Now detects the timeout and errors -1 with errno == EGAIN.  If
      +      sigtimedwait() is awakened by an unblocked signal, but it is not one of the
      +      signals in the waited-for set, it will return -1 with errno == EINTR.
      +    * arch/arm/src/stm32_i2c.c:  Fix STM32 F2 I2C.  It is apparently bug-for-bug
      +      compatible with the F4 and needs the same work-around for the missing BTF
      +      signal that was needed for the F4.
      +    * drivers/lcd/ssd1289.*:  Fix some of the initial register settings.
      +    * configs/stm32f4discovery/src/up_ssd1289.c: FSMC address bit 16 is used to
      +      distinguish command and data.  But FSMC address bits 0-24 correspond to ARM
      +      address bits 1-25, se we need to set bit 17 in order generate output on
      +      FSMC_A16.
      +    * arch/arm/src/lm3s/lm3s_epi.h and lm3s_timer.h:  LM3S header files
      +      (contributed by Max Neklyudov).
      +    * arch/arm/src/stm32/stm32_irq.c:  Some of the interrupt priorities were
      +      not be initialized (F2 and F4 only).  Thus, the very high numbered
      +      interrupts (like UART6) and cause nested interrupts.  This leads to
      +      some very difficult to debug crashes.  Fix contributed by Mike Smith.
      +    * arch/mips/src/pic32/pic32_head.S and pic32_config.h and
      +      configs/pic32mx7mmb/include/board.h:  Extended PIC32 device configuration
      +      capabilities and change board.h to support unique clocking requirements
      +      of the Mikroelektronika PIC32MX7 MMB.  That board now works!
      +    * configs/pic32mx7mmb/nsh:  Added and verify a NuttShell configuration
      +      for the Mikroelektronika PIC32MX7 MMB board.
      +    * arch/mips/pic32/pic32mx-ethernet.c:  Fix logic that guesses PHY address;
      +      the search loop missed the PHY address needed by the Mikroelektronika
      +      PIC32MX7 MMB board.
      +    * configs/pic32mx7mmb/nsh:  Configuration now supports a network by default.
      +    * configs/pic32mx7mmb/src:  Add support for the MMC/SD slot on board
      +      the Mikroelektronika PIC32MX7 MMB board (not working on initial check-in).
      +    * arch/mips/src/pic32/pic32mx-spi.c:  Add support for very low-level,
      +      register access debug output.
      +    * configs//pic32mx7mmb/include/board.h:  Reduced peripheral clock to
      +      4MHz to match other PIC32 configurations.
      +    * configs/pic32mx7mmb/src/up_nsh.c:  SD card needs to operate in SPI
      +      mode 2.
      +    * configs/pic32mx7mmb/nsh/defconfig:  MMC/SD card support is now
      +      enabled by default in the PIC32MX7 MMB board configuration.
      +    * configs/pic32mx7mmb/nsh/defconfig:  Verified the USB Mass Storage
      +      Class (MSC) using MMC/SD card as the logical unit.  Updated the default
      +      PIC32MX7 MMB board configuration so that USB and the mass storage class
      +      are enabled by default.
      +    * drivers/lcd/mio283qt2.c and include/nuttx/lcd/mio283qt2.h:  Add generic
      +      support for the MIO283QT2 LCD.
      +    * configs/pic32mx7mmb/src/up_mio283qt2.c:  Add support for the MIO283QT2
      +      LCD on the PIC32MX7 MMB board.
      +    * configs/pic32mx7mmb/src/up_touchscreen.c:  Add an ADC-based touchscreen
      +      driver for the PIC32MX7 MMB board.  Kind of works, but needs more
      +      verification and tuning.
      +    * arch/mips/src/common/up_idle.c:  Strange but important fix.  For some still-
      +      unknown reason, interrupts are left in an unhealthy state in the IDLE
      +      when the work queue is enabled.  This is partially because some interrupt
      +      related logic is not built in that case.  Simply disabling then re-
      +      enabling interrupts restores the proper state.
      +    * graphics/nxglib/lcd/nxglib_filltrapezoid.c and fb/nxglib_filltrapezoid.c:
      +      Fix an error when the trapezoid is only 1 line high.  In this case, a
      +      divide by zero error would occur.  The fix is to draw the 1 line high
      +      trapezoid as a run.
      +    * drivers/usbdev/pl2303.c:  Fixe a cut'n'paste error that snuck into
      +      the PL2303 emulation driver several months back.
       
      -apps-6.18 2012-05-19 Gregory Nutt <gnutt@nuttx.org>
      +apps-6.19 2012-06-15 Gregory Nutt <gnutt@nuttx.org>
       
      -    * Kconfig:  Continued Kconfig file updates (no longer tracking on a per-file
      -      basis in the ChangeLog)
      -    * apps/examples/watchdog:  Add a watchdog timer example.
      -    * apps/examples/tiff:  Fix wrong path used for temporary file.
      -    * apps/examples/touchscreen:  Standardize the board-specific, touchscreen
      -      initialization interfaces.
      +    * 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
      +      option because then you can still use the serial console to debug with.
      +    * apps/nshlib/nsh_usbdev.c:  User now has to press ENTER 3 times before
      +      USB console will start.  Otherwise, the USB console starts before there
      +      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 <gnutt@nuttx.org>
      +NxWidgets-1.2 2012-06-15 Gregory Nutt <gnutt@nuttx.org>
       
      -    * 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 <gnutt@nuttx.org>
       
      diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes
      index e0dce0607..6c5770415 100644
      --- a/nuttx/ReleaseNotes
      +++ b/nuttx/ReleaseNotes
      @@ -2837,3 +2837,82 @@ Bugfixes (see the change log for details) :
       
           * 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   
      +
      +That command will mount the remote NFS server directory  at
      + on the target machine.   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)
      diff --git a/nuttx/fs/nfs/rpc.h b/nuttx/fs/nfs/rpc.h
      index 6c3415c81..27366557d 100644
      --- a/nuttx/fs/nfs/rpc.h
      +++ b/nuttx/fs/nfs/rpc.h
      @@ -142,25 +142,12 @@
       #define RPCMNT_PATHLEN   1024
       #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. */
       
       #define PMAPPORT         111
       #define PMAPPROG         100000
       #define PMAPVERS         2
      +
       #define PMAPPROC_NULL    0
       #define PMAPPROC_SET     1
       #define PMAPPROC_UNSET   2
      @@ -168,36 +155,8 @@
       #define PMAPPROC_DUMP    4
       #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
       
      -/* 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
        ****************************************************************************/
      @@ -504,19 +463,15 @@ struct rpc_reply_setattr
       
       struct  rpcclnt
       {
      -  nfsfh_t rc_fh;              /* File handle of root dir */
      -  char    *rc_path;           /* server's path of the directory being mount */
      +  nfsfh_t  rc_fh;             /* File handle of the root directory */
      +  char    *rc_path;           /* Server's path of the mounted directory */
       
         struct  sockaddr *rc_name;
         struct  socket *rc_so;      /* RPC socket */
       
      -  uint8_t rc_clntflags;       /* For RPCCLNT_* flags  */
      -  uint8_t rc_sotype;          /* Type of socket */
      -  uint8_t rc_retry;           /* Max retries */
      -
      -  /* These describe the current RPC call */
      -
      -  uint8_t rc_callflags;       /* For RPCCALL_* flags */
      +  bool     rc_timeout;        /* Receipt of reply timed out */
      +  uint8_t  rc_sotype;         /* Type of socket */
      +  uint8_t  rc_retry;          /* Max retries */
       };
       
       /****************************************************************************
      diff --git a/nuttx/fs/nfs/rpc_clnt.c b/nuttx/fs/nfs/rpc_clnt.c
      index a530c6c02..08855647c 100644
      --- a/nuttx/fs/nfs/rpc_clnt.c
      +++ b/nuttx/fs/nfs/rpc_clnt.c
      @@ -167,12 +167,6 @@ static int rpcclnt_send(FAR struct rpcclnt *rpc, int procid, int prog,
         ssize_t nbytes;
         int error = OK;
       
      -  DEBUGASSERT(rpc && call);
      -
      -  /* Assume that we will not have to resend */
      -
      -  rpc->rc_callflags &= ~RPCCALL_MUSTRESEND;
      -
         /* Send the call message
          *
          * 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));
         if (nbytes < 0)
           {
      -      /* psock_sendto failed,  Sample the error value (subsequent
      -       * calls can change the errno value!)
      -       */
      +      /* psock_sendto failed */
       
             error = errno;
             fdbg("ERROR: psock_sendto failed: %d\n", error);
      -
      -      rpc->rc_callflags |= RPCCALL_MUSTRESEND;
           }
       
         return error;
      @@ -212,11 +202,6 @@ static int rpcclnt_receive(FAR struct rpcclnt *rpc, FAR struct sockaddr *aname,
         ssize_t nbytes;
         int error = 0;
       
      -  if (rpc->rc_so == NULL)
      -    {
      -      return EACCES;
      -    }
      -
         socklen_t fromlen = sizeof(struct sockaddr);
         nbytes = psock_recvfrom(rpc->rc_so, reply, resplen, 0, aname, &fromlen);
         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);
         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 
                * message again.
      @@ -256,24 +241,23 @@ static int rpcclnt_reply(FAR struct rpcclnt *rpc, int procid, int prog,
       
               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 */
       
      -  replyheader = (FAR struct rpc_reply_header *)reply;
      -  rxid        = replyheader->rp_xid;
      -
      -  if (replyheader->rp_direction != rpc_reply)
      +  else
           {
      -      fdbg("ERROR: Different RPC REPLY returned\n");
      -      rpc_statistics(rpcinvalid);
      -      rpc->rc_callflags |= RPCCALL_MUSTRESEND;
      -      error = EPROTO;
      -      return error;
      +      replyheader = (FAR struct rpc_reply_header *)reply;
      +      rxid        = replyheader->rp_xid;
      +
      +      if (replyheader->rp_direction != rpc_reply)
      +        {
      +          fdbg("ERROR: Different RPC REPLY returned\n");
      +          rpc_statistics(rpcinvalid);
      +          error = EPROTO;
      +        }
           }
       
         return OK;
      @@ -596,12 +580,9 @@ bad:
       
       void rpcclnt_disconnect(struct rpcclnt *rpc)
       {
      -  struct socket *so;
      -
         if (rpc->rc_so != NULL)
           {
      -      so = rpc->rc_so;
      -      (void)psock_close(so);
      +      (void)psock_close(rpc->rc_so);
           }
       }
       
      @@ -748,7 +729,8 @@ int rpcclnt_request(FAR struct rpcclnt *rpc, int procnum, int prog,
             /* Do the client side RPC. */
       
             rpc_statistics(rpcrequests);
      -
      +      rpc->rc_timeout = false;
      +  
             /* Send the RPC CALL message */
       
             error = rpcclnt_send(rpc, procnum, prog, request, reqlen);
      @@ -770,7 +752,7 @@ int rpcclnt_request(FAR struct rpcclnt *rpc, int procnum, int prog,
       
             retries++;
           }
      -  while ((rpc->rc_callflags & RPCCALL_MUSTRESEND) != 0 && retries <= rpc->rc_retry);
      +  while (rpc->rc_timeout && retries <= rpc->rc_retry);
       
         if (error != OK)
           {