Prep for 6.18 release

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4751 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2012-05-19 15:26:38 +00:00
parent ba5e400fb3
commit 232ce4e980
14 changed files with 440 additions and 204 deletions

View File

@ -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>

View File

@ -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.

View File

@ -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

View File

@ -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
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

View File

@ -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.
*/

View File

@ -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,

View File

@ -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.
*/

View File

@ -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>

View File

@ -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).

View File

@ -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>

View File

@ -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><b>Drivers</b>.
Added a watchdog timer driver infrastructure.
Add general support for STMicro STMPE11 I/O Expander/touchscreen device.
</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><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>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><b>STM3240G-EVAL Board</b>.
Add support for the LCD and for the STMPE11 I/O Expander as a touchscreen controller.
</li>
<li><b>Watchdog Drivers</b>.
Added an interface definition an &quot;upper half&quot; driver to support watchdog timers.
<li><b>PIC32 Boards</b>.
Board support for the Mikroelektronika PIC32MX7 Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board.
</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><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>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><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>
<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>
<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>
<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;
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
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.
* 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.17 2012-04-14 Gregory Nutt &lt;gnutt@nuttx.org&gt;
apps-6.18 2012-05-19 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.
* 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;

View File

@ -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.

View File

@ -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.

View File

@ -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