diff options
Diffstat (limited to 'nuttx/ReleaseNotes')
-rw-r--r-- | nuttx/ReleaseNotes | 3762 |
1 files changed, 0 insertions, 3762 deletions
diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes deleted file mode 100644 index 4e8768b96..000000000 --- a/nuttx/ReleaseNotes +++ /dev/null @@ -1,3762 +0,0 @@ -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. - -This release corresponds with SVN release number: r3137 - -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 (16K). 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://svn.code.sf.net/p/nuttx/code/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 (<64K). - * 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 corresponds with SVN release number: r3730 - -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 - (128K FLASH but only 4K 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: 64K of FLASH and 4K 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 128K - of FLASH and 8K 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-8K -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) - -NuttX-6.21 -^^^^^^^^^^ - -The 88th release of NuttX, Version 6.21, was made on August 25, 2012, -and is available for download from the SourceForge website. Note -that release consists of two tarballs: nuttx-6.21.tar.gz and -apps-6.21.tar.gz. Both may be needed (see the top-level nuttx/README.txt -file for build information). - -This release corresponds with SVN release number: r5052 - -Additional new features and extended functionality: - - * Core: Add support for multiple registered atexit() functions. Syslog - extended: Now any character driver may be used for the debug logging - device. Mountpoint traversal logic. - * Drivers: Added support for the TI PGA112-7 amplifier/multiplexor. - * LPC43xx: Added clock ramp-up logic to run at 204 MHz - * LPC43xx Drivers: SPIFI block driver, RS-485 support, Minimal termios - support. Framework for USB0 device controller driver. - * LPC17xx Drivers: Minimal termios support - * STM32: Support for STM32 F1 "Value Line" (contributed by Mike Smith). - Add support for STM32 F107 "Connectivity Line" (contributed by Max - Holtzberg). - Clock restart logic needed for recovery from low power modes. - * STM32 Drivers: RTC alarm support. Usable for wakeup from sleep mode, - Minimal serial termios support. USB OTG FS host driver (alpha). - * STM32 Boards: Add power management hooks for the STM32F4Discovery, - Add support for the Olimex STM32-P107 (contributed by Max Holtzberg). - * PIC32: Add support for the Pinguino MIPS toolchain. - * PIC32 Drivers: GPIO driver now supports F1 analog regiaters (ANSEL). - * PIC32 Boards: Add support for the PGA117 on the Mirtoo module. - * Calypso: Add support for the SSD1783 LCD on the Compal E99. - * Library: cfsetispeed(), cfsetospeed(), tcflush(), memchr(), and - memccpy(). - * Applications: Port of freemodbus-v1.5.0. Add support for testing - devices with multiple ADC, PWM, and QE devices. - NSH: NSH 'mount' command (with no arguments) will now show mounted - volumes. Add new NSH 'df' command. Extended 'help' support. NSH - now catches the return value from spawned applications (provided - by Mike Smith). - * Build System: mkconfig will not define CONFIG_DRAM_END. A lot of - progress has been made on the automated NuttX configuration logic - (Thanks go to Richard Cochran). - * Documentation: Document ways to customize the behavior of NSH. - -Bugfixes (see the change log for details) : - - * Serial drivers (all): Fix ioctl return value. Common "upper half" - serial driver will now return with EINTR if a serial wait is - interrupted by a signal. - * FAT: Fix statfs() file name length. - * LPC43xx: Clock configuration. - * STM32: Pinmap fixes, SPI driver re-initialization - * STM32 Boards: Correct and lower SDIO frequency for F2 and f4 boards. - * AVR: C++ build issues. - * PM: Fix a place where interrupts were not be re-enabled. - * Applications: NSH application start-up race conditions. - * Library: Fieldwidth and justification for %s format. Fixed several - issues with presenting floating point numbers. NULL definition - for C++ - -As well as other, less critical bugs (see the ChangeLog for details) - -NuttX-6.22 -^^^^^^^^^^ - -The 89th release of NuttX, Version 6.22, was made on September 29, 2012, -and is available for download from the SourceForge website. Note -that release consists of two tarballs: nuttx-6.22.tar.gz and -apps-6.22.tar.gz. Both may be needed (see the top-level nuttx/README.txt -file for build information). - -This release corresponds with SVN release number: r5206 - -Note that all SVN information has been stripped from the tarballs. If you -need the SVN configuration, you should check out directly from SVN. Revision -r5206 should equivalent to release 6.22 of NuttX 6.22: - - svn checkout -r5206 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code - -Or - - svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code - -Additional new features and extended functionality: - - * RTOS: Application entry point is no longer user_start, but can be - configured using CONFIG_USER_ENTRYPOINT. NuttX now supports two work - queues: A lower priority work queue (for extended processing) and a - higher priority work queue (for quick, high priority operations). - - * Memory Management: Added a new granule-based allocated that can be - used to manage, aligned and quantized DMA memory. - - * File System: Add hooks to allocate I/O memory with and external - allocated (need if required by DMA). - - * Networking: ENC28J60 driver is (finally) verified. - - * Drivers: Add hooks USB device drivers to allocate I/O memory with and - external allocated (need if required by DMA). Driver for the Windbond - SPI FLASH family (W25x16, W25x32, W25x64, and others). ADS7843E driver - extended for TSC2046 and XPT2046 and verified. - - * ARMv7-M: Added logic to reset the MCU using the NVIC. - - * STM32: Add support for STM32F103VET6. - - * STM32 Drivers: Add logic to re-initialize UARTs a second time to - enable DMA (Mike Smith). I2C driver error recovery (Mike Smith). - - * STM32 boards: Support for USB host added add to several configurations - (or at least explained in README files). Support for the Shenzhou - STM32F107 board (see www.armjishu.com). Support for M3 Wildfire - STM32F103 board (v2 and v3). - - * Build System: Kconfig string de-quoting logic. Remove comments from - defconfig files (Kate). Add tool to create NuttX-style symbol tables. - Numerous changes to configuration logic as needed for the new mconf-based - configuration (much of this from Richard Cochran). Refactor common - Make.defs logic into tools/Config.mk (Richard Cochran). - - * Library: Configurable terse output from strerror(). Added perror() (Kate). - Add %n format to sscanf() (Kate). - - * Applications: Numerous changes and extensions to the old uIP web server - (from Kate and Max Holtzberg, see the ChangeLog for specific extensions). - UDP network discovery utility (Max Holtzberg). Embeddable Lightweight - XML-RPC Server (http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364, Max Holtzberg). - -Bugfixes (see the change log for details). Some of these are very important -(marked *critical*): - - * RTOS: Fixes to priority inheritance logic (*critical*). waitpid() - critical section. Assertion in work_cancel() (Mike Smith). mmap() (Kate). - - * FAT File System: Improper Boolean expression caused un-necessary writes - and performance issues (*critical*, Ronen Vainish). - - * Networking: Remove an un-necessary delay from recvfrom(). This greatly - improves network performance (*critical*, Max Holtzberg). - - * Graphics: NX parameter checking errors. - - * Drivers: Fix double release of memory in SDIO-based, MMC/SD driver - (Ronen Vainish). - - * LPC17xx: Ethernet driver fixes needed for certain PHYs (Kate). - - * AVR: Fix build error (Richard Cochran). - - * STM32: USB OTG FS host driver NAKing an retries. Power management - compilation errors (Diego Sanchez). Missing SPI3 remap logic. - - * STM32 Drivers: Fix for Ethernet errata for STM32F107 (*critical*). - Ethernet buffer alignment check. Add "kludge" to Ethernet driver to - handle DM9161 PHY which (at least on the Shenzhou board), sometimes - does not come up correctly. - - * Applications: THTTPD (Kate). NSH ping when IP address is on a different - network (Darcy Gong). - - * Library: fread(), fflush(), fdopen(): Fix error handling logic (Ronen - Vainish). Fix some field-width handling issues in sscanf() - -As well as other, less critical bugs (see the ChangeLog for details) - -NuttX-6.23 -^^^^^^^^^^ - -The 90th release of NuttX, Version 6.23, was made on November 5, 2012, -and is available for download from the SourceForge website. Note -that release consists of two tarballs: nuttx-6.23.tar.gz and -apps-6.23.tar.gz. Both may be needed (see the top-level nuttx/README.txt -file for build information). - -This release corresponds with SVN release number: r5313 - -Note that all SVN information has been stripped from the tarballs. If you -need the SVN configuration, you should check out directly from SVN. Revision -r5313 should equivalent to release 6.23 of NuttX 6.23: - - svn checkout -r5313 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code - -Or - - svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code - -Additional new features and extended functionality: - - * RTOS: If both atexit() and on_exit() are enabled, use on_exit() to - implement atexit(). Updates for RGMP 4.0. - - * Binfmt: Add support for loading and executing ELF binary modules from - a file system. - - * Drivers: Maxim MAX11802 touchscreen controller (Petteri Aimonen) - - * STM32 Driver: Implementation of /dev/random using the STM32 Random Number - Generator (RNG). - - * STM32 Boards: ADC support for the Shenzhou IV board. Relay support for - the Shenzhou IV board. - - * C Library: Support is now included for the add-on uClibc++ C++ - standard library support. This includes support for iostreams, strings, - STL, RTTI, exceptions -- the complete C++ environment. (uClibc++ is - provided as a separate add-on package due to licensing issues). - - Optimized generic and ARM-specific memcpy() function. Optimized - memset() function. - - Add support for ferror(), feof(), and clearerror(). Add support for - __cxa_atexit(). - - Math Library: Port of the math library from Rhombus OS by Nick Johnson - (Darcy Gong). - - * Applications: New NSH commands: ifup, ifdown, urlencode, urldecode, - base64enc, bas64dec, md5 (Darcy Gong). Add support for NSH telnet login - (Darcy Gong). Enancements to NSH ping command to support pinging hosts - with very long round-trip times. Extensions to the ifconfig command - Darcy Gong), - - Many extensions to the webclient/wget and DNS resolver logic from Darcy - Gong. JSON, Base64, URL encoding, and MD5 libraries contributed by Darcy - Gong. - - New examples: ELF loader, JSON, wgetjson, cxxtest, relays. - -Bugfixes (see the change log for details). Some of these are very important -(marked *critical*): - - * Drivers: W25 SPI FLASH - - * STM32 Drivers: ADC reset - - * Graphics: Missing implementation of the blocked method (*critical*, - Petteri Aimonen). - - * C Library: Floating point numbers in printf and related formatting functions - (Mike Smith), cf[get|set]speed() (Mike Smith) - -As well as other, less critical bugs (see the ChangeLog for details) - -NuttX-6.24 -^^^^^^^^^^ - -The 91st release of NuttX, Version 6.24, was made on December 20, 2012, -and is available for download from the SourceForge website. Note -that release consists of two tarballs: nuttx-6.24.tar.gz and -apps-6.24.tar.gz. Both may be needed (see the top-level nuttx/README.txt -file for build information). - -This release corresponds with SVN release number: r5447 - -Note that all SVN information has been stripped from the tarballs. If you -need the SVN configuration information, you should check out directly from -SVN. Revision r5447 should equivalent to release 6.24 of NuttX 6.24: - - svn checkout -r5447 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code - -Or (HTTP): - - svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code - -Additional new features and extended functionality: - - * RTOS: - - - Implemented the POSIX pause() function (still has some compiance - issues). - - Tasking logic is extended to support the notion of address - environments. An address environment is the key notion underlying - "process" vs. tasks. If tasks are created with address environments - (by binfmt), the OS will propogate that environment to child threads - and will destroy the address environment when the "process" exists. - - If support for the PATH variable is enabled, the OS start up logic - will create an initial environment containing the default PATH - setting (CONFIG_PATH_INITIAL). This initial PATH will then be - inherited by all tasks. - - * Binfmt - - - The NuttX binary loaders have been updated to support the PATH - environment variable. Now, if the PATH is properly defined, programs - can be executed from mass storage using only the file name. This - feature is added to support more standard behavior (eventually, NSH - will support execution of programs in file systems by just entering - the file name, perhaps in 6.25?). - - The NXFLAT and ELF binary loaders have been extended to create - address environments for any new tasks executed from the file system. - This feature requires that the architecture support a memory management - unit (MMU) and the address environment interfaces declared in - include/nuttx/arch.h (currently, this is only supported by the z180). - - * Drivers: LCD driver for the Univision UG-2864AMBAG01 OLED - - * STM32: Support for STM32F100 high density chips contributed by Freddie - Chopin. - - * STM32 Drivers: Added optional RS-485 direction bit control (from - Freddie Chopin). - - * STM32 Boards: - - - Support for generic STM32F100RC board contributed by Freddie Chopin. - - stm32f4discovery/nxlines: STM32F4Discovery support for the - UG-2864AMBAG01 OLED. - - stm32f4discovery/winbuild: A version of the NuttX OS test - configured to build natively on Windows. - - stm32f4discovery/elf: Now uses the PATH variable to find ELF - executables. - - configs/cloudctrl: Added for Darcy Gong's CloudController board - - * PIC32 Boards: Update the Mirtool configuration for Release 2 of the - Mirtoo module. - - * Calypso: Add Calypso keypad driver. From Denis Cariki. - - * ZiLOG: - - - Add support for the z180 chip family and, specifically, for - the P112 retro hardware (see http://p112.feedle.net/). - - All ZiLOG configurations updated to use the current ZDS-II - and/or SDCC toolchains. - - * Graphics: - - - Add a semaphore handshake so that operations on buffers from - the NXMU client will be blocked until the NX server operates on the - buffer data (from Petteri Aimonen). - - nxtk_subwindowmove() and nxtk_getwindow(): Improvements to clipping - logic from Petteri Aimonen. - - * C Library: lib/ sub-directory renamed libc/ (there is a new lib/ sub- - directory that is used to hold all archives). - - * C++: Exception stubs from Petteri Aimonen. - - * Applications: - - - Add NSH hexdump command to dump the contents of a file (or character - device) to the console (contributed by Petteri Aimonen). - - Extend the NSH ifconfig command plus various DHCPC improvements - (from Darcy Gong). - - * apps/examples: - - - ostest: Replace large tables with algorithmic prime number - generation. This allows the roundrobin test to run on platforms - with minimal SRAM (Freddie Chopin). - - keypadtest: A new keypad test example contributed by Denis Carikli. - - elf and nxflat: If CONFIG_BINFMT_EXEPATH is defined, these examples - will now use a relative path to the program and expect the binfmt/ - logic to find the absolute path to the program using the PATH - variable. - - * Build system: - - - New top-level Makefiles: Makefile.unix and Makefile.win (along with - numerous changes to other make-related files). This adds basic - support for building NuttX natively under Windows from a CMD.exe - window (rather than in a POSIX-like environment). This build: (1) - Uses all Windows style paths, (2) Uses primarily Windows batch - commands from cmd.exe, with (3) a few extensions from GNUWin32. - - This capability should still be considered a work in progress - because: (1) it has not been verfied on all targets and tools, - and (2) still lacks some of the creature-comforts of the more - mature environments (like a function configure.sh script and - 'make menuconfig' support). - - - Example Windows native builds for STM32F4Discovery, eZ80, z16f, z8, - Z80, and Z180. - - Several configurations have been converted to work the kconfig- - frontends mconf configuration tool: stm32f4discovery/nxlines, and - all eZ80, z16f, z8, Z80, and Z180 configurations. - - Architectures now include a common Toolchain.defs file that can be - used to manage toolchains in a more configurable way (most of this - contributed by Mike Smith). - - * Build tools: - - - Renamed tools/winlink.sh to tools/copydir.sh. - - Several new tools/scripts to support the Windows native build: - tools/mkdeps.bat, tools/mkdeps.c, tools/link.bat, unlink.bat, and - copydir.bat. - - tools/incdir.sh and incdir.bat now support an -s option to generate - system header file paths. - - tools/b16.c: Fixed precision math conversion utility. - -Bugfixes (see the change log for details). Some of these are very important -(marked *critical*): - - * RTOS: Fix some backward conditional compilation in the work queue - logic (Freddie Chopin). - - * File System: Uninitialized variable caused assertions (from Lorenz - Meier). - - * Drivers: Partial fix for STM32 OTGFS device drivers and fix for short, - unaligned writes in the flash translation layer (drivers/mtd/ftl.c), - both from Petteri Aimonen. - - * STM32 Drivers: - - - Qencoder driver and TIM3 driver fixes from Ryan Sundberg. - - Fix timeout delay calculation in the STM32 OTG FS host driver. - - * LPC17xx Drivers: Resources not being properly released when I2C - driver is un-initialized. - - * Graphics: - - - Fix logic when the mouse drags outside of the window; fix - another "blocked message" handling case (both from Petteri Aimonen). - - nxtk_filltrapwindow(): Correct an offset problem (also from Peterri - Aimonen). - - nxglib_splitline(): Correct the "fat flat line" bug. - - * C Library: - - - nrand() changes to prevent coefficients from becoming zero which - would "lock up" the random number generate. - - Add rounding functions to the math library (contributed by Petteri - Aimonen). - - * Build system: Changes to MIN definitions in all limit.h header files - to avoid integer overflows. For example from (-128) to (-127 - 1) - (from Petteri Aimonen). - - * Applications: Modbus fixes from Freddie Chopin. - -As well as other, less critical bugs (see the ChangeLog for details) - -NuttX-6.25 -^^^^^^^^^^ - -The 92nd release of NuttX, Version 6.25, was made on February 1, 2013, -and is available for download from the SourceForge website. Note -that release consists of two tarballs: nuttx-6.25.tar.gz and -apps-6.25.tar.gz. Both may be needed (see the top-level nuttx/README.txt -file for build information). - -This release corresponds with SVN release number: r5595 - -Note that all SVN information has been stripped from the tarballs. If you -need the SVN configuration information, you should check out directly from -SVN. Revision r5595 should equivalent to release 6.25 of NuttX: - - svn checkout -r5595 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code - -Or (HTTP): - - svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code - -Additional new features and extended functionality: - - * OS Initialization - - - Removed support for CONFIG_BUILTIN_APP_START. This is not really a - useful feature and creates a violation of the OS layered - architecture. - - * Task Creation: - - - Implement a simple vfork(). In NuttX-6.25, this interface is - available only for ARM7/9, ARMv7-M (Cortext-M3/4), and MIPS32 - (PIC32MX) platforms. - - exec() now sets the priority of the new task to the same priority as - the parent task (instead of the arbirtrary value of 50). - - New, partially complient implementations of execv() and execl(). - These are only partially compliant because they do not overlay any - existing "process space" but rather create the new task and exit(). - - Add a complete implementation of posix_spawn(). This standard - interface is a better match for an MMU-less architecture than are - vfork() plus execv() or execl(). - - Add a task start hook that will be called before the task main - is started. This can be used, for example, to schedule C++ - static constructors to run automatically in the context of the - new task. - - * Task Parentage - - - Repartitioned tasking data structures. All shared resources are now - collected together in a "task group". A task group includes the - original task plus all of the pthreads created by the task. - - Added support for remember the parent "task group" when a new task is - started. - - Added optional support to record the membership of each thread in - the "task group". - - Implement support for retaining child task status in the "task group" - after the child task exists. This is behavior required by POSIX. - But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and - CONFIG_SCHED_CHILD_STATUS - - Add internal logic to "reparent" a task. This is useful, - for example, where the child task is created through a trampoline - task that redirects I/O. Reparenting allows the caller of posix_spawn() - to be reparented for the eventual child thread. - - Added support for SIGCHLD. Sent to all members of the parent task - group when the file member of the child task group exits. - - If SIGCHLD and retention of child task exist status are enabled, then - a more spec-compliant version of waitpid() is enabled. - - New interfaces waitid() and wait() are also enabled when SIGCHLD - is enabled. - - * File System - - - dup() and dup2() can new be used with opened files in a mounted file - system. This supports re-direction of output in NSH to files. - - The binfs file system was moved from apps/builtin to fs/binfs. The - binfs file system was extended to support execution of "builtin - applications" using exec(), execv(), execl(), or posix_spawn(). - - Added logic based on SIGCHLD to automatically unload and clean-up - after running a task that was loaded into memory. - - * Binary Formats - - - Much of the logic for "builtin applications" was moved from - apps/builtin to nuttx/binfmt/libbuiltin. Includes some extensions - contributed by Mike Smith. - - A binary loader was added for builtin applications to support - execution of "builtin applications" using exec(), execv(), - execl(), or posix_spawn(). - - * Drivers: - - - Added logic to marshal and serialized "out-of-band" keyboard - commands (such as cursor controls and key release events) intermixed - with normal ASCII keypress data. The encoding is partially integrated - in the HID keyboard driver and the decoding full integrated into the - apps/examples hidkbd and keypadtest (the latter contributed by Denis - Carlikli). - - Driver for the UG-2864HSWEG01 OLED contributed by Darcy Gong. - - Add support for removable serial devices (like USB serial). This - support is enabled by CONFIG_SERIAL_REMOVABLE. - - * ARMv7-M: - - - Added an option to use the BASEPRI register to disable interrupts - (instead of the PRIMASK). This eliminates some innocuous hardfaults - that interfere with some debug tools. You need to switch to the - BASEPRI method only if you have such tool interference. - - * STM32 Drivers - - - Bring STM32 F1 DMA capabilities up to par with the STM32 F2/F4 - (contributed by Mike Smith). - - Add support for USART single wire mode (Contributed by the PX4 - team). - - Updates to support for SPI DMA on the STM32 F1/F2/F4. From - Petteri Aimonen. - - * STM32 Boards: - - - New configuration to support the UG-2864HSWEG01 OLED on the - STM32F4Discovery board. - - Added a posix_spawn() test configuration for the STM32F4Discovery. - - * LM3S/LM4F - - - Files and directories repartitioned to support both LM3S and LM4F - using the STM32 organization as a model. - - Partial definitions for the LM4F contributed by Jose Pablo Carballo - (this is still a work in progress). - - * LM3S Boards - - - Added scripts and documentation to use OpenOCD with the LM3S (from - Jose Pablo Carballo). - - * LPC176x/LPC178x - - - Files and directories repartitioned to support both LPC175x/LPC176x - and the LPC177x/LPC178x families using the STM32 organization as a - model. The LPC1788 port is a work in progress by Rommel Marcelo. - - * LPC176x/LPC178x Boards: - - - Added a configuration to support the Wave Share Open1788 board. - This is still a work in progress by Rommel Marcelo. - - * LPC2148 Boards: - - - Add basic support for the The0.net ZP213x/4xPA board (with the LPC2148 - and the UG_2864AMBAG01 OLED). - - Add an nxlines configuration for the ZP213x/4xPA (with the LPC2148 - and the UG_2864AMBAG01). - - * Simulator: - - - Add an nxlines configuration for the simulator. - - * Networking: - - - Add logic to work around delayed ACKs by splitting packets - (contributed by Yan T.). - - Split net_poll() to create the internal interface psock_poll(). - - * LCDs: - - - Added support for LCD1602 alphanumeric LCD (HD4468OU controller). - - * Graphics: - - - Added 5x8 monospace font. This tiny font is useful for graph - labels and for small bitmapped display. Contributed by Petteri - Aimonen. - - * Build System: - - - Add an options to better manage toolchain prefixes. - - Redesigned how the context targer works in the apps/ directory. - The old design caused lots of problems when changing configurations - because there is no easy way to get the system to rebuild the - context. This change should solve most the problems and eliminate - questions like "Why don't I see my builtin application in NSH?" - - * Kconfig Files: - - - There are several new configurations that use the kconfig-frontends - tools and several older configurations that have been converted to - use these tools. There is still a long way to go before the conversion - is complete: - - configs/sim/nxwm - configs/sim/nsh - configs/stm3220g-eval/nxwm - configs/stm32f4discovery/posix_spawn - configs/olimex-lpc1766stk/nsh - configs/olimex-lpc1766stk/hidkbd - configs/olimex-lpc1766stk/nettest - configs/open1788/ostest - configs/stm32f4discovery/nsh - configs/stm32f4discovery/usbnsh - configs/lm326965-ek (all configurations) - configs/mcu123-214x/nsh - configs/ubw32/ostest - - * Tools: - - - tools/kconfig.bat: Kludge to run kconfig-frontends from a DOS shell. - - tools/configure.c: configure.c can be used to build a work-alike - program as a replacement for configure.sh. This work-alike - program would be used in environments that do not support Bash - scripting (such as the Windows native environment). - - tools/configure.bat: configure.bat is a small Windows batch - file that can be used as a replacement for configure.sh in a - Windows native environment. configure.bat is actually just a - thin layer that executes configure.exe if it is available. If - configure.exe is not available, then configure.bat will attempt - to build it first. - - * Applications: - - - New and modified examples: - - apps/examples/wlan: Remove non-functional example. - apps/examples/ostest: Added a test of vfork(). Extend signal - handler test to catch death-of-child signals (SIGCHLD). Add a - test for waitpid(), waitid(), and wait(). - apps/exampes/posix_spawn: Added a test of posix_spawn(). - - - NSH: - - NSH now supports re-direction of I/O to files (but still not from). - The block driver source argument to the mount command is now - optional for file systems that do not require a block driver. - NSH can now execute a program from a file system using posix_spawn(). - Added support for a login script. The init.d/rcS script will be - executed once when NSH starts; the .nshrc script will be executed - for each session: Once for serial, once for each USB connection, - once for each Telnet session. - - - Supports a new daemon that can be used to monitor USB trace outpout. - - Removed non-functional wlan example. - -Bugfixes (see the ChangeLog for details). Some of these are very important: - - * Tasking: - - - Fixed a *critical* task exit bug. Here is the failure scenario: - (1) sched_lock() is called increments the lockcount on the current - TCB (i.e., the one at the head of the ready to run list), (2) - sched_mergepending is called which may change the task at the head - of the ready-to-run list, then (3) sched_unlock() is called which - decrements the lockcount on the wrong TCB. The failure case that - I saw was that pre-emption got disabled in the IDLE thread, locking - up the whole system. - - * Signals: - - - sigtimedwait() would return a bad signal number if the signal was - already pending when the function was called. - - * Drivers: - - - Some SD cards will appear busy until switched to SPI mode for - first time. Having a pull-up resistor on MISO may avoid this - problem, but this fix from Petteri Aimonen makes it work also - without pull-up. - - * STM32 Drivers: - - - STM32 FLASH driver counting error (from Freddie Chopin). - - STM32 F4 maximum SPI frequency was wrong (corrected by Petteri - Aimonen). - - * STM32 Boards - - - Due to cloning of untested code, the logic to control on-board - LEDs did not work on any STM32 boards. - - Serial devices number /dev/ttyS0-5 is there is a serial console, - but /dev/ttyS1-6 if there is no serial console. - - * Binary Formats - - - C++ static constructors execute now using a start taskhook - so that they execute in the context of the child task (instead - of in the context of the parent task). - - * File Systems: - - - Several FAT-related bugs fixed by Petteri Aimonen. - - * Networking: - - - Fix poll/select issure reported by Qiang: poll_interrupt() must call - net_lostconnection() when a loss of connection is reported. Otherwise, - the system will not remember that the connection has been lost and will - hang waiting on a unconnected socket later. - - Similar issues corrected for recvfrom() and send(). - - Telnetd would hang in a loop if recv() ever returned a value <= 0. - - * Libraries: - - - fread() could hang on certain error conditions. - - Can't handle SYSLOG output to a character device from the IDLE task - (because the IDLE task can't block). - - * Build System: - - - Serial was driver was not being built if there is no console - device. Obviously, the serial driver may be needed even in - this case. - - * Additional Bugfixes: - - - sig_timedwait() and clock_time2ticks.c: Timing "rounding" logic - - ARM9 Compilation issue with low vectors. - - readline() return value - - Others as detailed in the ChangeLog: HID keyboard, LPC17xx bit - definitions, strndup(), PL2303, SYSLOG error handling, AT25, - apps/examples. |