Browse Source

Prep for 6.18 release

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4751 7fd9a85b-ad96-42d3-883c-3090e2eb8679
sbg
patacongo 13 years ago
parent
commit
232ce4e980
  1. 8
      NxWidgets/ChangeLog.txt
  2. 2
      NxWidgets/README.txt
  3. 78
      NxWidgets/ReleaseNotes.txt
  4. 65
      NxWidgets/TODO.txt
  5. 4
      NxWidgets/nxwm/include/ctaskbar.hxx
  6. 6
      NxWidgets/nxwm/include/cwindowmessenger.hxx
  7. 4
      NxWidgets/nxwm/src/ctaskbar.cxx
  8. 4
      apps/ChangeLog.txt
  9. 2
      apps/examples/README.txt
  10. 8
      nuttx/ChangeLog
  11. 383
      nuttx/Documentation/NuttX.html
  12. 83
      nuttx/ReleaseNotes
  13. 1
      nuttx/configs/stm3240g-eval/README.txt
  14. 2
      nuttx/graphics/nxtk/nxtk_drawframe.c

8
NxWidgets/ChangeLog.txt

@ -2,7 +2,7 @@
* The initial release of the NxWidgets package * 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 * Updated and verified the NxWidgets DOxygen documentation. Contributed
by Jose Pablo Carballo. by Jose Pablo Carballo.
@ -93,14 +93,14 @@
* NXWidgets::CNxTkWindow: Reported size of a framed window must exclude the * NXWidgets::CNxTkWindow: Reported size of a framed window must exclude the
height of the tool bar (if present) height of the tool bar (if present)
* TODO.txt: Add a file to keep track of issues. * 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 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 start multiple copies of an application, then we need to
be able to create multiple IApplication instances from the start window. be able to create multiple IApplication instances from the start window.
Enter IApplicationFactory. Icons in the start window now correspond Enter IApplicationFactory. Icons in the start window now correspond
to application factories; icons in the task bar no correspond to to application factories; icons in the task bar no correspond to
application instances. 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 another architectural change: When create applications, it is sometimes
necessary to wait for windows events. The above change moved the necessary to wait for windows events. The above change moved the
application creation to the window event thread, hence, causing deadlocks application creation to the window event thread, hence, causing deadlocks
@ -109,3 +109,5 @@
asynchronously and can wait for windoew events. asynchronously and can wait for windoew events.
* doc/NxWM-ThreadingModel.ppt: Documented the now rather complex NxWM * doc/NxWM-ThreadingModel.ppt: Documented the now rather complex NxWM
threading model. threading model.
1.2 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>

2
NxWidgets/README.txt

@ -74,7 +74,7 @@ nxwm
small display. small display.
The window manager consists of a task bar with icons representing the 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 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. stop application button using the standard icons for these things.

78
NxWidgets/ReleaseNotes.txt

