diff options
Diffstat (limited to 'nuttx/Documentation')
-rw-r--r-- | nuttx/Documentation/NuttX.html | 383 |
1 files changed, 204 insertions, 179 deletions
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 5c9748ad9..87383058b 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 8, 2012</p> + <p>Last Updated: May 19, 2012</p> </td> </tr> </table> @@ -717,6 +717,15 @@ </li> </p> </tr> +<tr> + <td><br></td> + <td> + <p> + <li> + <a href="NxWidgets.html">NxWM</a>: NxWM is the tiny NuttX window manager based on NX and NxWidgets. + </li> + </p> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> @@ -941,65 +950,46 @@ </tr> </table> -<h2>NuttX-6.17 Release Notes</h2> +<h2>NuttX-6.18 Release Notes</h2> <p> - The 84<sup>th</sup> release of NuttX, Version 6.17, was made on April 14, 2012, and is available for download from the + The 85<sup>th</sup> release of NuttX, Version 6.18, was made on May 19, 2012, and is available for download from the <a href="http://sourceforge.net/projects/nuttx/files/">SourceForge</a> website. - Note that the release consists of two tarballs: <code>nuttx-6.17.tar.gz</code> and <code>apps-6.17.tar.gz</code>. + Note that the release consists of two tarballs: <code>nuttx-6.18.tar.gz</code> and <code>apps-6.18.tar.gz</code>. Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information) The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in SVN. These unreleased changes are also listed <a href="#pendingchanges">here</a>. </p> - +<p> + The majority of changes in this release are focused on supporting the synchronized release of NxWM, the NuttX tiny window manager. + That window manager is released as part of the NxWidgets package, but depends upon many of the changes in this NuttX release. +</p> <p><b>New Features</b>. New or extended features in this release include: </p> <ul> - <li><b>Networking</b>. - Additional low-level, thread-independent socket interfaces (for NFS client support). - </li> - <li><b>RTC</b>. - Added a new interface call <code>clock_synchronize()</code>. - This function will reload the system time from an RTC and is required when the system re-awakens from certain deep-sleep modes. - </li> - <li><b>Graphics</b>. - Add <i>NxConsole</i>. - This is a character device driver that wraps an NX window and can be re-directed for <code>stdout</code>. - This allows, for example, a pop-up graphics window that contains a <i>NuttShell</i> (NSH) session. - A test of <i>NxConsole</i> is available at <code>apps/examples/nxconsole</code>. - </li> - <li><b>Watchdog Drivers</b>. - Added an interface definition an "upper half" driver to support watchdog timers. + <li><b>Drivers</b>. + Added a watchdog timer driver infrastructure. + Add general support for STMicro STMPE11 I/O Expander/touchscreen device. </li> - <li><b>Calypso</b>. - Support for TI Calypso-based cellphones (as supported by the <i>Osmocom-BB</i> project) was contributed by members of the <i>Osmocom-BB</i> team. - This includes configurations for the Compal e88 and e99 phones. - </li> - <li><b>USB Device Interface</b>. - Needed to extend the USB device interface because there was no mechanism for passing endpoint OUT data that may need to accompany a setup request. - </li> - <li><b>STM32 drivers</b>. - Added some power management controls for entering reduced power consumption states. - An OTG FS driver was completed and partially verified - (this driver seems to be functional but since it has been test so lightly, it might better be listed in the next section "Work in progress"). + <li><b>STM32</b>. + Add support for the STM32 IWDG and WWDG watchodog timers. + DMA now supports cicular buffer mode; + serial driver now uses circular DMA to improve Rx performance (Contributed by Mike Smith). </li> - <li><b>PIC32 drivers</b>. - The PIC32 Ethernet driver is now stable. - The PIC32 USB device controller driver is now functional (but not yet stable). + <li><b>STM3240G-EVAL Board</b>. + Add support for the LCD and for the STMPE11 I/O Expander as a touchscreen controller. </li> - <li><b>PIC32 boards</b>. - Added support for the Sure DB-DP11212 PIC32 General Purpose Demo Board. - There is now a PIC32 Starter Kit that provides NSH only through a Telnet connection. + <li><b>PIC32 Boards</b>. + Board support for the Mikroelektronika PIC32MX7 Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board. </li> - <li><b>Build System</b>. - Some header files were moved into <code>include/nuttx</code>. - The goal is to move any non-standard header files to <code>include/nuttx</code> or <code>include/arch</code>. - Moved <code>include/math.h</code> to <code>include/nuttx/math.h</code>; - this file is now only instantiated as the <i>system</i> <code>math.h</code> if <code>CONFIG_ARCH_MATH_H=y</code> is defined. + <li><b>NX</b>. + Framed windows are now draw in three colors instead of just two. + Numerous other extensions needed to support NxWM (see the ChangeLog for details). </li> - <li><b>Tools</b>. - Added <code>tools/cmpconfig.c</code>, a tool for comparing two configuration files. + <li><b>Library</b>. + Add <code>prctl()</code> command that can be used to setting and getting the names of threads. + This (plus several other improvements and bug fixes) are part of a larger effort to improve task monitoring capabilities. </li> </ul> @@ -1023,19 +1013,37 @@ <p><b>Bugfixes</b>:</p> <ul> - <li><b>Networking</b>. - Corrected a deadlock that only occurred when executing the NSH <code>ifconfig</code> command over Telnet. - <li><b>File system</b>. - Fix incorrect return errno value from <code>read()</code> when the file is opened write-only. - <li><b>Graphics</b>. - Fix several compilation errors that have crept into the multi-user NX server because of lack of use. - <li><b>STM32</b>. - In order to use CAN2, both CAN1 and CAN2 clocking must be enabled. - Fixed a troublesome bug in the STM32 F4 I2C driver that resulted in timeouts. - <li><b>LPC17xx</b>. - Fixes for errors the crept in the LPC17xx DAC logic (Contributed by Lzyy). - <li><b>Build System</b>. - Reordered the link command line to account for new versions of <code>libgcc.a</code> that require symbols from the application (<code>abort()</code>). + <li><b<code>sched_setscheduler()</code></b>. + Correct return value (Contributed by Richard Cochran). + </li> + <li><b>stdio</b>. + Ignore <code>CONFIG_STDIO_LINEBUFFER</code> if the file was opened in binary mode. + </li> + <li><b><code>fopen()</code></b>. + Correct an error in parsing open mode string. + </li> + <li><b>Standard serial driver</b>. + Improved performance be reducing the amount of time that Rx interrupts are disabled. + </li> + <li><b><code>recvfrom()</code></b>. + Fix a compilation problem. + </li> + <li><b>CDC/ACM device driver</b>. + Fix an infinite loop that occurs when the serial device is unregistered. + </li> + <li><b>STM32 OTG FS device driver</b>. + Numerous fixes and the driver is partially functional but there are still some issues that become apparent when debug output is disabled. + </li> + <li><b> <code>fcntl()</code></b>. + Always returned zero on success; however, some fcntl commands need to return non-zero values on success. + </li> + <li><b>graphics</b>. + Many multi-use mode fixes added to support NxWM (see the ChangeLog for details). + Auto-raise is temporarily disabled in multi-user mode because it causes some problems with NxWM. + </li> + <li><b><code>on_exit()</code></b>. + Fix compilation errors if <code>CONFIG_SCHED_ONEXIT</code> is enabled. + </li> </ul> <p> See the <a href="#currentrelease">ChangeLog</a> for additional, detailed changes. @@ -1567,8 +1575,8 @@ and other features. </li> <li> - Additional drivers and configurations were added in NuttX 6.13 for the STM32 F1 and F4. - F1 compatible drivers include an Ethernet driver, ADC driver, DAC driver, PWM driver, and a CAN driver. + Additional drivers and configurations were added in NuttX 6.13 and later releases for the STM32 F1 and F4. + F1 compatible drivers include an Ethernet driver, ADC driver, DAC driver, PWM driver, IWDG, WWDG, and CAN drivers. </li> </ul> <p> @@ -1847,7 +1855,8 @@ Networking intensions include support for Telnet NSH sessions and new configurations for DHPCD and the networking test (nettest). A more complete port would include support for SDIO and USB OTG which are not available in NuttX 6.13. The USB OTG device controller driver, and LCD driver and a function I2C driver were added in NuttX 6.17. - A touchscreen driver for the STM3240G-EVAL based on the STMPE11 I/O expander was added in NuttX 6.18. + STM32 IWDG and WWDG watchdog timer drivers were added in NuttX 6.18 (should be compatible with F1 and F2). + An LCD driver and a touchscreen driver for the STM3240G-EVAL based on the STMPE11 I/O expander were also added in NuttX 6.18. </p> </ul> </td> @@ -2849,125 +2858,141 @@ Other memory: </table> <ul><pre> -nuttx-6.17 2012-04-14 Gregory Nutt <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. - -apps-6.17 2012-04-14 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. +nuttx-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) + * 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.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) + * 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> |