summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NxWidgets/ChangeLog.txt8
-rw-r--r--NxWidgets/README.txt2
-rw-r--r--NxWidgets/ReleaseNotes.txt78
-rw-r--r--NxWidgets/TODO.txt65
-rw-r--r--NxWidgets/nxwm/include/ctaskbar.hxx4
-rw-r--r--NxWidgets/nxwm/include/cwindowmessenger.hxx6
-rw-r--r--NxWidgets/nxwm/src/ctaskbar.cxx4
-rwxr-xr-xapps/ChangeLog.txt4
-rw-r--r--apps/examples/README.txt2
-rw-r--r--nuttx/ChangeLog8
-rw-r--r--nuttx/Documentation/NuttX.html383
-rw-r--r--nuttx/ReleaseNotes83
-rwxr-xr-xnuttx/configs/stm3240g-eval/README.txt1
-rw-r--r--nuttx/graphics/nxtk/nxtk_drawframe.c2
14 files changed, 443 insertions, 207 deletions
diff --git a/NxWidgets/ChangeLog.txt b/NxWidgets/ChangeLog.txt
index 1a51aacda..80101c920 100644
--- a/NxWidgets/ChangeLog.txt
+++ b/NxWidgets/ChangeLog.txt
@@ -2,7 +2,7 @@
* The initial release of the NxWidgets package
-1.1 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>
+1.1 2012-05-19 Gregory Nutt <gnutt@nuttx.org>
* Updated and verified the NxWidgets DOxygen documentation. Contributed
by Jose Pablo Carballo.
@@ -93,14 +93,14 @@
* NXWidgets::CNxTkWindow: Reported size of a framed window must exclude the
height of the tool bar (if present)
* TODO.txt: Add a file to keep track of issues.
-* NXWidgets::CStartWindow and IApplicationFactory: This is a substantial
+* NxWM::CStartWindow and IApplicationFactory: This is a substantial
redesign. IApplication wraps an application. However, if we want to
be able to start multiple copies of an application, then we need to
be able to create multiple IApplication instances from the start window.
Enter IApplicationFactory. Icons in the start window now correspond
to application factories; icons in the task bar no correspond to
application instances.
-* NXWidgetes::CStartWindow and CWindowControl: The above change necessitated
+* NxWM::CStartWindow and CWindowControl: The above change necessitated
another architectural change: When create applications, it is sometimes
necessary to wait for windows events. The above change moved the
application creation to the window event thread, hence, causing deadlocks
@@ -109,3 +109,5 @@
asynchronously and can wait for windoew events.
* doc/NxWM-ThreadingModel.ppt: Documented the now rather complex NxWM
threading model.
+
+1.2 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>
diff --git a/NxWidgets/README.txt b/NxWidgets/README.txt
index e4ed3be3a..7bb16820c 100644
--- a/NxWidgets/README.txt
+++ b/NxWidgets/README.txt
@@ -74,7 +74,7 @@ nxwm
small display.
The window manager consists of a task bar with icons representing the
- running tasks. If you touch the tas'ks icon, it comes to the top. Each
+ running tasks. If you touch the task's icon, it comes to the top. Each
window has a toolbar with (1) a title, (2) a minimize button, and (3) a
stop application button using the standard icons for these things.
diff --git a/NxWidgets/ReleaseNotes.txt b/NxWidgets/ReleaseNotes.txt
index dea4771a3..d140d45d1 100644
--- a/NxWidgets/ReleaseNotes.txt
+++ b/NxWidgets/ReleaseNotes.txt
@@ -1,9 +1,69 @@
-NxWidgets-1.0
-=============
-
-The initial version of NxWidgets was released on March 22, 2012. This
-package has been used in several projects prior to its release to open
-source and is considered stable its initial release (although not all
-features have been fully verified).
-
-
+NxWidgets-1.0
+=============
+
+The initial version of NxWidgets was released on March 22, 2012. This
+package has been used in several projects prior to its release to open
+source and is considered stable its initial release (although not all
+features have been fully verified).
+
+NxWidgets-1.1
+=============
+
+The 2nd release of the NxWidgets package as made on May 19, 2012. The
+headline new feature in this release is:
+
+* NxWM, the tiny window manager based on NX and NxWidgets. NxWM is true
+ multiple window manager but only one window is displayed at a time.
+ This simplification helps performance on LCD based products (in the
+ same way that a tiled window manager helps) and also makes the best
+ use of small displays. It is awkward from a human factors point-of-view
+ trying to manage multiple windows on a small display.
+
+ The window manager consists of a task bar with icons representing the
+ running tasks. If you touch the task's icon, it comes to the top. Each
+ window has a toolbar with (1) a title, (2) a minimize button, and (3) a
+ stop application button using the standard icons for these things. User
+ input via a touchscreen or mouse and keyboard is supported.
+
+ There is always a start window that is available in the task bar. When
+ you touch the start window icon, it brings up the start window containing
+ icons representing all of the available applications. If you touch an
+ icon in the start window, it will be started and added to the task bar.
+
+ There is a base class that defines an add-on application and an
+ interface that supports incorporation of new application. The only
+ application that is provided is NxConsole. This is an NSH session
+ running in a window. You should be able to select the NX icon in the start
+ menu and create as many NSH sessions in windows as you want. (keybard input
+ still comes through serial).
+
+ This initial realease of NxWM should be considered an alpha release.
+ All know issues are listed in the top-level TODO list.
+
+Other important new features include:
+
+* NxWidgets::IBitmap and NxWidgets::CRlePalettBitmap: Extended to
+ support different color look-up-tables (LUTs). This allows images
+ to be highlighted when touched, for example.
+* NxWidgets::CImage: Extended to support button-like behavior. CImage
+ widgets now work well as touchable icons.
+* NxWidgets::CWidgetControl: Add a semaphore to force clients to wait if the
+ size or position of the window is not yet known (multi-user mode only).
+ Enabled and verified creation of framed windows.
+* NxWidgets::CWindowEventHandler and NxWidgets::CWindowEventHandler: Add
+ support for getting callbacks for window events.
+* DOxygen documentation support. Contributed by Jose Pablo Carballo.
+
+An effort is underway to simplify NxWidgets and reduce its memory footprint:
+
+* NxWidgets::CNxWidget: Removed support for "shelving" widgets, reference
+ constants, and close types. Remove all support for widgets in a "vertical"
+ hierarchy. Now widgets exist in a flat, two-dimensional space and should
+ not overlap. Removed built-in modal loops.
+
+Bug fixes include changes to the following (see the ChangeLog for details):
+
+* NxWidgets::CRlePalettBitmap, NxWidgets::CRlePalettBitmap,
+ NxWidgets::CGraphicsPort, NxWidgets::CWidgetControl
+
+
diff --git a/NxWidgets/TODO.txt b/NxWidgets/TODO.txt
index 009ce9039..6264d2f3d 100644
--- a/NxWidgets/TODO.txt
+++ b/NxWidgets/TODO.txt
@@ -4,6 +4,24 @@ NxWidgets
NxWM
----
+ (3) General issues
+ (3) NxConsole issues
+ (1) Platform specific issues
+
+o General NxWM Issues
+ -------------------
+
+ Title: DISPLAY INTIALIZATION
+ Description: During the initialization of the display, the basic frame of the
+ start window is draw momentarily. The is just the empty window
+ frame. This is a consequence of how NX creates windows: The
+ are enabled all of the time so the windows are visible when they
+ are being created. The solution would be to add some disable
+ logic in NX so that that nothing gets displayed when a window
+ is created until it is fully initialized and enable.
+ Status: Open
+ Priority: Medium
+
Title: DRAGGING ACROSS WINDOWS
Description: Need some indication if the touch/mouse drags from one window to
another then is release. Release event is lost in this case.
@@ -26,6 +44,20 @@ NxWM
Status: Open
Priority: Medium low
+ Title: THREAD SAFETY
+ Description: I am not sure how thread-safe the NxWidgets are. There is
+ is very little mutli-thread in the widgets now. The "NX listener"
+ thread interacts to update mouse (and keyboard) data but all
+ of the heavy work is done on the "start window" thread. I think
+ everything is okay now, but it may be necessary in the future
+ to introduce some semaphore protection in theCWidgetControl methods
+ to make them thread safe.
+ Status: Open
+ Priority: Low
+
+o NxConsole Issues
+ ----------------
+
Title: MULTIPLE COPIES OF AN NxCONSOLE
Description: From the start window, you an create multiple copies of the
NxConsole. However, there is a problem in the current
@@ -41,5 +73,34 @@ NxWM
port. The necessary change is to create an NX input device for
/dev/console that will get its input from NX.
Status: Open
- Priority: Medium High
- \ No newline at end of file
+ Priority: Medium high, basically prohibits the use of multiple NSH windows.
+
+ Title: CLOSING AN NxCONSOLE
+ Description: If you open multiple NxConsole applications, they all receive
+ serial input (as noted in the previous bug). However, if
+ you close one of the NxConsoles, then the others no longer
+ received input (or no long generate output -- that cannot be
+ distinguished).
+ Status: Open
+ Priority: Medium high, basically prohibits the use of multiple NSH windows.
+
+ Title: DOUBLE DISPLAY UPDATES
+ Description: When the NxConsole window is first opened, there are usually
+ double updates, i.e., the display forms twice.
+ Status: Open
+ Priorioty: Low, this would be necessary to fix to productize the windows.
+
+o Platform specific issues
+ ------------------------
+
+ Title: MISSING TOUCH RELEASE
+ Description: Using the STM3240G-EVAL board with the STMPE11 touchscreen, you
+ will find that there are occasional missing indications of when
+ you release a icon. This is believed to be a data overrun in the
+ STPMPE11 data path. The STMPE11 generates data a very high
+ rate and it is believe that it sometimes misses the interrupt
+ that indicates that the touch is released. The symptom in NxWM
+ is that you touch an icon, it is highlighted but when you release
+ the touch nothing happens. The icon stays highlighted. Touching
+ the icon again usually works around this problem.
+ Status: Open
diff --git a/NxWidgets/nxwm/include/ctaskbar.hxx b/NxWidgets/nxwm/include/ctaskbar.hxx
index c8468877a..2578a3ce9 100644
--- a/NxWidgets/nxwm/include/ctaskbar.hxx
+++ b/NxWidgets/nxwm/include/ctaskbar.hxx
@@ -120,8 +120,8 @@ namespace NxWM
* widget constructor
*
* NOTE: Actually, NxWM uses the CWindowMessenger class that inherits from
- * CWidgetControl. That class just adds some unrelated messenging capability;
- * It cohabitates with CWidgetControl only becuase it nees the CWidgetControl
+ * CWidgetControl. That class just adds some unrelated messaging capability;
+ * It cohabitates with CWidgetControl only becuase it needs the CWidgetControl
* this point.
*/
diff --git a/NxWidgets/nxwm/include/cwindowmessenger.hxx b/NxWidgets/nxwm/include/cwindowmessenger.hxx
index d2e862a7c..11a48645b 100644
--- a/NxWidgets/nxwm/include/cwindowmessenger.hxx
+++ b/NxWidgets/nxwm/include/cwindowmessenger.hxx
@@ -72,11 +72,11 @@ namespace NxWM
/**
* The class CWindowMessenger integrates the widget control with some special
- * handling of mouse and keyboard inputs neesed by NxWM. It use used
+ * handling of mouse and keyboard inputs needs by NxWM. It use used
* in place of CWidgetControl whenever an NxWM window is created.
*
- * CWindowMessenger cohabitates with CWidgetControl only becuase it nees the
- * CWidgetControl as an argument in its messenging.
+ * CWindowMessenger cohabitates with CWidgetControl only because it needs the
+ * CWidgetControl as an argument in its messaging.
*/
class CWindowMessenger : public NXWidgets::CWindowEventHandler,
diff --git a/NxWidgets/nxwm/src/ctaskbar.cxx b/NxWidgets/nxwm/src/ctaskbar.cxx
index 6b0510017..2130293c2 100644
--- a/NxWidgets/nxwm/src/ctaskbar.cxx
+++ b/NxWidgets/nxwm/src/ctaskbar.cxx
@@ -759,8 +759,8 @@ void CTaskbar::clickIcon(int index, bool click)
* widget constructor
*
* NOTE: Actually, NxWM uses the CWindowMessenger class that inherits from
- * CWidgetControl. That class just adds some unrelated messenging capability;
- * It cohabitates with CWidgetControl only becuase it nees the CWidgetControl
+ * CWidgetControl. That class just adds some unrelated messaging capability;
+ * It cohabitates with CWidgetControl only becuase it needs the CWidgetControl
* this point.
*/
diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt
index 9934e1fe4..75d5c2b09 100755
--- a/apps/ChangeLog.txt
+++ b/apps/ChangeLog.txt
@@ -220,7 +220,7 @@
* Kconfig, */Kconfig: Added skeleton Kconfig files to all directories that
may need them.
-6.18 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>
+6.18 2012-05-19 Gregory Nutt <gnutt@nuttx.org>
* Kconfig: Continued Kconfig file updates (no longer tracking on a per-file
basis in the ChangeLog)
@@ -228,3 +228,5 @@
* apps/examples/tiff: Fix wrong path used for temporary file.
* apps/examples/touchscreen: Standardize the board-specific, touchscreen
initialization interfaces.
+
+6.19 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>
diff --git a/apps/examples/README.txt b/apps/examples/README.txt
index f11b92b51..4330224b0 100644
--- a/apps/examples/README.txt
+++ b/apps/examples/README.txt
@@ -811,7 +811,7 @@ examplex/nxlines
in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
(there really is no meaningful default).
CONFIG_EXAMPLES_NXLINES_BORDERWIDTH -- The width of the circular border
- drawn in the background window. (default: 4).
+ drawn in the background window. (default: 16).
CONFIG_EXAMPLES_NXLINES_BORDERCOLOR -- The color of the circular border
drawn in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
(there really is no meaningful default).
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 3845c66a8..e1be49d58 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -2653,7 +2653,7 @@
driver interface.
* drivers/watchdog.c: The "upper half" watchdog timer driver.
-6.18 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>
+6.18 2012-05-19 Gregory Nutt <gnutt@nuttx.org>
* Kconfig: Continued Kconfig file updates (no longer tracking on a per-file
basis in the ChangeLog)
@@ -2761,7 +2761,7 @@
* sched/sched_mergepending.c: Add task switching instrumentation. There is a case
here where instrumentation was missing. Contributed by Petri Tanskanen.
* CONFIG_STMPE11_THRESHX, CONFIG_STMPE11_THRESHX, and drivers/stmpe11_tsc.c: Add some
- threasholding controls to all slow down processing of touchscreen samples.
+ 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
@@ -2769,7 +2769,7 @@
* 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 not uses the STMPE11
+ * configs/stm3240g-eval/nxwm/defconfig: The default NxWM now uses the STMPE11
touchscreen.
* include/cxx/csched: Added
* graphic/nxmu/nxmu_sendserver.c, nxmu_sendwindow.c, and nxmu_sendclient.c:
@@ -2779,3 +2779,5 @@
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.
+
+6.19 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index 5c9748ad9..87383058b 100644
--- a/nuttx/Documentation/NuttX.html
+++ b/nuttx/Documentation/NuttX.html
@@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4">
<td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
- <p>Last Updated: May 8, 2012</p>
+ <p>Last Updated: May 19, 2012</p>
</td>
</tr>
</table>
@@ -717,6 +717,15 @@
</li>
</p>
</tr>
+<tr>
+ <td><br></td>
+ <td>
+ <p>
+ <li>
+ <a href="NxWidgets.html">NxWM</a>: NxWM is the tiny NuttX window manager based on NX and NxWidgets.
+ </li>
+ </p>
+</tr>
<tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
@@ -941,65 +950,46 @@
</tr>
</table>
-<h2>NuttX-6.17 Release Notes</h2>
+<h2>NuttX-6.18 Release Notes</h2>
<p>
- The 84<sup>th</sup> release of NuttX, Version 6.17, was made on April 14, 2012, and is available for download from the
+ The 85<sup>th</sup> release of NuttX, Version 6.18, was made on May 19, 2012, and is available for download from the
<a href="http://sourceforge.net/projects/nuttx/files/">SourceForge</a> website.
- Note that the release consists of two tarballs: <code>nuttx-6.17.tar.gz</code> and <code>apps-6.17.tar.gz</code>.
+ Note that the release consists of two tarballs: <code>nuttx-6.18.tar.gz</code> and <code>apps-6.18.tar.gz</code>.
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>.
Unreleased changes after this release are available in SVN.
These unreleased changes are also listed <a href="#pendingchanges">here</a>.
</p>
-
+<p>
+ 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.
+</p>
<p><b>New Features</b>.
New or extended features in this release include:
</p>
<ul>
- <li><b>Networking</b>.
- Additional low-level, thread-independent socket interfaces (for NFS client support).
- </li>
- <li><b>RTC</b>.
- Added a new interface call <code>clock_synchronize()</code>.
- This function will reload the system time from an RTC and is required when the system re-awakens from certain deep-sleep modes.
- </li>
- <li><b>Graphics</b>.
- Add <i>NxConsole</i>.
- This is a character device driver that wraps an NX window and can be re-directed for <code>stdout</code>.
- This allows, for example, a pop-up graphics window that contains a <i>NuttShell</i> (NSH) session.
- A test of <i>NxConsole</i> is available at <code>apps/examples/nxconsole</code>.
- </li>
- <li><b>Watchdog Drivers</b>.
- Added an interface definition an &quot;upper half&quot; driver to support watchdog timers.
+ <li><b>Drivers</b>.
+ Added a watchdog timer driver infrastructure.
+ Add general support for STMicro STMPE11 I/O Expander/touchscreen device.
</li>
- <li><b>Calypso</b>.
- Support for TI Calypso-based cellphones (as supported by the <i>Osmocom-BB</i> project) was contributed by members of the <i>Osmocom-BB</i> team.
- This includes configurations for the Compal e88 and e99 phones.
- </li>
- <li><b>USB Device Interface</b>.
- Needed to extend the USB device interface because there was no mechanism for passing endpoint OUT data that may need to accompany a setup request.
- </li>
- <li><b>STM32 drivers</b>.
- Added some power management controls for entering reduced power consumption states.
- An OTG FS driver was completed and partially verified
- (this driver seems to be functional but since it has been test so lightly, it might better be listed in the next section &quot;Work in progress&quot;).
+ <li><b>STM32</b>.
+ 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).
</li>
- <li><b>PIC32 drivers</b>.
- The PIC32 Ethernet driver is now stable.
- The PIC32 USB device controller driver is now functional (but not yet stable).
+ <li><b>STM3240G-EVAL Board</b>.
+ Add support for the LCD and for the STMPE11 I/O Expander as a touchscreen controller.
</li>
- <li><b>PIC32 boards</b>.
- Added support for the Sure DB-DP11212 PIC32 General Purpose Demo Board.
- There is now a PIC32 Starter Kit that provides NSH only through a Telnet connection.
+ <li><b>PIC32 Boards</b>.
+ Board support for the Mikroelektronika PIC32MX7 Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board.
</li>
- <li><b>Build System</b>.
- Some header files were moved into <code>include/nuttx</code>.
- The goal is to move any non-standard header files to <code>include/nuttx</code> or <code>include/arch</code>.
- Moved <code>include/math.h</code> to <code>include/nuttx/math.h</code>;
- this file is now only instantiated as the <i>system</i> <code>math.h</code> if <code>CONFIG_ARCH_MATH_H=y</code> is defined.
+ <li><b>NX</b>.
+ Framed windows are now draw in three colors instead of just two.
+ Numerous other extensions needed to support NxWM (see the ChangeLog for details).
</li>
- <li><b>Tools</b>.
- Added <code>tools/cmpconfig.c</code>, a tool for comparing two configuration files.
+ <li><b>Library</b>.
+ Add <code>prctl()</code> 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.
</li>
</ul>
@@ -1023,19 +1013,37 @@
<p><b>Bugfixes</b>:</p>
<ul>
- <li><b>Networking</b>.
- Corrected a deadlock that only occurred when executing the NSH <code>ifconfig</code> command over Telnet.
- <li><b>File system</b>.
- Fix incorrect return errno value from <code>read()</code> when the file is opened write-only.
- <li><b>Graphics</b>.
- Fix several compilation errors that have crept into the multi-user NX server because of lack of use.
- <li><b>STM32</b>.
- In order to use CAN2, both CAN1 and CAN2 clocking must be enabled.
- Fixed a troublesome bug in the STM32 F4 I2C driver that resulted in timeouts.
- <li><b>LPC17xx</b>.
- Fixes for errors the crept in the LPC17xx DAC logic (Contributed by Lzyy).
- <li><b>Build System</b>.
- Reordered the link command line to account for new versions of <code>libgcc.a</code> that require symbols from the application (<code>abort()</code>).
+ <li><b<code>sched_setscheduler()</code></b>.
+ Correct return value (Contributed by Richard Cochran).
+ </li>
+ <li><b>stdio</b>.
+ Ignore <code>CONFIG_STDIO_LINEBUFFER</code> if the file was opened in binary mode.
+ </li>
+ <li><b><code>fopen()</code></b>.
+ Correct an error in parsing open mode string.
+ </li>
+ <li><b>Standard serial driver</b>.
+ Improved performance be reducing the amount of time that Rx interrupts are disabled.
+ </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>
</ul>
<p>
See the <a href="#currentrelease">ChangeLog</a> for additional, detailed changes.
@@ -1567,8 +1575,8 @@
and other features.
</li>
<li>
- Additional drivers and configurations were added in NuttX 6.13 for the STM32 F1 and F4.
- F1 compatible drivers include an Ethernet driver, ADC driver, DAC driver, PWM driver, and a CAN driver.
+ Additional drivers and configurations were added in NuttX 6.13 and later releases for the STM32 F1 and F4.
+ F1 compatible drivers include an Ethernet driver, ADC driver, DAC driver, PWM driver, IWDG, WWDG, and CAN drivers.
</li>
</ul>
<p>
@@ -1847,7 +1855,8 @@
Networking intensions include support for Telnet NSH sessions and new configurations for DHPCD and the networking test (nettest).
A more complete port would include support for SDIO and USB OTG which are not available in NuttX 6.13.
The USB OTG device controller driver, and LCD driver and a function I2C driver were added in NuttX 6.17.
- A touchscreen driver for the STM3240G-EVAL based on the STMPE11 I/O expander was added in NuttX 6.18.
+ STM32 IWDG and WWDG watchdog timer drivers were added in NuttX 6.18 (should be compatible with F1 and F2).
+ An LCD driver and a touchscreen driver for the STM3240G-EVAL based on the STMPE11 I/O expander were also added in NuttX 6.18.
</p>
</ul>
</td>
@@ -2849,125 +2858,141 @@ Other memory:
</table>
<ul><pre>
-nuttx-6.17 2012-04-14 Gregory Nutt &lt;gnutt@nuttx.org&gt;
-
- * configs/sure-pic32mx: Add support for the Sure DB-DP11212 PIC32 General
- Purpose Demo Board
- * arch/arm/src/stm32/stm32_usbhost.c/.h: Add files that will (eventually)
- hold an STM32 USB host driver (the initial check-in is the NuttX LPC17
- USB host driver with name changes only).
- * arch/arm/src/stm32/chip/stm32_otgfs.h: STM32 USB OTG FS register
- definitions (not complete on initial check-in).
- * net/connect.c: Add another low level, thread-independent socket interface
- for use within the OS.
- * arch/mips/src/pic32mx/pic32mx_ethernet.c: The PIC32 Ethernet driver
- is now stable on the PIC32 Starter Kit.
- * configs/pic32-starterkit/nsh2: Add a PIC32 Ethernet Starter Kit NSH
- configuration that has no serial console; all interaction is done via
- Telnet.
- * net/netdev_sem.c: Correct a deadlock condition by making a seamphore
- recursive. To my knowledge this deadlock only occurs when running the
- NSH command ifconfig over Telnet. In that case the function netdev_foreach
- takes the network device semaphore, but so does the telnet logic causing
- the deadlock.
- * arch/arm/src/stm32/stm32_pm*.c: Add basic STM32 power management logic
- that will eventually be used to implement low power states.
- * arch/arm/src/stm32/stm32f*0xx_rcc.c: In order to use CAN2, both CAN1 and
- CAN2 clocking must be enabled.
- * arch/mips/src/pic32mx/picm32mx-usbdev.c: Several stall-related fixes so that
- the USB device driver can used the the mass storage class (which does a LOT
- of stalling as part of its normal protocol). The PIC32 USB Mass Storage
- device is, however, still non-functional when debug is OFF.
- * include/nuttx/fs: Move all file-system related files from include/nuttx to
- include/nuttx/fs.
- * include/nuttx/serial: Move all serial-driver related files from include/nuttx to
- include/nuttx/serial.
- * include/nuttx/clock.h and sched/clock_initialize.c: Add a new OS interface
- called clock_sychronize() that can be used to re-synchronize the NuttX
- system time with a hardware RTC. This function is called normally at power
- up but may also need to be called when recovering from certain low-power
- usage states where the system time is no longer accurate.
- * arch/arm/src/calypso and arch/arm/include/calypso: Support for the TI "Calypso"
- phone processor. Contributed by Denis Carilki and includes the work of Denis,
- Alan Carvalho de Assis, and Stefan Richter.
- * configs/compal_e88 and configs/compal_e99: Support for Compal e88 and e99 phones
- Contributed by Denis Carilki and includes the work of Denis, Alan Carvalho de
- Assis, and Stefan Richter.
- * arch/arm/src/lpc17xx: Several fixes for error that have crept in for the LPC17xx
- DAC. Contributed by by Lzyy.
- * graphics/nxconsole: Add a character driver that can be used as a console output
- device for text output (still under development on initial check-in).
- * graphics/nxmu: Fix several compilation errors that have crept into the multi-
- user NX server because of lack of use.
- * graphics/nxconsole: The NX text console is basically function (in multi-
- user NX mode only).
- * arch/arm/src/stm32/stm32_i2c.c: Correct a bug in the STM32 I2C driver. The
- behavior of I2C status bits seems to be different between F1 and F4.
- * configs/stm3210e-eval/nxconsole: New STM32 F1 configuration that runs the
- NuttShell (NSH) within an NX window.
- * graphics/nxconsole/nxcon_sem.c: Add protection from re-entrance with debug
- is enabled.
- * include/nuttx/ascii.h and vt100.h: Header files to centralize ASCII and
- VT100 escape sequence definitions.
- * graphics/nxconsole/nxcon_vt100.c: Add add framework to support VT100 escape
- sequences in NxConsole.
- * fs/fs_read.c: Fix read() return value for attempt to read from write-only
- file or device. Was returning EBADF, should return EACCES.
- * graphics/nxconsole.c: NxConsole now supports backspace and a cursor.
- * Kconfig and arch/sim/Kconfig: Beginnings of support for a NuttX
- configuration tool. Currently using the kconfig parser 'kconfig-frontend'
- available at http://ymorin.is-a-geek.org/projects/kconfig-frontends
- (version 3.3.0-1 is also available in the NuttX SVN at
- trunk/misc/tools/kconfig-frontends-3.3.0-1.tar.gz). Contributed by Lzyy.
- * */Kconfig: Added skeleton Kconfig files to all directories that
- may need them.
- * include/nuttx/math.h: Moved include/math.h to include/nuttx/math.h
- because it conflicts too often with the system math.h (and people aren't
- inclined to read the documentation on how to handle this). Now, if
- CONFIG_ARCH_MATH_H=y is defined, the top-level makefile will copy
- the redirecting math.h header file from include/nuttx/math.h to
- include/math.h. So for the architectures that define CONFIG_ARCH_MATH_H=y,
- include/math.h will be in place as it was before; for the architectures
- that don't select CONFIG_ARCH_MATH_H, the redirecting math.h header
- file will stay out-of-the-way in include/nuttx/.
- * Kconfig, sched/Kconfig, lib/Kconfig, libxx/Kconfig, arch/sim/Kconfig,
- drivers/Kconfig, drivers/mtd/Kconfig, drivers/input/Kconfig
- drivers/analog/Kconfig, drivers/lcd/Kconfig: Updated kernel
- configuration support provided by Lzyy.
- * Kconfig: Many more Kconfig updates (no longer tracking in the ChangeLog)
- * arch/arm/src/Makefile, arch/x86/src/Makefile, arch/avr/src/Makefile,
- arch/mips/src/Makefile, arch/sim/src/Makefile, arch/hc/src/Makefile,
- arch/sh/src/Makefile: The libgcc.a in newer versions of GCC now
- have an dependency on an external implementation of export(). This
- required modification to the Makefiles that do the final link: Now
- libgcc.a must be included within the group of libraries that are
- search recursively.
- * arch/arm/srm/stm32/stm32_otgfsdev.c: A USB OTG FS device-side driver
- for the STM32 F4 (and maybe F2 and F1 connectivity line).
- * tools/cmpconfig.c: A tool for comparing two configuration files.
- * include/nuttx/usb/usbdev.h, drivers/usbdev/*, arch/*/src/*/*usb*.c:
- Extend the USB device side interface so that EP0 OUT data can be passed
- with OUT SETUP requests.
- * include/nuttx/watchdog.h: Add the definition of a standard watchdog
- driver interface.
- * drivers/watchdog.c: The "upper half" watchdog timer driver.
-
-apps-6.17 2012-04-14 Gregory Nutt &lt;gnutt@nuttx.org&gt;
-
- * apps/examples/can: Add conditional compilation so that the test can be
- configured to only send messages or to only receive messages. This will
- let the test work in other modes than simple loopback testing.
- * apps/examples/hello and apps/examples/ostest: Can now be built as NSH
- built-int functions.
- * vsn/hello: Removed. The modified apps/examples/hello is enough "Hello,
- World!"
- * apps/examples/nxconsole: Add a test of the NX console device.
- * apps/examples/nxconsole: The NX console example now supports running
- the NuttShell (NSH) within an NX window.
- * apps/system/readline: Now uses standard definitions from
- include/nuttx/ascii.h and vt100.h
- * Kconfig, */Kconfig: Added skeleton Kconfig files to all directories that
- may need them.
+nuttx-6.18 2012-05-19 Gregory Nutt &lt;gnutt@nuttx.org&gt;
+
+ * 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, &quot;r+&quot;, &quot;rb+&quot;,
+ and &quot;r+b&quot; 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/stmpe11_*: Added a driver to support the STMicro STMPE11
+ 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_stmpe11.c: Add board-specific support for the
+ the STMPE11 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/stmpe11_base.c and configs/stm3240g-eval: The STMPE11-based
+ touchscreen seems to work better with edge (vs. level) interrupts
+ * drivers/input/stmpe11_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/stmpe11_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/stmpe11_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_STMPE11_THRESHX, CONFIG_STMPE11_THRESHX, and drivers/stmpe11_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 STMPE11
+ 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.
+
+apps-6.18 2012-05-19 Gregory Nutt &lt;gnutt@nuttx.org&gt;
+
+ * 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.
NxWidgets-1.0 2012-03-22 Gregory Nutt &lt;gnutt@nuttx.org&gt;
diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes
index 8bbf00c30..49e915209 100644
--- a/nuttx/ReleaseNotes
+++ b/nuttx/ReleaseNotes
@@ -2754,3 +2754,86 @@ Bugfixes:
* Build System: Reordered the link command line to account for new
versions of libgcc.a that require symbols from the application
(abort()).
+
+NuttX-6.18
+^^^^^^^^^^
+
+The 85th release of NuttX, Version 6.18, was made on May 19, 2012,
+and is available for download from the SourceForge website. Note
+that release consists of two tarballs: nuttx-6.18.tar.gz and
+apps-6.18.tar.gz. Both may be needed (see the top-level nuttx/README.txt
+file for build information).
+
+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.
+
+New features and extended functionality:
+
+ * Drivers. Added a watchdog timer driver infrastructure. Add general
+ support for STMicro STMPE11 I/O Expander/touchscreen device.
+
+ * 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).
+
+ * STM3240G-EVAL Board. Add support for the LCD and for the STMPE11
+ I/O Expander as a touchscreen controller.
+
+ * PIC32 Boards. Board support for the Mikroelektronika PIC32MX7
+ Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board.
+
+ * 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).
+
+ * 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.
+
+Work in progress. This release includes some partially completed
+work that is still not ready for prime time.
+
+ * 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.
+
+ * 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) :
+
+ * sched_setscheduler() return value (Contributed by Richard Cochran).
+
+ * stdio. Ignore CONFIG_STDIO_LINEBUFFER if the file was opened in binary mode.
+
+ * fopen(). Correct an error in parsing open mode string.
+
+ * 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.
+
diff --git a/nuttx/configs/stm3240g-eval/README.txt b/nuttx/configs/stm3240g-eval/README.txt
index 0717f51c7..1c15be2ca 100755
--- a/nuttx/configs/stm3240g-eval/README.txt
+++ b/nuttx/configs/stm3240g-eval/README.txt
@@ -1004,6 +1004,7 @@ Where <subdir> is one of the following:
CONFIG_STM32_FSMC=y : FSMC support is required for the LCD
CONFIG_NX=y : Enable graphics suppport
+ CONFIG_MM_REGIONS=3 : When FSMC is enabled, so is the on-board SRAM memory region
8. This configuration requires that jumper JP22 be set to enable RS-232 operation.
diff --git a/nuttx/graphics/nxtk/nxtk_drawframe.c b/nuttx/graphics/nxtk/nxtk_drawframe.c
index 2530347d2..91745b323 100644
--- a/nuttx/graphics/nxtk/nxtk_drawframe.c
+++ b/nuttx/graphics/nxtk/nxtk_drawframe.c
@@ -213,7 +213,7 @@ int nxtk_drawframe(FAR struct nxtk_framedwindow_s *fwnd,
/* Draw the shadowed right outer edge */
- frame.pt1.x = wndsize.w - 2;
+ frame.pt1.x = wndsize.w - 1;
frame.pt2.x = frame.pt1.x;
nxtk_drawframeside(fwnd, &frame, bounds, g_bordercolor2);
#endif