4238 lines
171 KiB
Plaintext
4238 lines
171 KiB
Plaintext
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<6F>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.
|
||
|
||
NuttX-6.26
|
||
^^^^^^^^^^
|
||
|
||
The 93rd release of NuttX, Version 6.26, was made on March 15, 2013,
|
||
and is available for download from the SourceForge website. Note
|
||
that release consists of two tarballs: nuttx-6.26.tar.gz and
|
||
apps-6.26.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
||
file for build information).
|
||
|
||
This release corresponds with SVN release number: r5745
|
||
|
||
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 r5745 should equivalent to release 6.26 of NuttX:
|
||
|
||
svn checkout -r5745 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
|
||
|
||
Or (HTTP):
|
||
|
||
svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
|
||
|
||
Additional new features and extended functionality:
|
||
|
||
* OS Initialization:
|
||
|
||
- Add an additional call-out to support board-specific driver
|
||
initialization during the boot-up phase (available with
|
||
CONFIG_BOARD_INITIALIZE=y).
|
||
|
||
* Tasking:
|
||
|
||
- New interface task_spawn() that is like posix_spawn(), but uses
|
||
entry point addresses like task_create().
|
||
- Additional data restructuring as a continuation of the task group
|
||
changes of NuttX 6.25. These data structures were moved from the
|
||
TCB structure into the task group: pthread join data,
|
||
atexit/on_exit callbacks, waitpid data structures, and message
|
||
queues.
|
||
- TCBs for tasks and pthreads are now separate structures. This
|
||
saves a little memory since tasks do not have to carry the overhead
|
||
for threads and vice versa.
|
||
|
||
* Kernel Build:
|
||
|
||
- Extensive changes were made to support the kernel build mode. In
|
||
this mode, NuttX is built as a monolithic kernel. NuttX is built
|
||
as a separate kernel mode "blob" and the applications are built
|
||
as a separate user mode "blob". The kernel runs in kernel mode and
|
||
the applications run in user mode (with the MPU restricting user
|
||
mode accesses). Access to the kernel from the user blob is only
|
||
via system calls (SVCalls).
|
||
- Extensive changes were made to the syscall, SVCall, and trapping
|
||
logic. Many internal interfaces were renamed.
|
||
- The memory manager was extended to support both kernel- and user-
|
||
mode allocations. Logic within the kernel needs to use the
|
||
correct kernel- or user-space allocator, depending upon the user
|
||
of the allocated memory.
|
||
- The user-space blob now contains a header built in at the beginning
|
||
of the block that provides the same information that was previously
|
||
provided by a kludgy, auto-generated header file (user_map.h).
|
||
- Basic support implemented for the ARMv7-M family with fragments
|
||
also implemetned for the ARMv6-M and MIPS32 families.
|
||
- Kernel build supported added for the LPC17xx Open1788 and for
|
||
the Atmel SAM3U-EK board. All testing is being performed on the
|
||
Open1788 board.
|
||
|
||
* Signals:
|
||
|
||
- Delivery of signals to threads within a task group is now compatible
|
||
with the way that signals are delivered to threads within a process.
|
||
|
||
* Drivers:
|
||
|
||
- Add a driver for the SST29VF NOR FLASH parts.
|
||
- USB device trace/debug feature extended to decode device-specific
|
||
trace events to make the trace output more readable (from Petteri
|
||
Aimonen).
|
||
- USB MSC device driver can not support names of differing sizes
|
||
in the USB descriptor and the SCSI fields (from Petteri Aimonen).
|
||
- Locking added to MMC/SD SPI drivers so that MMC/SD can co-exist on
|
||
the same bus as other SPI devices. Frequency is reset each time
|
||
that the MMC/SD SPI has the bus locked. (from Petteri Aimonen).
|
||
|
||
* ARMv6-M (Cortex-M0):
|
||
|
||
- Added support for the ARM Cortex-M0 family.
|
||
|
||
* nuvoTon NUC120:
|
||
|
||
- Added support for the nuvoTon NUC120 MCU (Cortex-M0).
|
||
|
||
* nuvoTon NUC120 Boards:
|
||
|
||
- Added basic support for the nuvoTon NuTiny-SDK-NUC120 board (Cortex-M0).
|
||
|
||
* LPC17xx:
|
||
|
||
- Added support for the LPC177x and LPC178x families. Most of this is
|
||
the work of Rommel Marcelo.
|
||
|
||
* LPC17xx Boards:
|
||
|
||
- Added support for Zilogic System's ARM development Kit, ZKIT-ARM-1769.
|
||
From Rashid.
|
||
- The port for the WaveShare Open1788 board is now functional. Basic
|
||
OS test and NuttShell (NSH) configurations are functional. More
|
||
driver development and testing is needed (from Rommel Marcelo).
|
||
|
||
* LPC17xx Drivers:
|
||
|
||
- Added an SD card MSI driver for the LPC178x. The driver is marginally
|
||
functional but requires DMA capability to be reliable.
|
||
|
||
* STM32
|
||
|
||
- Support extended to handle the STM32 F3 family (Cortex-M4 with F1-like
|
||
peripherals).
|
||
|
||
* STM32 Boards
|
||
|
||
- Added support the STMicro STM32F3Discovery board (STM32 F3).
|
||
|
||
* Stellaris LM3S/LM4F
|
||
|
||
- Basic support for the LM4F120 family is in place, but untested (mostly
|
||
from Jose Pablo Carballo).
|
||
|
||
* Stellaris LM4F Boards
|
||
|
||
- Add support for the LM4F120 LaunchPad (untested).
|
||
|
||
* Networking:
|
||
|
||
- select() should now allocate a little less memory.
|
||
|
||
* Memory Management:
|
||
|
||
- Extended to support multiple heaps. This is used as part of
|
||
the kernel build in order to support separater user- and
|
||
kernel-mode heaps.
|
||
- The stand-alone memory manger test had to be removed. It
|
||
was too entangled and made extension of the memory manager
|
||
nearly impossible. This is a loss.
|
||
|
||
* Build System:
|
||
|
||
- Several configurations converted to use the kconfig-frontends
|
||
configuration tool. There are still many more that need to
|
||
be converted.
|
||
|
||
* C Library:
|
||
|
||
- Move the workqueue logic into the C library. There is now a
|
||
special user-space version of the work queue (which will only
|
||
be used with a NuttX kernel build).
|
||
- Implementation of itoa() contributed by Ryan Sundberg.
|
||
|
||
* Applications:
|
||
|
||
- The NSH builtin task logic now uses task_spawn() to start builtin
|
||
applications.
|
||
- The OS test now includes a test cased to verify task_restart().
|
||
|
||
Efforts In Progress. The following are features that are partially
|
||
implemented but present in this release. Most are expected to be fully
|
||
available in NuttX 6.27.
|
||
|
||
* LM4F120 LaunchPad port. Code is in place, but nothing has been tested.
|
||
|
||
* WaveShare Open1788 port. This port as actually complete and
|
||
functional. However, there is still ongoing development and
|
||
testing of drivers.
|
||
|
||
* Kernel Build. Much progress has been made, but there kernel build is
|
||
not yet fully functional due to several user resources that are not yet
|
||
properly disentangled from the kernel blob.
|
||
|
||
* Conversion of old configurations to use the kconfig-frontends
|
||
tool is an ongoing effort that will continue for some time.
|
||
|
||
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
||
|
||
* Tasking:
|
||
|
||
- The wrong PID was being signalled with SIGCHILD. It should be
|
||
the PID of the task that create the task group, not the ID of
|
||
the last thread to leave the task group.
|
||
- Added logic so that some internal resources and states are recovered
|
||
when tasks are deleted or restarted. Handle cases where there are
|
||
outstanding timed events pending when tasks are deleted or restarted.
|
||
|
||
* ARMv7-M:
|
||
|
||
- Several fixes to the MPU control logic.
|
||
|
||
* Drivers:
|
||
|
||
- Removable serial drivers race conditions fixed.
|
||
- MAX11802 timing bug (from Petteri Aimonen).
|
||
|
||
* STM32 Drivers:
|
||
|
||
- Handle cases were SPI DMA logic fails if sem_wait is awakened
|
||
by a signal. Need to clear error flags to prevent corruption of
|
||
subsequent transfers. Also, bit count should not be changed while
|
||
the SPI peripheral is enabled (from Petteri Aimonen).
|
||
- Fixes to the OTG FS device driver from Petteri Aimonen.
|
||
- Fix typos in DMA register header file (from Yan T.)
|
||
|
||
* Graphics:
|
||
|
||
- Correction to the hyphen in the SANS 17x22 font (from Petteri
|
||
Aimonen).
|
||
|
||
* Networking:
|
||
|
||
- Corrected errors in the socket poll/select logic. Additional
|
||
state logic was needed to detect if the socket is still connected
|
||
before starting the poll wait. (bug reported by Qiang Yu).
|
||
|
||
* Memory Management:
|
||
|
||
- mallinfo() should hold the memory manager semaphore (from Petteri
|
||
Aimonen.
|
||
|
||
* Build System:
|
||
|
||
- Resolved several build errors reported by Mike Smith.
|
||
|
||
* Applications:
|
||
|
||
- Fixed an NSH memory leak: Needed to detach after creating each
|
||
pthread.
|
||
- readline() now returns EOF on any failure (instead of a negated
|
||
errno value). This is because the underlying read is based on
|
||
logic similar to getc. The value zero (meaning end-of-file)
|
||
was being confused with a NUL. So if a NUL was received, the
|
||
NSH session would terminate because it thought it was the end of
|
||
file.
|
||
|
||
NuttX-6.27
|
||
^^^^^^^^^^
|
||
|
||
The 94th release of NuttX, Version 6.27, was made on April 28, 2013,
|
||
and is available for download from the SourceForge website. Note
|
||
that release consists of two tarballs: nuttx-6.27.tar.gz and
|
||
apps-6.27.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
||
file for build information).
|
||
|
||
Additional new features and extended functionality:
|
||
|
||
* OS Initialization:
|
||
|
||
- Add missing registration of /dev/zero. Registration of /dev/null
|
||
should depend upon conditional compilation. From Ken Pettit.
|
||
|
||
* Tasking:
|
||
|
||
- Added a new interface to set aside memory on the task's stack. This
|
||
is used (at least in the kernel build) to hold task arguments.
|
||
- Remove up_assert_code(). One assertion routine is enough.
|
||
|
||
* Kernel Build:
|
||
|
||
- Extensive changes were made to support the kernel build mode. In
|
||
this mode, NuttX is built as a monolithic kernel. NuttX is built
|
||
as a separate kernel mode "blob" and the applications are built
|
||
as a separate user mode "blob". The kernel runs in kernel mode and
|
||
the applications run in user mode (with the MPU restricting user
|
||
mode accesses). Access to the kernel from the user blob is only
|
||
via system calls (SVCalls).
|
||
- Kernel build configurations for the Open1788 board and for the
|
||
STM32F4Discovery now execute correctly.
|
||
- Changes were made to task and thread start-up routines, signal
|
||
handling, data structures, ARMv7-M SVCalls, stack management
|
||
interfaces,
|
||
|
||
* Drivers:
|
||
|
||
- Driver for the ST7567 LCD Display Module from Univision Technology
|
||
Inc. Contributed by Manikandan.S
|
||
- SPI initialize functions renamed so that multiple SPI blocks can
|
||
be initialized.
|
||
- Extended to support the RAMTRON FM25V01 device. Contributed by
|
||
Lorenz Meier
|
||
- Serial drivers: TIOCSERGSTRUCT ioctls now conditioned on
|
||
CONFIG_SERIAL_TIOCSERGSTRUCT
|
||
|
||
* ARMv7-M (Cortex-M3/4):
|
||
|
||
- Added support for modifiable interrupt vectors in RAM
|
||
|
||
* nuvoTon NUC1xx:
|
||
|
||
- Added kernel build support
|
||
|
||
* Freescale Kinetis:
|
||
|
||
- Add kernel build support
|
||
- Add support for the Kinetis L family of Cortex-M0+ MCUs. Contributed
|
||
by Alan Carvalho de Assis.
|
||
|
||
* LPC17xx:
|
||
|
||
- Now holds off sleep mode in the IDLE loop is DMA is in progress
|
||
(because sleep mode will disable CPU SRAM).
|
||
|
||
* LPC17xx Boards:
|
||
|
||
- ZKIT-ARM-1769: Now supports the ST7567 LCD display module. Added
|
||
an nxhello configuration for testing (Manikandan.S).
|
||
- ZKIT-ARM-1769: Add support for both CAN1 and CAN2. Contributed by
|
||
M.Kannan
|
||
|
||
- Open1788: Basic support for the WaveShare Open1788 board is complete
|
||
with working OS test, NSH, and graphics configurations.
|
||
- Open1788: Integrated the LPC178x LCD driver with the WaveShare display.
|
||
Touchscreen support is included, howerver, there appears to be an
|
||
issue with the Open1788 touchscreen interrupt signal.
|
||
- Open1788: Now supports SDRAM (used to provide the LCD framebuffer).
|
||
- Open 1788: Reversed sense of the IDLE LCD. It is now off when the
|
||
LPC17 is sleeping and on when awake. That is much a better visual
|
||
indication of the dynamic CPU load
|
||
|
||
* LPC17xx Drivers:
|
||
|
||
- Added an LCD framebuffer driver for the LPC177x/8x family.
|
||
- Implemented LPC17xx GPDMA support.
|
||
- Integrated the LPC17xx GPDMA support into the SD card driver.
|
||
- SSP driver adapted to work with the LPC178x family.
|
||
- Separate LPC176x and LPC178x GPIO logic; this logic is too different
|
||
to maintain in one file with conditional compilation.
|
||
- Re-design of the GPIO logic for the LPC178x family by Rommel Marcelo.
|
||
|
||
* LPC43xx:
|
||
|
||
- Added kernel build support
|
||
|
||
* STM32
|
||
|
||
- Added support for kernel mode build.
|
||
- Added architecure support for the STM32 F427/F437 chips. Contributed
|
||
by Mike Smith
|
||
|
||
* STM32 Boards
|
||
|
||
- Added a configuration to support a kernel mode build of the OS test
|
||
on the STM32F4Discovery
|
||
|
||
* Stellaris LM3S/LM4F
|
||
|
||
- Added kernel build support
|
||
- Added support for the 7 UARTs on the LM4F120
|
||
|
||
* Stellaris LM4F Boards
|
||
|
||
- Added scripts and instructions to simplify use of OpenOCD with ICDI
|
||
(JP Carballo)
|
||
- The basic for the Stellaris LM4F120 Launchpad is complete. This
|
||
includes support for OS test and NSH configurations. Additional
|
||
driver development is needed.
|
||
|
||
* Build System:
|
||
|
||
- Directories where the same sources files are used to build different
|
||
objects in the first and second pass kernel builds need to keep those
|
||
objects in separate directories so that they are not constantly
|
||
rebuilt.
|
||
|
||
* Applications:
|
||
|
||
- apps/system/ramtest: Add a simple memory test that can be built
|
||
as an NSH command.
|
||
|
||
* Tools:
|
||
|
||
- kconfig2html is a new tool which will replace the hand-generated
|
||
documentation of the NuttX configruation variables with auto-
|
||
generated documentation.
|
||
|
||
Efforts In Progress. The following are features that are partially
|
||
implemented but present in this release. Most are expected to be fully
|
||
available in NuttX 6.28.
|
||
|
||
* A port to the Freescale Freedom KL25Z is complete but not yet stable
|
||
enough. The KL25Z is a low-cost Cortex-M0+ part with 128KB of FLASH
|
||
and 16KB of SRAM. This is is the effort of Alan Carvalho de Assis.
|
||
|
||
* Conversion of old configurations to use the kconfig-frontends
|
||
tool is an ongoing effort that will continue for some time.
|
||
At this time, only 32% of the configurations have been converted
|
||
to use the kconfig-frontends tools.
|
||
|
||
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
||
|
||
* Tasking:
|
||
|
||
- Fixed a critical bug: When there is pending C buffered output
|
||
and the system is very busy, the a pthread may be blocked at
|
||
a critical point when trying to exit. Blocking at this critical
|
||
point would cause crashes. All entire task/thread exit logic
|
||
paths were reviewed and failsafe mechanisms were put in place
|
||
to assure that exitting tasks never block after task teardown
|
||
has been started.
|
||
|
||
* ARMv6-M:
|
||
|
||
- Fixed parameter passing for all system call inline functions with > 3
|
||
parameters
|
||
- Fixed a major problem: The Cortex-M0 has no BASEPRI register but the
|
||
logic of NuttX-6.26 was using it to manage interrupts. Switch to
|
||
using the PRIMASK instead. This means that hardfaults will (again)
|
||
occur when SVC instructions are executed
|
||
|
||
* ARMv7-M:
|
||
|
||
- Corrected Correct MPU sub-region settings for unaligned regions.
|
||
- In exception handling with CONFIG_NUTTX_KERNEL, need to explicitly
|
||
set and clear the privilege bit in the CONTROL
|
||
- Fixed parameter passing for all system call inline functions with > 3
|
||
parameters
|
||
|
||
* Drivers:
|
||
|
||
- Support for O_NONBLOCK was not supported in the "upper half"
|
||
serial driver.
|
||
- PL2303 compilation errors
|
||
|
||
* Stellaris LM3S/4F
|
||
|
||
- Corrected typos in alternate function definitions.
|
||
|
||
* LPC17xx Drivers:
|
||
|
||
- Added a work-around for an ADC errata. From Chris Taglia
|
||
- Only one ADC pin was configured. Need to configure all that
|
||
are in the ADC0 set. From MKannan
|
||
|
||
* File Systems:
|
||
|
||
- The FAT logic was not making a distinction between directory
|
||
non-existence and file non-existence so when it you try to
|
||
create a file in a non-existent directory, it would create a
|
||
file with the name of the missing directory. Reported by Andrew
|
||
Tridgell
|
||
- Several fixes to the FAT file system from Ronen Vainish. These
|
||
fixes mostly involve the logic to extend directory clusters for
|
||
the case of long file names but also include a few important
|
||
general fixes (such as for storing 32 bit FAT values)
|
||
- mkfatfs was writing the boot code to the wrong location. From
|
||
Petteri Aimonen
|
||
|
||
* Networking:
|
||
|
||
- Fixed a compilation error when socket options are are disabled.
|
||
Reported by Daniel O'Connor
|
||
|
||
* C Library:
|
||
|
||
- Corrected an error in sscanf. If %n occurs in the format statement
|
||
after the input data stream has been fully parsed, the %n format
|
||
specifier will not be handled. Reported by Lorenz Meier
|
||
- strchr(str, '\0') should return a pointer to the end of the string,
|
||
not NULL. From Petteri Aimonen
|
||
|
||
* Build System:
|
||
|
||
- Fix naming of NuttX target if EXEEXT is defined.
|
||
|
||
* Applications:
|
||
|
||
- OS test: Fix timing error in non-cancelable thread test.
|
||
- NSH: Correct the test of the skip input parameter. Was limiting the
|
||
range to <= count. From Ken Petit.
|