2012-04-14 16:01:22 UTC
nuttx-6.17 Release Notes
The 84th release of NuttX, Version 6.17, was made on April 14, 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. Both may be needed (see the top-level nuttx/README.txt file for build information).
Note also that all SVN information has been stripped from these tarballs. If you need the SVN configuration, you should check out directly from SVN. Revision r4607 should equivalent to release 6.17:
svn co -r4607 https://nuttx.svn.sourceforge.net/svnroot/nuttx nuttx
Post Release Patches:
* There are no post-released patches as of this writing.
New features and extended functionality:
* Networking. Additional low-level, thread-independent socket interfaces (for NFS client support).
* RTC. Added a new interface call 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.
* Graphics. Add NxConsole. This is a character device driver that wraps an NX window and can be re-directed for 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.
* Watchdog Drivers. Added an interface definition an "upper half" driver to support watchdog timers.
* Calypso. Support for TI Calypso-based cellphones (as supported by the Osmocom-BB project) was contributed by members of the Osmocom-BB team. This includes configurations for the Compal e88 and e99 phones.
* USB Device Interface. 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.
* STM32 drivers. 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").
* PIC32 drivers. The PIC32 Ethernet driver is now stable. The PIC32 USB device controller driver is now functional (but not yet stable).
* PIC32 boards. 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.
* Build System. Some header files were moved into 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. Added tools/cmpconfig.c, a tool for comparing two configuration files.
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.
* Networking. Corrected a deadlock that only occurred when executing the NSH ifconfig command over Telnet.
* File system. Fix incorrect return errno value from read() when the file is opened write-only.
* Graphics. Fix several compilation errors that have crept into the multi-user NX server because of lack of use.
* STM32. In order to use CAN2, both CAN1 and CAN2 clocking must be enabled. Fixed a troublesome bug in the STM32 F4 I2C driver that resulting in timeouts.
* LPC17xx. Fixes for errors the crept in the LPC17xx DAC logic (Contributed by Lzyy).
* Build System. Reordered the link command line to account for new versions of libgcc.a that require symbols from the application (abort()).
Additional bugfixes, name changes, and other differences as detailed in the ChangeLogs.
6.17 2012-04-14 Gregory Nutt <gnutt AT gnutt.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 abort(). 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.
6.17 2012-04-14 Gregory Nutt <gnutt AT gnutt.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.