@ -1,9 +1,69 @@
NxWidgets-1.0 NxWidgets-1.0
============= =============
The initial version of NxWidgets was released on March 22, 2012. This 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 package has been used in several projects prior to its release to open
source and is considered stable its initial release (although not all source and is considered stable its initial release (although not all
features have been fully verified). 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

65
NxWidgets/TODO.txt

@ -4,6 +4,24 @@ NxWidgets
NxWM 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 Title: DRAGGING ACROSS WINDOWS
Description: Need some indication if the touch/mouse drags from one window to Description: Need some indication if the touch/mouse drags from one window to
another then is release. Release event is lost in this case. another then is release. Release event is lost in this case.
@ -26,6 +44,20 @@ NxWM
Status: Open Status: Open
Priority: Medium low 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 Title: MULTIPLE COPIES OF AN NxCONSOLE
Description: From the start window, you an create multiple copies of the Description: From the start window, you an create multiple copies of the
NxConsole. However, there is a problem in the current 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 port. The necessary change is to create an NX input device for
/dev/console that will get its input from NX. /dev/console that will get its input from NX.
Status: Open Status: Open
Priority: Medium High 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

4
NxWidgets/nxwm/include/ctaskbar.hxx

@ -120,8 +120,8 @@ namespace NxWM
* widget constructor * widget constructor
* *
* NOTE: Actually, NxWM uses the CWindowMessenger class that inherits from * NOTE: Actually, NxWM uses the CWindowMessenger class that inherits from
* CWidgetControl. That class just adds some unrelated messenging capability; * CWidgetControl. That class just adds some unrelated messaging capability;
* It cohabitates with CWidgetControl only becuase it nees the CWidgetControl * It cohabitates with CWidgetControl only becuase it needs the CWidgetControl
* this point. * this point.
*/ */

6
NxWidgets/nxwm/include/cwindowmessenger.hxx

@ -72,11 +72,11 @@ namespace NxWM
/** /**
* The class CWindowMessenger integrates the widget control with some special * 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. * in place of CWidgetControl whenever an NxWM window is created.
* *
* CWindowMessenger cohabitates with CWidgetControl only becuase it nees the * CWindowMessenger cohabitates with CWidgetControl only because it needs the
* CWidgetControl as an argument in its messenging. * CWidgetControl as an argument in its messaging.
*/ */
class CWindowMessenger : public NXWidgets::CWindowEventHandler, class CWindowMessenger : public NXWidgets::CWindowEventHandler,

4
NxWidgets/nxwm/src/ctaskbar.cxx

@ -759,8 +759,8 @@ void CTaskbar::clickIcon(int index, bool click)
* widget constructor * widget constructor
* *
* NOTE: Actually, NxWM uses the CWindowMessenger class that inherits from * NOTE: Actually, NxWM uses the CWindowMessenger class that inherits from
* CWidgetControl. That class just adds some unrelated messenging capability; * CWidgetControl. That class just adds some unrelated messaging capability;
* It cohabitates with CWidgetControl only becuase it nees the CWidgetControl * It cohabitates with CWidgetControl only becuase it needs the CWidgetControl
* this point. * this point.
*/ */

4
apps/ChangeLog.txt

@ -220,7 +220,7 @@
* Kconfig, */Kconfig: Added skeleton Kconfig files to all directories that * Kconfig, */Kconfig: Added skeleton Kconfig files to all directories that
may need them. 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 * Kconfig: Continued Kconfig file updates (no longer tracking on a per-file
basis in the ChangeLog) basis in the ChangeLog)
@ -228,3 +228,5 @@
* apps/examples/tiff: Fix wrong path used for temporary file. * apps/examples/tiff: Fix wrong path used for temporary file.
* apps/examples/touchscreen: Standardize the board-specific, touchscreen * apps/examples/touchscreen: Standardize the board-specific, touchscreen
initialization interfaces. initialization interfaces.
6.19 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>

2
apps/examples/README.txt

@ -811,7 +811,7 @@ examplex/nxlines
in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
(there really is no meaningful default). (there really is no meaningful default).
CONFIG_EXAMPLES_NXLINES_BORDERWIDTH -- The width of the circular border 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 CONFIG_EXAMPLES_NXLINES_BORDERCOLOR -- The color of the circular border
drawn in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP drawn in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
(there really is no meaningful default). (there really is no meaningful default).

8
nuttx/ChangeLog

@ -2653,7 +2653,7 @@
driver interface. driver interface.
* drivers/watchdog.c: The "upper half" watchdog timer driver. * 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 * Kconfig: Continued Kconfig file updates (no longer tracking on a per-file
basis in the ChangeLog) basis in the ChangeLog)
@ -2761,7 +2761,7 @@
* sched/sched_mergepending.c: Add task switching instrumentation. There is a case * sched/sched_mergepending.c: Add task switching instrumentation. There is a case
here where instrumentation was missing. Contributed by Petri Tanskanen. here where instrumentation was missing. Contributed by Petri Tanskanen.
* CONFIG_STMPE11_THRESHX, CONFIG_STMPE11_THRESHX, and drivers/stmpe11_tsc.c: Add some * 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 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 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 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(); * 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 * sched/on_exit.c and include/nuttx/sched.h: Fix some old typos that caused
compilation errors when CONFIG_SCHED_ONEXIT is defined. 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. touchscreen.
* include/cxx/csched: Added * include/cxx/csched: Added
* graphic/nxmu/nxmu_sendserver.c, nxmu_sendwindow.c, and nxmu_sendclient.c: * 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 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 stale, queue window messages at the time that a window is destroyed, very bad
things happen. things happen.
6.19 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>

