diff options
Diffstat (limited to 'nuttx/ReleaseNotes')
-rw-r--r-- | nuttx/ReleaseNotes | 3001 |
1 files changed, 3001 insertions, 0 deletions
diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes new file mode 100644 index 000000000..8c6ae0ccb --- /dev/null +++ b/nuttx/ReleaseNotes @@ -0,0 +1,3001 @@ +NuttX-0.1.0 +^^^^^^^^^^^ + +This is the initial. This initial includes the complete NuttX RTOS +with support for the Linux user mode simulation and the TI TMS320C5471 +(Arm7) processor. Partial support for the 87C52 is included. + +This release has been verified on both the Linux user-mode and C5471 +platforms using the test program under examples/ostest. Test results +for the C5471 can be found in arch/c5471/doc/test-results.txt. + +This tarball contains a complete CVS snapshot from March 9,2007. + +NuttX-0.1.1 +^^^^^^^^^^^ + +This is the second release of NuttX. This release includes the following. +See the ChangeLog for more detailed description of the changes. + +(1) General OS bugfixes (see the ChangeLog for details), +(2) bugfixes for the TI TMS320C5471 (Arm7) platform (see + the ChangeLog) +(3) Complete support for the 87C52. (However, the 87C52 + release is not stable enough for general usage). +(4) Added the beginning of a shell call NuttShell (nsh) + +This release has been verified on the Linux user-mode platform, the +Spectrum Digital TMS320C5471 EVM, and the PJRC 87C52 development board +using the test program under examples/ostest. + +STATUS: The development status remains as ALPHA until further testing +is performed. + +This tarball contains a complete CVS snapshot from March 14, 2007. + +NuttX-0.1.2 +^^^^^^^^^^^ + +This is the third release of NuttX. This release is +primarily a bugfix release with minimal new features. See +the ChangeLog for a more detailed description of the +changes. + +(1) Several important OS and ARM7 bugfixes, +(2) opendir(), closedir(), readdir(), etc. added +(3) Added C5471 watchdog timer. +(4) Created a shareable, serial driver. +(5) Added 'ls' command to NuttShell (nsh) +(6) Added a test of the round robin scheduler + +This release has been verified on the Linux user-mode +platform, the Spectrum Digital TMS320C5471 EVM using the +test program under examples/ostest. + +This tarball contains a CVS snapshot from March 19, 2007. + +NuttX-0.2.1 +^^^^^^^^^^^ + +This is the fourth release of NuttX. This release adds adds +support for a new platform, restructures many header files, +and adds a few new features: + +(1) Support for Neuros OSD / DM320 +(2) Restructuring of header files for better POSIX compliance +(3) Added kill() +(4) Added POSIX timers +(5) bugfixes and documentation updates + +This release has been verified on the Linux user-mode +platform, the Spectrum Digital TMS320C5471 EVM, and the +Neuros OSD using the test program under examples/ostest. Because +of the stability of these tests, the project status +has been upgraded to 'beta.' + +This tarball contains a complete CVS snapshot from March 22, 2007. + +NuttX-0.2.2 +^^^^^^^^^^^^ + +This is the fifth release of NuttX. There is no major new +functionality in this release. This release adds support +for new pthread barrier APIs, changes the directory +structure, to better handle different board configurations +using the same processor architecture, and corrects a few +defects. + +See the ChangeLog for a complete list of changes. + +This release has been verified on the Linux user-mode +platform and the Neuros OSD using the test program under +examples/ostest. There are no known, critical defects but +the project development status remains at 'beta' status +pending further test and evaluation. + +This tarball contains a complete CVS snapshot from +March 26, 2007. + +NuttX-0.2.3 +^^^^^^^^^^^^ + +This is the sixth release of NuttX. This release is +primarily a bugfix release. Numerous problems were fixed +as detailed in the change log. New functionality includes +support for timed message queues. + +See the ChangeLog for a complete list of changes. + +This release has been verified on the Linux user-mode +platform and the Neuros OSD using the test program under +examples/ostest. The results of the testing is available in +the source tree under configs/ntosd-dm320/doc/test-results. +There are no known, critical defects but the project +development status remains at 'beta' status pending further +test and evaluation. + +This tarball contains a complete CVS snapshot from March 29, +2007. + +NuttX-0.2.4 +^^^^^^^^^^^^ + +This is the 7th release of NuttX. This release is only to roll out +build changes to better support different SoC's that use the same +processor architecture. In particular, the two existing ARM architectures, +c5471 and DM320 were combined into a single ARM directory. This was done +in preparation for an LPC2148 port that is currently in progress. There +is NO new functionality or significant bugfixes in this release. + +See the ChangeLog for a complete list of changes. + +This release has been verified on the Linux user-mode platform +and the Neuros OSD using the test program under examples/ostest. +The results of the testing is available in the source tree under +configs/ntosd-dm320/doc/test-results and under configs/sim/doc/test-results. +There are no known, critical defects but the project development status +remains at 'beta' status pending further test and evaluation. + +This tarball contains a complete CVS snapshot from April 28, 2007. + +NuttX-0.2.5 +^^^^^^^^^^^^ + +This is the 8th release of NuttX. This release includes: + +(1) Several bug fixes +(2) Initial support for FAT filesystems. Testing has not + been exhaustive and some functionality is missing + (mkdir, stat, unlink chmod, and rename functionality is + not yet implemented). +(3) Support for the NXP lpc2148 processor is included but + is untested as of this writing. The current + implementation includes only support for serial console + and timer interrupt. + +See the ChangeLog for a complete list of changes. + +This release has been verified only on the Linux user-mode +platform. + +This tarball contains a complete CVS snapshot from May 19, +2007. + +NuttX-0.2.6 +^^^^^^^^^^^ + +This is the 9th release of NuttX. This is primarily a +bugfix release to correct a number of problems introduced +with the 0.2.5 release. This release does include some FAT +filesystem extensions including unlink(), mkdir(), rmdir(), +rename(), opendir(), closedir(), readdir(), seekdir(), +telldir(), rewindir(). There are some pending FAT changes +that did not make it into this release including stat(), +truncate(), and long file names. + +See the ChangeLog for a complete list of changes. + +This release has been verified only on the Linux user-mode platform. + +This tarball contains a complete CVS snapshot from May 26, 2007. + +NuttX-0.2.7 +^^^^^^^^^^^ + +This is the 10th release of NuttX. This is primarily a bugfix +release to correct a number of problems reported to me (thanks +Didier!). This release does include the final changes complete the +FAT filesystem logic including stat(), statfs(), and non-standard +APIs to manage FAT attributes. At present, FAT long file names and +file truncate() are still not supported. + +See the ChangeLog for a complete list of changes. + +This release has been verified only on the Linux user-mode platform. + +This tarball contains a complete CVS snapshot from June 9, 2007. + +NuttX-0.2.8 +^^^^^^^^^^^ + +This is the 11th release of NuttX. This release: +(1) corrects important bugs in opendir() and realloc() +(2) adds support for environment variables +(3) adds several new C library interfaces +(4) extends several example programs + +See the ChangeLog for a complete list of changes. + +This release has been verified only on the Linux user-mode platform. + +This tarball contains a complete CVS snapshot from July 2, 2007. + +NuttX-0.3.0 +^^^^^^^^^^^ + +This is the 12th release of NuttX. This release includes the initial +integration of a network subsystem and the uIP TCP/IP stack into NuttX +(see http://www.sics.se/~adam/uip/index.php/Main_Page). Also included +is a device driver for the Davicom DM90x0 Ethernet controller. + +This integration is very preliminary. Only a small portion of the +network functionality has been integrated and there are a number of +open issues (see the TODO file). The network subsystem is pre-alpha +at this point in time. I expect that it will stabilize and mature +over the next few releases. + +The baseline functionality of NuttX continues to mature and remains at +post-beta (as long as the network is not used). + +See the ChangeLog for a complete list of changes. + +This release has been verified only on the Neuros OSD (DM320 ARM9) +platform using the DM90x0 driver. + +This tarball contains a complete CVS snapshot from November 6, 2007. + +NuttX-0.3.1 +^^^^^^^^^^^ + +This is the 13th release of NuttX and the second release containing +the integration of a network subsystem and the uIP TCP/IP, UDP, and +ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). + +Many network-related problems have been fixed and the implementation +has matured significantly. However, the level of network reliability +is probably still at the pre-alpha or early level. It is sufficiently +complete that you may begin to perform some network integration and +is expected to achieve beta level of reliability over the next few +releases. + +The baseline functionality of NuttX continues to mature and remains at +post-beta (as long as the network is not used). + +See the ChangeLog for a complete list of changes. + +This release has been verified only on the Neuros OSD (DM320 ARM9) +platform using the DM90x0 driver. + +This tarball contains a complete CVS snapshot from November 19, 2007. + +NuttX-0.3.2 +^^^^^^^^^^^ + +This is the 14th release of NuttX and the 3rd release containing +the integration of a network subsystem and the uIP TCP/IP, UDP, and +ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). + +Many network-related problems have been fixed and the implementation +has matured significantly. This release consists of: + +o TCP-related bug-fixes +o TCP performance improvements +o Initial UDP integration +o Initial uIP micro webserver integration + +See the ChangeLog for a complete list of changes. + +The level of network reliability is at alpha level is expected to +achieve beta level of reliability over the next few releases. + +The baseline functionality of NuttX continues to mature and remains at +post-beta. + +This release has been verified only on the Neuros OSD (DM320 ARM9) +platform using the DM90x0 driver. + +This tarball contains a complete CVS snapshot from November 23, 2007. + +NuttX-0.3.3 +^^^^^^^^^^^ + +This is the 15th release of NuttX and the 4th release containing +the integration of a network subsystem and the uIP TCP/IP, UDP, and +ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). + +Many network-related problems have been fixed and the implementation +has matured significantly. This release consists of: + +o TCP-related bug-fixes for disconnecting sockets +o Correction of some TCP read-ahead logic +o TCP performance improvements +o Misc. additions and cleanup (See the ChangeLog for a complete list of + changes). + +The level of network reliability is at an early beta release level. The +baseline functionality of NuttX continues to mature and remains at +post-beta. Open network-related issues include only: + +o Some minor unimplemented BSD socket functionality, +o Thread safety issues: the same socket cannot be used concurrently on + different threads. +o Pending design changes necessary to support multiple network interfaces. +o IPv6 support is incomplete. + +This release has been verified only on the Neuros OSD (DM320 ARM9) +platform using the DM90x0 driver. Any feedback for improving the network +reliability/performance would be greatly appreciated. + +This tarball contains a complete CVS snapshot from November 28, 2007. + +NuttX-0.3.4 +^^^^^^^^^^^ + +This is the 16th release of NuttX and the 5th release containing +the integration of a network subsystem and the uIP TCP/IP, UDP, and +ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). + +This release is primarily a bug-fix release. New features include +only: + +o TELNET front-end to NSH, +o DHCPC server functionality, and +o C5471 Ethernet driver. + +Numerous network related problems were fixed related to DHCPC, UDP +input processing, UDP broadcast, send timeouts, and bad compilation when +uIP is compiled at high levels of optimization. + +The level of network reliability is at a strong beta release level. The +baseline functionality of NuttX continues to mature and remains at +post-beta or production level. + +Parts of this release were verified only on the Neuros OSD (DM320 ARM9) +platform using the DM90x0 Ethernet driver and other parts on the Spectrum +Digital C5471 EVM using the C5471 Ethernet driver. Any feedback about bugs +or suggestions for improving the network reliability/performance would be +greatly appreciated. + +This tarball contains a complete CVS snapshot from December 10, 2007. + +NuttX-0.3.5 +^^^^^^^^^^^ + +This is the 17th release of NuttX this release is primarily a bug-fix +release and intended to synchronize with the current CVS contents. See +the ChangeLog for a detailed list of changes and fixes. + +This release were verified only on the Spectrum Digital C5471 EVM using +the C5471 Ethernet driver. Any feedback about bugs or suggestions for +improvement would be greatly appreciated. + +This tarball contains a complete CVS snapshot from December 18, 2007. + +NuttX-0.3.6 +^^^^^^^^^^^ + +This is the 18th release of NuttX. This release contains on a few +changes. The primary purpose of this release is to synchronize with +the release of the pascal-0.1.0 add-on package. + +This release of NuttX includes the following changes: + +* Fixes for use with SDCC compiler +* Added a simulated z80 target (arch/z80) +* Fix deadlock errors when using stdio but with no buffering +* Add support for the add-on Pascal P-Code interpreter (pcode/) + (see the pascal-0.1.0 package) + +This release were verified only on the simulated Z80 and and host +simulation targets. As usual, any feedback about bugs or suggestions +for improvement would be greatly appreciated. + +This tarball contains a complete CVS snapshot from January 6, 2007. + +==== + +There was an error in the initial 0.3.6 release that prevented +a successful build unless the Pascal add-on was present. The +tarball was patched to include the fix. Make sure that you download +the nuttx-0.3.6.1.tar.gz version to avoid this problem. + +NuttX-0.3.7 +^^^^^^^^^^^ + +This is the 19th release of NuttX. This release includes the +preliminary port of NuttX to the ZiLOG z16f 16-bit microcontroller. +This port was verified using the ZiLOG z16f2800100zcog Development +and the ZiLOG ZDS-II toolchain. See http://www.zilog.com for +further information. + +I emphasize that this is a preliminary release of the z16f port and +is only alpha or, perhaps, pre-alpha quality as of this writing. +There are a list of known issues in the TODO file in the root of +the NuttX directory. The overall quality of NuttX (excluding the +z16f port) continues to improve beyond the late beta level. + +The z16f port required numerous changes to NuttX to handle: + +* NEAR and FAR addressing, and +* Use of a Windows native toolchain in a Cygwin build environment. + +In addition to the z16f port, at least one very critical bug was +found and corrected in NuttX: The thread-specific errno value of one +task was being randomly trashed when a different thread exited. + +This release were verified on the ZiLOG z16f2800100zcog, Neuros OSD +(ARM9), and the simulation platforms. As usual, any feedback about bugs +or suggestions for improvement would be greatly appreciated. + +This tarball contains a complete CVS snapshot from January 31, 2008. + +NuttX-0.3.8 +^^^^^^^^^^^ + +This is the 20th release of NuttX. This is a minor bugfix release. +It corrects a few minor problems, adds a few minor features, and +continues the integration of the ZiLOG Z18F and of the Pascal P-Code +add-on. This release is synchronized with the release of Pascal-0.1.2. + +This tarball contains a complete CVS snapshot from February 10, 2008. + +NuttX-0.3.9 +^^^^^^^^^^^ + +This is the 21st release of NuttX. This is a minor future enhancement +release. This release includes support for the ZiLOG Z8Encore! micro- +controller. Also included is the initial framework for support for +the Z80, XTRS platform (http://www.tim-mann.org/xtrs.html). + +This released has been verified only on the ZiLOG ZDS-II Z8Encore! +chip simulation. + +This tarball contains a complete CVS snapshot from March 9, 2008. + +NuttX-0.3.10 +^^^^^^^^^^^^ + +This is the 22nd release of NuttX. This is an important bug fix +release. This release incorporates fixes to correct critical list +handling errors in task shutdown logic: One in timer deletion logic +(timer_delete.c) and one in stream logic (lib_init.c). This release +also includes support to ZiLOG EZ80Acclaim microcontroller (EZ80F91 +chip) and configurations for the ZiLOG z8f64200100kit (Z8F6423) and +ez80f0910200kitg (EZ80F091) development kit. + +NuttX-0.3.11 +^^^^^^^^^^^^ + +This is the 23rd release of NuttX. This is another important bugfix +release. This releases fixes several bugs: + +* Two POSIX timer bugs: a memory leak as well a fatal sequencing error. +* Several FAT filesystem errors. +* A deadlock that can occur in opendir() + +A few new features were also added: + +* Support for recursive mutexes +* Added a RAM disk block driver +* The host simulator no longer uses direct Linux system calls and + now also works on Cygwin. +* The OS test was strengthen and now runs as an endurance test + +These changes were verified only on the Host simulator under Cygwin. +Please report any errors to me. + +This tarball contains a complete CVS snapshot from June 1, 2008. + +NuttX-0.3.12 +^^^^^^^^^^^^ + +This is the 24th release of NuttX. This release includes some minor +bugfixes as well as a few new features. Bugs fixed include: + +* Corrected an error in recursive mutex implementation. +* task_create() was only dup()ing the first three file descriptors. +* Fixed driver open reference counting errors in dup(), dup2(), and exit(). +* Fixed error handling logic in fflush(). + +New features were also added: + +* Pipes and pipe() API +* FIFOs and mkfifo() API +* mkfatfs() API can be used to format FAT file systems. + +These changes were verified only on the Host simulator under Cygwin. +Please report any errors to me. + +This tarball contains a complete CVS snapshot from August 10, 2008. + +NuttX-0.3.13 +^^^^^^^^^^^^ + +This is the 25th release of NuttX. This release includes some +important bugfixes as well as a few new features. Bugs fixed +include: + +* Fixed problems with Cygwin-based console input. NSH now works + with the Cygwin simulator. +* sched_get_priority_max/min returned error on SCHED_RR +* Corrected detection of End-of-File in fgets() +* Fixed an error in opendir() that could cause an assertion to fail + inappropriately. +* Corrected an error in the FAT that caused files opened for writing + with O_APPEND to fail. +* Fix error in getopt() when called with argc==1 +* Fix error in stat() when used on the root directory +* Fixed a critical bug that effects the way that environment variables + are shared among pthreads. +* uIP port now supports multi-threaded, concurrent socket access. + So, for example, one thread can be reading from a socket while + another is writing to the socket. + +New features were also added: + +* New OS APIs: chdir() and getcwd() +* The Nuttx shell (NSH) has been extended in many ways. + - New commands: mkfatfs, mkfifo, sleep, usleep, nice, sh, cd, and pwd + - New memory inspection commands and heap usage commands + - New capabilities: + - Execution of commands in background + - Execution of simple scripts + - Redirection of command output + - Last command status ($?) + - Now supports if-then[-else]-fi construct + - Other features as noted in the ChangeLog. + +These changes were verified only on the Host simulator under Cygwin +and under Linux and also on the Neuros OSD (ARM9). Please report +any errors to me. + +This tarball contains a complete CVS snapshot from September 1, 2008. + +nutt-0.3.14 +^^^^^^^^^^^ + +This is the 26th release of NuttX. This release includes some +important bugfixes as well as a few new features. Critical bugs +fixed include: + +FAT FS: + * Fixed several critical bugs with regard to fat reading and + writing and FAT12 accesses. Basically the FAT FS only worked + with my tiny test files and test cases. A lot of stronger FAT + tested is still needed! + * Fixed another FAT bug in implementation of FAT lseek(); + this prohibited correct random access to large files. + +Network: + * Corrected a critical bug that may prevent recvfrom from receiving + packets from most remote UDP port numbers. + * Corrected an error in multi-threaded socket handling in send() and + sendto(). Outgoing data could overwrite incoming data. + * Corrected IP checksum calculation in ICMP and UDP message send logic. + * Corrected an error in send() timeout logic. + +New features were also added: + +Network: + * Added support for application access to ICMP protocol stacks + * Added ping request logic (net/uip). + * Added basic TFTP client logic (netutils/tftpc). + +NuttShell (NSH): + * New commands: 'test', '[', 'ping', 'mkrd', 'xd', and TFTP 'get' and 'put' + See the new NuttShell User Guide for additional information. + +Other less critical bugs were also fixed and other less important +features were were added. See the ChangeLog for details. + +These changes were verified only on the Neuros OSD (ARM9). Please +report any errors to me. + +This tarball contains a complete CVS snapshot from September 8, 2008. + +nutt-0.3.15 +^^^^^^^^^^^ + +This is the 27th release of NuttX. This release includes some new features: + +* Adds support for the ROMFS filesystem +* ROMFS supports mmap() to provide eXecute In Place (XIP) capability +* NuttShell (NSH) can be configured to use ROMFS to provide a tiny read-only + filesystem with a startup script in /etc. +* Completed the basic port of the NXP LPC2148 on the mcu123.com board. + The basic port includes successful booting, timer interrupts, + serial console, successfully passing the examples/ostest, and a + NuttShell (NSH) configuration. + +These changes were verified only on the mcu123.com NXP LPC2148 +board. Please report any errors to me. + +This tarball contains a complete CVS snapshot from September 20, 2008. + +nutt-0.3.16 +^^^^^^^^^^^ + +This is the 28th release of NuttX. This release includes the first +support for USB in NuttX. A set of USB APIs were added to support +USB device controller drivers and bindings to USB device class +drivers. The form of the interface was inspired by the Linux Gadget APIs. + +At present USB device controller drivers are included for: + * The NXP LPC214x. This driver has been verified and is an early alpha + stage in quality. + * TI DM320. Coding for this driver is complete but it is completely + untested as of this release. + +A controller-independent class driver is also included for: + * USB serial class device driver (emulates the Prolific PL2303 + serial-to-USB adapter). This driver has only been verified with + the Linux host PL2303 driver. + +Other new features include: + * Add an option to set aside a separate stack for interrupt + handling (ARM only). This is useful when memory is constrained, + there are multiple tasks, and the interrupt stack requirement + is high (as when USB is enabled). + +A few bugs were also fixed: + * Fixed the frequency of system timer interrupts in the NXP LPC214x port + (off by 20x in nuttx-0.3.15) + * Fixed serial driver bugs related to (1) open counts and (2) recognizing + O_NONBLOCK on read. + * Fixed an error in read(); it was not setting the errno on errors returned + from the driver. + +These changes were verified only on the mcu123.com NXP LPC2148 board +using with a Linux host. Please report any errors to me. + +This tarball contains a complete CVS snapshot from October 10, 2008. + +UPDATE +^^^^^^ +This release does not build for the ARM target when USB is disabled. +Here is the fix: + +Index: arch/arm/src/common/up_internal.h +=================================================================== +RCS file: /cvsroot/nuttx/nuttx/arch/arm/src/common/up_internal.h,v +retrieving revision 1.13 +diff -u -r1.13 up_internal.h +--- arch/arm/src/common/up_internal.h 6 Oct 2008 16:20:52 -0000 1.13 ++++ arch/arm/src/common/up_internal.h 13 Oct 2008 20:48:21 -0000 +@@ -200,7 +200,8 @@ + extern void up_usbinitialize(void); + extern void up_usbuninitialize(void); + #else +-# define up_netinitialize() ++# define up_usbinitialize() ++# define up_usbuninitialize() + #endif + + #endif /* __ASSEMBLY__ */ + +NuttX-0.3.17 +^^^^^^^^^^^^ + +This is the 29th release of NuttX. This release includes the +additional support for USB in NuttX. The following new features +were added: + +* Added support for SPI-based MMC/SD cards (with an SPI driver + for the NXP LPC214x). +* Added USB storage class device side driver (BBB) +* Added an example that demonstrates the USB storage class by + exporting the SPI based MMC/SD card on the NXP LPC214x. + +This is an early alpha release of these drivers. At present they +only work with debug features enabled so there are probably some +race conditions that occur only with debug features disabled. +(Anyone out there with a USB analyzer? I would love to know what +is happening.) + +Several important bugs were also fixed in the FAT file system, USB +serial driver and NXP LPC214x USB controller driver. (See the ChangeLog +for details.) + +These changes were verified only on the mcu123.com NXP LPC2148 board +using a Linux development environment. USB testing was performed +using both a Linux host and a WinXP host. Please report any errors +to me. + +This tarball contains a complete CVS snapshot from October 28, 2008. + +NuttX-0.3.18 +^^^^^^^^^^^^ + +This is the 30th release of NuttX. This release includes two +partially completed ports, several new features, and a couple of +important bug fixes. The two partially completed ports are: + + * The STMicro STR71x processor and configuration for the Olimex + STR-P711 board. + * The Hitachi SH-1 using the SH1_LCEVB1 (SH-1/US7032EVB1) board + +Progress on these ports is stalled (as detailed in the ChangeLog). + +The new features focus primarily on management of block devices and +extensions of the NuttShell (NSH). These include: + + * A loop device that converts a file into a block device. + * A block to character (BCH) driver that allow access a block device as + if it were character device. + * Added strcasecmp() and strncasecmp() libc functions. + * Added the 'dd' and 'losetup' commands to NSH. These commands + (along with mkfatfs and mount), give good management of filesystems + on the target. + +Several bugs were fixed, the most important of which are: + + * Fixed a race condition workaround delay in LPC214X SPI logic. + This was also the cause of some bad MMC/SD performance on that + platform. + + * Fixed a recently introduced FAT file system problem: It would + mount a (invalid) FAT file system even if the medium is not formatted! + + * Corrected two other important errors in the FAT lseek() implementation: + 1 - The sectors-per-cluster value was being reset to "1". + 2 - Important lseek logic was omitted when the seek position was zero. + +The FAT filesystem has had many bugs fixed in it and, I think, is +now maturing and becoming stable. + +These changes were verified only on the mcu123.com NXP LPC2148 +board, the Hitachi SH1_LCEVB1 board, and the Linux simulator, all +using a Linux development environment. Please report any errors +to me. + +This tarball contains a complete CVS snapshot from November 16, 2008. + +NuttX-0.3.19 +^^^^^^^^^^^^ + +This is the 31st release of NuttX. This release includes the +following new feature: + + * Add poll() and select() APIs that may be used to monitor for + data availability on character devices or TCP/IP sockets. + * Implemented support TCP/IP connection backlog. This allows + select() to wake-up on new connections to a listener socket. + * Added definition of a framebuffer driver and implement framebuffer + drivers for the simulated platform and the TI DM320 (untested + as of the initial check-in). + * Partially developed a graphics framework based on the framebuffer + drivers, however, this will not be ready for use for a few more + releases. Currently this includes only a few color conversion + routines and some rasterizing functions. A tiny windowing system + is under development but not ready for check-in yet. + * Added support for fixed precision math. + * Added support for outgoing multicast packets. + +Several bugs were fixed, the most important of which are: + + * Fixed an important bug in the TCP/IP buffering logic. When + TCP/IP read-ahead is enabled and not recv() is in-place when a + TCP/IP packet is received, the packet is placed into a read-ahead + buffer. However, the old contents of the read-ahead buffer + were not being cleared and old data would contaminate the newly + received buffer. + + * Changed the behavior of the serial driver read. It now returns + data as it is available rather than waiting for the full requested + read size. This makes functions like fgetc() work much more + smoothly. + +These changes were verified only on the Neuros OSD (ARM9) using a +Linux development environment. Please report any errors to me. + +This tarball contains a complete CVS snapshot from November 26, 2008. + +NuttX-0.4.0 +^^^^^^^^^^^ + +This is the 32nd release of NuttX. This release adds graphics +support and a tiny windowing subsystem. That new graphics subsystem +is documented at http://nuttx.sourceforge.net/NXGraphicsSubsystem.html. +No other substantial changes were made. + +These changes were verified only on the NuttX simulation platform +with X11 windows simulating a device framebuffer. Please report any +errors to me. + +The version number was bumped up to 0.4.0 in part to reflect the +new graphics subsystem, but also to recognize the NuttX is approaching +complete functionality. In the 0.3.x versions, network support was +added, Pascal P-code runtime support was added, FAT and ROMFS +filesystems were added, MMC/SD and USB device support were added. +There were also numerous extensions to the NuttShell, NuttX APIs, +and architecture ports. + +This tarball contains a complete CVS snapshot from December 6, 2008. + +NuttX-0.4.1 +^^^^^^^^^^^ + +This is the 33rd release of NuttX. This is a minor bugfix release. +The primary reason for this release is to correct numerous build +errors that have accumulated for the ZiLOG ZDS-II based targets. +All ZDS-II targets now build correctly (but have not been re-tested). +In addition to platform-specific build failures, this release also +adds the following features which were not tested as of the time +of the release: + + * Board support for the ZiLog ez80Acclaim! ez80f910200zco Development Kit + * ZiLOG eZ80F91 EMAC driver + +These changes were verified only on the NuttX simulation platform. +Please report any errors to me. + +This tarball contains a complete CVS snapshot from February 6, 2009. + +NuttX-0.4.2 +^^^^^^^^^^^ + +This is the 34th release of NuttX. This release adds no new OS +features but does include support for two new architectures: + + * ez80Acclaim! Basic support has been integrated and verified + for the ez80f910200zcog-d board (eZ80F91-based). That basic + support includes timer interrupts and serial console. Ongoing + work includes an EMAC driver that should be integrated for the + next release nuttx-0.4.2. eZ80Acclaim! support has been in the + code base for some time, but has only just been integrated due + to toolchain issues. + + * Renesas M16C/20. Support for the Renesas SKP16C20 board has + been included in the NuttX source tree. However, as the + eZ80Acclaim!, testing and integration of that port is stalled + due to toolchain issues. + +These changes were verified only on the ZiLOG eZ80910200zcog-d +board. Please report any errors to me. + +This tarball contains a complete CVS snapshot from February 28, 2009. + +NuttX-0.4.3 +^^^^^^^^^^^ + +This is the 35th release of NuttX. This release one important new +OS feature and corrects and extends the eZ80 port: + + * Priority Inheritance. The basic NuttX waiting logic was extended + to support priority inheritance. See the NuttX User Manual for + further information: + http://www.nuttx.org/NuttxUserGuide.html#priorityinheritance. + + * ez80Acclaim! Corrected several critical, show-stopping bugs on that + platform including: + - Errors in the serial driver interrupts. + - An error in the eZ80 table. + * eZ80Acclaim!: Completed integration of the eZ80F91 EMAC driver. + +These changes were verified only on the ZiLOG eZ80910200zcog-d board +and on Cygwin-based simulation platform in various configurations. +Please report any errors to me. + +This tarball contains a complete CVS snapshot from March 13, 2009. + +NuttX-0.4.4 +^^^^^^^^^^^ + +This is the 36th release of NuttX. This release focuses on bugfixes +and extending and verifying certain networking features. + + * Important bugs were fixed in NSH, UDP checksum calculation, UDP + bind() behavior for port==0, the eZ80Acclaim! EMAC driver, Z80 + interrupt handling, and in the C libraries. + + * Testing was extended to further verify the tiny webserver, + DHCPD, wget(), and sendmail. + +See the Changelog for a detailed description of these changes. + +These changes were verified only on the ZiLOG eZ80910200zcog-d board +using the ZDS-II toolchain in Cygwin-based environment. Please +report any errors to me. + +This tarball contains a complete CVS snapshot from March 29, 2009. + +NuttX-0.4.5 +^^^^^^^^^^^ + +This is the 37th release of NuttX. This release focuses on a few new features. + + * The basic port for the Freescale ARM920T i.MX1 processor on the + Freescale MX1ADS board. Coding is complete for this port, but + it is has not yet fully integrated + * Extended I2C and SPI interface definitions + * Add basic support for C++ applications. Very simple C++ + applications can now be built against NuttX without any external + libraries. At present, only the most primitive C++ programs + are supported, but it is hoped that this support will be extended + in future releases. + +See the Changelog for a detailed description of these changes. + +This tarball contains a complete CVS snapshot from April 19, 2009. + +NuttX-0.4.6 +^^^^^^^^^^^ + +This is the 38th release of NuttX. The release features support +for the Micromint Eagle-100 development board. This board is based +around, the Luminary LM3S6918 MCU. This is the first ARM Cortex-M3 +architecture supported by Nuttx. This initial, basic port includes +timer and serial console with configurations to execute the NuttX +OS test and to run the NuttShell (NSH). Work is still underway on +this port and current plans are to have I2C, SSI, MMC/SD, and and +Ethernet driver in the 0.4.7 release. + +Additional work was done on the MXADS i.MX1 port, however, that +work has been set aside until I complete work on the Eagle-100 (I +also need to come up with a 3V power supply). + +Other changes in this release include: Extensions to the SPI interface +definition in order to handle 9-bit interfaces to displays. Several +bugs were fixed (see the ChangeLog for a complete list of changes). + +This tarball contains a complete CVS snapshot from May 19, 2009. + +NuttX-0.4.7 +^^^^^^^^^^^ + +This is the 39th release of NuttX. This release focuses on cleaning +up and extending the Eagle100/LM3S6918 port released in nuttx-0.4.6 +and on improved MMC/SD support. New features include: + + * Improved reliably and additional drivers for the Eagle-100 board + (LM3S6918 ARM Cortex-M3). Additional drivers include Ethernet, + SSI, and support for the on-board LEDs and microSD cards. + + * The SPI-based MMC/SD driver was extended to support SDHC Version + 2.xx cards. + +In addition, this release includes several important bugfixes for +the LM3S6918, the LPC2148, the SPI-based MMC/SD driver, and to +FAT32. See the ChangeLog for details of these bugfixes. + +This tarball contains a complete CVS snapshot from May 29, 2009. + +NuttX-0.4.8 +^^^^^^^^^^^ + +This is the 40th release of NuttX. This release adds: + + * Support for the Olimex STRP711 board. That board is based on + the STMicro STR711 MCU (ARM7TDMI). Integration is complete on + the basic port (boot logic, system time, serial console). Two + configurations have been verified: (1) The board boots and + passes the OS test with console output visible on UART0, and + the NuttShell (NSH) is fully functional with interrupt driven + serial console. An SPI driver is available but untested (because + the Olimex card slot appears to accept only MMC cards; I have + only SD cards). Additional needed: USB and driver, MMC + integration. + + * Support for the CodeSourcery and devkitARM Windows-native GNU + toolchains. Makefiles have been modified for the LM3S6918, + LPC2148, and STR711 to support these toolchains under Cygwin. + +This tarball contains a complete CVS snapshot from June 13, 2009. + +NuttX-0.4.9 +^^^^^^^^^^^ + +This is the 41st release of NuttX. This release adds: + + * Support for a new binary format call NXFLAT that can be used to + execute separately linked programs in place in a file system. + See http://www.nuttx.org/NuttXNxFlat.html. + + * Several important bugs were files related to networking and ROMFS. + See the ChangeLog for a complete list. + +This tarball contains a complete CVS snapshot from June 26, 2009. + +NuttX-0.4.10 +^^^^^^^^^^^ + +This is the 42nd release of NuttX. This released focused on the +port of Jeff Poskanzer's THTTPD HTTP server (see +http://acme.com/software/thttpd/). As of the 0.4.10 release, that +port is still not fully complete and functional. However, numerous +related bug-fixes and functional additions for THTTPD were added: + + * Several new standard C-library functions (fileno, strstr, + strpbrk, fcntl). + * Improved and extended timing APIs (mktime, gmtime, gmtime_r, + gettimeofday, localtime, localtime_r, and strftime) + * Networking enhancements: recvfrom() and accept() now work with + non-blocking sockets. + * NXFLAT extensions (exec) + * Pattern matching logic. + * And miscellaneous bug fixes (see the ChangeLog for details). + +This tarball contains a complete CVS snapshot from August 8, 2009. + +NuttX-0.4.11 +^^^^^^^^^^^^ + +This is the 43rd release of NuttX. This release of NuttX incorporates +the verified port of Jeff Poskanzer's THTTPD HTTP server (see +http://acme.com/software/thttpd/). Many of the key features of +THTTPD have been tested on the Micromint Eagle-100 development board +(Cortex-M3). These tests verify: + + * Serving of files from any file system + * Execution of CGI executable. This release supports execution + of NXFLAT executables on a ROMFS file system + (http://www.nuttx.org/NuttXNxFlat.html) + +A standard CGI interface is used: Information is pasted to the CGI +program via POST commands and via environment variables. CGI socket +I/O is redirected to stdin and stdout so that the CGI program only +need to printf() to send its content back to the HTTP client. + +Another value to this THTTPD integration effort has been that THTTPD +has provided a very good test bed for finding NuttX networking bugs. +Several very critical networking bugs have been fixed with this +0.4.11 release (see the ChangeLog for details). Networking throughput +has also been greatly improved. Anyone using NuttX networking +should consider upgrading to this release. + +This tarball contains a complete CVS snapshot from September 16, 2009 + +NuttX-0.4.12 +^^^^^^^^^^^^ + +This is the 44th release of NuttX. This release adds basic support +for the STMicro STM32, Cortex-M3 MCU. The specific port is to the +STMicro STM3210E-EVAL development board based around the STM32F103ZET6 +MCU. Some highlights of this port: + + * This basic port includes boot-up logic, interrupt driven serial + console, and system timer interrupts. + * Includes a basic STMicro RIDE7 project that can be used to + perform basic STM32 board bring-up (due to RIDE7 size limitations, + it cannot be used for the full NuttX bring-up). + * Working, Tested Configurations: the NuttX OS test and the + NuttShell (NSH) example. + +This basic STM32 port will be extended in the 0.4.13 NuttX release. +Functionality needed for complete STM32 support includes: USB +device driver, LCD driver and NX bringup on the development board's +display and MicroSD support. An SPI driver and a DMA support was +included in this 0.4.12 release, but is not yet tested. + +This tarball contains a complete CVS snapshot from October 17, 2009 + +NuttX-0.4.13 +^^^^^^^^^^^^ + +This is the 45th release of NuttX. The release extends the support +for the STMicro STM32 microcontroller. Minimal support for the +STM3210E-EVAL development board based around the STM32F103ZET6 MCU +was released in NuttX-0.4.12. This release adds: + + * A simple interface definition to support some FLASH, EEPROM, + NVRAM, etc. devices. + * Verified SPI operation using driver for SPI based FLASH parts + M25P64 and M25P128. + * Improved Cortex-M3 context switching. This should improve + context switching performance be 2x in certain cases. + * Added a USB device-side driver for the STM32. This is an early + release of a very complex driver; some bugs are expected. + * The USB driver has been verified against the USB serial device + class driver. There is at least one known outstanding issue + (see the full bug description in the TODO list). + +This release also corrects some important bugs in the early STM32 release: + + * Fixed several errors the prevented operation of NuttX on an + STM32 development board using USART2 as the serial console. + * Fixed and optimization-dependent race condition in the clock + initialization. + * Fixed a critical bug in the interrupt control logic that could + cause interrupt operations to failed used for interrupts in a + certain range. + +This tarball contains a complete CVS snapshot from November 4, 2009 + +NuttX-4.14 +^^^^^^^^^^ + +This is the 46th release of NuttX. The release extends the support +for the STMicro STM32 microcontroller. Minimal support for the +STM3210E-EVAL development board based around the STM32F103ZET6 MCU +was released in NuttX-0.4.12 and extended in Nuttx-0.4.13 to include +initial USB support. This completes the STM32F103ZET6 and adds: + +New Generic RTOS Features: + + * Added generic support that can be included in any block driver + to provide read-ahead buffering and write buffering for improved + driver performance. + * Added a generic worker thread that can used to defer processing + from an interrupt to a task. + * Defined a generic SD/SDIO interface can can be bound to a MMC/SD + or SDIO driver to provide SDIO support. + * Implemented a an SDIO-based MMC/SD driver using this new SDIO + interface. + +New STM32 Features: + + * Add support to configure an STM32 input GPIO to generate an + EXTI interrupt. + * Added support for buttons on the STM3210E-EVAL board. + * Implemented an STM32 version of the common the SDIO interface. + * Added a configuration to exercise the STM32 with the USB mass + storage device class example. + +This release also corrects some important bugs in the early STM32 release: + + * Correct error handling in the mount() logic. + * Fixed several STM32 DMA-related issues. Integrated and debugged + STM32 DMA functionality that was added in 0.4.12. + * Fixed several bugs in the STM32 USB device-side driver. + +NOTE: This version, 4.14, is equivalent to what would have been +called 0.4.14 to follow 0.4.13. The zero has been eliminated from +the front of the version number to avoid confusion about the state +of development: Some have interpreted the leading zero to mean +that the code is in some way unstable. That was not the intent. +Beginning in January 2010, I will switch to the 2010.nn versioning +as many others have done to avoid such confusion. + +This tarball contains a complete CVS snapshot from December 2, 2009 + +NuttX-5.0 +^^^^^^^^^ + +This is 47th release of NuttX and the successor to nuttx-4.14. This +major revision number has been incremented to indicate that an +incompatibility with previous nuttx releases has been introduced. +This version adopts standard fixed width integer names as specified +by the ANSI C99 standard. The core logic of NuttX is older than +that standard and did not conform to it. + +If you have applications running on NuttX-4.14, those applications +should continue to build and execute without problem on NuttX-5.0. +However, if you have device drivers or other OS-internal logic, you +will probably have to make some minor changes to your code to use +this version. Below is a summary of those changes: + + * If you include sys/types.h to get the non-standard, fixed width + integer types (uint32, uint16, ubyte, etc.), that is no longer + necessary. + * Instead, you will need to include stdint.h where the new fixed + width integer types are defined (uint32_t, uint16_t, uint8_t, etc). + * You will have to change all occurrences of the following types: + + uint32 -> uint32_t + uint16 -> uint16_t + ubyte -> uint8_t + uint8 -> uint8_t + sint32 -> int32_t + sint16 -> int16_t + sint8 -> int8_t + + * In addition, the non-standard type 'boolean' must replaced with + the standard type 'bool'. The type definition for 'bool' is in + stdbool.h + +This change in typing caused small changes to many, many files. It +was verified that all configurations in the release still build +correctly (other than the SDCC-based configurations). Regression +testing was performed on a few configurations, but it is possible +that minor build issues still exist. (If you encounter any, please +let me know and I will help you to fix them.) + +In the course of the regression testing, several important bugs +unrelated to the type changes were found and corrected. + + * Fixed an important error in the RX FIFO handling logic of the + LM3S6918 Ethernet driver. + * Corrected the handling of TCP sequence numbers in the TCP stack. + * And other less important bugs as detailed in the ChangeLog. + +The primary focus of this release was standards compatibility, but +a few new features were added including a (1) Flash Translation +Layer (FTL) that will support filesystems on a FLASH device and (2) +partial ports for the STM32F107VC and HCS12 C9S12NE64 MCUs. Those +ports are very incomplete as of this writing. + +This tarball contains a complete CVS snapshot from December 21, 2009 + +NuttX-5.1 +^^^^^^^^^ + +This is the 48th release of NuttX. This release adds support for +two new MCU architectures in various states of development: + +* AT91SAM3U (http://www.atmel.com/products/at91/sam3landing.asp?family_id=605) + + This release adds support for the SAM3U-EK development board with + the AT91SAM3U4E MCU + (http://www.atmel.com/dyn/products/product_card_mcu.asp?part_id=4562). + As with most NuttX architecture releases, the release will be + rolled out in two parts: A basic port and an extended port. + + NuttX-5.1 includes the basic port for the SAM3U-EK board. This + release passes the NuttX OS test and is proven to have a valid + OS implementation. It supports the basic boot-up, serial console + and timer interrupts. A configuration to support the NuttShell + is also included. + + The extended port will also include support for SDIO-based SD + cards and USB device (and possible LCD support). These extensions + may or may not happen by the Nuttx 5.2 release as my plate is + kind of full now. + +* LPC3131 (http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/) + + This release also adds the complete implementation of the basic + port for the NXP LPC3131 MCU on the Embedded Artists EA3131 board + (http://www.embeddedartists.com/products/kits/lpc3131_kit.php). + That port, unfortunately has stalled due to tools issues. Those + tool issues have been resolved and I am confident that the verified + basic port will be available in NuttX-5.2. + + The extended release will follow and should include SDIO-based + SD card support and device USB. + +A few additional features and bugfixes of a minor nature were also +incorporated as detailed in the ChangeLog. + +NuttX-5.2 +^^^^^^^^^ + +This is the 49th release of NuttX. This release completes the +verification of the basic port for the NXP LPC3131 MCU on the +Embedded Artists EA3131 board +(http://www.embeddedartists.com/products/kits/lpc3131_kit.php). +This basic port includes basic boot-up, serial console, and timer +interrupts. This port has been verified on the using the NuttX OS +test and includes a working implementation of the NuttShell (NSH). + +An extended release will follow and should include SDIO-based SD +card support and device USB. + +NuttX-5.3 +^^^^^^^^^ + +This is the 50th release of NuttX. This release support for one new +architecture: + + * A basic port for the NXP LPC2378 MCU on the Olimex-LPC2378 + development board was contributed by Rommel Marcelo. + +And extensions to two existing architectures: + + * David Hewson contributed a dual-speed (full/high) USB device-side + driver for the NXP LPC3131 on the Embedded Artists EA3131 + development board. + + * A DMA driver and a high speed MCI driver for the Atmel AT91SAM3U + are included (but not fully tested in this release). + +Two important bugfix was also included: + + * An important fix to the USB mass storage driver was contributed + by David Hewson. + * A serious error in the AT91SAM3U PIO handling was fixed. + +NuttX-5.4 +^^^^^^^^^ + +This is the 51st release of NuttX. This release includes one new, +important extension to th NX graphics system (See +http://www.nuttx.org/NXGraphicsSubsystem.html). + +NX was develop a couple years back on hardware that supported only +framebuffer devices, that is, video hardware with video memory +directly converts the memory content to video. However, most MCUs +that NuttX focuses on do not support such video memory; rather, +that typically only support LCDs via parallel or serial interfaces. + +This release of NuttX extends NX so that now renders directly to +the LCD device via its serial or parallel interface. No in-memory +copy of the screen memory need be maintained so this solution should +also work in MCUs with very limited SRAM. + +This initial release of this feature includes the verified NX +extensions plus a driver for the HX8347, 16-bit parallel LCD. This +LCD supports 16-bit RGB (5:6:5). + +NuttX-5.5 +^^^^^^^^^ + +This is the 52nd release of NuttX. This release includes one new +port, some new drivers and some important bugfixes: + + * NuttX was ported to the Luminary/TI LM3S6965 Ethernet Evaluation + Kit. At present, that port includes an OS test configuration + and a NuttShell (NSH) configuration with Telnet support. + + MMC/SD and Networking support are provided but not thoroughly + verified in this release: Current development efforts are focused + on porting the NuttX window system (NX) to work with the + Evaluation Kits OLED display. + + * A NuttX Ethernet driver for the Microchip ENC28J60 SPI Ethernet + chip is available in the source tree (but has not yet been fully + verified because I haven't properly connected it to hardware + yet). + + * The Olimex STR-P711 NuttX port was extended to support the + ENC28J60 and some new networking configurations were added. + The ENC28J60 has not been tested on the STR-P711, however, + because of hardware issues (I don't think the USB powered board + provides enough power for the ENC28J60 and I don't have the + right wall wart yet). + + Along the way, external interrupt support (XTI) was added to + the STMicro STR-P711 port and some important bugs were fixed + in the STR-P711 SPI driver. + + * Added (optional) floating point support for printf(). + (Contributed by Yolande Cates.) + + * Corrected an important UDP reference counting error. It was + not a serious error, but it trigger an assertion was IS a serious + error. + +NuttX-5.6 +^^^^^^^^^ + +This is the 53rd release of NuttX. This release includes one several +new drivers for existing NuttX ports: + + * This port adds support for the RiT displays P14201 4-bpp, + greyscale OLED. 4-bpp greyscale support was integrated into + the NX graphics sub-system and verified using the TI/Luminary + LP3S6965 Ethernet Evaluation Kit. + + * The M25Px driver was extended for the M24P1 FLASH part (see NOTE). + + * An I2C driver and (basic) SPI driver were added for the NXP + LPC313x port. The I2C interface definition was extended to + efficiently handle multiple I2C transfers. + (Contributed by David Hewson.) + +As well as a few, important USB-related bugfixes (See the ChangeLog +for details). + +This release also includes the beginnings of a port for the NXP +LPC1768 MCU. However, it is too early for that port to be useful +(stay tuned for a future announce of the availability of the LPC1768 +port). + +NuttX-5.7 +^^^^^^^^^ + +This is the 54th release of NuttX. This release adds basic support +for one new ARM Cortex-M3 architecture: + + * Added support for NXP LPC1768 MCU as provided on the Nucleus + 2G board from 2G Engineering (http://www.2g-eng.com). + * Some initial files for the LPC17xx family were released in NuttX + 5.6, but the first functional release for the NXP LPC1768/Nucleus2G + occurred with NuttX 5.7. + * That initial basic release included timer interrupts and a + serial console and was verified using the NuttX OS test. + * That release includes a verified NuttShell (NSH) configuration + (see the http://www.nuttx.org/NuttShell.html). + * Also included are unverified SPI and USB device drivers. + +Further efforts include: + (1) development of a DMA support library + (2) SPI-based MMC/SD support + (3) verification of the USB driver + +Watch for announcement of the completed LPC1768 port expected in +NuttX-5.8. + +NuttX-5.8 +^^^^^^^^^ + +This is the 55th release of NuttX. This includes several important +bugfixes: + + * Corrects some interrupt vectoring for the TI/Stellarix LM3S + port + * Correct initialization logic for NXP LPC17xxx NuttX ports: + Power was not being provided to the GPIO module! + * Corrected (but did not verify) implementation of the optional + interrupt stack feature (all Cortex M3 architectures). + * Correct a HardFault in the LPC17xx SSP driver. + +Additional minor fixes are also included as detailed in the ChangeLog. + +Several new features have been fully developed and included in this +release, but full verification of most of these new features has +been blocked for a variety of issues: + + * Added microSD support for the NuttShell (NSH) configuration in + the Nucleus2G LPC1768 port. For reasons that have not yet been + determined, I have not successfully accessed the microSD card + as of this writing. + * Two USB configurations were also added for the Nucleus2G board: + One to support the USB serial device and one for the USB mass + storage device. Some testing of the USB driver was performed, + but full verification is stalled for an OTG style USB cable. + * LEDs now work correctly on the Nucleus2G LPC1768 board. + * The NuttX/uIP networking subsystem now supports IGMPv2 client. + IGMP (Internet Group Multicast Protocol) network "appliances" + to join into multicast groups. Outbound traffic to enter and + leave multicast groups has been verified, but full verification + will require a switch capable of multicast. Issues associated + with the receipt of multicast packets are likely. + +NuttX-5.9 +^^^^^^^^^ + +This is the 56th release of NuttX. This release is difficult to +categorize; NuttX-5.9 was really released because there were too +many changes accumulating in CVS -- a few important, some unfinished +implementations, and a couple of important bugfixes. + + * By far biggest change in this release is the complete implementation + of on-demand paging support. This feature will allow you to + execute large programs on a mass storage device (such as SPI + FLASH) in a small RAM. All of the core on-demand paging logic + was completed (see http://www.nuttx.org/NuttXDemandPaging.html) + and support was implemented for the ARM-9 family. A test + configuration is in place for the NXP LPC3131. It has been + verified that this new logic does not interfere with normal + fixed-page ARM9 operation, but otherwise this new on-demand + paging feature is untested. + * Add support for the CodeSourcery toolchain to the Olimex-lpc2378 + port and for the Neuros OSD port. + * The Neuros OSD port has been updated to work with the production + v1.0 OSD (previously it only worked with the development board). + * And some miscellaneous feature enhancements as detailed in the + ChangeLog. + +This includes several important bugfixes: + + * NXP LPC17xx - Fixed a critical bug in the GPIO configuration + logic: When attempting to set no pull-up or pull-down (floating), + it would, instead, select pull-down. + + * TI/Luminary LM3Sxxxx - Fixed: + (1) A logic error in an address table lookup. + (2) GPIO port encoding the limited support to only 8 GPIO ports. + + * Corrected the lease time in the DHCPC implementation: It was + not in host byte order. + + * And several other less important bugs as documented in the + ChangeLog: Warnings, cornercase compilation problems, etc. + +NuttX-5.10 +^^^^^^^^^^ + +This is the 57th release of NuttX. This release includes a combination +of some new features as well as several bugfixes. New features +include: + + * TI/Luminary Stellaris LM3S9B96: + Header file changes contributed by Tiago Maluta. + * TI/Luminary Stellaris LM3S8962: + Header file changes and support for the Stellaris LM3S8962 + Ethernet+CAN Evaluation Board contributed by Larry Arnold. + * On-Demand Paging Support: + The basic logic for the On-Demand Paging feature is complete, + implemented for the NXP LPC3131, and partially tested. See + http://www.nuttx.org/NuttXDemandPaging.html. Some additional + test infrastructure will be needed in order to complete the + verification. See configs/ea3131/README.txt for details. + * Two Pass Build Support: + The make system now supports a two pass build where a relocatable, + partially linked object is created on the first pass and that + object is linked with the NuttX libraries to produce the final + executable on the second pass. This two pass build is currently + only used to support the On-Demand paging feature: The first + pass link forces critical logic into the locked text region; + the second pass builds the NuttX executable more-or-less as + normal. + * CONFIG_APP_DIR: + Generalized the way in which applications are built and linked + with NuttX. The new configuration CONFIG_APP_DIR replaces + CONFIG_EXAMPLE. CONFIG_EXAMPLE used to identify the sub-directory + within the NuttX examples/ directory that held the example + application to be built. That made it awkward to configure to + build an application that resides outside of the NuttX examples/ + directory. CONFIG_APP_DIR is more general; it can be used to + refer to any directory containing the application to be built. + + For people who have their own configurations and/or Makefiles, + you will need to make a couple of changes: + + - Replace all occurrences of CONFIG_EXAMPLE=foobar with + CONFIG_APP_DIR=examples/foobar in all of the configuration + files. + - Replace any occurrences of examples/$(CONFIG_EXAMPLE) with + $(CONFIG_APP_DIR) + - Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) + with libapp$(LIBEXT) in your Makefiles. + - Check any other occurrences of CONFIG_EXAMPLE. + + * Several bugfixes are included as well as code changes to eliminate + some warnings. See the ChangeLog for details. + +NuttX-5.11 +^^^^^^^^^^ + +This is the 58th release of NuttX. This is a bugfix release. + + * One very important bug fixes a race condition that can occur + using semaphores that can be awakened by signals. Under this + particular race condition, a task could hang waiting for a + semaphore. + * Corrections to lm3s8962 port contributed by Larry Arnold. That + port is purported to work correctly with these changes in place. + +Plus less critical bugfixes as detailed in the ChangeLog. New features +include: + + * A new configuration to support the mbed.org LPC1768 board. + (Contributed by Dave Marples.) + * A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part + +NuttX-5.12 +^^^^^^^^^^ + +This is the 59th release of NuttX. This is a critical bugfix release. + + * Fixed an important error in the signal trampoline logic. + Essentially, interrupts are re-enabled while the signal handler + executes, but the logic to re-disable the interrupts before + returning from the signal handler trampoline was missing. Under + certain circumstances, this can cause stack corruption. This + was discovered by David Hewson on an ARM9 platform, but since + the code has been leveraged, the bug has been propagated from + ARM to Cortex-M3, AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- + almost every architecture. The correction has been incorporated + for all architectures but only verified on a few. + +Other notable changes in NuttX-5.12: + + * A complete port for the AVR32 (AT32UC3B0256) is incorporated + in the source tree. Testing of this port is underway now. This + release was made before verifying this port in order to get the + important bugfix in place. + + * Other miscellaneous bugfix and enhancements as noted in the + ChangeLog. + +NuttX-5.13 +^^^^^^^^^^ + +This is the 60th release of NuttX. Headlines for this release +include: + + * AVR32, www.mcuzone.com AVR32DEV1 + + The port for the www.mcuzone.com AVRDEV1 board based on the + Atmel AT32UC3B0256 MCU was (almost) fully integrated. The port + now successfully passes the NuttX OS test (examples/ostest). + A NuttShell (NSH) configuration is in place (see the NSH User + Guide at http://www.nuttx.org/NuttShell.html). Testing of that + NSH configuration, however, has been postponed (because it got + bumped by the Olimex LPC1766-STK port -- see below) + + Current Status: I think I have a hardware problem with my serial + port setup. There is a good chance that the NSH port is complete + and functional, but I am not yet able to demonstrate that. At + present, I get nothing coming in the serial RXD line (probably + because the pins are configured wrong or I have the MAX232 + connected wrong). + + A complete port will include drivers for additional AVR32 UC3 + devices -- like SPI and USB --- and will be available in a + later release, time permitting. + + * LPC1766, Olimex LPC1766-STK + + Support for the Olimex-LPC1766 is newly added to NuttX and is + still undergoing development, test, and integration. Verified + configurations for the NuttX OS test and for the NuttShell (NSH, + see the NSH User Guide at http://www.nuttx.org/NuttShell.html. + Additional USB configurations are in the release as well, but + they have not yet been verified. Goals for NuttX-5.14 include: + (1) An Ethernet driver, (2) Verified USB support, and (3) SD + card support. + + * Additional changes and bugfixes as detailed in the ChangeLog. + +NuttX-5.14 +^^^^^^^^^^ + +The 61st release of NuttX, NuttX-5.14, was made on November 27, +2010. This release includes multiple, important bugfixes as well +as a new driver for the NXP LPC1766. + +Important bugfixes include: + + * Cortex-M3 Hard Fault. Fixed a hard fault problem that can occur + if certain types of interrupts are pending at the time another + interrupt returns. This problem has only been observed on the + LPC1766 (returning from a SYSTICK interrupt with a pending + Ethernet interrupt). However, it is assumed that all Cortex-M3 + ports could have this as a latent bug. + + * TCP/IP Sequence Number Bug. Corrected errors some important + logic in the way that sequence numbers are managed when send() + sends out packets before a previous packet has been acknowledged. + Some of that send() logic was incompatible with logic in the + uIP layer. Errors seen include: (1) The final final packet in + a sequence of packets might be too large! In the THTTPD example, + this might leave some garbage at the bottom of the display. Or + (2) send() might hang with outstanding, unacknowledged data + (and with no re-transmission requests). This was due to + differences in sequence number handling in send() and in + uip_tcpinput.c; uip_tcpinput.c thought (incorrectly) that all + of the bytes were acknowledged; send.c knew that they were not. + + * One-Shot POSIX Timer Bug. Fixed an error in set-up of a one-shot + POSIX timer. It was using the repetitive timer value (which + is zero in the one-shot case), always resulting in a 10Ms timer! + Found and fixed by Wilton Tong. + +Additional support has been included for the Olimex-LPC1766. Support +for that board was added to NuttX 5.13. This release extends that +support with an Ethernet driver. Verified configurations are now +available for the NuttX OS test, for the NuttShell (NSH, see +http://www.nuttx.org/NuttShell.html), for the NuttX network test, +and for the THTTPD webserver. (Additional USB configurations are +in the release as well, but those have not yet been verified. Goals +for NuttX-5.15 (and beyond) include: (1) Verified USB support, (2) +SD card support, and (3) LCD support. + +NuttX-5.15 +^^^^^^^^^^ + +The 62nd release of NuttX, NuttX-5.15, was made on December 12, +2010. This release includes several bugfixes as well as feature +enhancements, primarily for the Olimex LPC1766-STK board. + +Important bugfixes included: + + * Additional fixes needed with the TCP sequence number problem + "fixed" in NuttX-5.14. + * In the send() logic, now checks if the destination IP address + is in the ARP table before sending the packet; an ARP request + will go out instead. This improves behavior, for example, on + the first on the first GET request from a browser + * All USB class drivers need to call DEV_CONNECT() when they are + ready to be enumerated. That is, (1) initially when bound to + the USB driver, and (2) after a USB reset. + * The SPI_SETBITS macro was calling the SPI setmode method. + * And several other bug fixes of lower importance (see the + ChangeLog for details). + +And feature enhancements: + + * The LPC176x Ethernet driver was using all of AHB SRAM Bank0 for + Ethernet packet buffers (16Kb). An option was added to limit + the amount of SRAM used for packet buffering and to re-use any + extra Bank0 memory for heap. + + * Enabled networking and SD/MMC card support in the Olimex + LPC1766-STK NuttShell (NSH) configuration. + + * The LPC176x USB driver is now fully fully functional. + * Added an optional cmddata() method to the SPI interface. Some + devices require an additional out-of-band bit to specify if the + next word sent to the device is a command or data. The cmddata + method provides selection of command or data. + + * A driver for the Nokia 6100 LCD (with either the Phillips PCF8833 + LCD controller and for the Epson S1D15G10 LCD controller) and + an NX graphics configuration for the Olimex LPC1766-STK have + been added. However, neither the LCD driver nor the NX + configuration have been verified as of the this release. + +NuttX-5.16 +^^^^^^^^^^ + +The 63rd release of NuttX, Version 5.16, was made on January 10, +2010 and is available for download from the SourceForge website. +This release includes initial support for USB host in NuttX. The +USB host infrastructure is new to NuttX. This initial USB host release +is probably only beta quality; it is expected the some bugs remain +in the logic and that the functionality requires extension. + +Below is a summary of the NuttX USB host implementation as extracted +from the NuttX Porting Guide: + + 6.3.9 USB Host-Side Drivers + * include/nuttx/usb/usbhost.h. All structures and APIs needed to + work with USB host-side drivers are provided in this header + file. + * struct usbhost_driver_s. Each USB host controller driver must + implement an instance of struct usbhost_driver_s. This structure + is defined in include/nuttx/usb/usbhost.h. Examples: + arch/arm/src/lpc17xx/lpc17_usbhost.c. + * struct usbhost_class_s. Each USB host class driver must implement + an instance of struct usbhost_class_s. This structure is also + defined in include/nuttx/usb/usbhost.h. Examples: + drivers/usbhost/usbhost_storage.c + * USB Host Class Driver Registry. The NuttX USB host infrastructure + includes a registry. During its initialization, each USB host + class driver must call the interface, usbhost_registerclass() + in order add its interface to the registry. Later, when a USB + device is connected, the USB host controller will look up the + USB host class driver that is needed to support the connected + device in this registry. Examples: drivers/usbhost/usbhost_registry.c, + drivers/usbhost/usbhost_registerclass.c, and + drivers/usbhost/usbhost_findclass.c, + * Detection and Enumeration of Connected Devices. Each USB host + device controller supports two methods that are used to detect + and enumeration newly connected devices (and also detect + disconnected devices): + + int (*wait)(FAR struct usbhost_driver_s *drvr, bool connected); + Wait for a device to be connected or disconnected. + + int (*enumerate)(FAR struct usbhost_driver_s *drvr); + Enumerate the connected device. As part of this enumeration + process, the driver will (1) get the device's configuration + descriptor, (2) extract the class ID info from the configuration + descriptor, (3) call usbhost_findclass() to find the class + that supports this device, (4) call the create() method on + the struct usbhost_registry_s interface to get a class instance, + and finally (5) call the connect() method of the struct + usbhost_class_s interface. After that, the class is in charge + of the sequence of operations. + * Binding USB Host-Side Drivers. USB host-side controller drivers + are not normally directly accessed by user code, but are usually + bound to another, higher level USB host class driver. The class + driver exports the standard NuttX device interface so that the + connected USB device can be accessed just as with other, similar, + on-board devices. For example, the USB host mass storage class + driver (drivers/usbhost/usbhost_storage.c) will register a + standard, NuttX block driver interface (like /dev/sda) that can + be used to mount a file system just as with any other other + block driver instance. In general, the binding sequence is: + + 1. Each USB host class driver includes an initialization entry + point that is called from the application at initialization + time. This driver calls usbhost_registerclass() during this + initialization in order to makes itself available in the + event the the device that it supports is connected. Examples: + The function usbhost_storageinit() in the file + drivers/usbhost/usbhost_storage.c + 2. Each application must include a waiter thread thread that + (1) calls the USB host controller driver's wait() to detect + the connection of a device, and then (2) call the USB host + controller driver's enumerate method to bind the registered + USB host class driver to the USB host controller driver. + Examples: The function nsh_waiter() in the file + configs/nucleus2g/src/up_nsh.c and the function nsh_waiter() + in the file configs/olimex-lpc1766stk/src/up_nsh.c. + 3. As part of its operation during the binding operation, the + USB host class driver will register an instances of a standard + NuttX driver under the /dev directory. To repeat the above + example, the USB host mass storage class driver + (drivers/usbhost/usbhost_storage.c) will register a standard, + NuttX block driver interface (like /dev/sda) that can be + used to mount a file system just as with any other other + block driver instance. Examples: See the call to + register_blockdriver() in the function usbhost_initvolume() + in the file drivers/usbhost/usbhost_storage.c. + +NuttX-5.17 +^^^^^^^^^^ + +The 64th release of NuttX, Version 5.17, was made on January 19, +2011 and is available for download from the SourceForge website. +This release follows close on the heels of the 5.16 release and +extends the USB host capabilities first introduced in that version. + + * The LPC17xx USB host controller driver was extended to (1) add + support for low-speed devices, (2) handle multiple concurrent + transfers on different endpoints (still only one TD per endpoint), + and (3) handle periodic interrupt endpoint types. + + * Add a USB host HID keyboard class driver. Now you can connect + a standard USB keyboard to NuttX and receive keyboard input for + an application. + +And other changes as detailed in the ChangeLog. + +NuttX-5.18 +^^^^^^^^^^ + +The 65th release of NuttX, Version 5.18, was made on February 27, +2011 and is available for download from the SourceForge website. +This is first release from the new NuttX SVN repository. This +release is made primarily to keep the release tarball in synchronization +with SVN. Many smaller changes have been made as identified in the +ChangeLog. Headlines include: + + * Incorporate several important uIP patches -- including the well + known patch to handle missing SYNACK. + * The Freescale mc8s12ne64 port is code complete but testing has + not yet begun due to toolchain issues. Added support for the + Future Electronics Group NE64 Badge board. + * Added support for a new STM32 board, the ISOTEL NetClamps VSN + V1.2 ready2go sensor network platform. This board is based on + a STM32F103RET6 and includes some interesting power saving/clock + control extensions. + * USB host support expanded to handle vendor specific USB devices. + * Incorporated the LUFA HID parser. + * Various bugfix as detailed in the ChangeLog + +NuttX-5.19 +^^^^^^^^^^ + +The 66th release of NuttX, Version 5.19, was made on March 12, 2011 +and is available for download from the SourceForge website. This +release includes several new features in various states of integration +and maturity: + + * 486SX QEMU port. This port supports the Intel 486SX architecture + using the QEMU simulator. Initial functionality is in place a + partially tested. There are still some outstanding issues with + timer interrupts. + * Platform specific application support. A new apps/ directory + appears in this port. This apps/ directory provides a mechanism + for applications using NuttX to have a highly customized + initialization process. It supports a set of end-user applications + than can be executed (1) standalone so you can have a fully + customized application startup, or (2) on top of NSH. Think + of it this way: In a buckled-up embedded application, your + end-user programs will probably have their own dedicated start-up + logic. But, during development, you might want to have you + applications available and executable from the NSH command line. + This apps/ add-on (and NSH hooks) was contributed by Uros to + accomplish just that. + * NSH was also extended to support application specific ROMFS + /etc/init.d/rcS start-up scripts. This feature, as well, as + all of the above-mentioned apps/ directory support was contributed + by Uros Platise + * Additional NSH improvements and bug fixes. See the Changelog + for details. + * This release also provides a new SLIP network driver. This + driver should support point-to-point network communications to + a host using TCP/IP or UDP. This driver is code complete, but + not tested in this release. + * New RAMTRON FRAM driver (contributed by Uros Platise) + * New generic 16550 UART driver. + * Cortex-M3 Power improvements: Waits for Interrupt (WFI) in idle + loop for reduced power consumption (LPC17xx and STM32 only - + contributed by Uros Platise)) + * New waitpid() system interface. + * Additional bugfixes: pipes, stdint.h, STM32 SDIO and SPI drivers + +NuttX-6.0 +^^^^^^^^^ + +The 67th release of NuttX, Version 6.0, was made on March 21, 2011 +and is available for download from the SourceForge website. The +version number of this release was bumped from 5.19 to 6.0. A +change in the major revision number is used to reflect an incompatibility +with previous versions. In this release, the NuttX core OS +functionality has been separated from NuttX application-related +functionality. These are provided as separate tarballs: + + * nuttx-6.0.tar.gz, and + * apps-6.0.tar.gz + +The purpose of this separation is both to better organize and +modularize the NuttX source tree, but also to provide better support +for incorporation of end-user applications with Nuttx. + +The incompatibility results from the changes to the board configuration +logic needed to supported the separable application. The major +changes to the configuration include: + + * CONFIG_APPS_DIR - This should not be set. The default is + ../apps. This should only be set if you have a custom, + product-specific application directory in some different location. + + * appconfig - Each board configuration now requires a new file + called 'appconfig.' As its name suggests, this file provides + new configuration information needed by the logic in ../apps. + +In addition to this major reorganization in the directory structure, +this release also includes some important extensions to existing +features and some important bugfixes. These include: + + * The SLIP driver was been well debugged and significantly + re-designed. Now you can have an Ethernet connection to you + board even if you have no Ethernet hardware. How cool is that? + + * The QEMU i486 port is now functional. It has also been reported + to work on the Bifferboard (see http://bifferos.bizhat.com/). + + * And extensions to the uIP driver interface, and + + * Bug fixes to fopen() and STM32 GPIO configuration + +Please see the ChangeLog for details. + +NuttX-6.1 +^^^^^^^^^ + +The 68th release of NuttX, Version 6.1, was made on April 10, 2011 +and is available for download from the SourceForge website. The +6.0 release introduced a detach-able application environment to +build applications outside of the NuttX source tree. The primary +purpose of this release is to correct numerous build problems +introduced by that architectural change: + + * In many newer environments, NuttX produced strange Makefile + errors but built correctly in older environments. A fix provided + by Rafael Noronha was incorporated and is reported to fix those + build problems. + * The apps/ directory build system would not handle Windows-native + toolchains due to obscure path formatting issues. + * And other problems as detailed in the Changelog. + +Many additional changes were made in the 6.1 release for another +major architectural change: NuttX will now build as a separately +linked microkernel. In this build option the RTOS builds as a +kernel, applications build separately and interface with kernel via +system calls. Applications run in user mode and kernel logic users +in kernel-mode. This provides a secure environment for NuttX. This +feature is fully coded in NuttX-6.1, but has not been tested due +to higher priority tasks that have arisen. + +Related to this change, support for the Cortex-M3 memory protection +unit (MPU) has been integrated with the NuttX kernel build to provide +an even higher level of security. + +NOTE: This kernel build is an option; the default build configuration +is still the standard, flat, unsecured RTOS as in previous releases. + +Additional new features in this release: + + * Support for LPC17xx GPIO interrupts (with much support from + Decio Renno). + * Basic timer support for STM32 (Contributed by Uros Platise) + * A binfs file system. This is a tiny pseudo file system that + lets named applications to be viewed and accessed in NSH under + the /bin directory. + * An I2C-based driver for the LIS331DL MEMS motion sensor. + (Contributed by Uros Platise.) + * A configuration for the Embedded Artists LPCXpresso LPC1768 board. + * The user_initialize() interface has been removed. + +And several bugfix associated with SD drivers, opendir(), signed +8-bit types (int8_t), and USB serial device. See the ChangeLog for +details. + +NuttX-6.2 +^^^^^^^^^ + +The 69th release of NuttX, Version 6.2, was made on May 6, 2011 and +is available for download from the SourceForge website. The 6.2 +release includes several new features: + + * NXFFS: The obvious new feature is NXFFS, the NuttX wear-leveling + FLASH file system. This new file system is intended to be + small for the MCU usage and has some limitations. No formal + documentation of NXFFS yet exists. See the fs/nxffs/README.txt + file for details (see + http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/fs/nxffs/README.txt?view=log) + * Support for NXP LPCXpresso LPC1768 board on the Embedded + Artists base board. The Code Red toolchain is supported under + either Linux or Windows. Verified configurations include + dhcpd, nsh, nx, ostest, thttpd, and usbstorage. + * Support for the Univision UG-9664HSWAG01 OLED with Solomon + Systech SD1305 LCD controller. + * A new RAM MTD driver with FLASH simulation capability. + * A version.h file is now automatically generated so that C code + can now be version aware. + +In addition to these new feature, several important bugfixes are +included in this release correcting problems with dup2(), LPC17xx +GPIO interrupts, LPC17xx UART2/3, the FAT file system, build issues, +and strrch(). See the ChangeLog for more details. + +NuttX-6.3 +^^^^^^^^^ + +The 70th release of NuttX follows only a nines days after the release +of version 6.2. It was released on May 15, 2011. This special +back-to-back release was made so that the current released version +of NuttX will correspond to the initial release from the RGMP +project. + +This release adds architecture support and build configuration for +RGMP. RGMP is a project for running GPOS and RTOS simultaneously +on multi-processor platforms. See +http://rgmp.sourceforge.net/wiki/index.php/Main_Page for further +information about RGMP. + +This release also includes support for STM32 FLASH, build improvements, +and initial, incomplete support for the MicroChip PIC32MX MCU. Bug +fixes are included for some build problems, USB host class driver +error handling, NX graphics color mapping, and problems with C +standard I/O buffer flushing. See the ChangeLog for further details. + +NuttX-6.4 +^^^^^^^^^ + +The 71st release of NuttX, Version 6.4, was made on June 6, 2011 +and is available for download from the SourceForge website. The +6.4 release includes several new features: + + * A new, full-featured FTP client. This client may be used as a library + for automated FTP or via an FTP client shell. The FTP shell + supports the following commands: cd, chmod, get, help, idle, + login, ls, quit, mkdir, noop, put, pwd, rename, rhelp, rm, + rmdir, size, time, and up. A configuration is available for + the NXP LPC17xx to demonstrate this functionality. + * A functional C1101 wireless driver (contributed by Uros Platise) + * A PCI-based E1000 Ethernet driver (contributed by Yu Qiang) + * New C library functions: inet_addr() (contributed by Yu Qiang), + strndup(), asprintf() + * Reduced memory allocation overhead for MCUs with small heaps (<64Kb). + * fdopen() now works with socket descriptors allowing standard + buffered C functions to be used for network communications. + * The NSH ifconfig command can now be used to set or change the + IP address (contributed by Yu Qiang) + +This release also includes some completed but untested functionality. + + * The MicroChip PIC32MX port is now code complete and ready to + begin testing. Unfortunately, testing will be delayed due to + tool issues. + * Support for the NXP LPC315x MCUs. + +Additional miscellaneous enhancements and bug fixes to task_delete(), +recvfrom(), and other changes as noted in the ChangeLog. + +NuttX-6.5 +^^^^^^^^^ + +The 72nd release of NuttX, Version 6.5, was made on June 21, 2011 +and is available for download from the SourceForge website. The +6.5 release is all about support for the Atmel 8-bit AVR family. +I have been interested in the AVR family for some time but because +of the severe SRAM constraints and because of the availability of +many tiny schedulers for the AVR, it has not been "on the radar +screen." However, I have recently become interested because of +interest expressed by members of the forum and because of the +availability of newer, larger capacity AVR parts (that I don't have +yet). + +This release includes support for the following AVR boards. As +with any initial support for new architectures, there are some +incomplete areas and a few caveats that need to be stated. Here +they are, ordered from the least to the most complete: + + * SoC Robotics Amber Web Server (ATMega128). + + This port of NuttX to the Amber Web Server from SoC Robotics + (http://www.soc-robotics.com/index.htm). Is only partially in + place. The Amber Web Server is based on an Atmel ATMega128 + (128Kb FLASH but only 4Kb of SRAM). + + STATUS: Work on this port has stalled due to toolchain issues. It + is complete, but untested. + + * Micropendous 3 AT9USB647 + + This port of NuttX to the Opendous Micropendous 3 board. The + Micropendous3 may be populated with an AT90USB646, 647, 1286, + or 1287. See http://code.google.com/p/opendous/. I have only + the AT90USB647 version for testing. This version has very + limited memory resources: 64Kb of FLASH and 4Kb of SRAM. + + STATUS: The basic port was released in NuttX-6.5. This basic + port consists only of a "Hello, World!!" example that demonstrates + initialization of the OS, creation of a simple task, and serial + console output. The tiny SRAM limits what you can do with the + AT90USB647 (see issues below). + + * PJRC Teensy++ 2.0 AT9USB1286 + + This is a port of NuttX to the PJRC Teensy++ 2.0 board. This + board was developed by PJRC (http://pjrc.com/teensy/). The + Teensy++ 2.0 is based on an Atmel AT90USB1286 MCU with 128Kb + of FLASH and 8Kb of SRAM; a little more room to move than the + AT90USB647. + + STATUS: The basic port was released in NuttX-6.5. This basic + port consists of a "Hello, World!!" example and also slightly + simplified NuttShell (NSH) configuration (see the NSH User Guide + at http://www.nuttx.org/NuttShell.html). + + An SPI driver and a USB device driver exist for the AT90USB as + well as a USB mass storage configuration. However, this + configuration is not fully debugged as of the NuttX-6.5 release. + +AVR-specific issues. The basic AVR port is solid and biggest issue +for using AVR is its tiny SRAM memory and its Harvard architecture. +Because of the Harvard architecture, constant data that resides to +flash is inaccessible using "normal" memory reads and writes (only +SRAM data can be accessed "normally"). Special AVR instructions +are available for accessing data in FLASH, but these have not been +integrated into the normal, general purpose OS. + +Most NuttX test applications are console-oriented with lots of +strings used for printf and debug output. These strings are all +stored in SRAM now due to these data accessing issues and even the +smallest console-oriented applications can quickly fill a 4-8Kb +memory. So, in order for the AVR port to be useful, one of two +things would need to be done: + +1. Don't use console applications that required lots of strings. + The basic AVR port is solid and your typical deeply embedded + application should work fine. + +2. Create a special version of printf that knows how to access + strings that reside in FLASH (or EEPROM). + +NuttX-6.6 +^^^^^^^^^ + +The 73rd release of NuttX, Version 6.6, was made on July 11, 2011 +and is available for download from the SourceForge website. The +6.6 release adds several smaller features but is mostly a bugfix +release. + +Bugfixes include + + * Fixed several NX Graphics bugs: Rendering fonts at >8 bits-per-pixel, + graphics move logic, and display artifacts that appear when a + window is closed. + * Corrections to the USB host mass storage class driver + * STM32 bugfixes: serial driver, GPIO interrupt handling + * LPC17xx: Changes for a success compilation with no console. + * Corrections to the Teensy AT90USB SD driver + * Changes for a clean compilation under the ZDS-II toolchain. + +Minor features: + + * Add logic to extract printf strings from FLASH (but there are + still printf issues for that target) + * Added a configuration for the Sure Electronics PIC32MX board. + However, higher priority tasks have stopped work on that + configuration. + * Added several new configurations for the STMicro STM3210E-EVAL + board. + * Added support for the STM3210E-EVAL board: (1) LCD in either + landscape or portrait mode, and (2) interrupting buttons. + * Added a configuration option to use different serial ports for + debug and for the NSH serial console (there are some issues + with CR-LF expansion and character echo if NSH is not run on + the console). + * Standardized the button press and button interrupt interfaces + so that they are common across all boards. + * Added a new graphics example that focuses on placing text on + the background while pop-up windows occur. Text should continue + to update normally with or without the popup windows present. + * Added ARM stack checking logic. + +See the ChangeLog for a detailed description of these changes. + +NuttX-6.7 +^^^^^^^^^ + +The 74th release of NuttX, Version 6.7, was made on August 2, 2011 +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.7.tar.gz and +apps-6.7.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). Changes in this release are summarized +below: + + * New OS APIs: Add the standard sem_timedwait() interface. + * FAT File System: Adds (optional) support for VFAT long file + names. + * USB: Now the mass storage device can be connected when needed + and disconnected when not needed (or re-connected as a different + kind of device). + * Touchscreen Support: Defined a new NuttX touchscreen interface. + Added a driver for the TI TSC2007 touchscreen controller chip. + * NX Fonts: Add support for multiple fonts; developed a tool to + convert open source fonts into NuttX format; Converted and + installed nine new, high quality fontsets. + * NX Graphics: Add new NX APIs to support drawing of wide lines + in any orientation. Added new low level routines to set + individual pixel more efficiently. + * Build system: Added a export target that will bundle up all + of the NuttX libraries, header files, and the startup object + into an exportable tarball. + * LPC17xx: A CAN driver was contributed by Li Zhuoyi (Lzyy). + * STM32: New NX-related configurations to exercise text and + graphic image displays. + * C Library: Added a fixed precision atan2() math function. + * Bugfixes: Serial RX overrun error, FAT upper/lower NT 8.3 name + handling fixed. FAT directory allocation and initialization + bug. STM32 SDIO DMA race condition bug. eZ80 UART1 serial + driver errors (Paul Osmialowski) + +NuttX-6.8 +^^^^^^^^^ + +The 75th release of NuttX, Version 6.8, was made on August 19, 2011 +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.8.tar.gz and +apps-6.8.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). Changes in this release are summarized +below: + + * NuttX has been ported to run on the Freescale Cortex-M4 "Kinetis" + boards. Two board ports are available for (1) the Kinetis + KwikStik-K40 and (2) the Kinetis TWR-K60N512 tower. + * Support for RGMP 0.3. This version of RGMP now runs on the + OMAP4430 (arm) pandaboard + * LPC17xx CAN driver extended to support both CAN1 and CAN2 + (submitted by Li Zhuoy (Lzzy)) + * Fixed several critical bugs related to signal handling + initialization and for signals the wake up tasks that are waiting + to send or receive message queues.Both are important. (submitted + by hkwilton). + * drivers/can.c: Fixed a semaphore overflow problem in the CAN + driver (reported by Li Zhouy (Lzzy)). + * Added a new ADC driver infrastructure and TI ADS1255 driver + both developed and submitted by Li Zhouy (Lzzy)). + +See the Changelog for additional changes included in this release. + +NuttX-6.9 +^^^^^^^^^ + +The 76th release of NuttX, Version 6.9, was made on September 11, 2011 +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.9.tar.gz and +apps-6.9.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release includes a few new features and several important bug fixes. +The new features (some still incomplete) include: + + * Analog Support/ NXP LPC17xx: New DAC sub-system including ADC and DAC + drivers for the LPC17xx. Extensions to the ADS1255 driver. + (Contributed by Li Zhuoyi (Lzyy)) + + * Power Management: Added a new NuttX power management sub-system for + controlling and coordinating reduced power states. At present, only + verified in a simulation environment. + + * I2C Test Tool: A new application was added that can be used to + verify and debug I2C interfaces from the NuttShell (NSH) command + line. + + * NuttShell (NSH): In addition to the I2C test tool, a date command + is now supported (if CONFIG_RTC is defined) that can be used to + read and set the RTC. + + * NXP LPC17xx: I2C and DAC driver for the NXP LPC17xx family submitted by Li Zhuoyi + (Lzyy) + + * Kinetis Cortex-M4: Added a SDHC driver for the Kinetis parts. + Complete debug of the Kinetis SDHC driver was not completed, however, + do to some higher priority tasks that forced me to stop work. + + * Other new drivers: Driver for I2C-based at24cxx EEPROM submitted by + Li Zhuoyi (Lzyy); Driver for the LM-75 temperature sensor. Support + for the LM-75 temperature sensor integrated into the SM3210E-EVAL + development board. + + * NuttX Graphics (NX): Added new NX interfaces for drawing circles, + both circle outlines and filled circles. + + * FLASH: Added a function that accepts the path to a block driver and + then erases the underlying FLASH memory + + * Build System: The Make export logic now also tries to track down all + architecture-specific header files and include these in the NuttX + export bundle as well. Various changes and modifications so that + NuttX wil build on FreeBSD using the ASH shell (submitted by Kurt Lidl). + +Bugfixes, order roughly on decreasing criticality include: + + * STM32 I2C Driver: Add resets, timeout, and other fixes to work + reliably with the I2C tool. Corrected a major error introduced in + NuttX 6.8. + + * BCH Driver. Several important bugs (noted by Li Zhuoyi (Lzyy)) + were fixed. + + * C Library: Fixed errors in gmtime() and gmtime_r() that could lead to + errors in date calculations. + + * Timing: Correct an error in the tv_nsec calculation that happens + only config CONFIG_RTC is enabled + + * Build System: Use of -print-libgcc-file-name to get path to + libgcc.a might select the wrong libgcc.a if a multilib toolchain + is used + +NuttX-6.10 +^^^^^^^^^^ + +The 77th release of NuttX, Version 6.10, was made on October 6, 2011 +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.10.tar.gz and +apps-6.10.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r4028 + +This release includes a few new features and several important bug fixes. +The new features (some still incomplete) include: + + * CDC ACM serial class device-side driver + + * RTC: Now supports hi-res and lo-res hardware RTC. The lo-res RTC + runs at 1Hz. + + * STM32 I2C driver. Now supports faster, polled mode of operation. + Added an I2C trace capability. + + * ADS7843E touchscreen driver. As used on the SAM3U-EK development + board. + + * AT91SAM3U SPI driver. To support the ADS7843E toucscreen + + * X11 Support on simulation target. Build errors in the X11 windows + for the simulated target have been correct. Added support for a + simulated touchscreen on the X11 window (based on mouse inputs). + + * System Timer. Added support for a 64-bit system timer. + + * TIFF Support. Added a TIFF library (currently used for storing + LCD screen shots). + + * LCD Support. Added a test to verify that we read and write correct + to LCD GRAM memory. + + * I2C tool. Extended to support to include a verify command and + repititions and auto-address increment for most commands. + + * USB terminal example. Line oriented serial bridge connects a host + USB serial terminal to a host UART serial terminal. + + * Build System. apps/ Makefile will now include external directories + in the application build. + +Bugfixes, order roughly on decreasing criticality include: + + * Message Queues. Correct errors in mq_timedsend() and + mq_timedrecieve(). + + * FAT. Writes that cross sector boundaries, stray write into the FAT, + and a FAT long file name issue + + * NXFFS. Added a missed error check. Files cannot be opened for + writing if they are already opened for reading. + + * Library: fopen() for append modse was not appending. + + * STM32 I2C driver. Correct another conflict between concurrent FSMC + and I2C1 accesses. Fixed some bad error detection logic. + + * STM32 SDHC driver. Interrupts were being left disabled. + +NuttX-6.11 +^^^^^^^^^^ + +The 78th release of NuttX, Version 6.11, was made on November 12, 2011 +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.11.tar.gz and +apps-6.11.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r4090 + +This release is a maintenance release that includes a few new features +and some important bugfixes. New features include: + + * NX Graphics: New interfaces to read from graphics memory + * Drivers: AT24 FLASH driver will now supports clustering of blocks + to achieve a larger, more usable block size for NXFFS. + * STM32: LCD color corrections + * PIC32: Board configuration for the Microchip PIC32 Ethernet Starter kit + (not yet verified), new GPIO support library, button and LED support + for the Sure Electronics PIC32MX board. A lot of progress has been + made on the PIC32 NuttX port, but it is still not ready for prime time. + * NXP LPC3152: Board configuration for the Embedded Artists EA3152. + +Bugfixes, order roughly on decreasing criticality include: + + * NXFFS: Corrected critical bugs in initialization, some full FLASH handling, + and errors in certain cases where the FLASH is repacked. + * ARM EABI: Fix stack aligment required for passing floating point values. + * Build system: Fix build issues when g++ is used as the compiler. + * NX Graphics: Bitmap error handling, correct RGB color conversion macros, + Error when the background window is released. + * STM32: RTC build fixes, LCD color corrections + * Simulation target: build fixes + * C Library: fclose() return value. + +See the change log for more detailed information. + +NuttX-6.12 +^^^^^^^^^^ + +The 79th release of NuttX, Version 6.12, was made on December 6, 2011 +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.12.tar.gz and +apps-6.12.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r4141 + +New features in this release include: + + * STM32. Basic support added for the STM32 F4 family. Board support + verified for the STMicro STM3250G-EVAL board. + * FAT. Enhanced partition handling. + * SDIO-Based SD Card support. Add support for large (>4Gb) devices + * Graphics. Added four new small sans serif fonts. + * Drivers. Fix a banding problem with the R61580 LCD. + +Bugfixes, order roughly on decreasing criticality include: + + * FAT. Fix errors in how the first entries in the root directory are + added. Fix errors in FAT date/time handling. + * Signals. Fix bug in certain sig_timedwait() error handling. + * Drivers. Fix cloned errors in poll() handling in several drivers. + * Message Queues. errno was not being set correctly by mq_notify(). + * C Library. wchar_t is a built-in type for C++ + +NuttX-6.13 +^^^^^^^^^^ + +The 80th release of NuttX, Version 6.13, was made on December 26, 2011 +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.13.tar.gz and +apps-6.13.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r4231 + +New features in this release include: + + * Drivers. New standard interface for PWM drivers and common + "upper half" PWM driver. Updated the MP25x driver to support + the Macronix MX25 chips (submitted by Mohammad Elwakeel). + * STM32 F1/F4. Added an Ethernet driver, ADC drivers, DAC driver, + PWM driver, CAN driver, F4 RTC driver, F4 DMA support, + logic for saving/restoring F4 FPU registers in context switches. + * STM32 Boards. Added STM3240G-EVAL DHPCD and nettest configuration. + Support for a new STM32 board, the HY-Mini STM32v board, was + contributed by Laurent Latil + * PIC32. The port to the Microchip PIC32MX is finally functional and + reliable. The NuttX PIC32 port has verified configurations for + the OS test and the NuttShell (NSH) both exist. + * Tests: New re-usable tests (in apps/examples) for PWM, ADC, and + CAN loopback. Several existing tests can now be built as NSH built-in + applicaitons (dhcpd, nettest, and all of the new tests). + +Bugfixes, order roughly on decreasing criticality include: + + * STM32: Correct handling of data overrun conditions. Existing logic + would hang with infinite interrupts when a data overrun occurred. + * DHCPD. Fix several problems using host order address where network + addresses expected (and vice versa). + +And several others. See the ChangeLog for more details. + +NuttX-6.14 +^^^^^^^^^^ + +The 81st release of NuttX, Version 6.14, was made on January 15, 2012, +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.14.tar.gz and +apps-6.14.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r4301 + +New features in this release include: + + * Drivers. The upper-half PWM driver will now support a pulse count (as + would be needed to control a stepper motor). + + * STM32. The CAN driver has been verified in loopback mode. ADC driver + support for the STM32 F4. Add support for UART4-5 and USART6 + (Contributed by Mike Smith). The PWM driver now supports a pulse + count for TIM1 and TIM8. Timer driver now supports the F4's 32-bit + timers (Contributed by Mikhail Bychek) + + * STM32F4Discovery. Support for the STM32F4-Discovery board contributed + by Mike Smith. + + * STM3240G-EVAL. Add support for user control of LEDs. + + * LPC17xx. Add support for loopback mode to CAN driver. CAN TX done + perations are now interrupt driver. Now supports configurable CAN bit + rate. + + * LPC1766-STK. Add support for on-board buttons. Add support for user + control of LEDs. + + * LM3S. Add support for the LM3S6432S2E on the TI RDK-S2E (Contributed + by Mike Smith) + + * PIC32MX. USB device-side driver (needs further testing). A partial + Ethernet driver is also in place. + + * Library. Support added for fixed floating point fieldwidths in output + formatting (Contributed by Mikhail Bychek) + + * Build. New targets apps_clean and apps_distclean to simplify working + with application diretories. + +Bugfixes include: + + * Drivers. Fixed a buffer-full test in the upper-half CAN driver. + + * STM32. GPIO initialize logic (submitted by Mike Smith). Fix the + debug logic that dumps the GPIO configuration. + + * LPC17xxx. Correct an integeter overlow in GPIO interrupt setup + (prevented pins > 15 from being used as interrupt sources). Correct + a value used in GPIO interrupt number range test. + + * FAT. Now returns the correct error value when it is unable to + recognize the file system. + + * Build. MAC OS build fixes (submitted by Mike Smith) + +And several others. See the ChangeLog for more details. + +NuttX-6.15 +^^^^^^^^^^ + +The 82nd release of NuttX, Version 6.15, was made on February 12, 2012, +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.15.tar.gz and +apps-6.15.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r4387 + +New features and extended functionality: + + * General Drivers: Add support for (29-bit) extended CAN IDs. Add an + infrastructure to support battery drivers. Add a driver for MAX17040x + battery "fuel gauge". Add support for Composite USB drivers (in + particular for a CDC/ACM with MSC USB composite driver). + + Added a new RAM logging driver. This will allow debug output into + a RAM buffer associated with a character driver at /dev/syslog. + Added the new command 'dmesg' to NSH that can be used to dump the + current contents of the log. This is useful for systems that do not + have the usual serial console (for example, if you only have a + Telnet console with NSH). + + * Networking: Add a lower level, primitive socket interface. Telnet + driver: + + A New Telnet daemon was created. It wraps a Telnet session within a + character driver that can serve as a "controlling terminal." The + Telnet session will then be inherited by tasks created from the + Telnet session and the stdin/stdout from the created task will + still go through the same Telnet connection. + + * STM32 Drivers. PWM driver pulse count was limited to 128; now is + (essentially) unlimited. Add support for (29-bit) extended CAN IDs. + Add support for I2C3. The SDIO driver is (mostly) verified on the + STM32 F4 platforms. + + * LPC17xx Drivers. Extended the CAN driver so that the TSEG1 and TSEG2 + bit times can be set via the NuttX configuration. Add support for + (29-bit) extended CAN IDs. + + * PIC32 Drivers. The PIC32 Ethernet driver is code complete (but still + untested). + + * FTPD. Add a new FTP server daemon. This is based loosely on + the hwport_ftpd library provided by Jaehyuk Cho. + + * Library: Add support for on_exit(). Implemented tcsetattr() and + tcgetattr(). Moved the old, too-smart fgets() to a new application + library function called readline(). Dumbed down the original fgets(). + Add strcasestr(), avsprintf(), inet_ntop(), and inet_pton(). + Add support to enable or disable debug output. + + * Build system: Support for building a 32-bit simulation executable on + a 64-bit Linux machine. Correct a dependency issue in the arch/*/src/board + directory. + +Bugfixes: + + * System: Correct PTHREAD_MUTEX_INITIALIZER + + * FAT: Fix an error in the FAT statfs() reported by David Sidrane. + + * STM32: Fix clock frequencies for APB2 timers. Correct AFIO register + offset. + + * PIC32. Correct GPIOs used for LEDs on the Sure PIC32MX board. + + * NSH. Wait for a USB connection if a USB serial class is used to + interface with the host. + +Additional bugfixes, name changes, and other differences as detailed in the +ChangeLog. + +NuttX-6.16 +^^^^^^^^^^ + +The 83rd release of NuttX, Version 6.16, was made on March 10, 2012, +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.16.tar.gz and +apps-6.16.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r4475 + +New features and extended functionality: + + * ARMv7M Support: Includes new, streamlined Cortex-M exception + handling provided by Mike Smith. Context switching support for the + Cortex-M4 FPU registers is now provided (in both "lazy" and "non-lazy" + modes) + + * General Drivers: Added a generic "upper half" Quadrature Encoder driver. + The USB CDC/ACM serial driver can now be dynamically connnected or + disconnected from the host (programmatically or using NSH commands). + + * STM32 Drivers: Added a "lower half" Quadrature Encoder driver. + Verified the STM32 F4 DMA driver; Added F4 DMA support to the existing + STM32 SDIO driver. + + * STM32 Board Support. Added support for the STM32 F2 family and + for the STM3220G-EVAL board (contributed by Gary Teravskis). + Support is now included for C++ static constructors (verified using + the Atollic toolchain). Added support for the SRAM available on the + STM3240G-EVAL board. + + * PIC32 Drivers. PIC32MX USB (device) driver is now functional. + The PIC32MX Ethernet driver not yet fully verified (and an + unverified SPI driver is also available). + + * Networking. Added a lower-level, thread-independent socket layer. + Parts of this layer were created in 6.15 to support the FTPD + controlling terminal; this support has been extended in order + to support an NFS file system (not yet released). + + * NuttShell (NSH). NSH will now support a USB serial connection for + the console (such as CDC/ACM). This is useful in environments + where there is no physical serial port on the board. + + * Build System. Reorgnaization of networking header files. + +Critical Bugfixes. The following bug fixes are considered critical: + + * Networking: Fixed a "leak" in the TCP/IP read-ahead buffering logic. + Corrected an error in TCP/IP sequence numbering/ACK logic which + occurred when read-ahead buffering memory is exhausted. + + * STM32 Drivers: Fixed an buffer sizing error in the STM32 Ethernet + driver. + +Additional Bugfixes: Other important bug fixes are listed below. See +the ChangeLog of a complete, detailed list of bug fixes. + + * Networking: Corrected recv()/recvfrom() return value. Added logic to + monitor for loss of connection after a new connection has been + established via accept() (Contributed by Max Nekludov). Add + logic to select() to correctly handle POLLHUP (Contributed by Max + Nekludov) + +Additional bugfixes, name changes, and other differences as detailed in the +ChangeLog. + +NuttX-6.17 +^^^^^^^^^^ + +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 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). + +This release corresponds with SVN release number: r4607 + +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. + +Bugfixes: + + * 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()). + +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. + +This release corresponds with SVN release number: r4751 + +New features and extended functionality: + + * Drivers. Added a watchdog timer driver infrastructure. Add general + support for STMicro STMPE811 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 STMPE811 + 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. + +NuttX-6.19 +^^^^^^^^^^ + +The 86th release of NuttX, Version 6.19, was made on June 15, 2012, +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.19.tar.gz and +apps-6.19.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r4847 + +This release features new support for a Network File System (NFS) client. +This feature allows a tiny, embedded MCU to mount a remote file system +exported by an NFS server and then to access the file system as it would +any local file system. Then the tiny MCU can effectively have terabytes +of storage! + +This might be useful for data collection, for MCU configuration information, +for software updates, for providing modular, loadable code modes, controlling +a "farm" of MCUs, ... there are many possibilities and opportunities for +innovation! + +The NuttShell (NSH) now supports the following command: + + nfsmount <server-address> <mount-point> <remote-path> + +That command will mount the remote NFS server directory <remote-path> at +<mount-point> on the target machine. <server-address> is the IP address of +the remote server. + +The NFS development was the graduation project of Jose Pablo Rojas V. who +is a student at the Instituto Tecnológico de Costa Rica (ITCR, or TEC). +A lot of effort went into understanding what a tiny, embedded NFS client should +do and getting the target resource usage to a bare minimum. Only around a +kilobyte or so of memory is required to run the NFS client (and most of that +for I/O buffers). Jose Pablo has spent several months living with NFS and +should be congratulated. + +Additional new features and extended functionality: + + * Drivers: SSD1289 LCD driver, MIO283QT2 LCD driver + + * LM3S: Additional register definition header files (contributed by Max + Neklyudov). + + * STM32 Boards: The STM32F4Discovery will now support an SSD1289 LCD, + The STM3220G-EVAL board support is now equivalent to the STM3240G-EVAL + board support. + + * PIC32 Boards: The Mikroelektronika PIC32MX7 MMB board port is now + functional, very complete, and stable. + + * Graphics: The NxConsole will now take keyboard input from the NX graphics + subsystem. This means that if there are multiple NxConsole windows, only + the top instance that has focus will receive the keyboard input. + + * apps/: Add the capability to use an arbitrary USB device as the console + (not necessarily /dev/console). Additional enhancements for USB consoles. + Added the 'mv' command. + +Work in progress. This release includes some partially completed +work that is still not ready for prime time. + + * 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) : + + * General: sleep() and usleep() return values, sig_timedwait() errno setting + on timeout. + * Drivers: STMPE811 touchscreen driver, USB PLC2303, USB CDC/ACM + * STM32: Several USB device controller driver fixes, F4 interrrupt priorities + (contributed by Mike Smith). + * Graphics: Keyboard input, fill trapezoid bug + +As well as other, less critical bugs (see the ChangeLog for details) + +NuttX-6.20 +^^^^^^^^^^ + +The 87th release of NuttX, Version 6.20, was made on July 12, 2012, +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.20.tar.gz and +apps-6.20.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r4937 + +Additional new features and extended functionality: + + * Power Management: An evolving power management example is being + created by Diego Sanchez. This effort currently involves on the + STM32 F1 but clearly demonstrates the NuttX power management + system which will automatically drive the system to lower power + usage states due to lack of use. + + * Drivers: Added a driver for the SST 25 SPI-based FLASH parts. + + * PIC32: Added support for the PIC32MX1 and PIC32MX2 families. + Added support for the microchipOpen and Pinguino toolchains. + + * NXP LPC43XX: Added support for the entire LPC43xx family + + * PIC32 boards: Added support for the DTX1-4000L "Mirtoo" module + from http://www.dimitech.com/ (PIC32MX2). + + * NXP LPC43XX Boards: Added support for NGX LPC4330-Xplorer board. + + * NXP LPC17XX Boards: Added support for Micromint Lincoln60 board + (LPC1769). + + * LM3S Boards: Add a configuration to support the TI/Stellaris + EKK-LM3S3B96 development board. Contributed by Jose Pablo Rojas V. + + * Library: NuttX now supports platform-specific stdarg.h header + files. + +Work in progress. This release includes some partially completed +work that is still not ready for prime time. + + * 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) : + + * PIC32: GPIO output configuration (critical bug) + * STM32: Typos in pin mapping files. + * LM3S: Fixed an optimization related but that caused slow start-up + times if optimization was disabled. + * Library: Fixed signed extension but in all limit.h files + (reported by Lorenz Meier). inet_ntoa compilation failure + on Z80. + +As well as other, less critical bugs (see the ChangeLog for details) |