From cabb377bb5e3b6a93477fb25a712a6b60c702673 Mon Sep 17 00:00:00 2001
From: patacongo Last Updated: May 8, 2012 Last Updated: May 19, 2012
@@ -717,6 +717,15 @@
NuttX RTOS
-
+
- The 84th release of NuttX, Version 6.17, was made on April 14, 2012, and is available for download from the
+ 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 the release consists of two tarballs: nuttx-6.17.tar.gz
and apps-6.17.tar.gz
.
+ Note that the 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 change log associated with the release is available here.
Unreleased changes after this release are available in SVN.
These unreleased changes are also listed here.
+ 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. New or extended features in this release include:
clock_synchronize()
.
- This function will reload the system time from an RTC and is required when the system re-awakens from certain deep-sleep modes.
+ stdout
.
- This allows, for example, a pop-up graphics window that contains a NuttShell (NSH) session.
- A test of NxConsole is available at apps/examples/nxconsole
.
+ include/nuttx
.
- The goal is to move any non-standard header files to include/nuttx
or include/arch
.
- Moved include/math.h
to include/nuttx/math.h
;
- this file is now only instantiated as the system math.h
if CONFIG_ARCH_MATH_H=y
is defined.
- tools/cmpconfig.c
, a tool for comparing two configuration files.
+ 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.
Bugfixes:
ifconfig
command over Telnet.
- read()
when the file is opened write-only.
- libgcc.a
that require symbols from the application (abort()
).
+ CONFIG_STDIO_LINEBUFFER
if the file was opened in binary mode.
+ fopen()
.
+ Correct an error in parsing open mode string.
+ recvfrom()
.
+ Fix a compilation problem.
+ fcntl()
.
+ Always returned zero on success; however, some fcntl commands need to return non-zero values on success.
+ on_exit()
.
+ Fix compilation errors if CONFIG_SCHED_ONEXIT
is enabled.
+ See the ChangeLog for additional, detailed changes. @@ -1567,8 +1575,8 @@ and other features.
@@ -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.
@@ -2849,125 +2858,141 @@ Other memory:-nuttx-6.17 2012-04-14 Gregory Nutt <gnutt@nuttx.org> +nuttx-6.18 2012-05-19 Gregory Nutt <gnutt@nuttx.org> - * 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, "r+", "rb+", + and "r+b" are all valid open strings and mean the same thing. + * lib/stdio/lib_fopen.c: Correct return errno value from f_open() and + f_fdopen() if the open mode string is invalid. + * drivers/serial/serial.c: Do not disable Rx interrupts on each byte. + Rather, only disable Rx interrupts when the Rx ring buffer may be empty. + * include/nuttx/usb/audio.h: USB Audio 1.0 definitions (in progress). + * arch/arm/src/stm32/stm32fxx_dma.c: STM32 F4 DMA now supports circular + buffer mode (contributed by Mike Smith) + * arch/arm/src/stm32/stm32_serial.c: The serial driver can now support + Rx DMA into a circular buffer (contributed by Mike Smith) + * configs/pic32mx7mmb: Beginning of a configuration for the Mikroelektronka + PIC32MX7 Multimedia Board (MMB). + * net/recvfrom.c: Fix a compilation problem. Some UDP logic was conditioned + on TCP, not UDP. + * drivers/usbdev/cdcacm.c: Fix an infinite loop that occurs when the serial + device is unregisters. + * arch/arm/src/stm32/stm32_otgfs.c: The driver needs to reset the software (in + order to flush the requests) and to disable the software connection when the + device is unregistered. + * include/sys/prctl.h, sched/prctl.c, include/pthread.h: Add interfaces to + support getting and setting of the thread or task name. + * configs/ubw32: Added a configuration to support the Sparkfun UBW32 PIC32 board. + * configs/ubw32/nsh: Added an NSH configuration for the Sparkfun UBW32 PIC32 board. + * configs/ubw32/up_buttons.c: Added button support for Bit Whacker board. + * configs/stm3240g-eval/nxconsole: Added a configuration to run the NSH + shell in an NX window for the STM3240G-EVAL board. + * include/cxx/cunistd: C++ header file to make sure that everything in + unistd.h is in the std:: namespace. + * configs/sim/nxwm: Added a configuration for testing the NuttX Window Manager + (NxWM) + * fs/fs_fcntl.h: On success, always returned OK. However, some fcntl commands + require returning other values on success. + * Various files. Fix warnings about variables that were initialized by not used. + * configs/sim/*/defconfig: Changes to build a 32-bit simulation on a 32-bit + platform did not make into all of the Make.defs files. + * graphics/nxmu/nx_move.c: Wrong opcode was being used in the server message; + Also there was an error in the offset calculation. + * graphics/nxglib/fb/nxglib_moverectangle.c: Offset argument is really a + position, not an offset. + * graphics/nxtk/nxtk_drawframe.c: Framed windows are now drawn in three + colors (instead of just two). + * drivers/input/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 <gnutt@nuttx.org> +apps-6.18 2012-05-19 Gregory Nutt <gnutt@nuttx.org> - * 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 <gnutt@nuttx.org> diff --git a/ReleaseNotes b/ReleaseNotes index 8bbf00c304..49e9152097 100644 --- a/ReleaseNotes +++ b/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/configs/stm3240g-eval/README.txt b/configs/stm3240g-eval/README.txt index 0717f51c7b..1c15be2caf 100755 --- a/configs/stm3240g-eval/README.txt +++ b/configs/stm3240g-eval/README.txt @@ -1004,6 +1004,7 @@ Whereis 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/graphics/nxtk/nxtk_drawframe.c b/graphics/nxtk/nxtk_drawframe.c index 2530347d25..91745b3236 100644 --- a/graphics/nxtk/nxtk_drawframe.c +++ b/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