383
nuttx/Documentation/NuttX.html

@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4"> <tr align="center" bgcolor="#e4e4e4">
<td> <td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
<p>Last Updated: May 8, 2012</p> <p>Last Updated: May 19, 2012</p>
</td> </td>
</tr> </tr>
</table> </table>
@ -717,6 +717,15 @@
</li> </li>
</p> </p>
</tr> </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> <tr>
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
@ -941,65 +950,46 @@
</tr> </tr>
</table> </table>
<h2>NuttX-6.17 Release Notes</h2> <h2>NuttX-6.18 Release Notes</h2>
<p> <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. <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) Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information)
The change log associated with the release is available <a href="#currentrelease">here</a>. The change log associated with the release is available <a href="#currentrelease">here</a>.
Unreleased changes after this release are available in SVN. Unreleased changes after this release are available in SVN.
These unreleased changes are also listed <a href="#pendingchanges">here</a>. These unreleased changes are also listed <a href="#pendingchanges">here</a>.
</p> </p>
<p>
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>. <p><b>New Features</b>.
New or extended features in this release include: New or extended features in this release include:
</p> </p>
<ul> <ul>
<li><b>Networking</b>. <li><b>Drivers</b>.
Additional low-level, thread-independent socket interfaces (for NFS client support). Added a watchdog timer driver infrastructure.
</li> Add general support for STMicro STMPE11 I/O Expander/touchscreen device.
<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> </li>
<li><b>Calypso</b>. <li><b>STM32</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. Add support for the STM32 IWDG and WWDG watchodog timers.
This includes configurations for the Compal e88 and e99 phones. DMA now supports cicular buffer mode;
</li> serial driver now uses circular DMA to improve Rx performance (Contributed by Mike Smith).
<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> </li>
<li><b>PIC32 drivers</b>. <li><b>STM3240G-EVAL Board</b>.
The PIC32 Ethernet driver is now stable. Add support for the LCD and for the STMPE11 I/O Expander as a touchscreen controller.
The PIC32 USB device controller driver is now functional (but not yet stable).
</li> </li>
<li><b>PIC32 boards</b>. <li><b>PIC32 Boards</b>.
Added support for the Sure DB-DP11212 PIC32 General Purpose Demo Board. Board support for the Mikroelektronika PIC32MX7 Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board.
There is now a PIC32 Starter Kit that provides NSH only through a Telnet connection.
</li> </li>
<li><b>Build System</b>. <li><b>NX</b>.
Some header files were moved into <code>include/nuttx</code>. Framed windows are now draw in three colors instead of just two.
The goal is to move any non-standard header files to <code>include/nuttx</code> or <code>include/arch</code>. Numerous other extensions needed to support NxWM (see the ChangeLog for details).
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> </li>
<li><b>Tools</b>. <li><b>Library</b>.
Added <code>tools/cmpconfig.c</code>, a tool for comparing two configuration files. 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> </li>
</ul> </ul>
@ -1023,19 +1013,37 @@
<p><b>Bugfixes</b>:</p> <p><b>Bugfixes</b>:</p>
<ul> <ul>
<li><b>Networking</b>. <li><b<code>sched_setscheduler()</code></b>.
Corrected a deadlock that only occurred when executing the NSH <code>ifconfig</code> command over Telnet. Correct return value (Contributed by Richard Cochran).
<li><b>File system</b>. </li>
Fix incorrect return errno value from <code>read()</code> when the file is opened write-only. <li><b>stdio</b>.
<li><b>Graphics</b>. Ignore <code>CONFIG_STDIO_LINEBUFFER</code> if the file was opened in binary mode.
Fix several compilation errors that have crept into the multi-user NX server because of lack of use. </li>
<li><b>STM32</b>. <li><b><code>fopen()</code></b>.
In order to use CAN2, both CAN1 and CAN2 clocking must be enabled. Correct an error in parsing open mode string.
Fixed a troublesome bug in the STM32 F4 I2C driver that resulted in timeouts. </li>
<li><b>LPC17xx</b>. <li><b>Standard serial driver</b>.
Fixes for errors the crept in the LPC17xx DAC logic (Contributed by Lzyy). Improved performance be reducing the amount of time that Rx interrupts are disabled.
<li><b>Build System</b>. </li>
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>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> </ul>
<p> <p>
See the <a href="#currentrelease">ChangeLog</a> for additional, detailed changes. See the <a href="#currentrelease">ChangeLog</a> for additional, detailed changes.
@ -1567,8 +1575,8 @@
and other features. and other features.
</li> </li>
<li> <li>
Additional drivers and configurations were added in NuttX 6.13 for the STM32 F1 and F4. 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, and a CAN driver. F1 compatible drivers include an Ethernet driver, ADC driver, DAC driver, PWM driver, IWDG, WWDG, and CAN drivers.
</li> </li>
</ul> </ul>
<p> <p>
@ -1847,7 +1855,8 @@
Networking intensions include support for Telnet NSH sessions and new configurations for DHPCD and the networking test (nettest). 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. 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. 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> </p>
</ul> </ul>
</td> </td>
@ -2849,125 +2858,141 @@ Other memory:
</table> </table>
<ul><pre> <ul><pre>
nuttx-6.17 2012-04-14 Gregory Nutt &lt;gnutt@nuttx.org&gt; nuttx-6.18 2012-05-19 Gregory Nutt &lt;gnutt@nuttx.org&gt;
* configs/sure-pic32mx: Add support for the Sure DB-DP11212 PIC32 General * Kconfig: Continued Kconfig file updates (no longer tracking on a per-file
Purpose Demo Board basis in the ChangeLog)
* arch/arm/src/stm32/stm32_usbhost.c/.h: Add files that will (eventually) * arch/arm/src/stm32/stm32_iwdog.c and stm32_wwdog.c: Add the STM32 IWDG
hold an STM32 USB host driver (the initial check-in is the NuttX LPC17 and WWDIG watchdog timer driver.
USB host driver with name changes only). * configs/stm3240g-eval/src/up_lcd.c: Add LCD from for the STM3240G-EVAL (the
* arch/arm/src/stm32/chip/stm32_otgfs.h: STM32 USB OTG FS register initial check-in is just a stm3210e-eval driver with renaming).
definitions (not complete on initial check-in). * sched/sched_setscheduler.c: Correct successful return value (Contributed
* net/connect.c: Add another low level, thread-independent socket interface by Richard Cochran).
for use within the OS. * include/fcntl.h and lib/stdio: Ignore CONFIG_STDIO_LINEBUFFER is the
* arch/mips/src/pic32mx/pic32mx_ethernet.c: The PIC32 Ethernet driver file was opened in binary mode.
is now stable on the PIC32 Starter Kit. * lib/stdio/lib_fopen.c: Correct an error in parsing open mode string. The
* configs/pic32-starterkit/nsh2: Add a PIC32 Ethernet Starter Kit NSH plus sign may not appear right after the basic mode. For example, &quot;r+&quot;, &quot;rb+&quot;,
configuration that has no serial console; all interaction is done via and &quot;r+b&quot; are all valid open strings and mean the same thing.
Telnet. * lib/stdio/lib_fopen.c: Correct return errno value from f_open() and
* net/netdev_sem.c: Correct a deadlock condition by making a seamphore f_fdopen() if the open mode string is invalid.
recursive. To my knowledge this deadlock only occurs when running the * drivers/serial/serial.c: Do not disable Rx interrupts on each byte.
NSH command ifconfig over Telnet. In that case the function netdev_foreach Rather, only disable Rx interrupts when the Rx ring buffer may be empty.
takes the network device semaphore, but so does the telnet logic causing * include/nuttx/usb/audio.h: USB Audio 1.0 definitions (in progress).
the deadlock. * arch/arm/src/stm32/stm32fxx_dma.c: STM32 F4 DMA now supports circular
* arch/arm/src/stm32/stm32_pm*.c: Add basic STM32 power management logic buffer mode (contributed by Mike Smith)
that will eventually be used to implement low power states. * arch/arm/src/stm32/stm32_serial.c: The serial driver can now support
* arch/arm/src/stm32/stm32f*0xx_rcc.c: In order to use CAN2, both CAN1 and Rx DMA into a circular buffer (contributed by Mike Smith)
CAN2 clocking must be enabled. * configs/pic32mx7mmb: Beginning of a configuration for the Mikroelektronka
* arch/mips/src/pic32mx/picm32mx-usbdev.c: Several stall-related fixes so that PIC32MX7 Multimedia Board (MMB).
the USB device driver can used the the mass storage class (which does a LOT * net/recvfrom.c: Fix a compilation problem. Some UDP logic was conditioned
of stalling as part of its normal protocol). The PIC32 USB Mass Storage on TCP, not UDP.
device is, however, still non-functional when debug is OFF. * drivers/usbdev/cdcacm.c: Fix an infinite loop that occurs when the serial
* include/nuttx/fs: Move all file-system related files from include/nuttx to device is unregisters.
include/nuttx/fs. * arch/arm/src/stm32/stm32_otgfs.c: The driver needs to reset the software (in
* include/nuttx/serial: Move all serial-driver related files from include/nuttx to order to flush the requests) and to disable the software connection when the
include/nuttx/serial. device is unregistered.
* include/nuttx/clock.h and sched/clock_initialize.c: Add a new OS interface * include/sys/prctl.h, sched/prctl.c, include/pthread.h: Add interfaces to
called clock_sychronize() that can be used to re-synchronize the NuttX support getting and setting of the thread or task name.
system time with a hardware RTC. This function is called normally at power * configs/ubw32: Added a configuration to support the Sparkfun UBW32 PIC32 board.
up but may also need to be called when recovering from certain low-power * configs/ubw32/nsh: Added an NSH configuration for the Sparkfun UBW32 PIC32 board.
usage states where the system time is no longer accurate. * configs/ubw32/up_buttons.c: Added button support for Bit Whacker board.
* arch/arm/src/calypso and arch/arm/include/calypso: Support for the TI "Calypso" * configs/stm3240g-eval/nxconsole: Added a configuration to run the NSH
phone processor. Contributed by Denis Carilki and includes the work of Denis, shell in an NX window for the STM3240G-EVAL board.
Alan Carvalho de Assis, and Stefan Richter. * include/cxx/cunistd: C++ header file to make sure that everything in
* configs/compal_e88 and configs/compal_e99: Support for Compal e88 and e99 phones unistd.h is in the std:: namespace.
Contributed by Denis Carilki and includes the work of Denis, Alan Carvalho de * configs/sim/nxwm: Added a configuration for testing the NuttX Window Manager
Assis, and Stefan Richter. (NxWM)
* arch/arm/src/lpc17xx: Several fixes for error that have crept in for the LPC17xx * fs/fs_fcntl.h: On success, always returned OK. However, some fcntl commands
DAC. Contributed by by Lzyy. require returning other values on success.
* graphics/nxconsole: Add a character driver that can be used as a console output * Various files. Fix warnings about variables that were initialized by not used.
device for text output (still under development on initial check-in). * configs/sim/*/defconfig: Changes to build a 32-bit simulation on a 32-bit
* graphics/nxmu: Fix several compilation errors that have crept into the multi- platform did not make into all of the Make.defs files.
user NX server because of lack of use. * graphics/nxmu/nx_move.c: Wrong opcode was being used in the server message;
* graphics/nxconsole: The NX text console is basically function (in multi- Also there was an error in the offset calculation.
user NX mode only). * graphics/nxglib/fb/nxglib_moverectangle.c: Offset argument is really a
* arch/arm/src/stm32/stm32_i2c.c: Correct a bug in the STM32 I2C driver. The position, not an offset.
behavior of I2C status bits seems to be different between F1 and F4. * graphics/nxtk/nxtk_drawframe.c: Framed windows are now drawn in three
* configs/stm3210e-eval/nxconsole: New STM32 F1 configuration that runs the colors (instead of just two).
NuttShell (NSH) within an NX window. * drivers/input/stmpe11_*: Added a driver to support the STMicro STMPE11
* graphics/nxconsole/nxcon_sem.c: Add protection from re-entrance with debug IO Expander and touchscreen driver.
is enabled. * configs/stm3240g-eval/nxwm: Added to configuration for testing the NxWM
* include/nuttx/ascii.h and vt100.h: Header files to centralize ASCII and window manager on the STM3240G-EVAL board.
VT100 escape sequence definitions. * graphics/nxtk/nxtk_toolbarbounds.c: Added an interface to get the toolbar
* graphics/nxconsole/nxcon_vt100.c: Add add framework to support VT100 escape bounding box.
sequences in NxConsole. * graphics/nxtk/nxtk_drawframe.c: Fix an error in drawing the window frame.
* fs/fs_read.c: Fix read() return value for attempt to read from write-only * NX, NxConsole: Replace CONFIG_NXCONSOLE_NOGETRUN to CONFIG_LCD_GETRUN. The
file or device. Was returning EBADF, should return EACCES. inability to read from the LCD is a property of the LCD, not of NxConsole.
* graphics/nxconsole.c: NxConsole now supports backspace and a cursor. Then add CONFIG_NX_WRITEONLY which is the more generic way of saying that
* Kconfig and arch/sim/Kconfig: Beginnings of support for a NuttX no NX component should try to read from the underlying graphic device (LCD
configuration tool. Currently using the kconfig parser 'kconfig-frontend' or other).
available at http://ymorin.is-a-geek.org/projects/kconfig-frontends * configs/stm3240g-eval/src/up_stmpe11.c: Add board-specific support for the
(version 3.3.0-1 is also available in the NuttX SVN at the STMPE11 I/O expander on the STM3240G-EVAL board. Verfied that the
trunk/misc/tools/kconfig-frontends-3.3.0-1.tar.gz). Contributed by Lzyy. STM3240G-EVAL touchscreen is now fully functional.
* */Kconfig: Added skeleton Kconfig files to all directories that * include/cxx/cfcntl: Added std:: header file.
may need them. * graphics/nxbe/nxbe_filltrapezoid.c and graphics/nxglib/fb/nxglib_filltrapezoid.c:
* include/nuttx/math.h: Moved include/math.h to include/nuttx/math.h Fix several errors in the trapezoid fill logic.
because it conflicts too often with the system math.h (and people aren't * include/nuttx/input/touchscreen.h, configs/hymini-stm32, configs/stm3240g-evel,
inclined to read the documentation on how to handle this). Now, if * configs/sam3u-ek, configs/sim, arch/sim/src/up_touchscreen.c, and
CONFIG_ARCH_MATH_H=y is defined, the top-level makefile will copy apps/examples/touchscreen: Standardize the board-specific, touchscreen
the redirecting math.h header file from include/nuttx/math.h to initialization interfaces.
include/math.h. So for the architectures that define CONFIG_ARCH_MATH_H=y, * drivers/input/stmpe11_base.c and configs/stm3240g-eval: The STMPE11-based
include/math.h will be in place as it was before; for the architectures touchscreen seems to work better with edge (vs. level) interrupts
that don't select CONFIG_ARCH_MATH_H, the redirecting math.h header * drivers/input/stmpe11_tsc.c: Fix some status checks so that the touchscreen
file will stay out-of-the-way in include/nuttx/. interrupt handling logic does not read data if the fifo is not at the
* Kconfig, sched/Kconfig, lib/Kconfig, libxx/Kconfig, arch/sim/Kconfig, threshold level.
drivers/Kconfig, drivers/mtd/Kconfig, drivers/input/Kconfig * include/nuttx/wqueue.h: Add macro work_available() to determine if the
drivers/analog/Kconfig, drivers/lcd/Kconfig: Updated kernel previously scheduled work has completed.
configuration support provided by Lzyy. * drivers/stmpe11_tsc.c: Correct errors: (1) Since all interrupt logic is done on
* Kconfig: Many more Kconfig updates (no longer tracking in the ChangeLog) the worker thread, disabling interrupts does not provide protected; Need to
* arch/arm/src/Makefile, arch/x86/src/Makefile, arch/avr/src/Makefile, disable pre-emption. (2) Fix handling of touch ID and (2) add some logic to
arch/mips/src/Makefile, arch/sim/src/Makefile, arch/hc/src/Makefile, prevent certain kinds of data overrun.
arch/sh/src/Makefile: The libgcc.a in newer versions of GCC now * include/nx/nxtk.h and graphics/nx/nxtk/nxtk_internal.h: Move setting
have an dependency on an external implementation of export(). This of configuration defaults from the internal header file to a place where
required modification to the Makefiles that do the final link: Now other logic can use the defaults.
libgcc.a must be included within the group of libraries that are * graphics/nxtk/nxtk_events.c: Fixed an important but in the logic that
search recursively. translates the mouse/touchscreen position data for framed windows and toolbars.
* arch/arm/srm/stm32/stm32_otgfsdev.c: A USB OTG FS device-side driver * drivers/input/stmpe11_tsc.c, tsc2007.c, and ads7843e.c: Need to keep track of
for the STM32 F4 (and maybe F2 and F1 connectivity line). when if positional data is valid. When the touch is released, the X/Y position
* tools/cmpconfig.c: A tool for comparing two configuration files. of the release must be the same as the X/Y position of the last touch (se that
* include/nuttx/usb/usbdev.h, drivers/usbdev/*, arch/*/src/*/*usb*.c: the release occurs in the same window as the last touch).
Extend the USB device side interface so that EP0 OUT data can be passed * graphics/nxtk/nxtk_events.c: Fix an error in mouse/touchscreen input logic:
with OUT SETUP requests. Was autoraising the window AFTER processing the mouse press. This raises havoc
* include/nuttx/watchdog.h: Add the definition of a standard watchdog if the result of processing the mouse click was to raise some other window!
driver interface. * graphics/nxtk/nxtk_events.c: I had to disable the whole autoraise feature
* drivers/watchdog.c: The "upper half" watchdog timer driver. 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
apps-6.17 2012-04-14 Gregory Nutt &lt;gnutt@nuttx.org&gt; first input was to switch windows, then the autoraise implementation will cause the
window to revert to the previous window. Not good behavior.
* apps/examples/can: Add conditional compilation so that the test can be * sched/sched_mergepending.c: Add task switching instrumentation. There is a case
configured to only send messages or to only receive messages. This will here where instrumentation was missing. Contributed by Petri Tanskanen.
let the test work in other modes than simple loopback testing. * CONFIG_STMPE11_THRESHX, CONFIG_STMPE11_THRESHX, and drivers/stmpe11_tsc.c: Add some
* apps/examples/hello and apps/examples/ostest: Can now be built as NSH thresholding controls to all slow down processing of touchscreen samples.
built-int functions. This is a problem with NX in multi-user mode: touchscreen data gets sent
* vsn/hello: Removed. The modified apps/examples/hello is enough "Hello, via a message and when the message queue gets full the sender blocks and
World!" touch events are lost. Basic data overrun. The badly effects touchscreen
* apps/examples/nxconsole: Add a test of the NX console device. human factors.
* apps/examples/nxconsole: The NX console example now supports running * include/sched.h: Fix a typo (missing semicolon) in prototype of on_exit();
the NuttShell (NSH) within an NX window. * sched/on_exit.c and include/nuttx/sched.h: Fix some old typos that caused
* apps/system/readline: Now uses standard definitions from compilation errors when CONFIG_SCHED_ONEXIT is defined.
include/nuttx/ascii.h and vt100.h * configs/stm3240g-eval/nxwm/defconfig: The default NxWM now uses the STMPE11
* Kconfig, */Kconfig: Added skeleton Kconfig files to all directories that touchscreen.
may need them. * 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; NxWidgets-1.0 2012-03-22 Gregory Nutt &lt;gnutt@nuttx.org&gt;

83
nuttx/ReleaseNotes

@ -2754,3 +2754,86 @@ Bugfixes:
* Build System: Reordered the link command line to account for new * Build System: Reordered the link command line to account for new
versions of libgcc.a that require symbols from the application versions of libgcc.a that require symbols from the application
(abort()). (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.

1
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_STM32_FSMC=y : FSMC support is required for the LCD
CONFIG_NX=y : Enable graphics suppport 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. 8. This configuration requires that jumper JP22 be set to enable RS-232 operation.

2
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 */ /* Draw the shadowed right outer edge */
frame.pt1.x = wndsize.w - 2; frame.pt1.x = wndsize.w - 1;
frame.pt2.x = frame.pt1.x; frame.pt2.x = frame.pt1.x;
nxtk_drawframeside(fwnd, &frame, bounds, g_bordercolor2); nxtk_drawframeside(fwnd, &frame, bounds, g_bordercolor2);
#endif #endif

Loading…
Cancel
Save