mirror of
https://github.com/apache/nuttx.git
synced 2026-05-10 15:30:25 +08:00
8825 lines
369 KiB
Plaintext
8825 lines
369 KiB
Plaintext
NuttX Release Notes
|
|
===================
|
|
|
|
This file contains are the release notes for the NuttX (and apps) packages
|
|
for every release. The text is just as was written at the time of release
|
|
(with perhaps some corrected typos). Over the course of time, NuttX has
|
|
used several different repositories: CVS, two SVN repositories, and
|
|
currently a GIT repository. Therefore, revision information specific to an
|
|
older repository may not be meaningful today.
|
|
|
|
To make it easier to track there older versions in the current GIT
|
|
repository, a GIT lightweight tag has been applied for each release. The
|
|
tag name is the release name (for example, the release 6.27 has tag name
|
|
"nuttx-6.27").
|
|
|
|
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 that the device that it supports is connected. Examples:
|
|
The function usbhost_storageinit() in the file
|
|
drivers/usbhost/usbhost_storage.c
|
|
2. Each application must include a waiter thread thread that
|
|
(1) calls the USB host controller driver's wait() to detect
|
|
the connection of a device, and then (2) call the USB host
|
|
controller driver's enumerate method to bind the registered
|
|
USB host class driver to the USB host controller driver.
|
|
Examples: The function nsh_waiter() in the file
|
|
configs/nucleus2g/src/up_nsh.c and the function nsh_waiter()
|
|
in the file configs/olimex-lpc1766stk/src/up_nsh.c.
|
|
3. As part of its operation during the binding operation, the
|
|
USB host class driver will register an instances of a standard
|
|
NuttX driver under the /dev directory. To repeat the above
|
|
example, the USB host mass storage class driver
|
|
(drivers/usbhost/usbhost_storage.c) will register a standard,
|
|
NuttX block driver interface (like /dev/sda) that can be
|
|
used to mount a file system just as with any other other
|
|
block driver instance. Examples: See the call to
|
|
register_blockdriver() in the function usbhost_initvolume()
|
|
in the file drivers/usbhost/usbhost_storage.c.
|
|
|
|
NuttX-5.17
|
|
----------
|
|
|
|
The 64th release of NuttX, Version 5.17, was made on January 19,
|
|
2011 and is available for download from the SourceForge website.
|
|
This release follows close on the heels of the 5.16 release and
|
|
extends the USB host capabilities first introduced in that version.
|
|
|
|
* The LPC17xx USB host controller driver was extended to (1) add
|
|
support for low-speed devices, (2) handle multiple concurrent
|
|
transfers on different endpoints (still only one TD per endpoint),
|
|
and (3) handle periodic interrupt endpoint types.
|
|
|
|
* Add a USB host HID keyboard class driver. Now you can connect
|
|
a standard USB keyboard to NuttX and receive keyboard input for
|
|
an application.
|
|
|
|
And other changes as detailed in the ChangeLog.
|
|
|
|
NuttX-5.18
|
|
----------
|
|
|
|
The 65th release of NuttX, Version 5.18, was made on February 27,
|
|
2011 and is available for download from the SourceForge website.
|
|
This is first release from the new NuttX SVN repository. This
|
|
release is made primarily to keep the release tarball in synchronization
|
|
with SVN. Many smaller changes have been made as identified in the
|
|
ChangeLog. Headlines include:
|
|
|
|
* Incorporate several important uIP patches -- including the well
|
|
known patch to handle missing SYNACK.
|
|
* The Freescale mc8s12ne64 port is code complete but testing has
|
|
not yet begun due to toolchain issues. Added support for the
|
|
Future Electronics Group NE64 Badge board.
|
|
* Added support for a new STM32 board, the ISOTEL NetClamps VSN
|
|
V1.2 ready2go sensor network platform. This board is based on
|
|
a STM32F103RET6 and includes some interesting power saving/clock
|
|
control extensions.
|
|
* USB host support expanded to handle vendor specific USB devices.
|
|
* Incorporated the LUFA HID parser.
|
|
* Various bugfix as detailed in the ChangeLog
|
|
|
|
NuttX-5.19
|
|
----------
|
|
|
|
The 66th release of NuttX, Version 5.19, was made on March 12, 2011
|
|
and is available for download from the SourceForge website. This
|
|
release includes several new features in various states of integration
|
|
and maturity:
|
|
|
|
* 486SX QEMU port. This port supports the Intel 486SX architecture
|
|
using the QEMU simulator. Initial functionality is in place a
|
|
partially tested. There are still some outstanding issues with
|
|
timer interrupts.
|
|
* Platform specific application support. A new apps/ directory
|
|
appears in this port. This apps/ directory provides a mechanism
|
|
for applications using NuttX to have a highly customized
|
|
initialization process. It supports a set of end-user applications
|
|
than can be executed (1) standalone so you can have a fully
|
|
customized application startup, or (2) on top of NSH. Think
|
|
of it this way: In a buckled-up embedded application, your
|
|
end-user programs will probably have their own dedicated start-up
|
|
logic. But, during development, you might want to have you
|
|
applications available and executable from the NSH command line.
|
|
This apps/ add-on (and NSH hooks) was contributed by Uros to
|
|
accomplish just that.
|
|
* NSH was also extended to support application specific ROMFS
|
|
/etc/init.d/rcS start-up scripts. This feature, as well, as
|
|
all of the above-mentioned apps/ directory support was contributed
|
|
by Uros Platise
|
|
* Additional NSH improvements and bug fixes. See the Changelog
|
|
for details.
|
|
* This release also provides a new SLIP network driver. This
|
|
driver should support point-to-point network communications to
|
|
a host using TCP/IP or UDP. This driver is code complete, but
|
|
not tested in this release.
|
|
* New RAMTRON FRAM driver (contributed by Uros Platise)
|
|
* New generic 16550 UART driver.
|
|
* Cortex-M3 Power improvements: Waits for Interrupt (WFI) in idle
|
|
loop for reduced power consumption (LPC17xx and STM32 only -
|
|
contributed by Uros Platise))
|
|
* New waitpid() system interface.
|
|
* Additional bugfixes: pipes, stdint.h, STM32 SDIO and SPI drivers
|
|
|
|
NuttX-6.0
|
|
---------
|
|
|
|
The 67th release of NuttX, Version 6.0, was made on March 21, 2011
|
|
and is available for download from the SourceForge website. The
|
|
version number of this release was bumped from 5.19 to 6.0. A
|
|
change in the major revision number is used to reflect an incompatibility
|
|
with previous versions. In this release, the NuttX core OS
|
|
functionality has been separated from NuttX application-related
|
|
functionality. These are provided as separate tarballs:
|
|
|
|
* nuttx-6.0.tar.gz, and
|
|
* apps-6.0.tar.gz
|
|
|
|
The purpose of this separation is both to better organize and
|
|
modularize the NuttX source tree, but also to provide better support
|
|
for incorporation of end-user applications with Nuttx.
|
|
|
|
The incompatibility results from the changes to the board configuration
|
|
logic needed to supported the separable application. The major
|
|
changes to the configuration include:
|
|
|
|
* CONFIG_APPS_DIR - This should not be set. The default is
|
|
../apps. This should only be set if you have a custom,
|
|
product-specific application directory in some different location.
|
|
|
|
* appconfig - Each board configuration now requires a new file
|
|
called 'appconfig.' As its name suggests, this file provides
|
|
new configuration information needed by the logic in ../apps.
|
|
|
|
In addition to this major reorganization in the directory structure,
|
|
this release also includes some important extensions to existing
|
|
features and some important bugfixes. These include:
|
|
|
|
* The SLIP driver was been well debugged and significantly
|
|
re-designed. Now you can have an Ethernet connection to you
|
|
board even if you have no Ethernet hardware. How cool is that?
|
|
|
|
* The QEMU i486 port is now functional. It has also been reported
|
|
to work on the Bifferboard (see http://bifferos.bizhat.com/).
|
|
|
|
* And extensions to the uIP driver interface, and
|
|
|
|
* Bug fixes to fopen() and STM32 GPIO configuration
|
|
|
|
Please see the ChangeLog for details.
|
|
|
|
NuttX-6.1
|
|
---------
|
|
|
|
The 68th release of NuttX, Version 6.1, was made on April 10, 2011
|
|
and is available for download from the SourceForge website. The
|
|
6.0 release introduced a detach-able application environment to
|
|
build applications outside of the NuttX source tree. The primary
|
|
purpose of this release is to correct numerous build problems
|
|
introduced by that architectural change:
|
|
|
|
* In many newer environments, NuttX produced strange Makefile
|
|
errors but built correctly in older environments. A fix provided
|
|
by Rafael Noronha was incorporated and is reported to fix those
|
|
build problems.
|
|
* The apps/ directory build system would not handle Windows-native
|
|
toolchains due to obscure path formatting issues.
|
|
* And other problems as detailed in the Changelog.
|
|
|
|
Many additional changes were made in the 6.1 release for another
|
|
major architectural change: NuttX will now build as a separately
|
|
linked microkernel. In this build option the RTOS builds as a
|
|
kernel, applications build separately and interface with kernel via
|
|
system calls. Applications run in user mode and kernel logic users
|
|
in kernel-mode. This provides a secure environment for NuttX. This
|
|
feature is fully coded in NuttX-6.1, but has not been tested due
|
|
to higher priority tasks that have arisen.
|
|
|
|
Related to this change, support for the Cortex-M3 memory protection
|
|
unit (MPU) has been integrated with the NuttX kernel build to provide
|
|
an even higher level of security.
|
|
|
|
NOTE: This kernel build is an option; the default build configuration
|
|
is still the standard, flat, unsecured RTOS as in previous releases.
|
|
|
|
Additional new features in this release:
|
|
|
|
* Support for LPC17xx GPIO interrupts (with much support from
|
|
Decio Renno).
|
|
* Basic timer support for STM32 (Contributed by Uros Platise)
|
|
* A binfs file system. This is a tiny pseudo file system that
|
|
lets named applications to be viewed and accessed in NSH under
|
|
the /bin directory.
|
|
* An I2C-based driver for the LIS331DL MEMS motion sensor.
|
|
(Contributed by Uros Platise.)
|
|
* A configuration for the Embedded Artists LPCXpresso LPC1768 board.
|
|
* The user_initialize() interface has been removed.
|
|
|
|
And several bugfix associated with SD drivers, opendir(), signed
|
|
8-bit types (int8_t), and USB serial device. See the ChangeLog for
|
|
details.
|
|
|
|
NuttX-6.2
|
|
---------
|
|
|
|
The 69th release of NuttX, Version 6.2, was made on May 6, 2011 and
|
|
is available for download from the SourceForge website. The 6.2
|
|
release includes several new features:
|
|
|
|
* NXFFS: The obvious new feature is NXFFS, the NuttX wear-leveling
|
|
FLASH file system. This new file system is intended to be
|
|
small for the MCU usage and has some limitations. No formal
|
|
documentation of NXFFS yet exists. See the fs/nxffs/README.txt
|
|
file for details (see
|
|
http://svn.code.sf.net/p/nuttx/code/trunk/nuttx/fs/nxffs/README.txt?view=log)
|
|
* Support for NXP LPCXpresso LPC1768 board on the Embedded
|
|
Artists base board. The Code Red toolchain is supported under
|
|
either Linux or Windows. Verified configurations include
|
|
dhcpd, nsh, nx, ostest, thttpd, and usbstorage.
|
|
* Support for the Univision UG-9664HSWAG01 OLED with Solomon
|
|
Systech SD1305 LCD controller.
|
|
* A new RAM MTD driver with FLASH simulation capability.
|
|
* A version.h file is now automatically generated so that C code
|
|
can now be version aware.
|
|
|
|
In addition to these new feature, several important bugfixes are
|
|
included in this release correcting problems with dup2(), LPC17xx
|
|
GPIO interrupts, LPC17xx UART2/3, the FAT file system, build issues,
|
|
and strrch(). See the ChangeLog for more details.
|
|
|
|
NuttX-6.3
|
|
---------
|
|
|
|
The 70th release of NuttX follows only a nines days after the release
|
|
of version 6.2. It was released on May 15, 2011. This special
|
|
back-to-back release was made so that the current released version
|
|
of NuttX will correspond to the initial release from the RGMP
|
|
project.
|
|
|
|
This release adds architecture support and build configuration for
|
|
RGMP. RGMP is a project for running GPOS and RTOS simultaneously
|
|
on multi-processor platforms. See
|
|
http://rgmp.sourceforge.net/wiki/index.php/Main_Page for further
|
|
information about RGMP.
|
|
|
|
This release also includes support for STM32 FLASH, build improvements,
|
|
and initial, incomplete support for the MicroChip PIC32MX MCU. Bug
|
|
fixes are included for some build problems, USB host class driver
|
|
error handling, NX graphics color mapping, and problems with C
|
|
standard I/O buffer flushing. See the ChangeLog for further details.
|
|
|
|
NuttX-6.4
|
|
---------
|
|
|
|
The 71st release of NuttX, Version 6.4, was made on June 6, 2011
|
|
and is available for download from the SourceForge website. The
|
|
6.4 release includes several new features:
|
|
|
|
* A new, full-featured FTP client. This client may be used as a library
|
|
for automated FTP or via an FTP client shell. The FTP shell
|
|
supports the following commands: cd, chmod, get, help, idle,
|
|
login, ls, quit, mkdir, noop, put, pwd, rename, rhelp, rm,
|
|
rmdir, size, time, and up. A configuration is available for
|
|
the NXP LPC17xx to demonstrate this functionality.
|
|
* A functional C1101 wireless driver (contributed by Uros Platise)
|
|
* A PCI-based E1000 Ethernet driver (contributed by Yu Qiang)
|
|
* New C library functions: inet_addr() (contributed by Yu Qiang),
|
|
strndup(), asprintf()
|
|
* Reduced memory allocation overhead for MCUs with small heaps (<64K).
|
|
* fdopen() now works with socket descriptors allowing standard
|
|
buffered C functions to be used for network communications.
|
|
* The NSH ifconfig command can now be used to set or change the
|
|
IP address (contributed by Yu Qiang)
|
|
|
|
This release also includes some completed but untested functionality.
|
|
|
|
* The MicroChip PIC32MX port is now code complete and ready to
|
|
begin testing. Unfortunately, testing will be delayed due to
|
|
tool issues.
|
|
* Support for the NXP LPC315x MCUs.
|
|
|
|
Additional miscellaneous enhancements and bug fixes to task_delete(),
|
|
recvfrom(), and other changes as noted in the ChangeLog.
|
|
|
|
NuttX-6.5
|
|
---------
|
|
|
|
The 72nd release of NuttX, Version 6.5, was made on June 21, 2011
|
|
and is available for download from the SourceForge website. The
|
|
6.5 release is all about support for the Atmel 8-bit AVR family.
|
|
I have been interested in the AVR family for some time but because
|
|
of the severe SRAM constraints and because of the availability of
|
|
many tiny schedulers for the AVR, it has not been "on the radar
|
|
screen." However, I have recently become interested because of
|
|
interest expressed by members of the forum and because of the
|
|
availability of newer, larger capacity AVR parts (that I don't have
|
|
yet).
|
|
|
|
This release corresponds with SVN release number: r3730
|
|
|
|
This release includes support for the following AVR boards. As
|
|
with any initial support for new architectures, there are some
|
|
incomplete areas and a few caveats that need to be stated. Here
|
|
they are, ordered from the least to the most complete:
|
|
|
|
* SoC Robotics Amber Web Server (ATMega128).
|
|
|
|
This port of NuttX to the Amber Web Server from SoC Robotics
|
|
(http://www.soc-robotics.com/index.htm). Is only partially in
|
|
place. The Amber Web Server is based on an Atmel ATMega128
|
|
(128K FLASH but only 4K of SRAM).
|
|
|
|
STATUS: Work on this port has stalled due to toolchain issues. It
|
|
is complete, but untested.
|
|
|
|
* Micropendous 3 AT9USB647
|
|
|
|
This port of NuttX to the Opendous Micropendous 3 board. The
|
|
Micropendous3 may be populated with an AT90USB646, 647, 1286,
|
|
or 1287. See http://code.google.com/p/opendous/. I have only
|
|
the AT90USB647 version for testing. This version has very
|
|
limited memory resources: 64K of FLASH and 4K of SRAM.
|
|
|
|
STATUS: The basic port was released in NuttX-6.5. This basic
|
|
port consists only of a "Hello, World!!" example that demonstrates
|
|
initialization of the OS, creation of a simple task, and serial
|
|
console output. The tiny SRAM limits what you can do with the
|
|
AT90USB647 (see issues below).
|
|
|
|
* PJRC Teensy++ 2.0 AT9USB1286
|
|
|
|
This is a port of NuttX to the PJRC Teensy++ 2.0 board. This
|
|
board was developed by PJRC (http://pjrc.com/teensy/). The
|
|
Teensy++ 2.0 is based on an Atmel AT90USB1286 MCU with 128K
|
|
of FLASH and 8K of SRAM; a little more room to move than the
|
|
AT90USB647.
|
|
|
|
STATUS: The basic port was released in NuttX-6.5. This basic
|
|
port consists of a "Hello, World!!" example and also slightly
|
|
simplified NuttShell (NSH) configuration (see the NSH User Guide
|
|
at http://www.nuttx.org/NuttShell.html).
|
|
|
|
An SPI driver and a USB device driver exist for the AT90USB as
|
|
well as a USB mass storage configuration. However, this
|
|
configuration is not fully debugged as of the NuttX-6.5 release.
|
|
|
|
AVR-specific issues. The basic AVR port is solid and biggest issue
|
|
for using AVR is its tiny SRAM memory and its Harvard architecture.
|
|
Because of the Harvard architecture, constant data that resides to
|
|
flash is inaccessible using "normal" memory reads and writes (only
|
|
SRAM data can be accessed "normally"). Special AVR instructions
|
|
are available for accessing data in FLASH, but these have not been
|
|
integrated into the normal, general purpose OS.
|
|
|
|
Most NuttX test applications are console-oriented with lots of
|
|
strings used for printf and debug output. These strings are all
|
|
stored in SRAM now due to these data accessing issues and even the
|
|
smallest console-oriented applications can quickly fill a 4-8K
|
|
memory. So, in order for the AVR port to be useful, one of two
|
|
things would need to be done:
|
|
|
|
1. Don't use console applications that required lots of strings.
|
|
The basic AVR port is solid and your typical deeply embedded
|
|
application should work fine.
|
|
|
|
2. Create a special version of printf that knows how to access
|
|
strings that reside in FLASH (or EEPROM).
|
|
|
|
NuttX-6.6
|
|
---------
|
|
|
|
The 73rd release of NuttX, Version 6.6, was made on July 11, 2011
|
|
and is available for download from the SourceForge website. The
|
|
6.6 release adds several smaller features but is mostly a bugfix
|
|
release.
|
|
|
|
Bugfixes include
|
|
|
|
* Fixed several NX Graphics bugs: Rendering fonts at >8 bits-per-pixel,
|
|
graphics move logic, and display artifacts that appear when a
|
|
window is closed.
|
|
* Corrections to the USB host mass storage class driver
|
|
* STM32 bugfixes: serial driver, GPIO interrupt handling
|
|
* LPC17xx: Changes for a success compilation with no console.
|
|
* Corrections to the Teensy AT90USB SD driver
|
|
* Changes for a clean compilation under the ZDS-II toolchain.
|
|
|
|
Minor features:
|
|
|
|
* Add logic to extract printf strings from FLASH (but there are
|
|
still printf issues for that target)
|
|
* Added a configuration for the Sure Electronics PIC32MX board.
|
|
However, higher priority tasks have stopped work on that
|
|
configuration.
|
|
* Added several new configurations for the STMicro STM3210E-EVAL
|
|
board.
|
|
* Added support for the STM3210E-EVAL board: (1) LCD in either
|
|
landscape or portrait mode, and (2) interrupting buttons.
|
|
* Added a configuration option to use different serial ports for
|
|
debug and for the NSH serial console (there are some issues
|
|
with CR-LF expansion and character echo if NSH is not run on
|
|
the console).
|
|
* Standardized the button press and button interrupt interfaces
|
|
so that they are common across all boards.
|
|
* Added a new graphics example that focuses on placing text on
|
|
the background while pop-up windows occur. Text should continue
|
|
to update normally with or without the popup windows present.
|
|
* Added ARM stack checking logic.
|
|
|
|
See the ChangeLog for a detailed description of these changes.
|
|
|
|
NuttX-6.7
|
|
---------
|
|
|
|
The 74th release of NuttX, Version 6.7, was made on August 2, 2011
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.7.tar.gz and
|
|
apps-6.7.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information). Changes in this release are summarized
|
|
below:
|
|
|
|
* New OS APIs: Add the standard sem_timedwait() interface.
|
|
* FAT File System: Adds (optional) support for VFAT long file
|
|
names.
|
|
* USB: Now the mass storage device can be connected when needed
|
|
and disconnected when not needed (or re-connected as a different
|
|
kind of device).
|
|
* Touchscreen Support: Defined a new NuttX touchscreen interface.
|
|
Added a driver for the TI TSC2007 touchscreen controller chip.
|
|
* NX Fonts: Add support for multiple fonts; developed a tool to
|
|
convert open source fonts into NuttX format; Converted and
|
|
installed nine new, high quality fontsets.
|
|
* NX Graphics: Add new NX APIs to support drawing of wide lines
|
|
in any orientation. Added new low level routines to set
|
|
individual pixel more efficiently.
|
|
* Build system: Added a export target that will bundle up all
|
|
of the NuttX libraries, header files, and the startup object
|
|
into an exportable tarball.
|
|
* LPC17xx: A CAN driver was contributed by Li Zhuoyi (Lzyy).
|
|
* STM32: New NX-related configurations to exercise text and
|
|
graphic image displays.
|
|
* C Library: Added a fixed precision atan2() math function.
|
|
* Bugfixes: Serial RX overrun error, FAT upper/lower NT 8.3 name
|
|
handling fixed. FAT directory allocation and initialization
|
|
bug. STM32 SDIO DMA race condition bug. eZ80 UART1 serial
|
|
driver errors (Paul Osmialowski)
|
|
|
|
NuttX-6.8
|
|
---------
|
|
|
|
The 75th release of NuttX, Version 6.8, was made on August 19, 2011
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.8.tar.gz and
|
|
apps-6.8.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information). Changes in this release are summarized
|
|
below:
|
|
|
|
* NuttX has been ported to run on the Freescale Cortex-M4 "Kinetis"
|
|
boards. Two board ports are available for (1) the Kinetis
|
|
KwikStik-K40 and (2) the Kinetis TWR-K60N512 tower.
|
|
* Support for RGMP 0.3. This version of RGMP now runs on the
|
|
OMAP4430 (arm) pandaboard
|
|
* LPC17xx CAN driver extended to support both CAN1 and CAN2
|
|
(submitted by Li Zhuoy (Lzzy))
|
|
* Fixed several critical bugs related to signal handling
|
|
initialization and for signals the wake up tasks that are waiting
|
|
to send or receive message queues.Both are important. (submitted
|
|
by hkwilton).
|
|
* drivers/can.c: Fixed a semaphore overflow problem in the CAN
|
|
driver (reported by Li Zhouy (Lzzy)).
|
|
* Added a new ADC driver infrastructure and TI ADS1255 driver
|
|
both developed and submitted by Li Zhouy (Lzzy)).
|
|
|
|
See the Changelog for additional changes included in this release.
|
|
|
|
NuttX-6.9
|
|
---------
|
|
|
|
The 76th release of NuttX, Version 6.9, was made on September 11, 2011
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.9.tar.gz and
|
|
apps-6.9.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release includes a few new features and several important bug fixes.
|
|
The new features (some still incomplete) include:
|
|
|
|
* Analog Support/ NXP LPC17xx: New DAC sub-system including ADC and DAC
|
|
drivers for the LPC17xx. Extensions to the ADS1255 driver.
|
|
(Contributed by Li Zhuoyi (Lzyy))
|
|
|
|
* Power Management: Added a new NuttX power management sub-system for
|
|
controlling and coordinating reduced power states. At present, only
|
|
verified in a simulation environment.
|
|
|
|
* I2C Test Tool: A new application was added that can be used to
|
|
verify and debug I2C interfaces from the NuttShell (NSH) command
|
|
line.
|
|
|
|
* NuttShell (NSH): In addition to the I2C test tool, a date command
|
|
is now supported (if CONFIG_RTC is defined) that can be used to
|
|
read and set the RTC.
|
|
|
|
* NXP LPC17xx: I2C and DAC driver for the NXP LPC17xx family submitted by Li Zhuoyi
|
|
(Lzyy)
|
|
|
|
* Kinetis Cortex-M4: Added a SDHC driver for the Kinetis parts.
|
|
Complete debug of the Kinetis SDHC driver was not completed, however,
|
|
do to some higher priority tasks that forced me to stop work.
|
|
|
|
* Other new drivers: Driver for I2C-based at24cxx EEPROM submitted by
|
|
Li Zhuoyi (Lzyy); Driver for the LM-75 temperature sensor. Support
|
|
for the LM-75 temperature sensor integrated into the SM3210E-EVAL
|
|
development board.
|
|
|
|
* NuttX Graphics (NX): Added new NX interfaces for drawing circles,
|
|
both circle outlines and filled circles.
|
|
|
|
* FLASH: Added a function that accepts the path to a block driver and
|
|
then erases the underlying FLASH memory
|
|
|
|
* Build System: The Make export logic now also tries to track down all
|
|
architecture-specific header files and include these in the NuttX
|
|
export bundle as well. Various changes and modifications so that
|
|
NuttX wil build on FreeBSD using the ASH shell (submitted by Kurt Lidl).
|
|
|
|
Bugfixes, order roughly on decreasing criticality include:
|
|
|
|
* STM32 I2C Driver: Add resets, timeout, and other fixes to work
|
|
reliably with the I2C tool. Corrected a major error introduced in
|
|
NuttX 6.8.
|
|
|
|
* BCH Driver. Several important bugs (noted by Li Zhuoyi (Lzyy))
|
|
were fixed.
|
|
|
|
* C Library: Fixed errors in gmtime() and gmtime_r() that could lead to
|
|
errors in date calculations.
|
|
|
|
* Timing: Correct an error in the tv_nsec calculation that happens
|
|
only config CONFIG_RTC is enabled
|
|
|
|
* Build System: Use of -print-libgcc-file-name to get path to
|
|
libgcc.a might select the wrong libgcc.a if a multilib toolchain
|
|
is used
|
|
|
|
NuttX-6.10
|
|
----------
|
|
|
|
The 77th release of NuttX, Version 6.10, was made on October 6, 2011
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.10.tar.gz and
|
|
apps-6.10.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release corresponds with SVN release number: r4028
|
|
|
|
This release includes a few new features and several important bug fixes.
|
|
The new features (some still incomplete) include:
|
|
|
|
* CDC ACM serial class device-side driver
|
|
|
|
* RTC: Now supports hi-res and lo-res hardware RTC. The lo-res RTC
|
|
runs at 1Hz.
|
|
|
|
* STM32 I2C driver. Now supports faster, polled mode of operation.
|
|
Added an I2C trace capability.
|
|
|
|
* ADS7843E touchscreen driver. As used on the SAM3U-EK development
|
|
board.
|
|
|
|
* AT91SAM3U SPI driver. To support the ADS7843E toucscreen
|
|
|
|
* X11 Support on simulation target. Build errors in the X11 windows
|
|
for the simulated target have been correct. Added support for a
|
|
simulated touchscreen on the X11 window (based on mouse inputs).
|
|
|
|
* System Timer. Added support for a 64-bit system timer.
|
|
|
|
* TIFF Support. Added a TIFF library (currently used for storing
|
|
LCD screen shots).
|
|
|
|
* LCD Support. Added a test to verify that we read and write correct
|
|
to LCD GRAM memory.
|
|
|
|
* I2C tool. Extended to support to include a verify command and
|
|
repititions and auto-address increment for most commands.
|
|
|
|
* USB terminal example. Line oriented serial bridge connects a host
|
|
USB serial terminal to a host UART serial terminal.
|
|
|
|
* Build System. apps/ Makefile will now include external directories
|
|
in the application build.
|
|
|
|
Bugfixes, order roughly on decreasing criticality include:
|
|
|
|
* Message Queues. Correct errors in mq_timedsend() and
|
|
mq_timedrecieve().
|
|
|
|
* FAT. Writes that cross sector boundaries, stray write into the FAT,
|
|
and a FAT long file name issue
|
|
|
|
* NXFFS. Added a missed error check. Files cannot be opened for
|
|
writing if they are already opened for reading.
|
|
|
|
* Library: fopen() for append modse was not appending.
|
|
|
|
* STM32 I2C driver. Correct another conflict between concurrent FSMC
|
|
and I2C1 accesses. Fixed some bad error detection logic.
|
|
|
|
* STM32 SDHC driver. Interrupts were being left disabled.
|
|
|
|
NuttX-6.11
|
|
----------
|
|
|
|
The 78th release of NuttX, Version 6.11, was made on November 12, 2011
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.11.tar.gz and
|
|
apps-6.11.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release corresponds with SVN release number: r4090
|
|
|
|
This release is a maintenance release that includes a few new features
|
|
and some important bugfixes. New features include:
|
|
|
|
* NX Graphics: New interfaces to read from graphics memory
|
|
* Drivers: AT24 FLASH driver will now supports clustering of blocks
|
|
to achieve a larger, more usable block size for NXFFS.
|
|
* STM32: LCD color corrections
|
|
* PIC32: Board configuration for the Microchip PIC32 Ethernet Starter kit
|
|
(not yet verified), new GPIO support library, button and LED support
|
|
for the Sure Electronics PIC32MX board. A lot of progress has been
|
|
made on the PIC32 NuttX port, but it is still not ready for prime time.
|
|
* NXP LPC3152: Board configuration for the Embedded Artists EA3152.
|
|
|
|
Bugfixes, order roughly on decreasing criticality include:
|
|
|
|
* NXFFS: Corrected critical bugs in initialization, some full FLASH handling,
|
|
and errors in certain cases where the FLASH is repacked.
|
|
* ARM EABI: Fix stack aligment required for passing floating point values.
|
|
* Build system: Fix build issues when g++ is used as the compiler.
|
|
* NX Graphics: Bitmap error handling, correct RGB color conversion macros,
|
|
Error when the background window is released.
|
|
* STM32: RTC build fixes, LCD color corrections
|
|
* Simulation target: build fixes
|
|
* C Library: fclose() return value.
|
|
|
|
See the change log for more detailed information.
|
|
|
|
NuttX-6.12
|
|
----------
|
|
|
|
The 79th release of NuttX, Version 6.12, was made on December 6, 2011
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.12.tar.gz and
|
|
apps-6.12.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release corresponds with SVN release number: r4141
|
|
|
|
New features in this release include:
|
|
|
|
* STM32. Basic support added for the STM32 F4 family. Board support
|
|
verified for the STMicro STM3250G-EVAL board.
|
|
* FAT. Enhanced partition handling.
|
|
* SDIO-Based SD Card support. Add support for large (>4Gb) devices
|
|
* Graphics. Added four new small sans serif fonts.
|
|
* Drivers. Fix a banding problem with the R61580 LCD.
|
|
|
|
Bugfixes, order roughly on decreasing criticality include:
|
|
|
|
* FAT. Fix errors in how the first entries in the root directory are
|
|
added. Fix errors in FAT date/time handling.
|
|
* Signals. Fix bug in certain sig_timedwait() error handling.
|
|
* Drivers. Fix cloned errors in poll() handling in several drivers.
|
|
* Message Queues. errno was not being set correctly by mq_notify().
|
|
* C Library. wchar_t is a built-in type for C++
|
|
|
|
NuttX-6.13
|
|
----------
|
|
|
|
The 80th release of NuttX, Version 6.13, was made on December 26, 2011
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.13.tar.gz and
|
|
apps-6.13.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release corresponds with SVN release number: r4231
|
|
|
|
New features in this release include:
|
|
|
|
* Drivers. New standard interface for PWM drivers and common
|
|
"upper half" PWM driver. Updated the MP25x driver to support
|
|
the Macronix MX25 chips (submitted by Mohammad Elwakeel).
|
|
* STM32 F1/F4. Added an Ethernet driver, ADC drivers, DAC driver,
|
|
PWM driver, CAN driver, F4 RTC driver, F4 DMA support,
|
|
logic for saving/restoring F4 FPU registers in context switches.
|
|
* STM32 Boards. Added STM3240G-EVAL DHPCD and nettest configuration.
|
|
Support for a new STM32 board, the HY-Mini STM32v board, was
|
|
contributed by Laurent Latil
|
|
* PIC32. The port to the Microchip PIC32MX is finally functional and
|
|
reliable. The NuttX PIC32 port has verified configurations for
|
|
the OS test and the NuttShell (NSH) both exist.
|
|
* Tests: New re-usable tests (in apps/examples) for PWM, ADC, and
|
|
CAN loopback. Several existing tests can now be built as NSH built-in
|
|
applicaitons (dhcpd, nettest, and all of the new tests).
|
|
|
|
Bugfixes, order roughly on decreasing criticality include:
|
|
|
|
* STM32: Correct handling of data overrun conditions. Existing logic
|
|
would hang with infinite interrupts when a data overrun occurred.
|
|
* DHCPD. Fix several problems using host order address where network
|
|
addresses expected (and vice versa).
|
|
|
|
And several others. See the ChangeLog for more details.
|
|
|
|
NuttX-6.14
|
|
----------
|
|
|
|
The 81st release of NuttX, Version 6.14, was made on January 15, 2012,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.14.tar.gz and
|
|
apps-6.14.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release corresponds with SVN release number: r4301
|
|
|
|
New features in this release include:
|
|
|
|
* Drivers. The upper-half PWM driver will now support a pulse count (as
|
|
would be needed to control a stepper motor).
|
|
|
|
* STM32. The CAN driver has been verified in loopback mode. ADC driver
|
|
support for the STM32 F4. Add support for UART4-5 and USART6
|
|
(Contributed by Mike Smith). The PWM driver now supports a pulse
|
|
count for TIM1 and TIM8. Timer driver now supports the F4's 32-bit
|
|
timers (Contributed by Mikhail Bychek)
|
|
|
|
* STM32F4Discovery. Support for the STM32F4-Discovery board contributed
|
|
by Mike Smith.
|
|
|
|
* STM3240G-EVAL. Add support for user control of LEDs.
|
|
|
|
* LPC17xx. Add support for loopback mode to CAN driver. CAN TX done
|
|
perations are now interrupt driver. Now supports configurable CAN bit
|
|
rate.
|
|
|
|
* LPC1766-STK. Add support for on-board buttons. Add support for user
|
|
control of LEDs.
|
|
|
|
* LM3S. Add support for the LM3S6432S2E on the TI RDK-S2E (Contributed
|
|
by Mike Smith)
|
|
|
|
* PIC32MX. USB device-side driver (needs further testing). A partial
|
|
Ethernet driver is also in place.
|
|
|
|
* Library. Support added for fixed floating point fieldwidths in output
|
|
formatting (Contributed by Mikhail Bychek)
|
|
|
|
* Build. New targets apps_clean and apps_distclean to simplify working
|
|
with application diretories.
|
|
|
|
Bugfixes include:
|
|
|
|
* Drivers. Fixed a buffer-full test in the upper-half CAN driver.
|
|
|
|
* STM32. GPIO initialize logic (submitted by Mike Smith). Fix the
|
|
debug logic that dumps the GPIO configuration.
|
|
|
|
* LPC17xxx. Correct an integeter overlow in GPIO interrupt setup
|
|
(prevented pins > 15 from being used as interrupt sources). Correct
|
|
a value used in GPIO interrupt number range test.
|
|
|
|
* FAT. Now returns the correct error value when it is unable to
|
|
recognize the file system.
|
|
|
|
* Build. MAC OS build fixes (submitted by Mike Smith)
|
|
|
|
And several others. See the ChangeLog for more details.
|
|
|
|
NuttX-6.15
|
|
----------
|
|
|
|
The 82nd release of NuttX, Version 6.15, was made on February 12, 2012,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.15.tar.gz and
|
|
apps-6.15.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release corresponds with SVN release number: r4387
|
|
|
|
New features and extended functionality:
|
|
|
|
* General Drivers: Add support for (29-bit) extended CAN IDs. Add an
|
|
infrastructure to support battery drivers. Add a driver for MAX17040x
|
|
battery "fuel gauge". Add support for Composite USB drivers (in
|
|
particular for a CDC/ACM with MSC USB composite driver).
|
|
|
|
Added a new RAM logging driver. This will allow debug output into
|
|
a RAM buffer associated with a character driver at /dev/syslog.
|
|
Added the new command 'dmesg' to NSH that can be used to dump the
|
|
current contents of the log. This is useful for systems that do not
|
|
have the usual serial console (for example, if you only have a
|
|
Telnet console with NSH).
|
|
|
|
* Networking: Add a lower level, primitive socket interface. Telnet
|
|
driver:
|
|
|
|
A New Telnet daemon was created. It wraps a Telnet session within a
|
|
character driver that can serve as a "controlling terminal." The
|
|
Telnet session will then be inherited by tasks created from the
|
|
Telnet session and the stdin/stdout from the created task will
|
|
still go through the same Telnet connection.
|
|
|
|
* STM32 Drivers. PWM driver pulse count was limited to 128; now is
|
|
(essentially) unlimited. Add support for (29-bit) extended CAN IDs.
|
|
Add support for I2C3. The SDIO driver is (mostly) verified on the
|
|
STM32 F4 platforms.
|
|
|
|
* LPC17xx Drivers. Extended the CAN driver so that the TSEG1 and TSEG2
|
|
bit times can be set via the NuttX configuration. Add support for
|
|
(29-bit) extended CAN IDs.
|
|
|
|
* PIC32 Drivers. The PIC32 Ethernet driver is code complete (but still
|
|
untested).
|
|
|
|
* FTPD. Add a new FTP server daemon. This is based loosely on
|
|
the hwport_ftpd library provided by Jaehyuk Cho.
|
|
|
|
* Library: Add support for on_exit(). Implemented tcsetattr() and
|
|
tcgetattr(). Moved the old, too-smart fgets() to a new application
|
|
library function called readline(). Dumbed down the original fgets().
|
|
Add strcasestr(), avsprintf(), inet_ntop(), and inet_pton().
|
|
Add support to enable or disable debug output.
|
|
|
|
* Build system: Support for building a 32-bit simulation executable on
|
|
a 64-bit Linux machine. Correct a dependency issue in the arch/*/src/board
|
|
directory.
|
|
|
|
Bugfixes:
|
|
|
|
* System: Correct PTHREAD_MUTEX_INITIALIZER
|
|
|
|
* FAT: Fix an error in the FAT statfs() reported by David Sidrane.
|
|
|
|
* STM32: Fix clock frequencies for APB2 timers. Correct AFIO register
|
|
offset.
|
|
|
|
* PIC32. Correct GPIOs used for LEDs on the Sure PIC32MX board.
|
|
|
|
* NSH. Wait for a USB connection if a USB serial class is used to
|
|
interface with the host.
|
|
|
|
Additional bugfixes, name changes, and other differences as detailed in the
|
|
ChangeLog.
|
|
|
|
NuttX-6.16
|
|
----------
|
|
|
|
The 83rd release of NuttX, Version 6.16, was made on March 10, 2012,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.16.tar.gz and
|
|
apps-6.16.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release corresponds with SVN release number: r4475
|
|
|
|
New features and extended functionality:
|
|
|
|
* ARMv7M Support: Includes new, streamlined Cortex-M exception
|
|
handling provided by Mike Smith. Context switching support for the
|
|
Cortex-M4 FPU registers is now provided (in both "lazy" and "non-lazy"
|
|
modes)
|
|
|
|
* General Drivers: Added a generic "upper half" Quadrature Encoder driver.
|
|
The USB CDC/ACM serial driver can now be dynamically connnected or
|
|
disconnected from the host (programmatically or using NSH commands).
|
|
|
|
* STM32 Drivers: Added a "lower half" Quadrature Encoder driver.
|
|
Verified the STM32 F4 DMA driver; Added F4 DMA support to the existing
|
|
STM32 SDIO driver.
|
|
|
|
* STM32 Board Support. Added support for the STM32 F2 family and
|
|
for the STM3220G-EVAL board (contributed by Gary Teravskis).
|
|
Support is now included for C++ static constructors (verified using
|
|
the Atollic toolchain). Added support for the SRAM available on the
|
|
STM3240G-EVAL board.
|
|
|
|
* PIC32 Drivers. PIC32MX USB (device) driver is now functional.
|
|
The PIC32MX Ethernet driver not yet fully verified (and an
|
|
unverified SPI driver is also available).
|
|
|
|
* Networking. Added a lower-level, thread-independent socket layer.
|
|
Parts of this layer were created in 6.15 to support the FTPD
|
|
controlling terminal; this support has been extended in order
|
|
to support an NFS file system (not yet released).
|
|
|
|
* NuttShell (NSH). NSH will now support a USB serial connection for
|
|
the console (such as CDC/ACM). This is useful in environments
|
|
where there is no physical serial port on the board.
|
|
|
|
* Build System. Reorgnaization of networking header files.
|
|
|
|
Critical Bugfixes. The following bug fixes are considered critical:
|
|
|
|
* Networking: Fixed a "leak" in the TCP/IP read-ahead buffering logic.
|
|
Corrected an error in TCP/IP sequence numbering/ACK logic which
|
|
occurred when read-ahead buffering memory is exhausted.
|
|
|
|
* STM32 Drivers: Fixed an buffer sizing error in the STM32 Ethernet
|
|
driver.
|
|
|
|
Additional Bugfixes: Other important bug fixes are listed below. See
|
|
the ChangeLog of a complete, detailed list of bug fixes.
|
|
|
|
* Networking: Corrected recv()/recvfrom() return value. Added logic to
|
|
monitor for loss of connection after a new connection has been
|
|
established via accept() (Contributed by Max Nekludov). Add
|
|
logic to select() to correctly handle POLLHUP (Contributed by Max
|
|
Nekludov)
|
|
|
|
Additional bugfixes, name changes, and other differences as detailed in the
|
|
ChangeLog.
|
|
|
|
NuttX-6.17
|
|
----------
|
|
|
|
The 84th release of NuttX, Version 6.17, was made on April 14, 2012,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.17.tar.gz and
|
|
apps-6.17.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release corresponds with SVN release number: r4607
|
|
|
|
New features and extended functionality:
|
|
|
|
* Networking: Additional low-level, thread-independent socket
|
|
interfaces (for NFS client support).
|
|
|
|
* RTC: Added a new interface call clock_synchronize(). This function
|
|
will reload the system time from an RTC and is required when the
|
|
system re-awakens from certain deep-sleep modes.
|
|
|
|
* Graphics: Add NxConsole. This is a character device driver that
|
|
wraps an NX window and can be re-directed for stdout. This allows,
|
|
for example, a pop-up graphics window that contains a NuttShell (NSH)
|
|
session. A test of NxConsole is available at apps/examples/nxconsole.
|
|
|
|
* Watchdog Drivers: Added an interface definition an "upper half"
|
|
driver to support watchdog timers.
|
|
|
|
* Calypso: Support for TI Calypso-based cellphones (as supported by
|
|
the Osmocom-BB project) was contributed by members of the Osmocom-BB
|
|
team. This includes configurations for the Compal e88 and e99 phones.
|
|
|
|
* USB Device Interface: Needed to extend the USB device interface
|
|
because there was no mechanism for passing endpoint OUT data that
|
|
may need to accompany a setup request.
|
|
|
|
* STM32 drivers: Added some power management controls for entering
|
|
reduced power consumption states. An OTG FS driver was completed
|
|
and partially verified (this driver seems to be functional but since
|
|
it has been test so lightly, it might better be listed in the
|
|
next section "Work in progress").
|
|
|
|
* PIC32 drivers: The PIC32 Ethernet driver is now stable. The PIC32
|
|
USB device controller driver is now functional (but not yet stable).
|
|
|
|
* PIC32 boards: Added support for the Sure DB-DP11212 PIC32 General
|
|
Purpose Demo Board. There is now a PIC32 Starter Kit that
|
|
provides NSH only through a Telnet connection.
|
|
|
|
* Build System: Some header files were moved into include/nuttx.
|
|
The goal is to move any non-standard header files to include/nuttx
|
|
or include/arch. Moved include/math.h to include/nuttx/math.h;
|
|
this file is now only instantiated as the 'system' math.h if
|
|
CONFIG_ARCH_MATH_H=y is defined.
|
|
|
|
* Tools: Added tools/cmpconfig.c, a tool for comparing two
|
|
configuration files.
|
|
|
|
Work in progress. This release includes some partially completed
|
|
work that is still not ready for prime time.
|
|
|
|
* NFS Client: Work is progressing on support for an NFS client
|
|
file system. This is a port of the BSD NFS client file system
|
|
that is being done by Jose Pablo Rojas V.
|
|
|
|
* Automated Configuration: Automated configuration based on the
|
|
kconfig-frontends tool is being incorporated into the build
|
|
system. The configuration is still not complete enough for
|
|
general use in this release.
|
|
|
|
* STM32 Drivers: Added files that will (eventually) hold an STM32
|
|
OTG FS host driver. This is still a work in progress.
|
|
|
|
Bugfixes:
|
|
|
|
* Networking: Corrected a deadlock that only occurred when
|
|
executing the NSH 'ifconfig' command over Telnet.
|
|
|
|
* File system: Fix incorrect return errno value from read() when
|
|
the file is opened write-only.
|
|
|
|
* Graphics: Fix several compilation errors that have crept into the
|
|
multi-user NX server because of lack of use.
|
|
|
|
* STM32: In order to use CAN2, both CAN1 and CAN2 clocking must be
|
|
enabled. Fixed a troublesome bug in the STM32 F4 I2C driver that
|
|
resulting in timeouts.
|
|
|
|
* LPC17xx: Fixes for errors the crept in the LPC17xx DAC logic
|
|
Contributed by Lzyy).
|
|
|
|
* Build System: Reordered the link command line to account for new
|
|
versions of libgcc.a that require symbols from the application
|
|
(abort()).
|
|
|
|
NuttX-6.18
|
|
----------
|
|
|
|
The 85th release of NuttX, Version 6.18, was made on May 19, 2012,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.18.tar.gz and
|
|
apps-6.18.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
The majority of changes in this release are focused on supporting the
|
|
synchronized release of NxWM, the NuttX tiny window manager. That
|
|
window manager is released as part of the NxWidgets package, but depends
|
|
upon many of the changes in this NuttX release.
|
|
|
|
This release corresponds with SVN release number: r4751
|
|
|
|
New features and extended functionality:
|
|
|
|
* Drivers. Added a watchdog timer driver infrastructure. Add general
|
|
support for STMicro STMPE811 I/O Expander/touchscreen device.
|
|
|
|
* STM32. Add support for the STM32 IWDG and WWDG watchodog timers. DMA
|
|
now supports cicular buffer mode; serial driver now uses circular
|
|
DMA to improve Rx performance (Contributed by Mike Smith).
|
|
|
|
* STM3240G-EVAL Board. Add support for the LCD and for the STMPE811
|
|
I/O Expander as a touchscreen controller.
|
|
|
|
* PIC32 Boards. Board support for the Mikroelektronika PIC32MX7
|
|
Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board.
|
|
|
|
* NX. Framed windows are now draw in three colors instead of just two.
|
|
Numerous other extensions needed to support NxWM (see the ChangeLog
|
|
for details).
|
|
|
|
* Library. Add prctl() command that can be used to setting and getting
|
|
the names of threads. This (plus several other improvements and bug
|
|
fixes) are part of a larger effort to improve task monitoring
|
|
capabilities.
|
|
|
|
Work in progress. This release includes some partially completed
|
|
work that is still not ready for prime time.
|
|
|
|
* NFS Client. Work is progressing on support for an NFS client
|
|
file system. This is a port of the BSD NFS client file system
|
|
that is being done by Jose Pablo Rojas V.
|
|
|
|
* Automated Configuration. Automated configuration based on the
|
|
kconfig-frontends tool is being incorporated into the build
|
|
system. The configuration is still not complete enough for
|
|
general use in this release.
|
|
|
|
* STM32 Drivers. Added files that will (eventually) hold an STM32
|
|
OTG FS host driver. This is still a work in progress.
|
|
|
|
Bugfixes (see the change log for details) :
|
|
|
|
* sched_setscheduler() return value (Contributed by Richard Cochran).
|
|
|
|
* stdio. Ignore CONFIG_STDIO_LINEBUFFER if the file was opened in binary mode.
|
|
|
|
* fopen(). Correct an error in parsing open mode string.
|
|
|
|
* serial driver. Improved performance be reducing the amount of time
|
|
that Rx interrupts are disabled.
|
|
|
|
* recvfrom(). Fix a compilation problem.
|
|
|
|
* CDC/ACM device driver. Fix an infinite loop that occurs when the serial
|
|
device is unregistered.
|
|
|
|
* STM32 OTG FS device driver. Numerous fixes and the driver is partially
|
|
functional but there are still some issues that become apparent when
|
|
debug output is disabled.
|
|
|
|
* fcntl(). Always returned zero on success; however, some fcntl commands
|
|
need to return non-zero values on success.
|
|
|
|
* graphics: Many multi-use mode fixes added to support NxWM (see the
|
|
ChangeLog for details). Auto-raise is temporarily disabled in multi-
|
|
user mode because it causes some problems with NxWM.
|
|
|
|
* on_exit(): Fix compilation errors if CONFIG_SCHED_ONEXIT is enabled.
|
|
|
|
NuttX-6.19
|
|
----------
|
|
|
|
The 86th release of NuttX, Version 6.19, was made on June 15, 2012,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.19.tar.gz and
|
|
apps-6.19.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release corresponds with SVN release number: r4847
|
|
|
|
This release features new support for a Network File System (NFS) client.
|
|
This feature allows a tiny, embedded MCU to mount a remote file system
|
|
exported by an NFS server and then to access the file system as it would
|
|
any local file system. Then the tiny MCU can effectively have terabytes
|
|
of storage!
|
|
|
|
This might be useful for data collection, for MCU configuration information,
|
|
for software updates, for providing modular, loadable code modes, controlling
|
|
a "farm" of MCUs, ... there are many possibilities and opportunities for
|
|
innovation!
|
|
|
|
The NuttShell (NSH) now supports the following command:
|
|
|
|
nfsmount <server-address> <mount-point> <remote-path>
|
|
|
|
That command will mount the remote NFS server directory <remote-path> at
|
|
<mount-point> on the target machine. <server-address> is the IP address of
|
|
the remote server.
|
|
|
|
The NFS development was the graduation project of Jose Pablo Rojas V. who
|
|
is a student at the Instituto Tecnol�gico de Costa Rica (ITCR, or TEC).
|
|
A lot of effort went into understanding what a tiny, embedded NFS client should
|
|
do and getting the target resource usage to a bare minimum. Only around a
|
|
kilobyte or so of memory is required to run the NFS client (and most of that
|
|
for I/O buffers). Jose Pablo has spent several months living with NFS and
|
|
should be congratulated.
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Drivers: SSD1289 LCD driver, MIO283QT2 LCD driver
|
|
|
|
* LM3S: Additional register definition header files (contributed by Max
|
|
Neklyudov).
|
|
|
|
* STM32 Boards: The STM32F4Discovery will now support an SSD1289 LCD,
|
|
The STM3220G-EVAL board support is now equivalent to the STM3240G-EVAL
|
|
board support.
|
|
|
|
* PIC32 Boards: The Mikroelektronika PIC32MX7 MMB board port is now
|
|
functional, very complete, and stable.
|
|
|
|
* Graphics: The NxConsole will now take keyboard input from the NX graphics
|
|
subsystem. This means that if there are multiple NxConsole windows, only
|
|
the top instance that has focus will receive the keyboard input.
|
|
|
|
* apps/: Add the capability to use an arbitrary USB device as the console
|
|
(not necessarily /dev/console). Additional enhancements for USB consoles.
|
|
Added the 'mv' command.
|
|
|
|
Work in progress. This release includes some partially completed
|
|
work that is still not ready for prime time.
|
|
|
|
* Automated Configuration. Automated configuration based on the
|
|
kconfig-frontends tool is being incorporated into the build
|
|
system. The configuration is still not complete enough for
|
|
general use in this release.
|
|
|
|
* STM32 Drivers. Added files that will (eventually) hold an STM32
|
|
OTG FS host driver. This is still a work in progress.
|
|
|
|
Bugfixes (see the change log for details) :
|
|
|
|
* General: sleep() and usleep() return values, sig_timedwait() errno setting
|
|
on timeout.
|
|
* Drivers: STMPE811 touchscreen driver, USB PLC2303, USB CDC/ACM
|
|
* STM32: Several USB device controller driver fixes, F4 interrupt 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.
|
|
|
|
NuttX-6.28
|
|
----------
|
|
|
|
The 95th release of NuttX, Version 6.28, was made on June 14, 2013,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.28.tar.gz and
|
|
apps-6.28.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* File Systems:
|
|
|
|
- SMART FLASH file system (contributed by Add Ken Pettit).
|
|
|
|
* MTD (FLASH) Drivers:
|
|
|
|
- Add support of MTD partitions via a new MTD driver that manages a
|
|
set of MTD devices, each managing a subset of the FLASH region
|
|
managed by the parent MTD driver.
|
|
- Extended the MTD interface to provide an (optional) method to
|
|
perform byte oriented writes if supported by the FLASH part.
|
|
- M25Px driver re-architected to use the byte write capability (when
|
|
possible) and to use 4KB sectors for the erase block size when the
|
|
part supports it (from Ken Pettit).
|
|
|
|
* LCD Drivers:
|
|
|
|
- New interface definitions to support audio devices (from Ken Pettit)
|
|
and alphanumeric, segment LCDs.
|
|
|
|
* Wireless Drivers:
|
|
|
|
- Added new driver for the wireless nRF24L01+ transceiver (from
|
|
Laurent Latil).
|
|
|
|
* Calypso:
|
|
|
|
- Added support for the Pirelli DP-L10 phone (from Craig Comstock via
|
|
Alan Alan Carvalho de Assis)
|
|
|
|
* STM32:
|
|
|
|
- Added an option to conditionally disable the "wfi" sleep mode. This
|
|
is needed with certain JTAG debuggers to to prevent the debug
|
|
session from begin disconnected (from Ken Pettit).
|
|
- Added support for the STM32L (STM32L15X/STM32L16x) family.
|
|
- Added STM32F103C4 and F103C8 chip support (from Laurent Latil).
|
|
- Added a new interface function, stm32_dmacapable() that can be used
|
|
to determine if DMA is possible from the specified memory address
|
|
(from Petteri Aimonen)
|
|
|
|
* STM32 Drivers:
|
|
|
|
- If CONFIG_STM32_DMACAPABLE is defined, the STM32 SPI driver now uses
|
|
stm32_dmacapable() to determine if it is possible to perform DMA
|
|
from the specified address. This change is important for the STM32
|
|
F4 which may have SPI data buffers allocated on the stack in CCM
|
|
memory which cannot support the DMA (from Petteri Aimonen).
|
|
|
|
* STM32 Boards:
|
|
|
|
- Support added for the MikroElektronika Mikromedia for STM32F4
|
|
development board (from Ken Pettit) with the MIO283QT2 LCD and
|
|
touchscreen. Several graphics configurations are included.
|
|
- The HY-mini STM32v board now uses the common SSD1289 driver
|
|
and supported the card detect interrupt. Several new
|
|
configurations also added and some removed (from Laurent Latil).
|
|
- Support added for the R65105-based LCD that comes with some
|
|
HY-Mini STM32v boards (from Christian Faure).
|
|
- Added basic support for the STM32L-Discovery board. Drivers
|
|
for the on-board segment LCD are included.
|
|
- Added support for the STM32 Tiny development board based on the
|
|
STM32 F103C8T6 MCU. This includes support for the nRF24L01+
|
|
wireless on the board (from Laurent Latil).
|
|
|
|
* Stellaris LM3S/LM4F:
|
|
|
|
- Support added for a TI/Stellaris internal FLASH MTD driver (from Max
|
|
Holtzberg).
|
|
|
|
* Stellaris LM4F Boards:
|
|
|
|
- The LM3S6965-EK now has configurations for the UDP discovery tool and
|
|
for the TCP echo server (both from Max Holtzberg)
|
|
|
|
* Atmel ATSAM3/4:
|
|
|
|
- Reorganized, renamed, and updated directory structure to better
|
|
support additional members of the SAM3/4 family.
|
|
- Added support for both the ATSAM4S and ATSAM4L families. The
|
|
ATSAM4S is similar to the ATSAM3U, but the ATSAM4L is quite a
|
|
different beast, really much more akin to the AVR32s SoCs but
|
|
with a Cortex-M4.
|
|
|
|
* Atmel ATSAM3/4 Boards:
|
|
|
|
- Added support for the Atmel SAM4L Xplained Pro development board.
|
|
This board features the ATSAM4LC4C MCU (Cortex-M4 with 256KB FLASH +
|
|
32KB SRAM).
|
|
- Added support for the Atmel SAM4S Xplained developement board. This
|
|
board features the ATSAM4S16C MCU (Cortex-M4 with 1MB FLASH + 128KB
|
|
SRAM).
|
|
|
|
* PIC32MX Boards:
|
|
|
|
- Added support for the 1602 segment LCD on-board the Sure PIC32MX
|
|
board. This board will now also support a USB NuttX console and
|
|
the USB monitor test program.
|
|
|
|
* Build System:
|
|
|
|
- Clean-up of almost all .gitignore files: Made scope of ignore to be
|
|
only the current directory; Ignore .dSYM files in directories where
|
|
.exe's may be built. Also, in Makefiles, clean .dSYM files in
|
|
directories where an .exe may be built.
|
|
- Standardize and consolidated all build-as-an-NSH-application
|
|
configuration settings. Now only CONFIG_NSH_BUILTIN_APPS is
|
|
sufficient to build an application, test, or or example as an NSH
|
|
builtin application.
|
|
- Added support for a generic ARM, ARMv6-M and ARMv7-M Windows EABI
|
|
toolchains.
|
|
|
|
* Libraries:
|
|
|
|
- Added encoder/decoder logic to marshal and serialize special segment
|
|
LCD (SLCD) commands intermixed with normal ASCII data. This is the
|
|
similar to the encoding/decoding logic that is used to marshal
|
|
special commands from a keyboard.
|
|
- Add dprintf() and vdprintf() (the latter from Andrew Tridgell).
|
|
- Add an application that may be built as an NSH builtin command that
|
|
will erase FLASH using a flash_eraseall NSH command (from Ken Pettit).
|
|
|
|
* Applications:
|
|
|
|
- Added an MTD partition test/examples. Currently used with (1) the a
|
|
simulation configuration to test MTD partitions on a RAM emulation
|
|
of FLASH and (2) with the Mikroe STM32F4 configuration.
|
|
- Added a test/example to verify alphanumeric, segment LCDs.
|
|
- Added a simple single threaded, poll based TCP echo server based
|
|
on W. Richard Stevens UNIX Network Programming Book (from Max
|
|
Holtzberg).
|
|
- Added several tests of the SMART block driver and file system (from
|
|
Ken Pettit).
|
|
- Added a runtime configuration for the UDP discover utility (from
|
|
Max Holtzberg).
|
|
- Added an example application to demo the nRF24L01 driver (from
|
|
Laurent Latil).
|
|
- New and modified NSH commands:
|
|
Added a -h option to the df command to show the volume information
|
|
in human readable form (from Ken Petit).
|
|
Add a new mksmartfs command (from Ken Petit).
|
|
|
|
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.
|
|
|
|
* Audio System:
|
|
|
|
- A complete audio subsystem include CODECs, higher level management,
|
|
interface definitions, and audio drivers was contributed by Ken
|
|
Pettit. This work has not been completely verified as of this
|
|
release and so is categorized as a work-in-progress. At present,
|
|
progress is blocked due to issues interfacing with the VS1053
|
|
audio DAC on the Mikroe STM32F4 board.
|
|
|
|
* kconfig-fronted Configuration:
|
|
|
|
- Conversion of old configurations to use the kconfig-frontends
|
|
tool is an ongoing effort that will continue for some time.
|
|
At this time, only 43% 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:
|
|
|
|
- Modify assertion in the priority inheritance logic that is reported
|
|
to cause false alarm assertions.
|
|
|
|
* Kernel Build:
|
|
|
|
- Typo in syscall proxying logic corrected by Ken Pettit.
|
|
|
|
* Networking:
|
|
|
|
- Poll setup/teardown logic should ignore invalid (i.e., negative)
|
|
file descriptors (from Max Holtzberg).
|
|
- When readahead data is available, the network poll() logic should
|
|
set POLLIN (or POLLRDNORM), not POLLOUT (from Max Holtzberg).
|
|
|
|
* LCD Drivers:
|
|
|
|
- Correct power controls in the MIO283QT2 LCD driver.
|
|
|
|
* USB Device Controller Drivers:
|
|
|
|
- Change the default IN request buffer size from 64 to 96. This will
|
|
avoid requests of exactly MAXPACKET size and, hence, avoid so many
|
|
NULL packets. Also, fix the OUT request buffers size to exactly the
|
|
max packet size. It really cannot be any other size.
|
|
|
|
* STM32 Drivers:
|
|
|
|
- Correct some bad STM32 F1 DMA definitions that crept into the system
|
|
a few months ago a broke STM32 F1 DMA (from Laurent Latil)
|
|
- Fixed an error in NULL packet handling in the STM32 F1 USB device
|
|
controller driver: If the NULL-packet needed flag ever got set,
|
|
then it was not being cleared and infinite NULL packets resulted.
|
|
This only affects the CDC/ACM class and was the cause of the
|
|
failures using the USB CDC/ACM device as a NuttX console. With this
|
|
change the USB works well as an alternative NuttX console device for
|
|
the STM32 F1 family.
|
|
- Correct some bad condition compilation in the RCC logic (CONFIG_
|
|
missing from setting names). This affects some STM32 FLASH pre-
|
|
fetch settings (from Lorenz Meier).
|
|
- Change for hardware flow control support for STM32. The change also
|
|
fixes incorrect operation of USART2 and UART5 in current master
|
|
(from Lorenz Meier and Mike Smith).
|
|
- Fixed a backward conditional in USB OTG FS host controller driver
|
|
that prevented detection of disconnection events (from Scott).
|
|
|
|
* LPC17xx Drivers:
|
|
|
|
- I2C interrupt control. Also correction for a single byte read
|
|
timeout error (from M. Kannan).
|
|
|
|
* Freescale Kinetis:
|
|
|
|
- Freedom KL25Z pin multiplexing and LED control corrections (from
|
|
Alan Carvalho de Assis)
|
|
|
|
* PIC32MX:
|
|
|
|
- Fix NULL packet handling in the PIC32 USB device driver. Without
|
|
this fix the CDC/ACM driver cannot be used reliably with the PIC32
|
|
USB. With this change the USB works well as an alternative NuttX
|
|
console device.
|
|
|
|
* Graphics:
|
|
|
|
- Default priorities for NxWidget and NxWM threads should be 100,
|
|
not 50, to be consistent with other default priorities.
|
|
|
|
* Applications:
|
|
|
|
- Remove the CONFIG_EXAMPLES_NXTEXT_NOGETRUN option from the NXTEXT
|
|
example. The test logic was bad for the case where this options is
|
|
not selected. Also, completed the empty Kconfig file.
|
|
- C++ name mangling was occurring when this example is built as an NSH
|
|
built-in application causing the entry to be undefined when called
|
|
from C code.
|
|
- Add some missing NSH library configuration values (from Lorenz
|
|
Meier).
|
|
|
|
NuttX-6.29
|
|
----------
|
|
|
|
The 96th release of NuttX, Version 6.29, was made on July 31, 2013,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.29.tar.gz and
|
|
apps-6.29.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Drivers:
|
|
|
|
- Generalized the SSD1306 driver and added support UG-2832HSWEG04
|
|
which is very similar to the existing support for the
|
|
UG-2864HSWEG01.
|
|
- Added support for a generic bit-bang SPI driver. This includes
|
|
both a common "upper half" driver as well as a platformp-specific
|
|
"lower half" dirvers based on a common "template."
|
|
|
|
* ARMv7-A, Cortex-A5
|
|
|
|
- Added support for the ARMv7-A architecture and the Cortex-A5 in particular.
|
|
|
|
* ARMv7-M, Cortex-M3/4
|
|
|
|
- Modified how some registers are copied during a context switch (with
|
|
lazy FPU register saving). This should save some context switching
|
|
time when the context switch is due to interrupt level processing.
|
|
|
|
* STM32:
|
|
|
|
- Added support for a separate CCM heap. This may be useful for
|
|
segregating allocations for CCM (which cannot be used for DMA)
|
|
from other allocations (that may be used used for DMA).
|
|
|
|
* STM32 Drivers:
|
|
|
|
- DAC: Added support for DAC DMA (contributed by John Wharington).
|
|
- I2C: An I2C driver for the STM32 F3 family (from John Wharington).
|
|
|
|
* Atmel AT91 SAM/4:
|
|
|
|
- Add support for SAM3X and SAM3A chips
|
|
|
|
* Atmel AT91 SAM/4 Drivers:
|
|
|
|
- Re-architect the SAM3/4 SPI driver so that is it compatible with the
|
|
SPI drivers of other MCUs.
|
|
- Added register definition file for the SAM4L LCD peripheral.
|
|
- Added SAM4L PDCA register definition file
|
|
|
|
* Atmel AT91 SAM/4 Boards:
|
|
|
|
- SAM4L-Xplained: Added support for the SPI-based SD card on the I/O1
|
|
module.
|
|
- SAM4L-Xplained: Added a driver for the LED1 segment LCD module.
|
|
- SAM4L-Xplained: Added support for the UG-2832HSWEG04 OLED on the
|
|
SAM4L Xplained Pro's OLED1 module
|
|
- SAM4S-Xplained: Added support for on-board 1MB SRAM
|
|
- Arduino Due: Basic support for the Arduino Due (SAM3X) is now
|
|
included.
|
|
- SAM3U-EK: The touchscreen is now functional.
|
|
|
|
* Atmel AT91 SAMA5D3
|
|
|
|
- Added support for the Atmel AT91SAMA5D3 Cortex-A5 chip family.
|
|
|
|
* Atmel AT91 SAMA5D3 Boards
|
|
|
|
- Added support for the Atmel SAMA5D3x-EK boards which use the AT9
|
|
SAMA5D3x chips (x=1,3,4,5).
|
|
|
|
* Freescale KL25Z Drivers
|
|
|
|
- Freescale KL25Z TSI register definitions and example TSI driver for
|
|
the Freedom KL25Z board from Alan Carvalho de Assis.
|
|
- Added SPI driver and register definitions for the Freescale KL25Z.
|
|
- Added a framework for controlling SPI-related discrete inputs and
|
|
outputs. Taken from work by Alan Carvalho de Assis
|
|
|
|
* Build System:
|
|
|
|
- New sub-directories to hold SPI-related files: includes/nuttx/spi.h
|
|
moved to include/nuttx/spi/.; SPI-related Kconfig info moved from
|
|
drivers/Kconfig to drivers/spi/kconfig.
|
|
- Finally... I changed the naming of configuration variables like
|
|
CONFIG_DRAM_ to CONFIG_RAM_. This has bothered me for a long time
|
|
since most boards don't have DRAM. The more generic RAM naming
|
|
should not produce so much cognitive dissonance
|
|
|
|
* Libraries:
|
|
|
|
- Added CRC16 support.
|
|
|
|
* Applications:
|
|
|
|
- Added Zmodem file transfer support. This may be used as an embedded
|
|
library or may be built as 'sz' and 'rz' commands that can be
|
|
executed from NSH.
|
|
- C++ initializers should be set once and, preferably, in the context
|
|
of the task that uses any C++ statically initialized classes. This
|
|
only becomes an issue if cxxtest or helloxx are built as NSH builtin
|
|
applications. Then you want the initialization done in cxxtext or
|
|
helloxx and not in NSH (and certainly not twice). Added
|
|
configuration options to control who does the C++ initialization.
|
|
NSH now does not do C++ initialization be default and must be
|
|
configured to do otherwise. Conversely, cxxtest and helloxx
|
|
will always do C++ initialization unless configured do otherwise.
|
|
- examples/cxxtext: Add ostream test as provided by Michael.
|
|
- NSH: Added a 'cmp' command that can be used to compare two files
|
|
for equivalence. Returns an indication if the files differ.
|
|
Contributed by Andrew Tridgell (via Lorenz Meier).
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* Audio System:
|
|
|
|
- A complete audio subsystem include CODECs, higher level management,
|
|
interface definitions, and audio drivers was contributed by Ken
|
|
Pettit. This work has not been completely verified as of this
|
|
release and so is categorized as a work-in-progress. At present,
|
|
progress is blocked due to issues interfacing with the VS1053
|
|
audio DAC on the Mikroe STM32F4 board.
|
|
|
|
* kconfig-fronted Configuration:
|
|
|
|
- Conversion of old configurations to use the kconfig-frontends
|
|
tool is an ongoing effort that will continue for some time.
|
|
At this time, only 45% of the configurations have been converted
|
|
to use the kconfig-frontends tools.
|
|
|
|
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
|
|
|
* File Systems:
|
|
|
|
- Fixed compilation error if no file systems are enabled: Change
|
|
error to ERROR.
|
|
- Read-Ahead/Write buffering: Correct typos that can cause failures
|
|
in some configurations (From Chia Cheng Tsao).
|
|
|
|
* Drivers
|
|
|
|
- Remove the wait for the touchscreen busy bit in the ADS7843E driver.
|
|
From my reading of the ADS7843 spec, it would not be appropriate to
|
|
wait for the BUSY bit to de-asserted anyway (since it is only de-
|
|
asserted when we read the data). Most boards do not even bother to
|
|
provide the BUSY bit.
|
|
- MMC/SD SPI based driver: Driver needs to make sure that the SPI
|
|
mode and data width are correct.
|
|
- ENC28J60: Change buffer ordering to work around Errata. From Dave
|
|
(ziggurat29).
|
|
|
|
* USB Device Controller Drivers:
|
|
|
|
- Fixed a typo in the composite device driver unitialization logic.
|
|
DEV1 should be DEV2 in one case.
|
|
- usbdev.h: Fix some typos that cause compiler errors when
|
|
CONFIG_USBDEV_DMA and CONFIG_USBDEV_DMAMEMORY are selected (From
|
|
Chia Cheng Tsao).
|
|
|
|
* ARM9:
|
|
|
|
- Fix a bug (uninitialized register error) that crept in the ARM9
|
|
boot-up code several years ago. Obviously no one has used the
|
|
ARM9 NuttX port for years!
|
|
|
|
* STM32 Drivers:
|
|
|
|
- Fix STM32 OTF FS endpoint allocation logic. Apparently the same
|
|
endpoint can be allocated as both an IN or an OUT endpoint. The
|
|
existing implementation only supported one allocation, either IN or
|
|
OUT. This resulted in failures to allocate endpoints when used with
|
|
the CDC/ACM + MSC composite driver (From Chia Cheng Tsao).
|
|
- SDIO: Add support for the data block end (DBCKEND) interrupt to
|
|
terminate transfers (From Chia Cheng Tsao).
|
|
- DAC: Fixed numerous DAC driver errors and added support for DAC
|
|
DMA (contributed by John Wharington).
|
|
|
|
* SAM3/4:
|
|
|
|
- SAM4S: Correct configuration of PIO pins for SAM4S B and C peripherals.
|
|
- Need to disable write protection before configuring PIO pins.
|
|
- GPIO configuration logic must protect against re-entrancy.
|
|
- Clocking must be applied to the SMC module for the 3X and 3A family in
|
|
order for the NFC SRAM to be functional.
|
|
- Fixed some errors for interrupts on ports D-F.
|
|
|
|
* SAM3/4 Drivers:
|
|
|
|
- Common SPI driver: Fix SPI mode setting. In the SAM3/4 family, the
|
|
clock phase control (CPHA) is inverted (NPHA). Also fixed an
|
|
incorrect pointer test. Was checking if the wrong pointer was NULL.
|
|
|
|
* SAM3/4 Boards:
|
|
|
|
- SAM3U-EK: Fix polarity of the /PENIRQ signal (it is active low).
|
|
The SAM3U-EK board now runs at 96MHz.
|
|
|
|
* Applications:
|
|
|
|
- apps/examples/nxhello: Minor fix for compilation error when the
|
|
display resolution is low (< 8bpp) due to a typo that has been there
|
|
for a long time. Also Correct default colors when in Y1 code mode.
|
|
- apps/system/ramtest: The RAM test was not correctly built
|
|
into the configuration and build system.
|
|
- apps/examples/composite: Change to prevent some false alarm debug
|
|
assertions (From Chia Cheng Tao).
|
|
|
|
NuttX-6.30
|
|
----------
|
|
|
|
The 97th release of NuttX, Version 6.30, was made on September 14, 2013,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.30.tar.gz and
|
|
apps-6.30.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Common Drivers:
|
|
|
|
- Extended TERMIOS support for serial and CDC/ACM drivers. From
|
|
Mike Smith, Andrew Tridgell and Lorenz Meier.
|
|
- Added option to disable serial port reordering. From Lorenz Meier.
|
|
- Several changes to the USB host control interface and extensions to
|
|
common USB host logic to handle host controllers with multiple
|
|
downstream ports in the root hub.
|
|
- USB device tracing: Extended decoding and stringifying of USB trace
|
|
output to include trace output from class drivers.
|
|
- USB host tracing: Added support for USB host tracing similar in
|
|
some ways to USB device tracing: Stringification is an inherent
|
|
part of the trace decoding (not an option). Only available in the
|
|
SAMA5 USB host drivers now.
|
|
|
|
* Networking / Network Drivers
|
|
|
|
- Support for the Microchip ENCX24J600 Ethernet driver from Max
|
|
Holtzberg
|
|
- CC3000 Networking. Initial support for the TI CC3000 network
|
|
module on the Freescale Freedom-KL25Z board from Alan Carvalho
|
|
de Assis. This is still a work in progress.
|
|
|
|
* ARMv7-A, Cortex-A5
|
|
|
|
- Restructured some MMU-related logic and header files.
|
|
- Hooks added for Cortex-A8, but not yet used.
|
|
|
|
* STM32 Drivers:
|
|
|
|
- STM32 SPI: nbits() interface extended to control bit order as well
|
|
as bit width (from Teemu Pirinen)
|
|
|
|
* STM32 Boards
|
|
|
|
- Olimex STM32-P107: Incorporate ENCX24J600 networking for the Olimex
|
|
STM32 P107 board.
|
|
- LeafLabs Maple Board: Add board support for the LeafLabs Maple and
|
|
Maple Mini boards. From Librae.
|
|
|
|
* Atmel AT91 SAMA5D3x
|
|
|
|
- Added support for the SAMA5 DMAC controllers.
|
|
- DMA-capable drivers for the SAMA5 SPI peripherals.
|
|
- DMA-capable HSCMCI 0/1/2 drivers.
|
|
- Support for PIO interrupts
|
|
- Utilities for intelligent conversions between physical and virtual
|
|
addresses.
|
|
- Added USB host controller drivers for both the OHCI (low- and full-
|
|
speed) peripheral and the ECHI (high-speed) peripheral.
|
|
- Added USB device controller for the SAMA5 UDPHS peripheral (full-
|
|
and high-speed).
|
|
- Added a Two Wire (TWI) driver. This is a variant of I2C.
|
|
|
|
* Atmel AT91 SAMA5D3x-EK Development Boards
|
|
|
|
- Now supports onboard SDRAM. Modified heap initialization logic
|
|
to include SDRAM if configured.
|
|
- Integrated a FAT file system on the on-board SPI-based AT25 serial
|
|
FLASH
|
|
- Integrated HSMCI0 and HSMCI1 support for the microSD and full file
|
|
SD card slots. Includes PIO interrupts for card detection events.
|
|
- Integrated USB OHCI and ECHI host and high-speed peripheral support.
|
|
File system on AT25 now exported via Mass Storage Class. Includes
|
|
PIO VBUS controls.
|
|
- Integrated the TWI driver and the I2C tool. Added support for an
|
|
external AT24 serial EEPROM.
|
|
|
|
* Applications:
|
|
|
|
- apps/examples/cc3000. Initial support for the TI CC3000 network
|
|
module on the Freescale Freedom-KL25Z board from Alan Carvalho de
|
|
Assis. Includes the test to verify the CC3000.
|
|
- apps/examples/usbmsc: apps/examples/usbstorage renamed usbmsc for
|
|
consistency. Change submitted by CCTSAO.
|
|
- apps/system/usbmonitor: The USB monitor has been extended so that
|
|
it can be used with USB device or host trace data.
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* CC3000 Networking
|
|
|
|
- CC3000 Networking. Initial support for the TI CC3000 network
|
|
module on the Freescale Freedom-KL25Z board from Alan Carvalho
|
|
de Assis. This is still a work in progress.
|
|
|
|
* kconfig-fronted Configuration:
|
|
|
|
- Conversion of old configurations to use the kconfig-frontends
|
|
tool is an ongoing effort that will continue for some time.
|
|
At this time, only 46% of the configurations have been converted
|
|
to use the kconfig-frontends tools.
|
|
|
|
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
|
|
|
* File Systems:
|
|
|
|
- ROMFS: Fix an error where long (>15) file names were read
|
|
incorrectly from a ROMFS file system. From Mike Smith
|
|
- NXFFS: Clean up some compiler warnings.
|
|
|
|
* Common Drivers
|
|
|
|
- MMC/SD driver: Correction for a bad return value when multiple
|
|
block SDIO transfers are suppressed. By Andrew Tridgell.
|
|
- USB HID keyboard and mass storage host-side class drivers: Fix some
|
|
compilation errors and warnings when pre-allocated data structures
|
|
are used.
|
|
- USB device-side class drivers: Fix some compilations errors when
|
|
DUALSPEED (i.e., full- and high-sped) support is enabled.
|
|
- CDC/ACM and PL2303: Don't use max packetsize assigned to the endpoint
|
|
when allocating request buffers; The default value of the endpoint
|
|
max packetsize may be incorrect because the endpoint has not yet
|
|
been configured. Really only an issue for high-speed endpoints.
|
|
- USB Host Mast Storage Class: Fixed a problem that was causing some
|
|
devices to fail to initialize: If device is returning fatal transfer
|
|
errors while attempting to initialize, don't bother with the startup
|
|
retries; abort immediately so that the device will be reset and we
|
|
can try again with a better ready device.
|
|
- USB Host Mast Storage Class: Correct a reference counting error:
|
|
When an MSC device transfer fails while waiting for UnitTestReady,
|
|
the reference count on the class was not being decremented. The end
|
|
result is a memory leak as can be seen by the USB device numbers
|
|
incrementing: sda, sdb, sdc, ...
|
|
- USB Device CDC/ACM: Fix backward conditional compilation in the
|
|
CDC/ACM driver with regard to remote wakeup and self-powered
|
|
capabilities. From the PX4 team via Lorenz Meier,
|
|
|
|
* Networking / Network Drivers
|
|
|
|
- ARP IP harvesting: Correct backward condition in netmask task.
|
|
From Max Holtzberg.
|
|
- Network connection monitor: Fixes a race condition where a loss of
|
|
connection may not be detected when the connection is lost before it
|
|
has been accepted (from Max Holtzberg).
|
|
- TCP/IP Backlog: Fix a critical bug in the TCP/IP backlog
|
|
initialization: Only the first backlog buffer was getting added to
|
|
the free list. From Max Holtzberg.
|
|
- ENC28J60: Fixes and improvements back-ported from the ENCX24J600
|
|
to the ENC28J60 by Max Holtzberg.
|
|
|
|
* STM32 Drivers:
|
|
|
|
- STM32 I2C fixes for the STM32 F3 family from John Wharington.
|
|
- STM32 I2C Correct an error that crept into the STM32 F1 I2C
|
|
driver with some recent changes. From Librae
|
|
- STM32 F4: Added some missing CONFIG_SERIAL_TERMIOS support; Fixed
|
|
some STM32 F4 Timer 8 pin configurations. From CCTSAO.
|
|
- STM32 SDIO: If CONFIG_SDIO_BLOCKSETUP defined, OS would crash. Now
|
|
Generate an error if CONFIG_SDIO_BLOCKSETUP is defined; that
|
|
option is not yet supported by the STM32 SDIO driver. From CCTSAO
|
|
- STM32 I2C Timers: Some CCER bit settings changed. Submitted by
|
|
CCCTSAO.
|
|
- STM32 CAN: Fix access to CAN filter registers. From the PX4 team
|
|
via Lorenz Meier.
|
|
- STM32 Kconfig: Fix STM32 UART7/8 Kconfig names and UART DMA. From
|
|
the PX4 team via Lorenz Meier.
|
|
|
|
* LPC17xx Drivers
|
|
|
|
- Fix #endif with missing #if in USB host header file. Reported
|
|
by Andrew Bradford,
|
|
|
|
* SAM3/4 Boards:
|
|
|
|
- Corrected DMA-related problems: Bad register definitions, parameters
|
|
reversed in a function call.
|
|
- Correct a race condition in the HSMCI driver when an interrupt
|
|
occurs before the wait for the interrupt begins.
|
|
- Peripheral clock setup: Correct a typo in a register name.
|
|
|
|
* Atmel AT91 SAMA5D3
|
|
|
|
- Order of some operations changed in boot-up logic to defer
|
|
enabling of caching of memory regions until SDRAM is initialized.
|
|
- Correct handling of spurious interrupts.
|
|
|
|
* Freescale KL25Z Drivers
|
|
|
|
- KL25Z SPI: Correct typo in name of a function. From Alan Carvalho
|
|
de Assis.
|
|
|
|
* Applications:
|
|
|
|
- apps/examples/composite: Fix a typo that can cause a configuration
|
|
error. From CCTSAO.
|
|
- apps/examples/pwm: Clean-up some configuration confusion.
|
|
- apps/netutils/dhcpd/dhcpd.c: Fixed calculation of the next lease
|
|
address. From Paolo Messina.
|
|
- apps/examples/usbmsc: Don't try to control USB trace if we are
|
|
an NSH built-in task. In that case our attempts are inadequate
|
|
and only interfere with with other logic that is attempting to
|
|
to do the same thing (in NSH or in the USB monitor).
|
|
- apps/examples/usbmsc: IMPORTANT bug fix: Change how the msconn
|
|
works. Because of recent changes the msconn command was hanging.
|
|
This was because the USB MSC start-up logic creates a pthread;
|
|
Now waitpid() will wait until all members of the task group
|
|
exit. So NSH was hanging in waitpid when msconn started even
|
|
though msconn returned. The USB MSC logic really should not use
|
|
a pthread, but we are stuck with that for now. The work-around
|
|
is the msconn now daemonizes itself so that it so that the pthread
|
|
is created in a different task group.
|
|
- apps/nshlib: Fix NSH listing output for the case of a single file.
|
|
From the PX4 team; provided by Lorenz Meier.
|
|
|
|
NuttX-6.31
|
|
----------
|
|
|
|
The 98th release of NuttX, Version 6.31, was made on October 28, 2013,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.31.tar.gz and
|
|
apps-6.31.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* General:
|
|
|
|
- Standardized stack checking logic so the interfaces can be used
|
|
by common stack monitoring logic.
|
|
|
|
* Audio Subsystem and Audio Drivers:
|
|
|
|
- Ken Pettit has finally released his long awaited audio subsystem.
|
|
This is a generic audio subsystem that is appropriate for the
|
|
deeply embedded MCU. Current testing has, however, been focused
|
|
on the VS1053 CODEC chip.
|
|
- Ken Pettit's VS1053 audio CODEC driver is now functional.
|
|
|
|
* Networking / Network Drivers
|
|
|
|
- Add the prefix ETH0 to all PHY configuration selections. This
|
|
will allow us to support to Ethernet MAC drivers with two different
|
|
PHYs (identified with ETH0 and ETH1). Enabled with CONFIG_NETDEV_MULTINIC.
|
|
- Add MII/RMII PHY definitions for the Micrel KSZ8051 PHY.
|
|
- Add GMII/GRMII PHY definitions for the Micrel KSZ9021/31 PHY.
|
|
- New network-optimized, higher-performance sendfile() implementation
|
|
from Max Holtzberg.
|
|
- Added a simple routing table. This table is currenly only used (1)
|
|
when we need to look-up an Ethernet device based on an IP address,
|
|
and (2) in the ARP logic when we need to request the MAC address of
|
|
the router, vs the MAC address of the peer.
|
|
- Make net_close() nonblocking and free unestablished connections if
|
|
no free connections available. From Max Holtzberg.
|
|
- Changed the meaning of the uip_*input functions. They now return
|
|
success when a packet is dropped; This is needed for the ENCX24J600
|
|
driver that must make a decision to return the packet or not: It
|
|
should not retry dropped packets. From Max Holtzberg.
|
|
- David Sidrane has completed integration of the CC3000 networking.
|
|
This is much more than a network driver: It is a complete
|
|
replacement for the NuttX networking with off-chip networking support
|
|
in the CC3000.
|
|
- Numerous enhancements to the ENCX24J600 driver from Max Holtberg.
|
|
|
|
* Other Common Drivers:
|
|
|
|
- The SST25 serial FLASH MTD driver now includes support for the
|
|
SST25VF016B. From David Sidrane.
|
|
- Add a preflight method to the SDIO interface to support the STM32
|
|
DMA usage model. From Mike Smith.
|
|
- Enhanced the MMC/SD SDIO driver to perform DMA preflight operations
|
|
and fail DMA read/write requests that fail preflighting. From Mike
|
|
Smith.
|
|
- Add an ioctl command that can be used to trigger ADC/DAC conversion
|
|
under application control.
|
|
|
|
* File Systems:
|
|
|
|
- Enhanced the FAT32 filesystem code to understand DMA preflight
|
|
failures, and to use the file sector buffer as a bounce buffer when
|
|
a user-supplied buffer is not suitable for DMA. From Mike Smith.
|
|
|
|
* Atmel AT91 SAMA5D3x
|
|
|
|
- Add support so that subsets of the total DRAM (and other external
|
|
memory) can be added to the heap, leaving other memory reserved for
|
|
other purposes (like the LCDC framebuffers).
|
|
|
|
* Atmel AT91 SAMA5D3x Drivers:
|
|
|
|
- Use more descriptive task names when starting the EHCI and OHCI
|
|
monitor tasks.
|
|
- Added a 10/100Base-T Ethernet (EMAC) driver.
|
|
- Added a 1000Base-T Ethernet (GMAC) driver.
|
|
- Added a Real Time Clock (RTC) driver and integrated with the NuttX
|
|
system time logic.
|
|
- Added support for /dev/random using the SAMA5D3x True Random Number
|
|
Generator (TRNG).
|
|
- Added a Watchdog Timer (WDT) driver.
|
|
- Added a Timer/Counter (TC) library with interface that make be used
|
|
by other drivers that need timer support.
|
|
- Added an ADC driver that can collect multiple samples using the
|
|
sequencer, can be trigger by a timer/counter, and supports DMA data
|
|
transfers.
|
|
- Added a touchscreen driver based on the special features of the
|
|
SAMA5D3 ADC peripheral.
|
|
- Added an LCD controller (LCDC) frame buffer driver.
|
|
- Added a CAN driver. However, testing has been delayed because of
|
|
cabling issues.
|
|
- Basic header file support is available for the Image Sensor
|
|
Interface (ISI) camera interface. Work on the camera driver is
|
|
underway and is expected in the next release.
|
|
|
|
* Atmel AT91 SAMA5D3x-EK Development Boards
|
|
|
|
- Add OS test support for the FPU test.
|
|
- Enable the task name feature board configuration sto provide
|
|
prettier ps command output.
|
|
- Added NX and NxWM configurations to verify the LCD and touchscreen.
|
|
There are still some outstanding issues with the NxWM configuration
|
|
as of this release.
|
|
- The TRNG and /dev/random are now enabled by default in the demo
|
|
configuration.
|
|
|
|
* Atmel AT91 SAM3/4 Boards:
|
|
|
|
- Add configuration to select revision 3 of the Arduino Due which has
|
|
some small but important differences. Suggested by gdi@embedders.org.
|
|
|
|
* STMicro STM32:
|
|
|
|
- Add support for the STM32F207ZE chip. From Martin Lederhilger.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- Add configuration for the Spark Core. The initial check-in is
|
|
basically the Maple Mini board and subsequent development by David
|
|
Sidrane is his special Spark emulation hardware. The configuration
|
|
should be very mature when actual Spark hardware is available.
|
|
- Support for the Olimex STM32 P207 board added by Martin Lederhilger.
|
|
- Configuration for the Mikroe STM32F4 board configuration updated for
|
|
audio support by Ken Pettit.
|
|
|
|
* NXP LPC17xx Boards:
|
|
|
|
- zkit-arm-1769: LED1 is now user controllable after booting. From
|
|
Rashid Fatah.
|
|
|
|
* Kinetis KL Drivers:
|
|
|
|
- PIT and TPM register definitions header files for the from Alan
|
|
Carvalho de Assis.
|
|
- Added low-level getc() function for operation with no file system.
|
|
The KL25Z can now support NSH in a very minimal system that does
|
|
not even have a file system.
|
|
|
|
* Kinetis KL Boards
|
|
|
|
- A new configuration called minnsh was added is an experiement to
|
|
see how small we can get the NuttX footprint and still support NSH.
|
|
From Alan Carvalho de Assis..
|
|
|
|
* TI Calypso Phones:
|
|
|
|
- Basic board support for the Motorola C139 (Compal E86) phone. From
|
|
Craig Comstock.
|
|
|
|
* Applications:
|
|
|
|
- Moved several useful examples from apps/examples to apps/system.
|
|
This includes USB MSC, USB CDC/ACM, and USB Composite.
|
|
- New addroute and delroute commands added to NSH in order to manage
|
|
the network routing table.
|
|
- Numerous enhancements and updates to the CC3000 example from David
|
|
Sidrane.
|
|
- Add a new stack monitor daemon that can be used to constantly
|
|
monitor stack usage by all threads.
|
|
- Numerous changes to get NSH working with no file system. Basically
|
|
this suppresses I/O redirection and replaces file I/O with calls to
|
|
low-level console read/write functions. Suggested by Alan Carvalho
|
|
de Assis.
|
|
- apps/system/nxplayer: A new, command-line media player called
|
|
'nxplayer' from Ken Pettit.
|
|
- apps/examples/random: Add a simple test that dumps values from
|
|
/dev/random.
|
|
- apps/examples/adc: Add support so that a ADC driven by software
|
|
triggering can be tested.
|
|
|
|
* Build System:
|
|
|
|
- The MKDEP tools now support a new argument that identifies the
|
|
object file path.
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* kconfig-fronted Configuration:
|
|
|
|
- Conversion of old configurations to use the kconfig-frontends
|
|
tool is an ongoing effort that will continue for some time.
|
|
At this time, only 48% of the configurations have been converted
|
|
to use the kconfig-frontends tools.
|
|
|
|
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
|
|
|
* Initialzation and Scheduling:
|
|
|
|
- IDLE thread initialization logic should not call group_setupidlefiles()
|
|
if there are no file descriptors (and, hence, no file system).
|
|
- Fix some cornercase error handling logic: If sched_releasetcb() is
|
|
called as part of a failed pthread startup before the flags field in
|
|
the TCB has been initialized, then a crash occurs. Pointed out by
|
|
David Sidrane.
|
|
|
|
* Networking / Network Drivers:
|
|
|
|
- Look up of a device using subnet will fail if the packet is being
|
|
sent out of our subnet (via a router). The fallback here is just to
|
|
use the only device ("eth0") if the subnet lookup fails (this logic
|
|
was extended to handle multiple Ethernet devices by adding a simple
|
|
routing table).
|
|
- Fix some backward conditional logic in send() that enabled the
|
|
check if the ARP address is in the ARP table. From Max Holtzberg.
|
|
- Notify the socket layer from the network monitor if a connection is
|
|
lost before the monitoring callback has been registered. From Max
|
|
Holtzberg.
|
|
- send(): Reset the send timeout when the data is ACKed, not when the
|
|
data is sent. Remove conditions on checking for timeout. From Max
|
|
Holtzberg.
|
|
- Correct how the TCP/IP initial minimum MSS is calculated. Max
|
|
Holtzberg.
|
|
- TCP state machine: Move tcp connection into SYN_RCVD state after
|
|
aception instead of bypassing and moving directly into ESTABLISHED.
|
|
From Max Holtzberg.
|
|
- Numerous fixes to the ENCX24J600 driver from Max Holtberg.
|
|
|
|
* USB Drivers:
|
|
|
|
- Change naming of SELFPOWERED and REMOTEWAKEUP to avoid name
|
|
collisions. Prepend the name of the driver (for example
|
|
CDCACM_SELFPOWERED).
|
|
- CDC/ACM class driver: Change the interval for the interrupt
|
|
endpoint from 0xff (invalid) to 10. This is not a critical
|
|
change but will avoid a complaint from the Linux driver when
|
|
it overrides the 0xff value.
|
|
|
|
* ARM Cortex-A5:
|
|
|
|
- Fix an error in data cache clean and invalidate functions: Fix of
|
|
addresses to cache line boundaries.
|
|
|
|
* Atmel AT91 SAMA5D3x Drivers:
|
|
|
|
- Correct some inconsistencies in the way that USB configuration
|
|
settings are used. This caused compilation errors in SAMA5 OHCI
|
|
when USB debug was ON but USB host tracing was off.
|
|
- When 480MHz UPLL is used to drive OHCI, it should have a divider
|
|
of 10. However, that does not work. A divider of 5 does. Why?.
|
|
- OHCI HCD: Fix a place where DMA-related data needed to be flushed
|
|
to data cache; Fix another where a virtual address was being used
|
|
in a register where a physical address was required.
|
|
- HSMCI Driver: TX DMA disabled. It is just not reliable. No idea
|
|
why. RX DMA is still used.
|
|
- STM32F103C pinmapping corrections from David Sidrane.
|
|
|
|
* Atmel SAMA5D3x-EK Board
|
|
|
|
- Increase the number of pre-allocated watchdog timers. The default
|
|
number of 4 was easily being exhausted in the more complex
|
|
configurations.
|
|
|
|
* STMicro STM32:
|
|
|
|
- STM32 F4 DMA definitions: Typo fixes for UART7 and UART8 DMA
|
|
configs. From Mike Smith.
|
|
- DMA priority configuration corrections from Mike Smith.
|
|
- Changes to the stm32_dmacapable API. In order to correctly
|
|
verify that a buffer can be transferred, the transfer count and
|
|
the CCR value are required. Implemented stm32_dmacapable for
|
|
stm32f1xx devices. Enhanced stm32_dmacapable for stm32f2xx and
|
|
stm32f4xx devices to check for additional conditions that will cause
|
|
DMA to fail or lose data.
|
|
- STM32 F1 DMA fix from David Sidrane: The DMA_CNDTRx register
|
|
cannot be modified if the DMA channel is disabled.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- Fix compilation errors from bad bit definitions in ADC and PWM
|
|
register. From Martin Lederhilger.
|
|
- DMA-related fixes to the SPI driver from Ken Pettit.
|
|
|
|
* NXP LPC17xx Drivers:
|
|
|
|
- Remove undefined spi_select() prototype. This was causing compile
|
|
time warnings.
|
|
|
|
* NXP LPC17xx Boards:
|
|
|
|
- zkit-arm-1768: MMC/SD is on SPI, not SSP0. From Rashid Fatah.
|
|
|
|
* C Library
|
|
|
|
- scanf() fixes from kfrolov: 1) sscanf() function hangs in the
|
|
following example: sscanf("2", "%u,%u,%u,%u", ...), 2) sscanf()
|
|
returns incorrect number of parsed numbers if some arguments
|
|
can't be parsed: sscanf("=2", "%u,%u,%u,%u",...)==1 instead of
|
|
0, and 3) using of char* instead of const char* in vsscanf
|
|
function leads to warnings from GCC.
|
|
|
|
* Build System
|
|
|
|
- Dependency generation generation was broken for directories that
|
|
keep objects in a sub-directory. The MKDEP tools now support a new
|
|
argument that identifies the object file path.
|
|
- tools/define.sh: 'cut' no longer works as it once did. Script
|
|
adapted to observed behavior.
|
|
|
|
* Applications:
|
|
|
|
- Remove a warning from the NSH library when DHCP is not enabled.
|
|
- Default NSH IP address should be 0x0a000001 (10.0.0.1), not
|
|
0xa0000001 (160.0.0.1). Ditto for the gateway.
|
|
- Add some missing options to the OS test Kconfig file
|
|
- Fix some bad conditional compilation in the USB monitor.
|
|
- Fix default I2C frequency used by the I2C tool: 400KHz instead
|
|
of 4MHz. Suggested by Max Kriegleder.
|
|
- Increase stack size for the system/info command. Ken Petit
|
|
reports that this simple command can exceed its 768 stack size
|
|
under certain conditions. The size is marginal and has been
|
|
increased to 1024 by default but is also now configurable.
|
|
- apps/Makefile: Needs to include external/Make.defs if we want
|
|
allow external applications to participate in the NuttX
|
|
configuration. Suggested by gdi@embedders.org.
|
|
- apps/netutils/telnetd: Missing argument to debug statement
|
|
can cause crashes in certain error conditions. From David
|
|
Sidrane.
|
|
- apps/examples/can: Correct an error in a debug statement. From
|
|
Martin Lederhilger.
|
|
|
|
NuttX-6.32
|
|
----------
|
|
|
|
The 99th release of NuttX, Version 6.32, was made on December 7, 2013,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.32.tar.gz and
|
|
apps-6.32.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* General:
|
|
|
|
- Extension and standardization of stack debug logic. Now includes
|
|
coloration of the IDLE and interrupt stacks as well as the heap.
|
|
Suggested by David Sidrane.
|
|
|
|
* Audio Subsystem and Audio Drivers:
|
|
|
|
- I2S interface definition. Integrates with audio sub-system.
|
|
- VS1053 worker thread stack size is now configurable and assigned a
|
|
name via pthread_setname_np(). From Ken Pettit.
|
|
|
|
* Networking / Network Drivers
|
|
|
|
- Updates and adaptations to support for TI CC3000 wireless module
|
|
from David Sidrane. These updates include multi-threading support
|
|
and interface and header file changes to integrate more seamlessly
|
|
with NuttX applications.
|
|
|
|
* File Systems:
|
|
|
|
- procfs: Add support for a tiny procfs file system. The initial
|
|
offering is little more that a proof of concept but may be developed
|
|
further in subsequent releases.
|
|
- NXFFS: An initial attempt was made to integrate NXFFS with the NAND
|
|
MTD driver. Changes were made to handle bad blocks. However, I
|
|
later realized that NXFFS cannot handle NAND because the way that
|
|
is re-writes blocks is incompatible with the NAND ECC handling.
|
|
These changes were backed-out so as not to introduce turmoil, but
|
|
can be re-enabled if needed via configuration option.
|
|
- NXFFS: Make the start up scan of the media a configuration option.
|
|
It just takes to long and is not really necessary! Those rare cases
|
|
where the scan was helpful can be fixed using flash_eraseall().
|
|
|
|
* General Drivers:
|
|
|
|
- I2S: A simple character driver was added to support I2S accesses.
|
|
This driver in its current state is intended only to support I2C
|
|
testing and would not be appropriate to used for any real driver
|
|
application.
|
|
|
|
* MTD Drivers
|
|
|
|
- Add a container for an MTD device that can be used to provide a
|
|
simple, lightweight interface to configuration data storage that
|
|
resides on some storage media that is wrapped as an MTD device.
|
|
From Ken Pettit.
|
|
- New interface definition for lower half NAND drivers.
|
|
- MTD Nand: Add MTD NAND driver that will support ONFI devices,
|
|
non-ONFI devices (via table lookup), bad block checking, software
|
|
ECC (Hamming), and will interact with the lower-half, hardware-
|
|
specific, NAND driver. Based on BSD-compatible Atmel sample code.
|
|
- MTD geometry structure is now packed so that it can support larger
|
|
erase block sizes needed by NAND without increasing the size of
|
|
the geometry structure.
|
|
- SST25: Add another SST25 SerialFlash driver, sst25xx.c. This one
|
|
differs from sst25.c in that it supports larger SST25 parts: In
|
|
the larger parts support page write instead of byte/word writes
|
|
like the smaller parts. From Ken Pettit.
|
|
|
|
* USB Drivers
|
|
|
|
- STM32 F1 USB Device: Add support for decoded USB trace strings.
|
|
From David Sidrane.
|
|
|
|
* ARM
|
|
|
|
- Add more ARM9 cache management functions to flush and invalidate
|
|
D-Cache for DMA support.
|
|
|
|
* Atmel AT91 SAMA5D3x Drivers:
|
|
|
|
- Many new drivers including CAN, PWM, SSC/I2S
|
|
- PCK: Add support for programmable clock outputs.
|
|
- NAND: Driver with hardware ECC and DMA support
|
|
|
|
* Atmel AT91 SAMA5D3x Boards:
|
|
|
|
- SAMA5D3x-EK: Add support for the apps/examples/i2schar test.
|
|
- SAMA5D3x-EK: Provides board-specific memory controller initialize
|
|
for NAND flash.
|
|
- SAMA5D3x-EK: Add support for "auto-mounting" NAND MTD block driver
|
|
or NXFFS file system.
|
|
|
|
* Atmel AT91 SAM3/4 Boards:
|
|
|
|
- Basic support for the Atmel SAM4E family. From Mitko.
|
|
|
|
* STMicro STM32:
|
|
|
|
- Added support for the STM32F429. From Ken Pettit.
|
|
- Added support for GPIOK and GPIOJ. From Ken Pettit.
|
|
|
|
* STMicro STM32 Drivers
|
|
|
|
- STM32 F4 OTG FS/HS Device: OTG FS device and host drivers extended
|
|
so that they can support either the OTG FS peripheral or the OTG HS
|
|
peripheral (in FS mode). This was done as a quick way to get USB
|
|
support on the STM32F429 which has only OTG HS. From Ken Pettit.
|
|
- Added header files and driver framework for the STM32F429 LTDC
|
|
framebuffer driver. From Ken Pettit.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- Support for the Spark board was completely by Davide Sidrane. The
|
|
Spark configuration includes integrated CC3000 wireless support, FAT
|
|
file system on the SerialFlash and a composite device that can be
|
|
used both to export the FAT file system and to provide a serial
|
|
interface.
|
|
- The Mikroe-stm32f4 now uses /dev/config for configuration data
|
|
storage. From Ken Pettit.
|
|
- Added support for the STM32F429I-Discovery board from Ken Pettit.
|
|
- Added board support for the ViewTool STM32F103/F107 board with the
|
|
STM32F107VCT6 installed.
|
|
|
|
* NXP LPC31xx Drivers:
|
|
|
|
- USB ECHI HCD: Add a driver for the low-/full-/high-speed variant
|
|
of the EHCI host controller.
|
|
|
|
* NXP LPC31xx Boards:
|
|
|
|
- Board-specific USB host support for the Emedded Artists EA3131 board.
|
|
(Missing PCA9532 controls).
|
|
- Add support for the Olimex LPC-H3131 board. Including USB host
|
|
support (which does not depend on the PCA8532 interface).
|
|
|
|
* Kinetis KL Drivers:
|
|
|
|
- PWM driver for the Freescale Kinetis KL family from Alan Carvalho
|
|
de Assis.
|
|
|
|
* Kinetis KL Boards
|
|
|
|
- Freedom-KL25Z: Add PWM support from Alan Carvalho de Assis.
|
|
|
|
* TI Stellaris LM3S
|
|
|
|
- Don't initialize .data in start-up logic if not running from FLASH.
|
|
|
|
* Applications:
|
|
|
|
- apps/platform: A new home for platform-specific application code.
|
|
- Define a common interface that can be used to manage platform-
|
|
specific configuration data. From Ken Pettit.
|
|
- apps/examples/configdata: A unit test for the MTD configuration
|
|
data driver from Ken Pettit.
|
|
- Aapps/platform/mikroe-stm32f4: dd platform-specific storage of
|
|
configuration data for the Mikroe-stm32f4. From Ken Pettit.
|
|
- apps/examples/cc3000: Fine tuning of memory usage from David Sidrane.
|
|
- apps/system/nxplayer: Play thread stack size is now configurable.
|
|
All NxPlayer threads now have names assigned via pthread_setname_np().
|
|
From Ken Pettit.
|
|
- apps/examples/i2schar: The I2S test based on the I2S character
|
|
driver.
|
|
- apps/examples/hidkbd/hidkbd_main.c: Now calls a function named
|
|
arch_usbhost_initialize() that must be provided by the platform-
|
|
specific code.
|
|
- NSH:
|
|
|
|
- hexdump: Add skip= and count= options to the hexdump command. From Ken Pettit.
|
|
- Allow USB trace without a USB console. From David Sidrane.
|
|
- Mount command updates from Ken Pettit.
|
|
- Add an option to the mkfatfs command to specify FAT12, FAT16, or FAT32.
|
|
|
|
* Tools
|
|
|
|
- tools/mkctags.sh: A script for creating ctags from Ken Pettit.
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* kconfig-fronted Configuration:
|
|
|
|
- Conversion of old configurations to use the kconfig-frontends
|
|
tool is an ongoing effort that will continue for some time.
|
|
At this time, only 50% of the configurations have been converted
|
|
to use the kconfig-frontends tools.
|
|
|
|
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
|
|
|
* File Systems
|
|
|
|
- FAT: In one error return case, the error return value was not being
|
|
set, making the failure look like success. From David Sidrane.
|
|
- mount: SMART FS must be included in the conditional compilation for
|
|
the set of file systems that require block drivers. From Daniel
|
|
Palmer.
|
|
- SmartFS: Fixed a minor bug with SMART partition number reporting
|
|
that would only be seen if both partition support and multi-root
|
|
directory support are enabled at the same time. From Ken Pettit.
|
|
- Deadlock: The inode semaphore must be re-entrant. Here is the re-
|
|
entrant path that I found: (1) USB host connects to FLASH drive and
|
|
creates /dev/sda, (2) /dev/sda is mounted, (3) FLASH drive is
|
|
removed but /dev/sda is not destroyed because there is still a
|
|
reference on the device because of the mount, (4) umount() is
|
|
called, taking the inode semaphore, now the driver tries to destroy
|
|
the block driver by calling unregister_blockdriver(). But (5)
|
|
unregister_blockdriver() also takes the inode semaphore causing a
|
|
deadlock if the inode semaphore is not re-entrant.
|
|
- FAT: Fix a typo in the FAT16 formatting logic. Was this ever able to
|
|
format a FAT16 volume?
|
|
|
|
* MTD Drivers
|
|
|
|
- MTD Partitions: Fix erase block vs page block confusion. From Ken
|
|
Pettit
|
|
- SST25 Serial Flash: Improved write performance by fixing a bug that
|
|
prevented operation in the faster write mode. From David Sidrane.
|
|
|
|
* USB Drivers:
|
|
|
|
- USB MSC Device: pthread_join() does not work if called from a
|
|
different task group than the pthread. This is correct behavior,
|
|
but still a problem. The correct solution would be configure the
|
|
USB MSC thread to a task, however, this workaround from David
|
|
Sidrane plugs the hole for now.
|
|
- USB CDC/ACM, USB MSC, and Composite Device Classes: Un-initialization
|
|
logic caused re-use of a stale pointer. Changed to a two pass
|
|
un-initialization for the case of the composite driver: Memory
|
|
resources are not freed until the second un-initialization pass.
|
|
From David Sidrane.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- STM32 F1 USB Device: Fix some errors that cause crashes when the USB
|
|
was disconnected. From David Sidrane.
|
|
- STM32 F1 USB Device: Correct EP0 state handling logic when buffers
|
|
larger than the EP0 packet size are sent. From David Sidrane.
|
|
- STM32 F1 USB Device: The long outstanding bug involving the handling
|
|
of OUT SETUP commands has been fixed in the STM32 F1 USB device
|
|
driver by David Sidrane.
|
|
- Kconfig: Add missing setup of CAN TSEG1 and TSEG2 values. From
|
|
Martin Lederhilger.
|
|
|
|
* Tools
|
|
|
|
- tools/mkconfig.c: SMART FS must be included in the conditional
|
|
compilation for the set of writable file systems. Noted by Daniel
|
|
Palmer.
|
|
|
|
* Applications:
|
|
|
|
- apps/platform/Makefile: Was not dealing with the bin sub-directory
|
|
correctly.
|
|
- apps/system/composite/composite_main.c: The wrong handle was getting
|
|
nullified. From David Sidrane.
|
|
|
|
NuttX-6.33
|
|
----------
|
|
|
|
The 100th release of NuttX, Version 6.33, was made on January 30, 2014,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-6.33.tar.gz and
|
|
apps-6.33.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS Interfaces
|
|
|
|
- nanosleep() added. sleep() and usleep() are no longer core OS
|
|
interfaces. These have been moved into the library and re-implemented
|
|
as simple wrappers around nanosleep().
|
|
|
|
* File Systems
|
|
|
|
- procfs restructured by Ken Pettit. Added files for MTD status.
|
|
- procfs extended to show uptime and task group status.
|
|
- procfs now shows stack information.
|
|
|
|
* Networking
|
|
|
|
- Add support for the SO_LINGER socket option. Extended from logic
|
|
provided by Jason Jiang. Enabled with CONFIG_NET_SOLINGER.
|
|
- TCP write buffering support added. From Jason Jiang.
|
|
- Changes from Max Holtzberg to improve how network status is
|
|
reported. New controls to manage carrier detect.
|
|
|
|
* Graphics
|
|
|
|
- Massive reshuffling of files with little or no logic changes. This
|
|
reshuffling was necessary to build graphics applications with the
|
|
kernel builds where the graphics application lie in user space and
|
|
the core graphic server likes in kernel space. Moved much logic out
|
|
of nuttx/graphics to a new user library, libnx.
|
|
|
|
* Cortex-A5/A8/A9
|
|
|
|
- Existing Cortex-A5 support updated to include Cortex-A8/9.
|
|
- Add the syscall.h header file needed for the Cortex-A architecture.
|
|
- Start-up logic now supports execution from FLASH with .data and
|
|
.bss in SDRAM. This was not possible prior to this because .bss
|
|
and .data were initialized before SDRAM was configured.
|
|
|
|
* Allwinner A10:
|
|
|
|
- Basic support for the Allwinner A10 (Cortex-A8) is in place.
|
|
|
|
* Allwinner A10 boards
|
|
|
|
- Support for the pcDuino v1 board has been added. This support
|
|
is not yet very mature and still lacks many drivers. It is a
|
|
good starting point, however, if anyone wants to develop A10
|
|
support.
|
|
|
|
* Atmel SAMA5D3X
|
|
|
|
- Start-up logic now supports execution from FLASH with .data and
|
|
.bss in SDRAM. This was not possible prior to this because .bss
|
|
and .data were initialized before SDRAM was configured.
|
|
|
|
* Atmel SAMA5D3X Boards
|
|
|
|
- Partial logic in place to support the OV2640 camera. Still needs
|
|
quite a bit of additional logic to be useful.
|
|
|
|
* ARMv7-M
|
|
|
|
- Add support for high priority, nested interrupts. This change
|
|
effects not only core ARMv-7M logic, but all ARMv7-M MCU logic:
|
|
LM3S, LM4F, LPC17xx, LPC43xx, SAM3, SAM4, and STM32. See
|
|
http://www.nuttx.org/doku.php?id=wiki:nxinternal:highperfints
|
|
|
|
* STMicro STM32
|
|
|
|
- Add clocking support for STM32F107 USB OTG FS (which does not yet
|
|
work)
|
|
- Single-wire UART support for the F1 series from Thomas Grubler.
|
|
|
|
* STMicro STM32 Boards
|
|
|
|
- The Viewtool board can now be configured to support either the
|
|
STM32F103VCT6 or the STM32F107VCT6.
|
|
- The Viewtool STM32F107VCT6 now supports networking with the
|
|
DP83848C module installed.
|
|
- Add support for Viewtool SSD1289-based LCD on the Viewtool
|
|
STM32F103VCT6 board (untested)
|
|
- Add support for the XPT2046 touchscreen controller on the Viewtool
|
|
LCD module connected to the Viewtool STM32F103 board.
|
|
- Added kernel mode build support for the STM3240G-EVAL board. Added
|
|
a new kernel mode NxWM build configuration
|
|
- C++ static constructor logic from the nuttx/configs/stm3240g-eval/
|
|
directory to the apps/platform/stm3240g-eval/up_cxxinitialize.c
|
|
where is belongs so that it is available in user-space in the kernel
|
|
mode build.
|
|
- Add native Windows build support for the Olimex STM32 P107. From
|
|
Max Holtzberg
|
|
- Support for the STM32VL-Discovery board. Contributed by Alan
|
|
Carvalho de Assis
|
|
- Added a configuration for testing simple configurations on the
|
|
PX4FMU v2.
|
|
|
|
* ZiLOG ZNEO Boards
|
|
|
|
- Add an NSH configuration for the Z16F2800100ZCOG ZNEO board.
|
|
- Added support for the Toyaga 16Z ZNEO board. The 16Z board is
|
|
based on the ZiLOG ZNEOZ16F2811AL20EG part. See
|
|
https://github.com/toyaga/16z for further information
|
|
- Developed a patch to work around a compiler error that is revealed
|
|
when building the NSH configuration.
|
|
|
|
* Architecture-Independent Drivers
|
|
|
|
- OV2640 Camera Driver.
|
|
- Support for the Sharp Memory LCD from Librae.
|
|
|
|
* Library
|
|
|
|
- Pattern matching logic extended to handle set of characters and
|
|
ranges of character values. From Ken Pettit.
|
|
- sleep() and usleep() moved intot the C library. These are not
|
|
longer core OS interfaces; they are simple wrappers for the
|
|
nanosleep().
|
|
- Add an implementation of gets_s().
|
|
- Extend fopen() to include support for C11 exclusive open ("x")
|
|
open mode.
|
|
- Add an implementation of stpcpy()
|
|
- strtol(), strtoll, strtoul(), strtoull(), and strtod() from
|
|
libc/string to libc/stdlib where they belong.
|
|
|
|
* Header Files
|
|
|
|
- Add rsize_t to include/sys/types.h
|
|
- Add the C11 thread.h header file
|
|
|
|
* Configuration/Build System
|
|
|
|
- Top level Makefile now supports qconfig and/or gconfig targets that
|
|
may be used for configuration. These may be used if you build
|
|
kconfig-frontends with support for kconfig-qconf and/or
|
|
kconfig-gconf.
|
|
- Add CONFIG_DEBUG_NOOPT. Now you can independently enable/disable
|
|
debug symbols and optimization
|
|
- File system related header files moved to include/nuttx/fs
|
|
- Video related header files moved to include/nuttx/video
|
|
- Changes for native Windows build: fix creation of a .version file
|
|
if one does not exist. Make sure that the APPDIR environment
|
|
variable is set before configuring. From Max Holtzberg.
|
|
- Board configuration sub-directory can now be specified. The default
|
|
need not be used. This is only useful when CONFIG_ARCH_BOARD_CUSTOM
|
|
is selected and there is no meaningful default sub-directory.
|
|
- Many functions renamed to better conform with the naming standard:
|
|
up_buttoninit() renamed to board_button_initialize(), up_buttons()
|
|
renamed to board_buttons(), up_irqbutton() renamed to
|
|
board_button_irq(), up_ledinit() renamed to board_led_intialize(),
|
|
up_ledon() renamed to board_led_on(), and up_ledoff() renamed to
|
|
board_led_off(). All prototypes removed from board.h header files.
|
|
Now ONLY prototypes in include/nuttx/arch.h.
|
|
|
|
* Applications
|
|
|
|
- NSH: Refactor. Separate NSH command handling and command execution
|
|
from NSH line parsing.
|
|
- NSH: Will now support multiple commands on a command line, each
|
|
separated with a semi-colon.
|
|
- NSH: Add support of commands enclosed in back quotes as command
|
|
arguments.
|
|
- NSH: Can now handle arguments that are concatenations of constant
|
|
strings, command return data, application return data, and
|
|
environment variables.
|
|
- NSH: Add true and false commands.
|
|
- NSH: Add support for while-do-done and until-do-done loops. These
|
|
only work when executing a script file because they depend on the
|
|
ability to seek in the file to implement the looping behaviors.
|
|
Can be conditionally compiled out to reduce footprint.
|
|
- NSH: Loosen up if-then-else-fi syntax to allow a command to be on
|
|
the same line as the then or else tokens like:
|
|
"if true; then echo true; else echo false; fi". More like bash.
|
|
- NSH: Add a break command that can be executed with a loop to
|
|
terminate the loop immediately.
|
|
|
|
- system/inifile: A simple .INI file parser.
|
|
- system/vi: Add support for a tiny, VI work-alike editor. This is
|
|
a minimal full screen editor that works with a terminal emulator
|
|
that using VT100 commands.
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* kconfig-fronted Configuration:
|
|
|
|
- Conversion of old configurations to use the kconfig-frontends
|
|
tool is an ongoing effort that will continue for some time.
|
|
At this time, only 53% of the configurations have been converted
|
|
to use the kconfig-frontends tools.
|
|
|
|
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
|
|
|
* Core OS
|
|
|
|
- Added missing sem_timedwait() system call.
|
|
|
|
* Networking
|
|
|
|
- Prevent tcp_connect callback from being double freed. From Max
|
|
Holtzberg
|
|
- uiplib: Support new definitions and state passing for network
|
|
device status. From Maz Holtzberg.
|
|
|
|
* File Systems
|
|
|
|
- FAT: (1) A correction to FAT cluster allocation, and (2) Fix to some
|
|
root directory logic that was conditionally done only for FAT 32.
|
|
Apparently this needs to done for all FAT types. Both from Andrew
|
|
"Tridge" Tridgell via Lorenz Meier.
|
|
|
|
* Binary Formats
|
|
|
|
- Fix a small memory leak when attempting to load a program from a file.
|
|
|
|
* Cortex-A8/9
|
|
|
|
- Fix some errors in the cache invalidation logic (only seem to matter
|
|
for Cortex-A8).
|
|
- Add more nop's after enabling the MMU. The cortex-a8 seems to need
|
|
these
|
|
|
|
* Graphics
|
|
|
|
- Fix a typo that caused a compilation error when
|
|
CONFIG_NXCONSOLE_BPP < 8. From Librae
|
|
|
|
* ARMv7-M
|
|
|
|
- Correct alignment of RAM vector table.
|
|
- Interrupt handling: Do not disable and enable the IRQ on each
|
|
entry, (2) this interferes with controlling the IRQ interrupt
|
|
setting from interrupt handlers, and (3) up_disable_irq() does
|
|
not work anyway so that this has never done anything.
|
|
- Fix all implementations of up_disable_irq() for all Cortex-M3 and
|
|
M4 architectures: To enable an interrupt on the Cortex-M3/4 CPU,
|
|
you need to set a bit in the ISER register. To disable the
|
|
interrupt, you need to set a bit in the ICER register. Existing
|
|
logic was trying to disable interrupts by clearing the bit in the
|
|
ISER register. That will not work; writing a '0' to the ISER
|
|
register has no effect. That means that up_disable_irq() was
|
|
doing nothing! It turns out that that is not really important
|
|
because up_disable_irq() is not really used for that purpose. But
|
|
some spurions STM32 ADC interrupts have been reported to me and this
|
|
turned out to be the cause in that case. Thanks to Manuel St�hn for
|
|
the tip.
|
|
|
|
* STMicro STM32
|
|
|
|
- Fix configuration and pin definitions that would prevent building
|
|
USB for the connectivity and performance lines.
|
|
- STM32L15xx: Fix a typo in USB pin definitions
|
|
- Fix pin definition names for SPI2 MOSI and MISO. Noted by Brian Webb
|
|
- Various fixes for STM32F103ZE SPI3 pin mapping definitions. From
|
|
Steve Redler IV
|
|
|
|
* STMicro STM32 Boards
|
|
|
|
- Olimex STM32-P107: Failed to build if SPI3 for UEXT is not remapped.
|
|
From Max Holtzberg
|
|
|
|
* x86 Boards
|
|
|
|
- Add a configuration option to select the -m32 compiler option when
|
|
building for a 32-bit target on a native 64-bit compiler. So far,
|
|
only used for the qemu/i486 configuration.
|
|
- Patch from Matt Campbell to fix 'Error: .size expression for idle_stack
|
|
does not evaluate to a constant".
|
|
|
|
* Library
|
|
|
|
- strftime(): Needs null termination on the generated string. From
|
|
Max Holtzberg.
|
|
- Typo in ctype.h macro name: iscntrl(), not iscontrol().
|
|
- If there are no arguments (argc == 1), then getopt() will leave the
|
|
optind variable in an undefined state (2014-1-20).
|
|
- ARMv7-M memcpy(): Assembler changes with the gcc-47 distribution
|
|
from ARM mean that we need to be explicit about branch sizes; one
|
|
or more of the wide branch opcodes results in bad table branching.
|
|
From Mike Smith.
|
|
|
|
* Configuration/Build System
|
|
|
|
- Fixes for some tools/ for Windows build issues from Max Holtzberg.
|
|
- Config.mk: 'cypath' must be called if we are using a Windows native
|
|
toolchain with the Cygwin 'make' to convert paths to proper
|
|
Windows paths. From Richard Cochran.
|
|
- ARM Makefile: Dependency directory list is now computed from the
|
|
VPATH. From Richard Cochran.
|
|
- builtin/Makefile: Fixes for native Windows build from Max Holtzberg.
|
|
- Refactor some configuration dependencies: NSH networking features
|
|
should depend on netutil selections; netutil selections, in turn,
|
|
should depend on networking selections.
|
|
|
|
* Applications
|
|
|
|
- NSH: Modified the df -h logic to eliminate truncating numbers in
|
|
conversion (like 7900 -> 7M). From Ken Pettit.
|
|
|
|
NuttX-7.1
|
|
---------
|
|
|
|
The 101st release of NuttX, Version 7.1, was made on March 15, 2014,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-7.1.tar.gz and
|
|
apps-7.1.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
The previous NuttX version was 6.33. The NuttX minor version number is
|
|
incremented on each release, but the major version number is incremented
|
|
only when an incompatibility with previous versions is included in the
|
|
release. In this case, the legacy, manual configuration is no longer
|
|
supported by the NuttX build system beginning with NuttX 7.1. Only the
|
|
newer configurations generated by the kconfig-frontends tools will generate
|
|
viable NuttX configurations.
|
|
|
|
All board configurations in the NuttX source tree have been converted to
|
|
use the newer configuration, but if you have some older style configurations
|
|
for you board, you will need to convert those configurations to use the
|
|
kconfig-frontends tools before taking any new code from the repository. See
|
|
http://www.nuttx.org/doku.php?id=wiki:howtos:convertconfig for some
|
|
guidelines.
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS:
|
|
|
|
- System time logic now includes logic to measure and calculate the
|
|
CPU load percentage (from David Alessio). This CPU load logic
|
|
extended to keep counts on each thread. The per-thread CPU is
|
|
now reported in the procfs under <pid>/loadavg An asynchronous,
|
|
"external" clock may be used to drive the CPU load calculations
|
|
for more accurate measurements when needed.
|
|
|
|
* File Systems:
|
|
|
|
- As mentioned above, the per-thread CPU load information is now
|
|
reported in the procfs under <pid>/loadavg.
|
|
- Many file system interfaces have been extended to operate on the
|
|
top-level NuttX pseudo filesystem. These include rmdir, mkdir,
|
|
rename, and unlink. This capability can be disabled with
|
|
CONFIG_DISABLE_PSEUDOFS_OPERATIONS in order to keep the footprint
|
|
small.
|
|
|
|
* Networking:
|
|
|
|
- Numerous updates and improvements to the CC3000 driver from David
|
|
Sidrane.
|
|
|
|
* Common Drivers:
|
|
|
|
- Defined a mouse interface that is very similar to a touchscreen
|
|
interface, but allows reporting of all mouse buttons. Also, unlike
|
|
touchscreen drivers, mouse drivers need to report positional data
|
|
with no button is pressed so that the mouse position can drive a
|
|
cursor.
|
|
- Added support for a USB HID boot mouse device. Cursor support is
|
|
not integrated and must be provided by the application based upon
|
|
the reported mouse data.
|
|
- Support added for the MIO283QT9A LCD from Toby Duckworth.
|
|
|
|
* Atmel SAMA4E:
|
|
|
|
- Added complete architecture support for the Atmel AT91 SAM4E
|
|
Cortex-M4F parts.
|
|
|
|
* Atmel SAM4E Board Support:
|
|
|
|
- Add board support for the SAM4E-EK board.
|
|
|
|
* Atmel SAM4E Drivers:
|
|
|
|
- Added logic to manage the Cortex-M Cache Control block.
|
|
- Developed and integrated an Ethernet MAC driver for the SAM4E.
|
|
- Backported the SAMA5 SPI driver to the SAM3/4 architecture. The
|
|
SAMA5 version supports both multiple SPI peripherals as needed by the
|
|
SAM3A and SAM3X and also supports DMAC (but not PDC) needed by the
|
|
SAM4E.
|
|
|
|
* Atmel SAM D20:
|
|
|
|
- Added basic architecture support for the Atmel AT91 SAM D20
|
|
Cortex-M0+ parts.
|
|
|
|
* Atmel SAM D20 Board Support:
|
|
|
|
- Added basic support for SAM D2 Xplained Pro board. Currently, the
|
|
NuttShell (NSH) works reliably over a serial port. An SPI driver
|
|
has also been developed. Work with the SAM D20 has been temporarily
|
|
stopped, however, in order to focus on the SAM4E-EK.
|
|
|
|
* TI Tiva TMC4C123G:
|
|
|
|
- Added architecture support for the TI Tiva TM4C123G parts. This was
|
|
merged into the existing support for the LM3S and LM4F families.
|
|
All directory, file, and function references changed from lm to tiva.
|
|
|
|
* TI Tiva TMC4C123G Board Support:
|
|
|
|
- Added basic board support for the TM4C123G-Launchpad. As of this
|
|
release the TM4C123G-Launchpad board support is untested and likely
|
|
incomplete.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- The Mikroe STM32F4 can now support the newer MIO283QT9A LCD. From
|
|
Toby Duckworth.
|
|
- Miscellaneous changes to better support FPU on STM32F429 Discovery
|
|
from David Alessio.
|
|
|
|
* NXP LPC2378 Drivers:
|
|
|
|
- Incorporated I2C and SPI drivers for the LPC23xx from Lizhuoyi.
|
|
|
|
* QEMU i486 Drivers:
|
|
|
|
- New QEMU keyboard and VGA drivers from Lizhuoyi.
|
|
|
|
* Documentation:
|
|
|
|
- Added a coding standards document. See
|
|
http://www.nuttx.org/doku.php?id=documentation:codingstandard
|
|
|
|
* Configuration/Build System:
|
|
|
|
- A configuration option, CONFIG_DEFAULT_SMALL, was added to select
|
|
default values for configuration variables based upon whether you
|
|
want a smaller footprint or more features. This is not very useful
|
|
if you are modifying existing configurations because then the
|
|
default values do not apply.
|
|
- CONFIG_DEFAULT_SMALL has been defined on all tiny MCU configurations
|
|
so that they do not grow so rapidly when new, optional features are
|
|
added.
|
|
- The legacy, manual configuration is no longer supported by the
|
|
NuttX build system. Only the newer configurations generated by
|
|
the kconfig-frontends tools will generate viable NuttX
|
|
configurations. All board configurations in the NuttX source tree
|
|
have been converted to use the newer configuration, but if you have
|
|
some older style configurations for you board, you will need to
|
|
convert those configurations to use the kconfig-frontends tools. See
|
|
http://www.nuttx.org/doku.php?id=wiki:howtos:convertconfig for some
|
|
guidelines.
|
|
|
|
* Applications:
|
|
|
|
- NSH can now use an EMACS-like command line editor. This CLE, is
|
|
really more like the traditional readline than is the default, tiny
|
|
the NuttX readline .
|
|
- The touchscreen example can now be configured to work with either a
|
|
touchscreen or a mouse device.
|
|
- Several NSH commands can now be used to operate on objects in the
|
|
top-level pseudo-filesystem: rmdir, mkdir, mv, and rm. This
|
|
capability can be disabled with CONFIG_DISABLE_PSEUDOFS_OPERATIONS
|
|
in order to keep the footprint small.
|
|
- If both the CPU load feature and the procfs features are enabled,
|
|
then the NSH 'ps' command will show the CPU load used by each
|
|
thread.
|
|
|
|
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
|
|
|
* Core OS:
|
|
|
|
- task_terminate() always returned an error because the return value
|
|
was not being set correctly (from Gosha).
|
|
- nanosleep() Fix a missing call to re-enable interrupts (from Jason
|
|
Jiang).
|
|
|
|
* File Systems:
|
|
|
|
- Fixed an error in the FAT logic that can cause file corruption. The
|
|
error conditions are rare and only seen with very large files (from
|
|
Andrew Tridgell). This replaces a previous, partial fix for the same
|
|
problem.
|
|
- Fixed memory leaks in the NXFFS open() and stat() implementations
|
|
(from Lzyy).
|
|
- The interfaces include opendir(), readdir(), et al, were modified so
|
|
that errors will not be reported if you attempt to list a empty
|
|
pseudo-directory.
|
|
|
|
* Networking:
|
|
|
|
- Fix one place where the connection reference count was not being
|
|
decremented in the socket close() logic. This is really a cosmetic
|
|
change BUT when CONFIG_DEBUG_NET is enabled, it will cause assertions.
|
|
- Backed out a small part of the NuttX 6.33 write buffering changed.
|
|
David G says that this causes problems in connecting to a server.
|
|
- In DHCPD, there was a place where the logic was calling ntohl()
|
|
inappropriately; the address was already in the correct order. How
|
|
could DHCPD have worked with this bug?
|
|
|
|
* TI Tiva/Stellaris Drivers:
|
|
|
|
- Fixed cut'n'paste error that prevented UARTS2-7 from being used with
|
|
the LM4F120 Launchpad.
|
|
- Fixed several errors there were unmasked with UARTs > UART2 are
|
|
enabled (grom Gosha).
|
|
|
|
* Allwinner A10 Drivers:
|
|
|
|
- Fixed cut'n'paste error that prevented UARTS2-7 from being used with
|
|
the pcDuino.
|
|
|
|
* NXP LPC17xx Drivers:
|
|
|
|
- Fix an compilation error that crept into the LPC17xx USB host driver.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- Fix cloned typo in the serial driver: FLOWCONTROL vs FLOWCONROL.
|
|
- Disable SPI before changing DPI CR1 register (from David Sidrane).
|
|
- stm32 TIM: Set the timer CCMR when selecting timer channel. From
|
|
David Sidrane.
|
|
- Fix typo in a Makefile: stm32_pwm.c not stm32_psm.c. Noted by Max
|
|
Kriegleder.
|
|
|
|
* Library:
|
|
|
|
- More sscanf() bug fixes from David Sidrane.
|
|
|
|
* Header files:
|
|
|
|
- cstdbool: Ignore _Bool8 if CONFIG_C99_BOOL8=y
|
|
|
|
* Configuration/Build System:
|
|
|
|
- Several changes to restore the broken native Windows build
|
|
|
|
* NuttShell (NSH):
|
|
|
|
- Use strncpy vs strcpy in the Telnet console logic to avoid
|
|
overruning the username and password buffers (from Bertold Van den
|
|
Bergh).
|
|
- Add a newline after printing the file in the 'cat' command. This
|
|
prevents the NSH prompt from be in the same line as the final line
|
|
of the file in the case where there is no newline at the end of the
|
|
file.
|
|
|
|
NuttX-7.2
|
|
---------
|
|
|
|
The 102nd release of NuttX, Version 7.2, was made on April 29, 2014,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-7.2.tar.gz and
|
|
apps-7.2.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS:
|
|
|
|
- Add support for CLOCK_REALTIME. From Macs N.
|
|
|
|
* Network Utilities:
|
|
|
|
- Add a very primitive NTP client.
|
|
- DNS resolver: Long needed major clean up for coding style and
|
|
unification of naming conventions (resolv vs dns).
|
|
|
|
* Common Drivers:
|
|
|
|
- Add a new MTD driver that can be used to contain another driver and
|
|
force its apparent sector size to be 512 bytes.
|
|
- If DCD can support queuing of stall requests, then the USB MSC stall
|
|
work around delays are not necessary.
|
|
- Redesign threading module used with the USB MSC driver. It was using
|
|
pthreads before and these were changed to a kernel thread. The reason
|
|
for this has to do with task grouping: A pthread is a memory of the
|
|
group of the task that started it. A kernel thread is independent of
|
|
the task that started in (other than knowing it as the parent). This
|
|
allows me to remove so kludge logic to "deparent" the pthread on
|
|
startup.
|
|
- Update the MIO183QT-9A LCD driver to support reading from the LCD.
|
|
From Toby Duckworth.
|
|
- Timer "upper half" driver and l"lower half" interface definition from
|
|
Bob Doiron.
|
|
|
|
* Atmel SAM4E/4S Board Support:
|
|
|
|
- All SAM4E configurations updated to run with 120MHz CPU speed and
|
|
with the CMCC enabled.
|
|
- Support for the SAM4S Xplained Pro board from Bob Doiron.
|
|
- Add watchdog driver. From Bob Doiron.
|
|
|
|
* Atmel SAM4E/4S Drivers:
|
|
|
|
- Add a USB full speed device driver (UDP) for the SAM4E.
|
|
- Add support in HSMCI and SPI drivers to invalidate cached memory if
|
|
the CMCC is enabled.
|
|
- Add logic to handle SPI word widths > 8
|
|
- Port RTC driver from SAMA5 to SAM3/4. From Bob Doiron.
|
|
- HSMCI: Extensions from Bob Doiron needed to support PDC-based HSMCI
|
|
DMA transfers. Verified on the SAM4S Xplained Pro.
|
|
|
|
* Atmel SAMA5:
|
|
|
|
- Add support for the SAMA5D36 chip.
|
|
- Add functions to calculate PLLACK, PCK, and MCK frequencies given
|
|
the main clock frequency.
|
|
- Implemented RAM functions. When booting directly into NOR flash,
|
|
reconfiguring the PLL while executing out of NOR FLASH causes
|
|
crashes. This was fixed by David Sidrane by implementing RAM
|
|
functions. The killer code is copied and executed from ISRAM and
|
|
the crash is avoided.
|
|
|
|
* Atmel SAMA5 Drivers:
|
|
|
|
- Add support for the SAMA5D3 DBGU.
|
|
|
|
* Atmel SAMA5 Board Support:
|
|
|
|
- Add a board support configuration for the Atmel SAMA5D3 Xplained
|
|
board running out of SDRAM. When booting from SDRAM, start-up logic
|
|
needd to query the PMC registers to determine the MCK, PCK, etc.
|
|
- For all SAMA5 boards, added support for 528MHz clocking.
|
|
|
|
* TI Tiva/Stellaris:
|
|
|
|
- Modify the logic to disables the interrupts and sets the default
|
|
interrupt priority so that it uses the ICTR to get the number of
|
|
interrupt lines/registers. This is instead of using some fixed
|
|
number of initializations based a priori knowledge of the number
|
|
of interrupt lines in the MCU.
|
|
|
|
* STMicro STM32
|
|
|
|
- Add support for the STM401RE. From Frank Bennett.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- STM32F4Discovery: Add support to register keyboard and mouse
|
|
classes if so configured. From Leo.
|
|
- Add support for the Nucleo-F401RE board. From Frank Bennett.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- Add STM32 Ethernet IGMP hashing support. From Manuel St�hn.
|
|
- OTG FS Host: USB host tracing added by Leo.
|
|
|
|
* Freescale Kinetis
|
|
|
|
- Modify the logic to disables the interrupts and sets the default
|
|
interrupt priority so that it uses the ICTR to get the number of
|
|
interrupt lines/registers. This is instead of using some fixed
|
|
number of initializations based a priori knowledge of the number
|
|
of interrupt lines in the MCU.
|
|
|
|
* NXP LPC17xx
|
|
|
|
- Modify the logic to disables the interrupts and sets the default
|
|
interrupt priority so that it uses the ICTR to get the number of
|
|
interrupt lines/registers. This is instead of using some fixed
|
|
number of initializations based a priori knowledge of the number
|
|
of interrupt lines in the MCU.
|
|
|
|
* ZiLOG ZNEO Drivers
|
|
|
|
- Added ZNEO ESPI driver.
|
|
|
|
* Library:
|
|
|
|
- Finish incomplete support for ferror(). From Macs N.
|
|
|
|
* Documentation:
|
|
|
|
- UsbTrace.html: Add some discussion of the USB monitor.
|
|
|
|
* Configuration/Build System:
|
|
|
|
- compiler.h: Add macro UNUSED() that can be used to eliminate
|
|
warnings about variables that are set to values that are not
|
|
used.
|
|
|
|
* Debugging Support:
|
|
|
|
- Add a configuration option to enable dumping of the USB trace buffer
|
|
on assertion.
|
|
|
|
* Applications:
|
|
|
|
- IGMP Example: Fill out Kconfig file; update makefile so that the
|
|
IGMP example can be used as an NSH built-in application. From Manuel
|
|
St�hn.
|
|
- lcdrw Example: Fill out empty Kconfig file.
|
|
- touchscreen Example: Add a configuration option to indicate if
|
|
architecture-specific initialized is required, yes or no.
|
|
- System usbmsc: Back out the USBMSC daemon... it is no longer needed
|
|
with the recent fix to the USBMSC class driver.
|
|
- NSH: malloc/free IOBUFFER for 'cat' and 'hexdump' commands instead of
|
|
using the stack. From Bob Doiron.
|
|
- cpuhog, serialblaster, and serialrx Examples: Stress test examples
|
|
added by Bob Doiron.
|
|
|
|
Bugfixes (see the ChangeLog for details). Some of these are very important:
|
|
|
|
* Core OS:
|
|
|
|
- errno_get_errno_ptr() and getpid(): Add some checks. If these
|
|
functions are called very early in initialization before the tasking
|
|
structures are initialized, they would not behave properly.
|
|
|
|
* Networking:
|
|
|
|
- IGMP-related bug fixes from Manuel St�hn.
|
|
- In netdev_findbyaddr(), skip network devices that are in the "down"
|
|
state. It does not make sense to consider an address match with a
|
|
"down" device. From Brennan Ashton.
|
|
|
|
* Network Utilities:
|
|
|
|
- DHCPD: The correct value of the PAD option. Should be zero, not
|
|
one. From Brennan Ashton.
|
|
- Corrections to the NTP client from Manuel Stuehn.
|
|
|
|
* Common Drivers:
|
|
|
|
- usbhost.h: Fix some USB HID-related conditional compilation. From Leo.
|
|
- USB HID mouse driver: Don't include NAKs from the device in the error
|
|
count. From Leo.
|
|
|
|
* TI Tiva/Stellaris:
|
|
|
|
- Add corrected control logic for TM4C125GXL based on logic from Daniel
|
|
Carvalho with modifications. The LM4F120 also works well with this
|
|
change.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- STM32 F2 SPI: Correct a mapping for SPI MOSI pin. From dlsitzer.
|
|
- OTG FS Host: Fixes related to low-speed devices and interrupt
|
|
endpoints from Leo. Necessary in order to use a USB HID mouse
|
|
device.
|
|
- STM32 SDIO: The dmaflight method must be conditioned on
|
|
CONFIG_SDIO_PREFLIGHT. Noted by Pelle Windestam.
|
|
- Sourceforge Ticket #26. up_prioritize_irq should not be called
|
|
if CONFIG_ARCH_IRQPRIO is not defined.
|
|
|
|
* Atmel SAM3/4:
|
|
|
|
- Fix some backward conditional compilation in the start-up logic.
|
|
- Fix initialization of the default interrupt priorities. This is
|
|
a critical bug fix!
|
|
- SAM4S: Fix error in macros that disable peripheral clocking. From
|
|
Bob Doiron.
|
|
|
|
* Atmel SAMA5:
|
|
|
|
- Fix double mapping of SDRAM when executing out of SDRAM. In this
|
|
case, the SDRAM was already mapping in arm_head.S.
|
|
- In clock configuration, the BMS bit handling was fixed to match
|
|
what the HW really does. From David Sidrane.
|
|
- TLB Bufferable bit did not do what I thought it was going to do.
|
|
I though I was selecting a write-through cache, but the result was
|
|
that all caching was disabled and NOR FLASH accesses were very slow.
|
|
- Move the un-definitions of __ramfuncs__ from the clock configuration
|
|
.c file to the .h file. Otherwise, the attribute will be applied
|
|
differently for the prototype and the function definition.
|
|
Sourceforge patch 38 from Luciano Neri.
|
|
|
|
* Atmel SAMA5 Drivers:
|
|
|
|
- Fix a case in the UDPHS driver where received status was not being
|
|
cleared, causing OUT SETUP commands to fail.
|
|
- TWI data sending fails to increment the number of byes transferred
|
|
on first byte sent. from David Sidrane.
|
|
- If running from SDRAM, then BOARD_MCK_FREQUENCY is not a constant
|
|
and cannot be used in conditional compilation. All drivers fixed
|
|
EXCEPT for the PWM and Timer/Counter drivers which will need some
|
|
more extensive redesign.
|
|
|
|
* Atmel SAMA5 Boards:
|
|
|
|
- SAMA5D3x-EK: The red LED is controlled by PE24 which is also the
|
|
camera/ISI interface reset line. So if the a camera is installed,
|
|
then we must avoid controlling the red LED or we inadvertently
|
|
also reset the camera module. Noted by David Sidrane.
|
|
- Header files reference type xcpt_t in certain configurations and
|
|
so must include nuttx/irq.h. This is Sourceforge bug 25 submitted
|
|
by Luciano Neri.
|
|
|
|
* NXP LPC17xx Drivers
|
|
|
|
- arm/src/lpc17xx/Kconfig and lpc17_ethernet.c: The default interrupt
|
|
priority should be default, not the highest priority (2014-4-19).
|
|
|
|
* ZiLOG ZNEO
|
|
|
|
- Fix calculation of timer reload and prescaler. The timer frequency
|
|
was way too fast.
|
|
|
|
* Library:
|
|
|
|
- strncpy(): Change ordering of test and copy. Logic would have
|
|
failed if n=0; one byte was always copying before testing
|
|
for the end of the copy.
|
|
- Fix a counting error in the return value from sscanf(). Noted by
|
|
kfrolov. Also, sscanf() should return EOF if no values were
|
|
converted.
|
|
- Fix a logic error in ftell(). It was simply using the file offset
|
|
and did not take into account data buffered in memory. From Macs N.
|
|
- sccanf(): Use stroul() vs strol() with %u format otherwise, range
|
|
of values is restricted because of sign bit. From kfrolov.
|
|
|
|
* Configuration/Build System:
|
|
|
|
- Fix a build error that occurs when only USB device tracing is enabled.
|
|
|
|
* NuttShell (NSH):
|
|
|
|
- Fix NuttShell version number display in the NSH welcome message.
|
|
version.h was not being included.
|
|
|
|
* Other Applications:
|
|
|
|
- sysinfo: CONFIG_VERSION_BUILD is a string an needs to be
|
|
printed with %s, not %d. Noted by Librae.
|
|
- nxplayer: Compilation failure in one configuration reported by
|
|
Manuel Stuhn.
|
|
- System sdcard: Remove an STM32 dependency. From Bob Doiron.
|
|
- telnetd Example: Naming is confused. In someplaces 'telnetd',
|
|
and in others 'shell.' All changes to telnetd. Noted by Pelle
|
|
Windestam.
|
|
|
|
NuttX-7.3
|
|
---------
|
|
|
|
The 103rd release of NuttX, Version 7.3, was made on June 25, 2014,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-7.3.tar.gz and
|
|
apps-7.3.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS:
|
|
|
|
- Dynamic loader: Framework to support Pascal P-Code as a binary
|
|
format that can be exec'ed from a file system.
|
|
- Dynamic Loader: Extend the binfmt interface to handle error
|
|
conditions where format-specific clean-up is needed in the event
|
|
of error conditions. This is needed by the P-Code binfmt.
|
|
|
|
* Networking
|
|
|
|
- IOB: Add a generic I/O buffer chain logic. This logic uses small,
|
|
pre-allocated buffers that can be chained together to support
|
|
transfers of any size, using fewer resources and also without
|
|
committing in advance to a TCP window size. There is now only
|
|
one I/O type used in the networking and it is these I/O buffer
|
|
chains.
|
|
- TCP Write Buffering: TCP write buffering logic converted to use
|
|
I/O buffer chains.
|
|
- TCP Read-Ahead Buffering: TCP read-ahead buffering logic converted
|
|
to use I/O buffer chains.
|
|
- Includes logic to support throttling of read-ahead buffering if
|
|
the read-ahead buffering is competing with write buffering for
|
|
I/O buffers.
|
|
- Raw Sockets: Add support for the AF_PACKET socket family. From
|
|
Daniel Lazlo Sitzer.
|
|
|
|
* Common Drivers:
|
|
|
|
- W25 Serial FLASH driver extended by Mark Whitehorn to support the
|
|
8Mbit W25Q80BV part.
|
|
- Add support for Fujitsu MB85RS1MT RAMTRON part. From Charles Ash.
|
|
- Enhancements to the generic timer interface to support capture mode
|
|
from Bob Doiron.
|
|
- Add an rxflowcontrol method to the serial interface to better
|
|
support RX flow control. This involves common changes in addition to minor updates to all MCU-specific serial drivers (only fully implemented for the STM32). From Jussi Kivilinna.
|
|
|
|
* Atmel SAM4C
|
|
|
|
- Add support for the SAM4CM family. From Max Neklyudov.
|
|
|
|
* Atmel SAM4E/4S Drivers:
|
|
|
|
- RTT driver from Bob Doiron. Also added high resolution RTC
|
|
emulation using the RTT for the sub-second counter.
|
|
|
|
* Atmel SAM4E/4S Board Support:
|
|
|
|
- The SAM4S Xplained Pro now uses the extended timer/counter
|
|
features. From Bob Doiron.
|
|
- Added a touchscreen and LCD driver for the SAM4E-EK board (the LCD,
|
|
however, not yet fully functional).
|
|
|
|
* Atmel SAMA5:
|
|
|
|
- Optimized, high performance, assembly language memcpy(). This is
|
|
the same optimized memcpy() function that Mike Smith brought in
|
|
for the ARMv7-M with minor tweaks by David Sidrane to work with
|
|
the ARMv7-A.
|
|
- Basic support added for the SAMA5D4 family.
|
|
|
|
* Atmel SAMA5 Drivers:
|
|
|
|
- SAMA5D4: New drivers unique to the SAMA5D4: XDMAC, SAIC, and
|
|
others.
|
|
|
|
* Atmel SAMA5 Board Support:
|
|
|
|
- SAMA5D4-MB: Initial board support for the SAMA5D4-MB/EK boards.
|
|
|
|
* STMicro STM32
|
|
|
|
- Add support for the STM32152 and STM32162 Medium+ density parts
|
|
(plus miscellaneous other improvements to the original STM32151
|
|
logic). From Jussi Kivilinna and Sami Pelkonen.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- Support for the Olimex STM32 H405 board contributed by Martin
|
|
Lederhilger.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- Implement the rxflowcontrol method to the serial interface to better
|
|
support RX flow control. From Jussi Kivilinna.
|
|
|
|
* NXP LPC17xx Drivers:
|
|
|
|
- Added support for the RTC, ADC, DAC, Timers, PWM and MCPWM
|
|
drivers. From Max (himax).
|
|
|
|
* NXP LPC17xx Boards:
|
|
|
|
- Support for the RTC, ADC, DAC, Timers, PWM and MCPWM integrated
|
|
in the LPCXpresso LPC1768 board support. From Max (himax).
|
|
|
|
* Library:
|
|
|
|
- Add support for seek-able streams.
|
|
|
|
* Configuration/Build System:
|
|
|
|
- Restructured network directories, header files, and naming to
|
|
better modularize the networking and to better integrate the
|
|
networking with the rest of NuttX.
|
|
|
|
* Applications:
|
|
|
|
- prun: An NSH built-in application that can be used to run
|
|
Pascal P-Code programs either programatically or from the NSH
|
|
command line.
|
|
- netpkt: A "raw" socket test from Lazlo Sitzer.
|
|
- hex2bin: A library and built-in task to convert from
|
|
Intel HEX to binary format. It can write the binary data to a file or it can store the binary data to memory (to support, for example, a loader).
|
|
|
|
Bugfixes. Only the most critical bugfixes are listed here (see the ChangeLog for the complete list of bugfixes and for additional, more detailed bugfix information):
|
|
|
|
* Core OS:
|
|
|
|
- Dynamic Loader: Fix an error in a symbol table search function.
|
|
Noted by Pelle Windestam.
|
|
- Dynamic Loader: Fix a critical error in exec(); argv was not
|
|
being passed.
|
|
- mq_notify: Test for a valid signal number was inverted; this
|
|
function could not have been working correctly before??? From
|
|
eero.nurkkala.
|
|
- Fix typo in conditional compilation: CONFIG_CLOCK_MONOTONIC vs.
|
|
CLOCK_MONOTONIC. From Manuel St�hn.
|
|
|
|
* Graphics
|
|
|
|
- Fix typos in several RGB conversion macros.
|
|
|
|
* Networking:
|
|
|
|
- Modify TCP timout handling to provent situations where connections
|
|
may not be freed. From Max Holtzberg.
|
|
- Improved TCP fallback allocation logic from Max Holtzberg. Also,
|
|
fallback mechanism is disabled when SO_LINGER is to prevent
|
|
deadlocks.
|
|
- Write Buffering: Add checks from buffer allocation failures. From
|
|
Max/Himax.
|
|
|
|
* Network Utilities:
|
|
|
|
- webserver: httpd_fs_open() should return OK on success and ERROR on
|
|
failure, not 1 and 0.
|
|
|
|
* Common Drivers:
|
|
|
|
- Make sure that all references to up_prioritize_irq() are
|
|
conditioned on CONFIG_ARCH_IRQPRIO. Problem noted by Mike Smith.
|
|
- CC3000: Correct SPI mode for CC3000 is CPOL=0 CHPA=1. From Jussi
|
|
Kivilinna.
|
|
- CC3000: Fix a race condition in thread start-up logic. From Jussi
|
|
Kivilinna.
|
|
- CC3000: Additional fixes including a compilation failure if POLL is
|
|
enabled. From Jussi Kivilinna.
|
|
|
|
* USB Drivers:
|
|
|
|
- CDC/ACM and PL2303 device: Reset RX head to avoid resending last
|
|
serial data when USB cable disconnected/re-connected. From
|
|
Lizhuoyi.
|
|
|
|
* TI Tiva/Stellaris Boards:
|
|
|
|
- The Nucleo-F401RE has no on-board crystals and, hence, needs to run
|
|
with the PLL input from the on-chip HSI clock.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- Serial: Handle configuration for the case of 8-bit data with
|
|
parity. From Freddie Chopin.
|
|
|
|
* Atmel SAM3/4 Boards:
|
|
|
|
- There was a cloned error in all SAM3/4 board configurations (and
|
|
for a few other architectures as well). Button interrupts not
|
|
being disabled after being detached. As a result, unexpected
|
|
interrupts could be received after the button interrupt was
|
|
detached.
|
|
|
|
* Atmel SAMA5:
|
|
|
|
- Fix some critical typos in the SAMA5D3 DMA definitions.
|
|
|
|
* STMicro STM32 Drivers
|
|
|
|
- I2C: Add an alternative I2C implementation for the STM32 F103 that
|
|
works around errata in that specific part. From Patrizio Simona.
|
|
- RTCC: Add retry logic to RTC initialization. It sometimes takes
|
|
longer for the RTC to initialize, at least as noted on an F2 part.
|
|
From Daniel Lazlo Sitzer.
|
|
|
|
* NXP LPC17xx Drivers
|
|
|
|
- GPDMA: Fix an error when DMA is started: The read-modify-write
|
|
fails when the DMA is started. This is because the value read is
|
|
not the same as the value set (on write it is the number of
|
|
transfers to do; on read it is the number of transfers completed).
|
|
From Lizhuoyi.
|
|
|
|
* Library:
|
|
|
|
- snprintf(): If the size passed to snprintf() is zero, then
|
|
snprintf() must write nothing, but instead return the size of the
|
|
buffer needed to hold the entire string. From Sami Pelkonen.
|
|
|
|
* Configuration/Build System:
|
|
|
|
- The alternate console device CONFIG_NSH_CONDEV must not be defined
|
|
unconditionally. This causes errors when using Telnet sessions.
|
|
This was solved by adding CONFIG_NSH_ALTCONDEV: CONFIG_NSH_ALTCONDEV enables or disables the feature then, if
|
|
enabled, CONFIG_NSH_CONDEV provides the alternative console
|
|
device name.
|
|
- Many files: Convert all old-style GCC variadic macros to the C99
|
|
form. Recent GCC changes tightens up that behavior and can cause
|
|
some problems (at least for the IAR compiler for some reason).
|
|
Noted by Bob Grimes.
|
|
- tools/configure.sh: In-place SED edit messes up permissions on
|
|
windows. From Hannes Delago.
|
|
|
|
* Build Tools:
|
|
|
|
- tools/mkfsdata.pl: Apparently, the trailing the 0x00 in http
|
|
server files is seen as a bug in javascript and images. From
|
|
Max/Himax.
|
|
|
|
* Other Applications:
|
|
|
|
- I2C Tool: Fix to show the updated register address on each
|
|
fetch (vs. showing the same starting address each time). From
|
|
Ryan VanSickle.
|
|
- CLE was not returning the terminating newline character. But
|
|
reported by Max kriegleder.
|
|
|
|
NuttX-7.4
|
|
---------
|
|
|
|
The 104th release of NuttX, Version 7.4, was made on August 15, 2014,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-7.4.tar.gz and
|
|
apps-7.4.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS:
|
|
|
|
- Beginnings of a crypto/ subsystem from Max Neklyudov
|
|
- Tickless operation: NuttX now supports a mode with no periodic
|
|
timer interrupts. Rather, timed events are handle via an interval
|
|
timer. This (1) lowers the rate of interrupt processing to timer
|
|
events, (2) gives much high timing resolution, and (3) allows lower
|
|
power modes of operation where the CPU is not constantly being
|
|
interrupted by the timer.
|
|
- Restructured the OS files under sched/ to better support the already
|
|
modular nature of the RTOS.
|
|
|
|
* Networking
|
|
|
|
- Substantial directory and header file reorganization and renaming to
|
|
make the NuttX networking implementation more modular.
|
|
- Add network device ioctl to access PHY registers. From Daniel Lazlo
|
|
Sitzer
|
|
|
|
* Binary Loader:
|
|
|
|
- Various changes associated with symbol tables from Pelle Windestam.
|
|
|
|
* Graphics:
|
|
|
|
- colorcmp(): New utility to compare two colors.
|
|
- The initial background color is now configurable. Includes logic to
|
|
eliminates multiple background updates to get the right color.
|
|
- Minor configuration changes to handle mouse X/Y and touchscreen
|
|
X/Y differently.
|
|
|
|
* File System/Block Drivers:
|
|
|
|
- SmartFS: Increase some variables from uint16_t to uint32_t to handle
|
|
larger device sizes. From Ken Pettit.
|
|
- Add configurable AES encryption support to the block-to-character
|
|
(BCH) driver. This allows any block device to be accessed as an
|
|
encrypted character device. From Max Nekludov
|
|
- Add an MTD layer that will add read-ahead or write buffering to any
|
|
MTD driver (incomplete).
|
|
- Automounter: Add support for an auto-mounter that will automatically
|
|
mount and unmount a file system a media is inserted and removed
|
|
|
|
* Audio/Audio Drivers
|
|
|
|
- WM8904 audio CODEC driver.
|
|
- PCM .WAV file decoder. Fast forward implemented with sub-sampling
|
|
(currently no rewind support).
|
|
- Add a NULL audio device that can be used to simply unit-level testing
|
|
of audio decoders.
|
|
- Audio subsystem now supports interfaces for fast-forward and rewind
|
|
needed by CMediaPlayer; add hooks for equalizer settings needed by
|
|
the WM8904 CODEC.
|
|
|
|
* Other Common Drivers:
|
|
|
|
- MTD: Extend erase block size to 18-bits in order (decrease block
|
|
size to 14-bits) to handle parts with large erase blocks. From Kosma
|
|
Moczek
|
|
- maxTouch: Add support for the Atmel maXTouch touchscreen controller.
|
|
|
|
* Host Simulation:
|
|
|
|
- Provides the timers needed to support the Tickless mode of operation.
|
|
|
|
* Atmel SAM4C:
|
|
|
|
- Add SAM4CM IPC register header file. From Max Neklyudov
|
|
- Various fixes PMC and clock configuration for the SAM4CM port from
|
|
Max Neklyudov
|
|
|
|
* Atmel SAM4E/4S Drivers:
|
|
|
|
- SAM4 AES driver. Contributed by Max Neklyudov
|
|
|
|
* Atmel SAMA5:
|
|
|
|
- Add logic to redirect all SAMA5D4 interrupts to the AIC
|
|
- Add a configuration option to reserve DRAM for a framebuffer when
|
|
executing out of DRAM. This optional was available before when
|
|
executing out of NOR, but needs to work a little differently in
|
|
this case.
|
|
- Add SAMA5 slow (32.768KHz) clock support.
|
|
- Add support for the ARM L2CC-PL310 L2 cache. The system runs with
|
|
L2CC cache enabled but there is some issues still with the LCD DMA;
|
|
I suspect that the memory timing configuration for L2CC needs to
|
|
be tuned.
|
|
- Provides the timers needed to support the Tickless mode of operation.
|
|
|
|
* Atmel SAMA5 Drivers:
|
|
|
|
- XDMAC-based HSCMI driver for the SAMA5D4
|
|
- Adapt the SAMA5D3 LCDC driver to work with the SAMA5D4 which has
|
|
no hardware cursor.
|
|
- PIO: Add a new interface sam_pio_forceclk() that can be used to
|
|
force PIO clocking on. I am afraid I was too conservative with
|
|
PIO clocking in the initial design; this is the price.
|
|
- TWI: Now supports the up_i2creset() method.
|
|
- TWI: Use sam_pio_forceclk() so that we can read the current state
|
|
of an open-drain output in the TWI reset logic.
|
|
- SSC: SCC Frame Synch Delay and Start Delay are now configurable.
|
|
- PCK: Add the slow clock and the main clocks as options for the
|
|
PCK configuration.
|
|
- Timer/Counter: Can now handle non-constant BOARD_MCK_FREQUENCY. Also
|
|
now supports methods to attach client interrupt handlers
|
|
- One shot and free-running timers. These are wrappers around the low
|
|
level timer/counter logic to provide one-shot and free-running
|
|
timers. These were developed to support the Tickless operation, but
|
|
can be used for any purpose.
|
|
|
|
* Atmel SAMA5 Board Support:
|
|
|
|
- Add a boot loader that runs from ISRAM and loads an Intel HEX file
|
|
into DRAM.
|
|
- Add a configuration that will load a bootloader into AT25 Serial
|
|
FLASH
|
|
- SAMA5D4-EK NSH configuration supports many more features: RTC, HSCMI
|
|
card detection, maXTouch touchscreen, TM7000 LCD, the command line
|
|
media player (currently using the NULL audio device), automounter,
|
|
and others.
|
|
- SAMA5D4-EK: Add an NxWM configuration using the TM7000 LCD with
|
|
the maXTouch multi-touch touchscreen.
|
|
- SAMA5D4-EK NxWM: Uses new, larger icons in configuration instead of
|
|
scaling.
|
|
- SAMA5D4-EK NxWM: The NxPlayer and audio system are now enabled in
|
|
the default configuration (but currently using the NULL audio
|
|
device). The automounter is used to automatically mount media
|
|
on an SD card.
|
|
- SAMA5D3x-EK: Add a configuration to support the command line
|
|
NxPlayer and to verify the WM8904 CODEC driver.
|
|
|
|
* STMicro STM32:
|
|
|
|
- Add support for the STM32F103RC and RD. From Kosma Moczek
|
|
- Add a procfs entry to show the state of the CCM heap usage.
|
|
From Pelle Winderstam
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- Unconfigure GPIO pins when closing a serial port to prevent back
|
|
effects from back-powering on the TX pin. From Kosma Moczek
|
|
|
|
* NXP LPC17xx Drivers:
|
|
|
|
- ADC: Added burstmode ADC conversion mode, with CONFIG_ADC_BURSTMODE
|
|
option in Kconfig. From Max
|
|
- Ethernet: Added option to use the kernel worker thread to do most of
|
|
the workload with CONFIG_NET_WORKER_THREAD option in Kconfig. From Max
|
|
- Ethernet: Critical bugfix: From time to time (after some hours) the
|
|
Ethernet receiver would lose one receive interrupt and the IP stack
|
|
never recover because there is no receive watchdog as the transmit
|
|
watchdog. From Max
|
|
|
|
* NXP LPC17xx Boards:
|
|
|
|
- mbed: Port ADC, DAC, and PWM logic from the configs/zkit-arm-1769.
|
|
From Max
|
|
- mbed: Eliminated a problem with PHY DP83848C : it doesn't need a
|
|
specific initialization on mbed. From Max
|
|
|
|
* Library:
|
|
|
|
- Adds support for localtime. From Max Neklyudov
|
|
|
|
* Configuration/Build System:
|
|
|
|
- Make variable definitions 'static const' when possible to save RAM
|
|
usage. From Kosma Moczek
|
|
|
|
* Applications:
|
|
|
|
- sysem/mdio: New PHY tool from Daniel Lazlo Sizter.
|
|
- NSH: Networking logic modified to handler the case of SLIP
|
|
transport. From Max Neklyudov.
|
|
- NSH: Add a configuration to use a USB keyboard for the stdin
|
|
device.
|
|
- NSH: Software assigned MAC address is now configurable. From Lazlo.
|
|
- NSH: Also add an option to let platform-specific logic select the
|
|
MAC address.
|
|
- NSH: There is now a configuration option that will bring up the
|
|
network on an separate thread. Since the network bring-up is
|
|
asynchronous, there are no serial console start-up delays due
|
|
to the network negotiation time.
|
|
- NxPlayer: Changes to integrate with Ken's NxWM::CMediaPlayer.
|
|
- NxPlayer: Add interfaces for fast-forward and rewind needed by
|
|
CMediaPlayer; add interface for equalizer settings needed by the
|
|
WM8904.
|
|
- NxPlayer: Supports new way of identifying the end of the audio
|
|
stream (see the Audio section above).
|
|
- Sudoku: Add a sudoku game.
|
|
|
|
Bugfixes. Only the most critical bugfixes are listed here (see the ChangeLog for the complete list of bugfixes and for additional, more detailed bugfix information):
|
|
|
|
* Graphics:
|
|
|
|
- NxConsole: Fix scrolling for the case of the framebuffer device. In
|
|
this case, the logic for clearing the vacated region at the bottom
|
|
was missing so garbage would scroll up from the last, uncleared
|
|
line.
|
|
|
|
* Networking:
|
|
|
|
- Important fix to the read-ahead buffer queue management: Consumed
|
|
bytes were being trimmed from the head of the queue, but the queue
|
|
head itself was not being updated. From Rony XLN.
|
|
- Fix an error in SLIP escaping. From Max Neklyudov
|
|
|
|
* Network Utilities:
|
|
|
|
- Fix an include file ordering problem when CONFIG_NET_STATISTICS=y.
|
|
- Move statistics from uip.h to new netstats.h to remove a circular
|
|
inclusion problem
|
|
- Various fixes for networking and tiny webserver from Max
|
|
- webclient: Fix to offset calculation from Rony Xln. Prevents 0x0a
|
|
at the beginning of lines.
|
|
- webserver: Fix some configuration usage issues. From Max.
|
|
- webserver: Missing logic to close sockets on loop termination.
|
|
|
|
* File System / Block Drivers:
|
|
|
|
- SmartFS: Fix for a bug that would show up if CONFIG_MTD_BYTE_WRITE
|
|
was not selected and the SMART sector size was larger than the MTD
|
|
device's block size (like it would be if using SMARTFS on larger
|
|
flash devices). From Ken Pettit.
|
|
|
|
* Audio:
|
|
|
|
- Change how the end of the audio stream is detected by the leaf audio
|
|
component. This used to be done by looking for the first partial
|
|
buffer. That does not work with the in-place sub-sampling performed
|
|
by the PCM decoder: That always reduces the size of the buffer so
|
|
that all buffers only partially filled by the time they get to the
|
|
leaf. Now, a flag is set in the audio buffer flags set to indicate
|
|
the final buffer in the stream.
|
|
|
|
* Common Drivers:
|
|
|
|
- RAMLOG putc() method needs to set the errno and return EOF on a
|
|
failure.
|
|
- Add missing configuration option to select the MAX11802 touchscreen
|
|
controller. From Petteri Aimonen
|
|
|
|
* Atmel SAMA5D3/4:
|
|
|
|
- Fix logic in conversion of physical and virtual DRAM addresses when
|
|
running out of DRAM. This is an important bug fix for the SAMA5D3
|
|
and 4 when running out of DRAM .
|
|
- Critical SAMA5D3 and 4 bug fix: PIO clocking must be enabled for
|
|
all input pins or else the value that is read never changes.
|
|
|
|
* Atmel SAMA5D3/4 Drivers:
|
|
|
|
- OHCI: Fix an error in a DEBUGASSERT statement. Caused an
|
|
assertion to fire inappropriately when a low- or full-speed device
|
|
was removed and CONFIG_DEBUG=y
|
|
- OHCI: Pointers to allocated port values were not being
|
|
nullified after being deallocated. This caused some assertions
|
|
to fire when debug was enabled
|
|
- SSC: Needs to account for data offset in audio buffer
|
|
|
|
* ARMv7-M:
|
|
|
|
- Correct the initial value of the BASEPRI register. This was
|
|
apparently never being initialized! From Max
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- I2C: Fix missing configuration of GPIO pins in I2C driver. Fix
|
|
from Alex D.
|
|
- STM32 OTGFS device: Various changes to try to reduce that amount of
|
|
time in interrupts handles and with interrupts disabled. From
|
|
Petteri Aimonen
|
|
|
|
* Atmel SAM3/4 Drivers:
|
|
|
|
- Ethernet: Wrong bits being cleared before OR-ing in new settings.
|
|
- Ethernet: Fix an error in the function that determines the number
|
|
of free TX descriptors. This is an important bugfix on busy
|
|
networks.
|
|
- I2C: Test for read or write operation was reversed. How could
|
|
this have worked before?
|
|
|
|
* Atmel SAM3/4 Boards:
|
|
|
|
- SAM4S Xplained-Pro: Correct description of LEDs and usage. From
|
|
Kosma Moczek
|
|
|
|
* Atmel SAMA5:
|
|
|
|
- PIO: Fix definitions that could disable PIO interrupt support if only
|
|
PIOE interrupts were enabled
|
|
- PIO: Macro SAM_PION_VBASE is not define-able for the SAMA5D4 and must
|
|
be replaced with a table lookup.
|
|
- PIO: Fix a typo in Schmitt trigger configuration; Configure pin as a
|
|
vanilla input first so that final pin configuration is more read-able
|
|
(i.e., easier to debug)
|
|
- PIO: Logic for Schmitt trigger selection backward
|
|
- SAMA5D4: Correct system timer frequency. Input clock is MCK/2, not MCK.
|
|
|
|
* Atmel SAMA5 Drivers:
|
|
|
|
- Ethernet: Wrong bits being cleared before OR-ing in new settings.
|
|
- Ethernet: Fix an error in the function that determines the number
|
|
of free TX descriptors. This is an important bugfix on busy
|
|
networks.
|
|
- HSMCI: The 8-byte SCR transfer was failing silently with the DMA
|
|
transfer, leaving the SD card in single bit mode. Fixed by adding
|
|
a non-DMA read transfer mode.
|
|
- HSMCI: Fix a problem on card insertion/removal callback handling.
|
|
Interrupts were being disable so that the callbacks occurred with
|
|
interrupts disabled. This resulted in loss of some interrupts and
|
|
some not-so-good behaviors. The solution is to perform all
|
|
callbacks on the work thread unconditionally
|
|
|
|
* Atmel SAMA5 Boards:
|
|
|
|
- PIO: Fix some cloned errors in SAM GPIO interrupt setup
|
|
|
|
* NXP LPC17xx Drivers:
|
|
|
|
- Ethernet: Comment out an assertion that is reported to fire
|
|
inappropriately. From Max
|
|
|
|
* Library:
|
|
|
|
- stdint.h: Correct naming of [U]INT_LEASTn_{MAX|MIN} and
|
|
[U]INT_FASTn{MAX|MIN}. From Kosma Moczek
|
|
- unistd.h: POSIX definitions should be defined to a value. rom Kosma
|
|
Moczek
|
|
- Fixes associated with rint() and related interfaces in the math
|
|
library.
|
|
|
|
* Configuration/Build System:
|
|
|
|
- NAME_MAX not available on SunOS; use FILENAME_MAX or MAXNAMELEN.
|
|
Noted by Douglas Beattie
|
|
|
|
* Applications:
|
|
|
|
- NSH: if # appears on line, need to comment ignore additional
|
|
commands on the line
|
|
- NxPlayer: Check for file read errors and end-of-file with zero
|
|
bytes read. Other error handling corrected as well.
|
|
- NxPlayer: NxPlayer needs to set curbyte field to zero before
|
|
enqueuing a buffer. Otherwise, it looks like beginning of the
|
|
buffer has already been consumed.
|
|
|
|
NuttX-7.5
|
|
---------
|
|
|
|
The 105th release of NuttX, Version 7.5, was made on September 28, 2014,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-7.5.tar.gz and
|
|
apps-7.5.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS:
|
|
|
|
- Watchdog Timer Allocation: (1) If we run out of pre-allocated
|
|
watchdog times, the logic will now allocate additional timers
|
|
from the heap. A reserve of pre-allocated watchdog timers is
|
|
maintained so that there will always be timers available for
|
|
interrupt handlers. (2) Added support for statically allocated
|
|
watchdog timer
|
|
- Address Environment Support: (2) New OS APIs integrated into all
|
|
platform-specific context switching logic (up_block_task(),
|
|
up_unblock_task(), _exit(), and others).
|
|
- Kernel Build Support: (1) The MPU based "kernel build" renamed to a
|
|
protected build (CONFIG_BUILD_PROTECTED); added support for the a
|
|
new MMU-based "kernel build" (CONFIG_BUILD_KERNEL), (2) The system
|
|
call library can now be built with CONFIG_NUTTX_KERNEL. New
|
|
selection: CONFIG_LIB_SYSCALL.
|
|
- System Startup: Add configuration options to start the system from
|
|
a program on a file system (versus an address in memory).
|
|
- Startup Parameter Passing. There used to be two ways to pass
|
|
parameters to new tasks, depending upon the configuration: Either
|
|
(1) argv[] as created as an array with each string strdup'ed. Or
|
|
(2) argv[] array and strings were created on the stack before the
|
|
new task was started. Now, there is only one way, way (1). Way
|
|
(2) might be slightly more compact, but this is not worth carry the
|
|
complexity of two different ways of doing the same thing.
|
|
- Board Initialization: Add capability to perform initial board
|
|
initialization on a separate worker thread. This is needed because
|
|
there are many cases where initialization logic cannot execute on
|
|
the start-up/IDLE thread. That is because blocking or waiting is
|
|
not permitted on the IDLE thread.
|
|
|
|
* Memory Management:
|
|
|
|
- Granule Allocator: (1) Add a new function to reserve un-allocatable
|
|
regions in the granule heap. (2) Add interfaces to support
|
|
un-initializing a granule allocator.
|
|
- Page Allocator: Add a simple physical page allocator based on the
|
|
existing NuttX granule allocator. I am not certain if the granule
|
|
allocator is sufficiently deterministic for long range use, but it
|
|
gets get a page allocator in place for testing very quickly.
|
|
- Remove CONFIG_MM_MULTIHEAP. Non-multiheap operation is no longer
|
|
supported.
|
|
- sbrk(): sbrk() is now supported in the kernel build to permit
|
|
dynamically sized, per-process heaps.
|
|
- Per-Process Heaps: Space at the beginning of the process data space
|
|
is now reserved for user heap management structures. In the kernel
|
|
build mode, these heap structures are shared between the kernel and
|
|
use code in order to allocate user-specific data.
|
|
- User Heap Management: When a privileged thread exits, we have to
|
|
use the kernel allocator to free memory; when an unprivileged thread
|
|
exits, we don't have to do anything... heap memory will be cleaned
|
|
up when the address environment is torn down.
|
|
- Inter-Process Shared Memory Support: (1) Add implementation and
|
|
documentation for shmget(), shmctl(), shmat(), and shmdt(). (2)
|
|
Add system system calls to support the user call gate to the shared
|
|
memory interfaces. (3) Add platform-specific interface definitions
|
|
needed to support the shared memory feature.
|
|
- Virtual Page Allocator: Add support for a per-process virtual page
|
|
allocator. This is a new member of the task_group_s structure. The
|
|
allocator must be initialized when a new user process is started and
|
|
uninitialize when the process group is finally destroyed. It is
|
|
used by shmat() and shmdt() to pick the virtual address onto which
|
|
to map the shared physical memory.
|
|
|
|
* File Systems/Block Drivers/MTD:
|
|
|
|
- SMART FS and SMART FS procfs updates from Ken Pettit.
|
|
- The MTD Read-ahead/Write buffer layer appears is now functional.
|
|
|
|
* Binary Formats:
|
|
|
|
- Add logic to initialize the per-process user heap when each user
|
|
process is started.
|
|
|
|
* Graphics:
|
|
|
|
- Change all occurrences of NxConsole to NxTerm.
|
|
|
|
* Networking:
|
|
|
|
- PHY Interrupts: (1) Standardize a PHY interrupt attachment
|
|
interface. (2) Add support for an ioctl that can be used to notify
|
|
an application when there is a change in the network status
|
|
signalled by a PHY interrupt.
|
|
- Improved Send Logic: In the past, the first packet send to a new
|
|
network peer would fail; there would be no entry in the ARP table
|
|
for the peer and so an ARP request could replace that first packet.
|
|
Now as an option if CONFIG_NET_ARP_SEND=y, all send logic will (1)
|
|
check if the peer MAC address is in the ARP table and, if not, (2)
|
|
send ARP requests periodically to get the mapping and (3) wait for
|
|
the ARP response. Then (4) when the ARP response is received then
|
|
the actual send logic will be initiated. Thus there may be a delay
|
|
with the first packet sent to a new peer, but the packet should not
|
|
be lost
|
|
|
|
* Host Simulation:
|
|
|
|
- Emulated SPI FLASH driver for the sim target from Ken Pettit.
|
|
|
|
* Intel x86:
|
|
|
|
- The default host is now x86_64 and the -m32 option will be
|
|
automatically selected for simulation builds.
|
|
|
|
* Intel 8051 Family:
|
|
|
|
- Removed all support for the 8051 family architecture from the NuttX
|
|
source tree. The obsoleted code along with the removal patch can
|
|
now be found at misc/Obsoleted/. This code was removed because (1)
|
|
although some functionality has been demonstrated, I am not aware of
|
|
any really successful ports of NuttX to any 8051, and (2) the 8051,
|
|
with its hardware stack, forces limitations and complications to the
|
|
other architectures and make growth and development of NuttX more
|
|
complex.
|
|
|
|
* ZiLOG ZNeo Boards:
|
|
|
|
- configs/16z: Support for this board has been removed from the NuttX
|
|
source tree (but still can be found in the misc/Obsoleted
|
|
directory). This port is not ready for usage but may return to the
|
|
NuttX tree at some point in the future.
|
|
|
|
* Atmel SAM3/4 Boards:
|
|
|
|
- SAM4E-EK: Add (1) a fully-functional ILI9341-based LCD driver and
|
|
(2) a fully-functional NxWM configuration.
|
|
|
|
* ARMv7-A:
|
|
|
|
- Address Environments: Add support for application address
|
|
environments using the Cortex-A MMU. Implement standardized
|
|
platform-specific interfaces of NuttX address environment
|
|
support.
|
|
- Cache Operations: Implement standardized, platform-specific cache
|
|
operations. These are called from the ELF loader in order to flush
|
|
D-cache and invalidate I-cache after an ELF module has been loaded
|
|
into memory. With this change, ELF modules work correctly on the
|
|
SAMA5/Cortex-A platform.
|
|
- Kernel Build: (1) Add implementations of system call gate. (2) Add
|
|
CRT0 start-up file that can be linked with separately built user
|
|
programs. (3) Add support for delivery of use-mode signals in the
|
|
kernel build. (4) Add logic to initialize the per-process user heap
|
|
when each user process is started. (5) ARMv7-A exception handling
|
|
needs to work a little differently if we support user mode
|
|
processes. This is because R13 and R14 are paged differently
|
|
between user and SVC mode.
|
|
- Shared Memory Support: (1) Add logic necessary to handle remapping
|
|
of shared memory on context switches. (2) Extend virtual/physical
|
|
address conversions to include addresses in shared memory. (3) Add
|
|
implementation of platform-specific shared memory support.
|
|
|
|
* Atmel SAMA5D Drivers:
|
|
|
|
- Implement all network ioctls, including the new ioctl to setup PHY
|
|
event notifications.
|
|
- In kernel build with address environment, need logic to map user
|
|
virtual addresses to physical addresses, and vice versa.
|
|
|
|
* Atmel SAMA5D Boards:
|
|
|
|
- SAMA5D3 Xplained, SAMA5D3-EK, and SAMA5D4-EK: Convert existing
|
|
board specific PHY interrupt interfaces to use newly defined
|
|
standard interface.
|
|
- SAMA5D4-EK: Add a configuration for testing the kernel build
|
|
configuration. There are configurations to boot either from an SD
|
|
card or from and in-memory ROMFS file system.
|
|
- SAMA5D4-EK: Add documentation/support for Rev E. board.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- Ethernet: Modified to support the change to the network ioctl
|
|
signature changes. Also add support for new ioctl to setup PHY
|
|
event notifications.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- STM32F4Discovery with STM32F4DIS-BB: Add a network enabled NSH
|
|
configuration for the STM32F4Discovery board with the STM32F4DIS-BB
|
|
base board installed. Includes support for the microSD card slot on
|
|
the STM32F4DIS-BB base board.
|
|
|
|
* TI Tiva Drivers:
|
|
|
|
- Add support for the TI CC3200. From Jim Ewing.
|
|
|
|
* TI Tiva Boards:
|
|
|
|
- Add support for the TI CC3200 Launchpad. From Jim Ewing.
|
|
|
|
* C Library:
|
|
|
|
- Re-implemented poll() delay using sem_timedwait().
|
|
|
|
* Configuration/Build System:
|
|
|
|
- Export Target: In the kernel or protected builds, (1) only the user
|
|
libraries should be exported, (2) do not copy internal header files
|
|
or build scripts if this is a kernel or protected build, and (3)
|
|
needs to bundle up the user C startup file (crt0), not the kernel
|
|
head object for the kernel and protected builds.
|
|
- Add logic that will permit us to build user libraries with different
|
|
CFLAGS than kernel code. This is needed because we need the
|
|
-fno-common option when building ELF code to prevent SHN_COMMON
|
|
relocations.
|
|
|
|
* Applications:
|
|
|
|
- NSH: Extend the NSH network initialization logic. There is now an
|
|
option that will create a network monitor thread that will monitor
|
|
the state of the link. When the link goes down, the code will
|
|
attempt to gracefully put the Ethernet driver in a down state; When
|
|
the link comes back, the code will attempt to bring the network back
|
|
up.
|
|
- ELF Example: The ELF test/example has been extended so the
|
|
individual ELF test programs can link against the SYSCALL library
|
|
(if it is available) or against the C library to eliminate or
|
|
minimize the need for symbol tables.
|
|
- Change all occurrences of NxConsole to NxTerm.
|
|
- MTDRWB Example: Add an example to test MTD R/W buffering.
|
|
- OS Test Example: Add a trivial test of sem_timedwait.
|
|
|
|
* Application Configuration/Build System:
|
|
|
|
- Import Target: (1) Add logic that will allow building applications
|
|
against a NuttX export package (vs. the nuttx/ source tree). (2)
|
|
Add .config file to export package. (3) Create apps/import. Create
|
|
apps/import/Make.defs that does things like define CFLAGS; ELF build
|
|
requires -fno-common in CFLAGS. Copy some base logic from
|
|
nuttx/tools/Config.mk to apps/import/Make.defs. (4) Add
|
|
apps/import/scripts/gnu-elf.ld GCC linker script for ELF import
|
|
builds.
|
|
- All Makefiles: (1) Add an install target to all makefiles. For
|
|
the import build, the top-level Makefile now does two passes: (1)
|
|
builds libapp.a, then (2) installs the programs into apps/bin. (2)
|
|
Add program installation for CONFIG_BUILD_KERNEL in all Makefiles
|
|
that build a main(). (3) For kernel build, the object file
|
|
containing main cannot go into library because of name collisions.
|
|
The object file must be handled as a special case in every Makefile.
|
|
- All Built-In Programs: With kernel build (CONFIG_BUILD_KERNEL),
|
|
entry point to all tasks is main(), not some xyz_main().
|
|
- NSH: Several commands must be disabled in the kernel build because
|
|
they depend on interfaces that are not available outside of the
|
|
kernel: dd, df, losetup, mkfatfs, mkdr, and ps.
|
|
- apps/tools/: (1) Add mkimport.sh to expload an NuttX import package
|
|
and install in apps/import. (2) Add mkromfsimg.sh script to create
|
|
a BOOT ROMFS filesystem image.
|
|
- ELF and NxFLAT Examples: Do not build test cases that use
|
|
task_create() if there is an address environment.
|
|
|
|
* Tools:
|
|
|
|
- refresh.sh: Add a tool to make refreshing configurations easier
|
|
when you want to do a lot of them.
|
|
- mksyscall.c: Build syscalls that do not need header files.
|
|
- mkexport.sh: Add .config file to export package.
|
|
- See above for new apps/tools scripts.
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* Processes. Much of the work in this release is focused on the
|
|
realization of Unix-style user processes in NuttX. There is more to
|
|
be done, however. The full roadmap and status is available at:
|
|
http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
|
|
|
|
* XMega: There are some fragments in place for an XMega port. That
|
|
port has not really started, however.
|
|
|
|
* Galileo: Similarly, there are fragments in place for an Intel Galileo
|
|
port. The port not been started in earnest either.
|
|
|
|
Bugfixes. Only the most critical bugfixes are listed here (see the ChangeLog for the complete list of bugfixes and for additional, more detailed bugfix information):
|
|
|
|
* Core OS:
|
|
|
|
- Kernel build fixes: (1) IDLE TCB setup needs to indicate that the
|
|
IDLE thread is a privileged, kernel thread. (2) Don't build
|
|
task_create() or task_spawn() interfaces if there is an address
|
|
environment. (3) posix_spawn() kernel proxy thread should be a
|
|
kernel thread, not a user task.
|
|
- Several pthread interfaces: Add const storage class to phthread
|
|
parameters. From Freddie Chopin.
|
|
- sched/clock: Remove vestiges of g_tickbias; need, instead, to apply
|
|
time bias to g_basetime in order to provide the correct system time.
|
|
- System Calls: (1) Several typos fixed; corrected integration of
|
|
exevc(), execvl(), posix_spawn, and posix_spawnp system calls. (2)
|
|
If we are configured to use a kernel stack while in SYSCALL handling,
|
|
then we need to switch back to the user stack to deliver a signal.
|
|
|
|
* File Systems/Block Drivers/MTD:
|
|
|
|
- procfs: Fix some procfs breakage introduced by reorganizing some
|
|
non-reorganizable data structures. From Ken Pettit.
|
|
- AT45: In at45db_bwrite , the buffer is not increased when writing
|
|
more than 1 page. Sourceforge bug #34.
|
|
|
|
* Binary Formats:
|
|
|
|
- ELF relocations. Some relocation types do not have a named symbol
|
|
associated with them. The design did not account for that case.
|
|
- ELF Loader: Critical bugfix.. BSS was not being cleared.
|
|
|
|
* Memory Management:
|
|
|
|
- Granule allocator initialization uses wrong allocator to setting
|
|
aside kernel memory.
|
|
- Add a flag to group structure: If the group is created by a kernel
|
|
thread, then all resources in the group must be privileged.
|
|
|
|
* Cryptogrphic Support:
|
|
|
|
- crypto/cryptodev.c: Path segments reversed in include file path. Noted by Brennan Ashton.
|
|
|
|
* Common Drivers:
|
|
|
|
- Common CAN upper-half: In can_txdone, waiters on the semaphore
|
|
should be informed regardless of the return value of can_xmit. First
|
|
it returns -EIO if there are no new packets, and second the
|
|
information of the waiters is about the last transferred packet.
|
|
From Daniel Lazlo Sitzer.
|
|
|
|
* ARM:
|
|
|
|
- System Calls: Fix a typo in system call when fetching parameter from
|
|
the stack: regs[REG_PC]+4 is the address, not regs[REG_PC+4].
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- STM32 F401 UART: Correct support for USART6 on this chip. From
|
|
Freddie Chopin.
|
|
- STM32 FLASH fixes: use size_t instead of uint16_t, make interface
|
|
more generic. From Freddie Chopin.
|
|
- Fix for UART7 and UART8 on STM32 clock enable from Aton.
|
|
- CAN: At the end of the interrupt handler, the interrupts were being
|
|
disabled, if all packets have been transferred when the interrupt
|
|
handler was invoked. This is problematic, because the interrupt
|
|
handler calls can_txdone of the upper half which can enqueue new
|
|
packets to send. Removed the block altogether, because can_txdone
|
|
calls can_xmit which disables interrupts if there are no new packets
|
|
to send. From Daniel Lazlo Sitzer.
|
|
- Additional STM32 CAN correction suggested by Max Holtzberg.
|
|
|
|
* STMicro ST32 Boards:
|
|
|
|
- configs/mikroe-stm32f4: Fix a few compile bugs and minor corrections
|
|
to the mikroe-stm32f4 configuration source. From Ken Pettit.
|
|
|
|
* ARM9/ARMv7-A:
|
|
|
|
- System Calls: Fix ARM7/9 and Cortex-A SYSCALLs: For threads in SVC
|
|
mode, the SVC instructions clobbers R14. This must be taken account
|
|
in the inline assembly.
|
|
- Task Setup: All tasks, even user mode tasks, must start in
|
|
supervisor mode until they get past the start-up trampoline.
|
|
- ARMv7-A: Modify up_fullcontextrestore() for CONFIG_BUILD_KERNEL.
|
|
It changed CPSR while in kernel. That will crash if the new CPSR is
|
|
user mode while executing in kernel space. Fixed by adding a
|
|
SYS_context_restore system call. There is an alternative, simpler
|
|
modification to up_fullcontextrestore() that could have been done:
|
|
It might have been possible to use the SPSR instead of the CPRSR and
|
|
then do an exception return from up_fullcontextrestore(). That
|
|
would be more efficient, but I never tried it.
|
|
|
|
* Atmel SAM3/4 Boards:
|
|
|
|
- SAM3X/Arduino Due: Fix typo in sam3x_periphclks.h; add SCLK
|
|
definitions to board.h header file. From Fabien Comte.
|
|
- SAM3 RTT: Only SAM4 family has RTTDIS bit in the MR register.
|
|
SourceForge bug #33 from Fabien Comte.
|
|
|
|
* C Library:
|
|
|
|
- sscanf(): NuttX libc tried to guess how many characters to parse,
|
|
extracted them into a buffer, then ran strtol() on that buffer.
|
|
That guess was often wrong. A better approach would be to call
|
|
strtol() directly on the input data, using the endptr return value
|
|
to determine how many characters to skip after parsing. From Kosma
|
|
Moczek.
|
|
- Corrected atan2 implementations from Denis Arnst.
|
|
- Change to lib_dtoa() to fix precision error from trailing zeroes.
|
|
From Bob Doiron.
|
|
|
|
* Applications:
|
|
|
|
- Fix NSH PS command: If there are no arguments, it could print
|
|
garbage for argument list.
|
|
|
|
* Configuration/Build System:
|
|
|
|
- Null Example: Need to include config.h it order know if this is or
|
|
is not a kernel build. This problem still exists in several other
|
|
file that may need to define main().
|
|
|
|
NuttX-7.6
|
|
---------
|
|
|
|
The 106th release of NuttX, Version 7.6, was made on November 26, 2014,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-7.6.tar.gz and
|
|
apps-7.6.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS:
|
|
|
|
- Moved name semaphore and message queue support out of the OS and
|
|
into the VFS. These improves the architecture by unifying the
|
|
management of named resources, removes redundant resource management
|
|
logic, and makes named semaphores and message queues visible in the
|
|
file system. By default, these are visible at /var/lock and
|
|
/var/mqueue.
|
|
- Add SIGPOLL for use as part of the AIO implementation.
|
|
- Remove CONFIG_MAX_TASK_ARGS configuration. There is now no
|
|
predetermined limit on the number of arguments that may be passed
|
|
to a new task on start-up.
|
|
|
|
* Work queues:
|
|
|
|
- Add support for priority inheritance on the low priority worker
|
|
queue. That is, if a higher priority thread has scheduled work, the
|
|
priority of the low priority worker thread(s) will be boost to the
|
|
priority of the queuing thread. At work is performed at at least
|
|
thread priority of the scheduling thread. If there are multiple
|
|
worker threads, then all threads get reprioritized. Currently
|
|
only implemented for AIO.
|
|
- Add support for multiple low-priority work queue threads. This
|
|
allows individual worker threads to block indefinitely for I/O as
|
|
necessary without halting the entire work queue.
|
|
|
|
* VFS/General Drivers:
|
|
|
|
- Implement create() (as a macro).
|
|
- Add pread() and pwrite(). Also added pread() and pwrite()
|
|
system calls.
|
|
- AIO: Add aio_read(), aio_write(), aio_return(), aio_error(),
|
|
aio_suspend(), aio_canel(), lio_listio(), and aio_fsync(). This
|
|
logic minimizes the creation of new threads by using the new
|
|
features also added to the low priority work queue with this
|
|
release. It uses the new low priority worker thread interface
|
|
to adjust the priority of the worker thread according to the
|
|
priority of the AIO client thread
|
|
- Implement standard syslogmask() to control logging (also removing
|
|
the non-standard syslog_enable()).
|
|
|
|
* File Systems/Block Drivers/MTD:
|
|
|
|
- Extend MTD support to the M25P16. From S�bastien Lorquet.
|
|
|
|
* Drivers:
|
|
|
|
- BCH (Block-to-Character): Add support for seeking in BCH. From
|
|
S�bastien Lorquet.
|
|
|
|
* Graphics Support/Graphics-Related Drivers:
|
|
|
|
- Add support for a generic ILI9341 LCD driver. From Marco Krahl.
|
|
- Add ANSI/VT100 foreground and background color commands.
|
|
- Add driver for ST7565 LCD that works with NHD-C12864KGZ display. From Pierre-noel Bouteville.
|
|
|
|
* Networking:
|
|
|
|
- Verify that multiple networks can be supported.
|
|
- Add support for the case where there are multiple networks: One
|
|
being Ethernet and the other not (SLIP, PPP, ...). The primary
|
|
difference from the standpoint of the stack is that (1) ARP may or
|
|
may not be necessary, (2) the size of the link layer header will
|
|
vary, and (3) different MTUs and TCP receive windows may be used
|
|
with each link. Suggested by Brennan Ashton.
|
|
- Extensions to UDP and TCP connection structures for the case of
|
|
multiple networks. In this case, assigned port numbers only have to
|
|
be unique with respect to the IP address. So, for example, you
|
|
could have multiple port 80's, one on each network.
|
|
|
|
* Host Simulation:
|
|
|
|
- Removed the old, strange up_stdio.c and implemented a simulated UART
|
|
driver to provide the console input. The new logic starts a
|
|
separate, Linux domain pthread to read the console input in raw mode
|
|
and provides the incoming data to NuttX via standard NuttX domain
|
|
IPCs.
|
|
- Add support for 64-bit longjmp/setjmp in simulator platform. This
|
|
will permit operation of the simulation natively on a 64-bit
|
|
platform.
|
|
|
|
* ARMv7-M:
|
|
|
|
- Add ARMv7-M CMSIS ITM header file and library. From Pierre-noel
|
|
Bouteville.
|
|
- Add ARMv7-M CMSIS DWT and TPI header files. From Pierre-noel
|
|
Bouteville.
|
|
- Add ARMv7-M support to use ITM for SYSLOG debug output. Includes
|
|
logic from Pierre-noel Bouteville.
|
|
|
|
* Atmel SAM3/4 Drivers:
|
|
|
|
- Add support for SAM3/4 basic serial TERMIOS and flow control.
|
|
There are issues with IFLOW control: PDC or DMAC support is
|
|
required.
|
|
|
|
* Atmel SAM3/4 Boards:
|
|
|
|
- SAM4E-EK: Add support for PHY interrupt.
|
|
|
|
* Atmel SAMA5D Boards:
|
|
|
|
- SAMA5D3-Xplained: Add a configuration that provides a simple test
|
|
for the EMAC and GMAC on the SAMA5D3 working together.
|
|
- SAMA5D4-EK: Add a configuration that provides a simple test for the
|
|
EMAC0 and EMAC1 on the SAMA5D4 working together.
|
|
|
|
* Freescale KL:
|
|
|
|
- Add an I2C header file for the Freescale KL family. From Alan
|
|
Carvalho de Assis.
|
|
|
|
* NXP LPC32xx:
|
|
|
|
- Add support for tickless operation using the NXP LPC43xx. From
|
|
Brandon Warhurst.
|
|
|
|
* SiLabs EFM32:
|
|
|
|
- Add a basic port for the SiLabs EFM32 family. Includes many files
|
|
contributed by Pierre-noel Bouteville .
|
|
|
|
* SiLabs EFM32 Boards:
|
|
|
|
- Add board support for the EFM32 Gecko Starter Kit.
|
|
- Add board support for the Olimex EFM32G8809128 STK. NOTE: I am
|
|
unable to test this configuration due to tool-related issues.
|
|
- Add board support for the SiLbas EFM32GG Giant Gecko Starter kit.
|
|
|
|
* STMicro STM32:
|
|
|
|
- Add support for the STM32 F411RE from Serg Podtynnyi.
|
|
- Add support for the STM32F103RG. From Murilo Ponte.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- STM32 F4: Add logic that implement true high speed support for the
|
|
STM32 OTGHS peripheral and concurrent support for both LS and HS
|
|
OTG. New OTGHS drivers provided for both device and host. From
|
|
Brennan Ashton.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- STM32 Nucleo-F411RE: Extend this board configuration to also support
|
|
the Nucleo-F411RE. From Serg Podtynnyi.
|
|
- Add support for the STM32F429i Discovery's LCD (SPI based). From
|
|
Marco Krahl.
|
|
- configs/stm32f100rc_generic: Removed this generic board configuration.
|
|
I have decided to stop support of generic board configurations. Generic
|
|
board configurations do not provide support for any specific hardware
|
|
but can be useful only if there are not other examples for the setup
|
|
for a particular architecture. Not the case here.
|
|
|
|
* C Library:
|
|
|
|
- Add a mostly bogus wchar.h header file. This file is mostly bogus
|
|
because none of the wide character operations are currently
|
|
supported in the Nuttx C library. The file does provide the wchar_t
|
|
types needed by some software, however.
|
|
- Add isatty() function. From Alan Carvalho de Assis.
|
|
- Add mktemp(), mkstemp(), tmpnam() and tempnam().
|
|
|
|
* Configuration/Build System:
|
|
|
|
- Add a PRELINK macro to Config.mk. From Kriegleder.
|
|
- compiler.h: Defines inline functions as not instrumented - this is
|
|
relevant for anyone using instrumentation. From Lorenz Meier.
|
|
|
|
* Applications:
|
|
|
|
- apps/interpreter/bas: Added in the Michael Haardt's BAS 2.4 adapted
|
|
for use by NuttX by Alan Carvalho de Assis. Includes support for
|
|
VT100 terminals and color commands.
|
|
- Examples: Added bastest/ which holds a special version of Michael
|
|
Haardt's BAS 2.4 test files adapted for use by NuttX on a ROMFS file
|
|
system.
|
|
- Examples: Add a simple UDP relay bridge for testing configurations
|
|
with multiple networks. Includes a host-side test driver for
|
|
testing the bridge.
|
|
- Netutils: Add implementation of timeouts for the netutils webclient.
|
|
From Brennan Ashton
|
|
- NSH: Add support for a custom NSH ROMFS startup image header file
|
|
location. From Martin Lederhilger.
|
|
- OS test: Add a simple test of named semaphores.
|
|
- OS test: Add AIO test case in OS test.
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* Processes. Much of the work in this release is focused on the
|
|
realization of Unix-style user processes in NuttX. There is more to
|
|
be done, however. The full roadmap and status is available at:
|
|
http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
|
|
|
|
* XMega: There are some fragments in place for an XMega port. That
|
|
port has not really started, however.
|
|
|
|
* Galileo: Similarly, there are fragments in place for an Intel Galileo
|
|
port. The port not been started in earnest either.
|
|
|
|
Bugfixes. Only the most critical bugfixes are listed here (see the
|
|
ChangeLog for the complete list of bugfixes and for additional, more
|
|
detailed bugfix information):
|
|
|
|
I ran cppcheck against the entire code base and correct many latent bugs
|
|
including things as serious as memory leaks, two locations where interrupts
|
|
were be disabled but never re-enabled, and errors in the Tickless mode of
|
|
operation. My thanks to the developers of cppcheck! I am impressed!
|
|
|
|
* Core OS:
|
|
|
|
- vfork(): Now that arguments are kept on the stack, the way that
|
|
arguments are passed from parent to child in vfork() must change.
|
|
This bug has always been present, but was not visible with the
|
|
old strdup() way of passing arguments.
|
|
- vfork() problem: If we get to vfork() via system call, then we
|
|
need to clone some system call information so that the return form
|
|
the cloned system call works correctly.
|
|
- Fixes to tickless operation code, especially in alarm mode. From
|
|
Brandon Warhurst.
|
|
- Fix an important bug in the watchdog timer creation logic.
|
|
- Calling mq_timedreceived() with immediate timeout was getting stuck
|
|
and not timing out. Immediate timeout is achieved by setting absolute
|
|
timeout value to past time, for example abstime={ .tv_sec=0,
|
|
.tv_nsec=0 }. However absolute time was converted to relative time
|
|
using unsigned integer arithmetic and resulted large ticks count by
|
|
clock_abstime2ticks, instead of expected negative ticks value.
|
|
Change corrects clock_abstime2ticks() to return negative ticks, if
|
|
absolute time is in the past. From Jussi Kivilinna.
|
|
|
|
* Memory Management:
|
|
|
|
- Fix a place in the memory manager where it explicitly assumed that
|
|
the size of a pointer is 4 bytes. That assumption was OK if the
|
|
actual size is smaller but made the heap unstable when used with
|
|
the x86_64 host simulation.
|
|
- Granule Allocator: If the INTR granule allocator mode is enabled,
|
|
there is no semaphore to destroy. From Lorenz Meier.
|
|
|
|
* Networking:
|
|
|
|
- Network routing: I don't think that the net_route() function has
|
|
ever worked correctly. The source IP was updated in the match
|
|
struct instead of the route IP. From Brennan Ashton.
|
|
- Move and rename IP header flag definitions. The problem fixed here
|
|
is that there IP header flag definitions were not available when TCP
|
|
was disabled. The IP flags are used in ICMP and IGMP.
|
|
- Network routing: Refuse to perform routing table lookups for the
|
|
Broadcast IP address. From Brennan Ashton.
|
|
- Network routing: Add logic to netdev_findbyaddr() to return the
|
|
correct network device for the case where a broadcast
|
|
address is used. This change caused trivial ripples through other
|
|
files because additional parameters are required for
|
|
netdev_findbyaddr() when CONFIG_NET_MULTINIC.
|
|
|
|
* File Systems/Block Drivers/MTD:
|
|
|
|
- NXFFS Dump: Fix problems with redefinitions of fdbg macro. With the
|
|
fix to the syslog prototype, a LOG priority must now be the first
|
|
parameter. Fixed by replacing all occurrences of fdbg with
|
|
syslog(LOG_DEBUG, and eliminating the macro redefinitions. Noted
|
|
by Sebastien Lorquet.
|
|
- poll() was not waking up from signals (for example mq_notify()
|
|
events). From Jussi Kivilinna.
|
|
- poll(): Add proper handling for sem_timedwait errnos. From Jussi
|
|
Kivilinna.
|
|
- include/nuttx/fs/fs.h: Fix typo in conditional compilation. From
|
|
Alan Carvalho de Assis.
|
|
|
|
* Graphics/Graphic-Related Drivers:
|
|
|
|
- Remove warnings when CONFIG_NXTK_BORDERWIDTH is set to zero. From
|
|
Pierre-Noel Bouteville.
|
|
|
|
* Common Drivers:
|
|
|
|
- Make standard syslog and vsyslog POSIX compliant (also modify
|
|
non-standard syslog functions for compatibility).
|
|
- R/W buffering: Fix typo that can cause compilation error.
|
|
|
|
* Atmel SAM3/4:
|
|
|
|
- SAM4S: Add missing SPI0 clock configuration macro for the SAM4S. From spasbyspas.
|
|
|
|
* Atmel SAM3/4 Drivers:
|
|
|
|
- SAM4E-EK: Fix an error in a USART1 pin number.
|
|
|
|
* Atmel SAMA5D3/4 Drivers:
|
|
|
|
- SAMA5DF4: Fix several typos that will prevented EMAC1 from
|
|
initializing properly.
|
|
|
|
* NXP LPC43xx:
|
|
|
|
- Fixes to allow compile of lpc43_gpioint.c. From Brandon Warhurst.
|
|
|
|
* STMicro STM32:
|
|
|
|
- Add missing ADC pinmap definitions for the STM32 F103R from Martin
|
|
Lederhilger.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- STM32 EXTI: Correct STM32 RTC EXTI bit definition. From Lazlo.
|
|
- STM32 IWDG, WWDG, DBGMCU: Fix watchdog stop bit usage. From Lazlo.
|
|
- STM32 OTGFS: Correct a typo in the STM32 OTGFS register bit definitions.
|
|
|
|
* ARM:
|
|
|
|
- ARM up_internal.h: Add protection from C++ name mangling in the
|
|
ARM up_internal.h. From Lorenz Meier.
|
|
|
|
* MicroChip PIC32MX:
|
|
|
|
- PIC32MX7: DEVCFG0 bit 2 must be set. Writing bit 2 as zero can
|
|
brick the CPU on some versions. From Cris Kvist.
|
|
|
|
* C Library:
|
|
|
|
- The implementation of access() as vararg macro has the issue that
|
|
any function call with the same name (even in a C++ class) will
|
|
match with it and result in a compile error. Replaced with a small
|
|
function. This resolves the compile issue, and shouldn�t have
|
|
negative side effects for users of the function. From Lorenz Meier.
|
|
- The definition of strncpy() is that empty space should be zero-
|
|
filled, the change adds the zero filling (See the POSIX spec here:
|
|
http://pubs.opengroup.org/onlinepubs/7908799/xsh/strncpy.html). From
|
|
Lorenz Meier.
|
|
- limits.h: Remove the definition of INT_FAST32_MIN which is already
|
|
defined in stdint.h (the correct location). From Lorenz Meier.
|
|
|
|
* Applications:
|
|
|
|
- apps/: Correct everything under apps to use the corrected syslog
|
|
interfaces. Remove any non-portable uses of syslog.
|
|
- NSH: Fix ls -l output for regular files.
|
|
- NSH: Fix reversed in/out file closing in DD command when an error
|
|
occurs. From Ken Pettit.
|
|
- NSH: Add logic to restart the console wait if an error occurs
|
|
while reading from the console. In USB console startup, the logic
|
|
must be able to open the USB serial and receive 3 newlines.
|
|
However, it the USB driver is disconnected or otherwise fails before
|
|
the 3 newlines are received, the receive loop becomes a killer,
|
|
infinite loop, CPU hog. Noted by spasbyspas.
|
|
- Netutils: Fix memcpy of host address in netlib_gethostaddr(). From
|
|
Brennan Ashton.
|
|
- Netutils: If you make a DNS request before the DNS address it would
|
|
cause an assertion. The state of the IP setting is not something the
|
|
application should be aware of, it should only be concerned with
|
|
whether or not the name was resolved. From Brennan Ashton.
|
|
- Netutils: Fix md5 hashing when digest[$i] islower that 16. From
|
|
Sergey.
|
|
- Stack Monitor: Fix compile problems introduced when the syslog()
|
|
prototype changed; Also update Makefile for kernel build From
|
|
Radoslaw Adamczyk.
|
|
- Examples: Update NxTerm makefile for kernel-build issues. From
|
|
Radoslaw Adamczyk.
|
|
- Examples: Fixes to keypadtest from Pierre-Noel Bouteville.
|
|
- Examples: These examples all set the IP address of eth1 but the
|
|
netmask and gateway of eth0 if DHCP is enabled: discover, tcpecho,
|
|
webserver, xmlrpc. That can't be right.
|
|
|
|
NuttX-7.7
|
|
---------
|
|
|
|
The 107th release of NuttX, Version 7.7, was made on January 26, 2015,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-7.7.tar.gz and
|
|
apps-7.7.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS:
|
|
|
|
- Task exit handling: Add logic to clean up after task_delete() or
|
|
pthread_cancel() if the task happens to be waiting on a semaphore
|
|
when was is cancelled.
|
|
- Stack coloration: Removed CONFIG_DEBUG_STACK and replaced it with
|
|
CONFIG_STACK_COLORATION that does the same thing but without enabling
|
|
debug. From David Sidrane.
|
|
|
|
* Common Drivers:
|
|
|
|
- Discrete joystick driver: Added an interface definition and upper
|
|
half driver for a discrete joystick device (where X/Y changes are
|
|
indicated with button presses).
|
|
- Analog joystick driver: Added an interface definition and upper
|
|
half driver for a analog joystick device (where X/Y positions are
|
|
sampled, numeric values).
|
|
- Add driver support for the ADXL345 accelerometer. From Alan
|
|
Carvalho de Assis
|
|
- Generic serial driver: Add watermark levels to the serial RX flow
|
|
control logic. Modify the rxflowcontrol method to accept the number
|
|
of bytes in the buffer and a boolean indication of which watermark
|
|
was crossed.
|
|
|
|
* File Systems/Block Drivers/MTD:
|
|
|
|
- Add procfs write support. From Ken Petit.
|
|
- Implemented wear-leveling in the SmartFS. From Ken Pettit.
|
|
- MMC/SD Interface: MMCSD SDIO: Add support for a new
|
|
SDWAIT_WRCOMPLETE condition. The previous logic used a busy-wait
|
|
loop to poll the card R1 status to determine when the card was
|
|
ready for the next transfer. That busy-wait can be quite long --
|
|
up to hundreds of milliseconds. An alternative is to look the SD D0
|
|
pin which will change state when the card is no longer busy. This
|
|
change avoids the busy-wait poll by reconfiguring the SD D0 pin as a
|
|
GPIO interrupt, then waiting for the card to become ready without
|
|
taking up CPU cycles. From David Sidrane.
|
|
|
|
* Drivers:
|
|
|
|
- Add support for a generic EEPROM driver that accesses EEPROM as a
|
|
character driver (vs. an MTD driver). From S�bastien Lorquet.
|
|
|
|
* Graphics Support:
|
|
|
|
- Many new fonts converted for use with NuttX and added by
|
|
Pierre-noel Bouteville
|
|
|
|
* Networking:
|
|
|
|
- IPv4 support is now conditioned on CONFIG_NET_IPv4.
|
|
- Implemented and verified IPv6 support conditioned on
|
|
CONFIG_NET_IPv6. Either IPv4 or IPv4 or both may be selected.
|
|
Sockets, of course, must be bound to one or the other. Added support
|
|
for IPv6 ioctls to manipulate IP addresses.
|
|
- Integrated support for ICMPv6 and the ICMPv6 Neighbor Discovery
|
|
Protocol and ICMPv6 ECHO request/reply needed to support ping logic.
|
|
- All Ethernet drivers: Modified to support. Most, however, are
|
|
still missing address filtering logic required for ICMPv6 Neighbor
|
|
Discovery Protocol. See
|
|
http://www.nuttx.org/doku.php?id=wiki:howtos:ipv6#ethernet_driver_requirements
|
|
- Also added missing raw/packet socket support to all Ethernet drivers.
|
|
|
|
* Host Simulation:
|
|
|
|
- Add a configuration build and test the Traveler first person game
|
|
using the simulator.
|
|
- Add an X11 mouse-based simulation of an analog joystick device
|
|
|
|
* Atmel SAMA5D Boards:
|
|
|
|
- Add analog Joystick shield support for the SAMA5D3 Xplained board.
|
|
|
|
* Freescale KL Drivers:
|
|
|
|
- Add GPIO interrupt capability for the KL architecture. From Alan
|
|
Carvalho de Assis
|
|
|
|
* Freescale KL Boards:
|
|
|
|
- Freedom-KL25Z: Add board support for the ADXL345 accelerometer. From
|
|
Alan Carvalho de Assis
|
|
- Freedom-KL25Z: Update the Freedom KL25Z board CC3000 support to use
|
|
the current CC300 interfaces. From Alan Carvalho de Assis
|
|
|
|
* NXP LPC43xx Boards:
|
|
|
|
- A port of NuttX to the LPC4357-EVB from Toby Duckworth. This port
|
|
is a leverage of the LPC3330-Xplorer port and still have a some
|
|
misinformation from that port that needs to be updated for the
|
|
LPC4357-EVB.
|
|
|
|
* SiLabs EFM32 Drivers:
|
|
|
|
- Serial: Add support for serial termios TCGET and TCSET. For the
|
|
moment, only set/get speed is implemented. From Pierre-noel
|
|
Bouteville.
|
|
- RMU: Add support for the EFM32 reset management unit (RMU). From
|
|
Pierre-noel Bouteville.
|
|
|
|
* SiLabs EFM32 Boards:
|
|
|
|
- Add support for timer/PWM on the EFM32GG. From Pierre-noel
|
|
Bouteville
|
|
|
|
* STMicro STM32:
|
|
|
|
- Enable support for the STM32 F102. From the PX4 team.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- STM32 F429 LTDC: Add interface to perform hardware accelerated layer
|
|
operation. Provides access to a reference of a specific ltdc layer.
|
|
From Marco Krahl
|
|
- STM32 F429 LTDC support: Implemented LTDC framebuffer support for the
|
|
generic nuttx framebuffer interface. Also implements the interface to
|
|
perform hardware accelerated layer operation by the ltdc controller
|
|
and dma2d controller later. From Marco Krahl.
|
|
- STM32: Add support for the internal low speed clock (LSI) as a
|
|
source of the RTC clock. Some boards do not have the external
|
|
32kKhz oscillator installed, for those boards we must fallback to
|
|
the crummy internal RC clock. From Kevin Hester
|
|
- STM32 SDIO: Add support for the new SDWAIT_WRCOMPLETE condition.
|
|
From David Sidrane
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- Add a discrete Joystick support for the STM3210E-EVAL.
|
|
- Add analog Joystick shield support for the Nucleo F4x1RE boards.
|
|
- STM32 F429i-Disco: Add support for initializing of the ltdc
|
|
controller and the lcd device connected on the stm32f429i-disco.
|
|
From Marco Krahl.
|
|
- Removed the px4-v2_upstream configuration. This was not the
|
|
official configuration for the PX4 board and has led to confusion
|
|
by NuttX users. The board configuration also requires some ongoing
|
|
maintenance and customization to support ongoing PX4 testing and
|
|
evaluation. It is best retained the PX4 repositories where it can
|
|
be properly maintained and not in the upstream NuttX repository.
|
|
|
|
* TI Tiva:
|
|
|
|
- Add support for the TI Tiva TM4C 129X family. Some unverified
|
|
support for the TM4C 1294 is also in place.
|
|
|
|
* TI Tiva Drivers:
|
|
|
|
- Added support for Tiva I2C driver. Verified on the Tiva TM4C123G
|
|
and TM4C129X.
|
|
- Added a Tiva TM4C129X Ethernet driver.
|
|
- Add a timer library for generic support of Tiva timers
|
|
- Add a driver lower half for drivers/timer.c. Only 32-bit periodic
|
|
timers are supported. This provides userspace access to timers.
|
|
|
|
* TI Tiva Boards:
|
|
|
|
- TM4C123G Launchpad: Add initialization logic for an external AT24
|
|
EEPROM. This is intended only to support testing of the Tiva I2C
|
|
driver.
|
|
- Board support for the Tiva DK-TM4C129x Connected Development Kit.
|
|
- DK-TMC129X: Add an IPv6-enabled NSH configuration.
|
|
|
|
* C Library/Header Files:
|
|
|
|
- Added support for a variadic ioctl() function. The ioctl()
|
|
interface is a non-standard, Unix interface. NuttX has always used
|
|
the older, three-parameter version. Most contemporary systems now,
|
|
however, use a variadic form of the ioctl() function. Added an
|
|
option to insert a shim layer to adapt the three-parameter ioctl()
|
|
to use the variadic interface form. Internally, the ioctl handling
|
|
is the same three-parameter logic. The only real complexity to the
|
|
shim is in how the system calls must be handled.
|
|
- Added sys/custom_file.h. Used when CUSTOM_FILE_IO is define and
|
|
avoids re-definition errors about the FILE define. From Thomas
|
|
Gruber via the PX4 repository
|
|
- Add CRC8 support to the C library. From Ken Pettit.
|
|
- math.h: Added support for the expm1 functions. From Brennan Ashton
|
|
|
|
* Applications:
|
|
|
|
- apps/examples/djoystick: Add a test of the discrete joystick
|
|
driver.
|
|
- apps/examples/ajoystick: Add a test of the analog joystick
|
|
driver.
|
|
- apps/examples/ltdc: Add ltdc test example. From Marco Krahl
|
|
- apps/system/lm75: Add a tiny application to read the temperature
|
|
from an LM-75 (or compatible) temperature sensor
|
|
- apps/examples/timer: Add a trivial test of the timer driver
|
|
|
|
- apps/system/cu: Add a minimalist implementation of the 'cu'
|
|
terminal program (part of Taylor UUCP for ages). Using it, you can
|
|
simply open a serial port and interact with it. Using '~.' you can
|
|
leave the terminal program and drop back to nsh. This might come
|
|
in handy for people that have e.g. GSM modems, GPS receivers or
|
|
other devices with text based serial communications attached to
|
|
their Nuttx systems. From Harald Welte
|
|
- apps/interpreters/micropython: A port of Micro Python to NuttX.
|
|
Contributed by Dave Marples
|
|
|
|
- apps/netutils/dnsclient: Can select to be either IPv4 or IPv6, but
|
|
not both (IPv6 still does not compile)
|
|
- apps/netutils/netlib: Add new library functions to manipulate IPv6
|
|
addresses.
|
|
- apps/examples/nettest: Update test so that it can be used to test
|
|
IPv6 TCP sockets
|
|
- apps/examples/udp: The UDP test example has been extend to support
|
|
IPv6 domain sockets
|
|
|
|
- apps/nshlib: Add logic to initialize IPv6 addresses
|
|
- apps/nshlib: Add the ping6 command to support checking IPv6 networks.
|
|
- apps/nshlib: Clean up network status presentation for IPv6
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* IPv6. While basic IPv6 support was completed in NuttX-7.7,
|
|
there are lingering issues with getting IPv6 compatibility
|
|
with applications and network utilities.
|
|
|
|
* Processes. Much of the work in this release is focused on the
|
|
realization of Unix-style user processes in NuttX. There is more to
|
|
be done, however. The full roadmap and status is available at:
|
|
http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
|
|
|
|
* XMega: There are some fragments in place for an XMega port. That
|
|
port has not really started, however.
|
|
|
|
* Galileo: Similarly, there are fragments in place for an Intel Galileo
|
|
port. The port probably will not happen (I gave my Galileo board away!).
|
|
|
|
Bugfixes. Only the most critical bugfixes are listed here (see the
|
|
ChangeLog for the complete list of bugfixes and for additional, more
|
|
detailed bugfix information):
|
|
|
|
* Core OS:
|
|
|
|
- POSIX message queues: msg type should be char * not void * in
|
|
mq_send, mq_timedsend, mq_receive, and mq_timedreceive. Noted by
|
|
Pierre-Noel Bouteville
|
|
- POSIX message queues: In message queue creation return ENOSPC error
|
|
if size exceeds the configured size of pre-allocated messages; Use
|
|
ENOSPC vs ENOMEM per OpenGroup.org. From Pierre-Noel Bouteville.
|
|
- Task Names: strncpy() will not copy the terminating \0 into the
|
|
destination if the source is larger than the size of the
|
|
destination. Ensure that the last byte is always zero and let
|
|
strncpy() only copy CONFIG_TASK_NAME_SIZE bytes. The issue of
|
|
unterminated names can be observed in ps when creating a pthread
|
|
while CONFIG_TASK_NAME_SIZE is set to 8. From Daniel Willmann
|
|
|
|
* Memory Management:
|
|
|
|
- Granule allocator: Fixes some issues found by the PX4 team using
|
|
Coverity. From Pavel Krienko
|
|
|
|
* Networking:
|
|
|
|
- Several fixes correcting issues with the CC3000 networking. From
|
|
Jussi Kivilinna
|
|
- CC3000 Fix: Data can be unaligned. When dereferenced as an input
|
|
ntosh(), a bad value is returned. Reported by Alan Carvalho de
|
|
Assis
|
|
- Correct naming of fields in struct sockaddr_in6: sin6_port and
|
|
sin6_family, not sin_port and sin_family.
|
|
- accept(): Correct the value returned by accept() in the case where
|
|
net_lockingwait() is called. It was returning -1 and losing the
|
|
errno value. Noted by Rony Xln
|
|
|
|
* Common Drivers:
|
|
|
|
- Loop device should return -EINTR is interrupted by a signal.
|
|
- M25P serial flash driver: Add subsector size of the M24P16 part.
|
|
From Lazlo
|
|
- Common serial driver: In case a thread is doing a blocking operation
|
|
(e.g. read()) on a serial device, while it is being terminated by
|
|
pthread_cancel(), then uart_close() gets called, but the semaphore
|
|
is still blocked. This means that once the serial device is opened
|
|
next time, data will arrive on the serial port (and driver
|
|
interrupts handled as normal), but the received characters never
|
|
arrive in the reader thread. The problem was fixed by re-
|
|
initializing the semaphores on the last uart_close() on the device.
|
|
From Harald Welte
|
|
- Pipes: Fixes some issues found by the PX4 team using Coverity. From
|
|
Pavel Krienko
|
|
- CDC/ACM driver: Fixes some issues found by the PX4 team using
|
|
Coverity. From Pavel Krienko
|
|
|
|
* NXP LPC43xx Drivers:
|
|
|
|
- LPC4357: Changes required to get USART 2 & 3 working on the
|
|
lpc4357-evb. From Toby Duckworth.
|
|
|
|
* STMicro STM32:
|
|
|
|
- Several fixes correcting issues with the STM32 header files from
|
|
Jussi Kivilinna
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- Ported Tridge's STM32 I2C noise resilience logic from the PX4
|
|
repository.
|
|
- STM32 F2 and F4: Set the GPIO_SPEED_50MHz on all F2 and F4 SPI pin
|
|
configurations. This is based on an F411 SPI1 errata but the fixed
|
|
is generalized to all SPI and all F2 and F4. Discovered and fixed
|
|
by Sebastien Lorquet.
|
|
- Fix for STM32 OTGHS device driver working in FS mode. From Ken
|
|
Pettit.
|
|
- For STM32 OTG HS DEV (in FS mode): Disable ULPI clock enable in RCC
|
|
AHB1 Register. If Both ULPI and the FS clock enable bits are set in
|
|
FS mode, then the ARM never awakens from WFI due to a chip issue.
|
|
This is only an issue if you are using the internal PHY. From Ken
|
|
Pettit.
|
|
- STM32 F429 LTDC: Add missing clut register definition. From Marco
|
|
Krahl
|
|
- STM32 serial: fix declaration and definition of up_receive() and
|
|
up_dma_receive() to match fields in the interface definition of
|
|
struct uart_ops_s. From Freddie Chopin.
|
|
|
|
* TI Tiva Drivers:
|
|
|
|
- Fix Tiva IRQ control logic; was limited to only 64 IRQs. That is a
|
|
problem for higher numbered IRQs on many platforms
|
|
|
|
* C Library/Header Files:
|
|
|
|
- avsprintf(): Fix a bug in usage of va_list on x86. On x86,
|
|
va_list is a pointer to a single copy on the stack. avsprintf()
|
|
calls lib_vsprintf() twice and so traverses the va_list twice using
|
|
va_start. va_start modifies that single copy on the stack so that
|
|
the second call to lib_vsprintf() fails. This appears to be an
|
|
issue with x86 only so far.
|
|
- stdint.h: Don't use hex values to specify minimum values of fixed
|
|
width, signed values. Hex values are inherently unsigned and not
|
|
usable for this purpose in all contexts.
|
|
- strncpy(): Would trash a lot of memory if n == 0. From Yasuhiro
|
|
Osaki.
|
|
- sscanf(). Accept %X and %F as well as %x %f as a format specifiers.
|
|
From S�bastien Lorquet
|
|
|
|
* Applications:
|
|
|
|
- apps/examples/romfs: fix romfs example builtin app registry issue.
|
|
From Librae
|
|
- apps/system/cdcacm, composite and usbmsc: Fix some strangely placed
|
|
conditional compilation. Looks like an automated update went awry
|
|
- apps/netutils/telnetd: Add protection when CONFIG_SCHED_HAVE_PARENT
|
|
is enabled: Call sigaction with SA_NOCLDWAIT so that exit status is
|
|
not retained (no zombies) and block receipt of SIGCHLD so that
|
|
accept is not awakened by a signal. If accept() is awakened by a
|
|
signal, do not do anything crazy like exit. Most from Rony Xln
|
|
- apps/nshlib/: NSH TFTP get command: Wrong file name used for the
|
|
destination. From Lazlo
|
|
|
|
NuttX-7.8
|
|
---------
|
|
|
|
The 108th release of NuttX, Version 7.8, was made on February 11, 2015,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-7.8.tar.gz and
|
|
apps-7.8.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
This release is primarily a bugfix release for the NuttX-7.7 version that
|
|
was release just two weeks prior. That release included substantial
|
|
modifications in the NuttX networking to accommodate support for IPv6. This
|
|
release follows close behind NuttX-7.7 in order to correct some the problems
|
|
discovered in that networking code. This release does, however, include a
|
|
small number of new features and bug fixes unrelated to NuttX networking.
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
* Core OS:
|
|
|
|
- Tickless Mode: added limit of maximum delay that can be request
|
|
by the scheduler tickless logic. This is necessary so that the
|
|
tickless logic does not request a delay beyond the capability of the
|
|
underlying hardware. From Macs Neklyudov.
|
|
|
|
* Common Drivers:
|
|
|
|
- VFS Unlink: Add an unlink method to both the character and block
|
|
driver interface. This is important because if the driver inode is
|
|
unlinked and there are no open references to the driver, then the
|
|
driver resources will be stranded. On the unlink call, the driver
|
|
has the opportunity (1) check if there an any open references, and
|
|
if not, (2) free the driver resources.
|
|
- Pipes and FIFOs: Implement the unlink method. If the pipe/FIFO is
|
|
unlinked, it will marked the pipe/FIFO as unlinked. If/when all
|
|
open references to the driver are closed, all of the driver
|
|
resources will be freed.
|
|
- Added an option to use the syslog'ing device as the system console.
|
|
This option enables a low-level, write-only console device at
|
|
/dev/console (similar to the low-level UART console device). From
|
|
Pierre-noel Bouteville.
|
|
|
|
* File Systems/Block Drivers/MTD:
|
|
|
|
- RAM/ROM disk: Add logic to dispose of the driver and RAM buffer
|
|
when the RAM disk has been unlinked and all open references to the
|
|
RAM disk have been closed. Add new parameters to romdisk() to
|
|
specify what should be done with the RAM/ROM buffer in this case --
|
|
Should it be freed or not? Changed all calls to ramdisk() to use
|
|
these new parameters.
|
|
|
|
* Networking:
|
|
|
|
- Add support for local, Unix domain sockets. Support included for
|
|
both SOCK_STREAM and SOCK_DGRAM style local socket.
|
|
- UDP enhancement: Add UDP read-ahead support. In addition to
|
|
eliminating the main reason for lost UDP packets, then change
|
|
enables support for for poll/select on UDP sockets and also non-
|
|
blocking UDP sockets. From Macs Neklyudov.
|
|
- SLIP interface improvements. From Macs Neklyudov.
|
|
- IPv6 Neighbor Solicitation: Added logic to support verification
|
|
that we have the IPv6 address in the Neighbor Table before sending
|
|
any packets. If not, then the Neighbor Solicitation message is
|
|
sent. This feature is important because otherwise the first packet
|
|
sent to a remote peer will fail (it would have been replaced with a
|
|
Neighbor Solicitation).
|
|
- IPv6 Autonomous Auto-Configuration: Added support for sending
|
|
ICMPv6 Router Solicitation and receiving Router advertisement. The
|
|
local IPv6 address, mask, and router address are then auto-configured
|
|
from the response..
|
|
- IPv6 Router Support: Add logic to behave like a router (if so
|
|
configured) only in the sense that NuttX will send the router
|
|
advertisement message in response to any received router solicitation
|
|
messages. Thus, one NuttX node in a network can configure the IPv6
|
|
addresses of all other nodes in the network.
|
|
- Optional IPv6 address filtering added to all Ethernet drivers for
|
|
the all-routers multicast address.
|
|
|
|
* Atmel AVR:
|
|
|
|
- Added architecture support for the Atmel AVR ATMega1284P MCU. From
|
|
Jedi Tek'Unum.
|
|
|
|
* Atmel AVR Boards:
|
|
|
|
- Added support for the LowPowerLab MoteinoMEGA that is based on the
|
|
Atmel AVR ATMega1284P MCU. From Jedi Tek'Unum.
|
|
|
|
* Atmel SAMA4:
|
|
|
|
- Add support for Tickless mode of operation for the SAM4CM platform.
|
|
From Macs Neklyudov.
|
|
|
|
* Atmel SAMA4 Drivers:
|
|
|
|
- Ethernet: The SAM4E Ethernet driver can now be configuration to
|
|
perform all network processing on the work queue. This greatly
|
|
reduces the amount of interrupt level processing to service Ethernet
|
|
packets.
|
|
- SAM4E Ethernet: Add support multicast address matching and IPv6.
|
|
|
|
* Atmel SAMA4 Boards:
|
|
|
|
- SAM4E-EK: The nsh configuration now configures the Ethernet driver
|
|
for execution on the work thread.
|
|
|
|
* Atmel SAMA5D Drivers:
|
|
|
|
- SAMA5D4 Ethernet: The SAMA5D4 Ethernet driver can now be configuration
|
|
to perform all network processing on the work queue. This greatly
|
|
reduces the amount of interrupt level processing to service Ethernet
|
|
packets.
|
|
- SAMA5D3 and SAMA5D4 Ethernet: Add support multicast address matching
|
|
and IPv6.
|
|
|
|
* Atmel SAMA5D Boards:
|
|
|
|
- SAMA5D4-EK; Added a configuration to testing IPv6.
|
|
- SAMA5D4-EK: Converted the nsh and ipv6 configurations to configure
|
|
the Ethernet driver to use the work queue (vs. interrupt level
|
|
processing).
|
|
|
|
* Freescale KL:
|
|
|
|
- Add architectural support for the K26Z128VLH4 chip. From Derek B. Noonburg.
|
|
|
|
* Freescale KL Boards:
|
|
|
|
- Add board support for the Freedom KL26Z board. From Derek B. Noonburg.
|
|
|
|
* NXP LPC17xx Drivers:
|
|
|
|
- Ethernet: Add support multicast address matching and IPv6.
|
|
|
|
* SiLabs EFM32:
|
|
|
|
- Add configurable option to unconditionally enable LE clocking. Even
|
|
you don't use core clock LE as source for LFA or LFB, to read are
|
|
write any register not clocked by HFPERCLK or HFCORECLK, HFCORECLKLE
|
|
should be enabled. From Pierre-noel Bouteville.
|
|
|
|
* SiLabs EFM32 Drivers:
|
|
|
|
- EFM32 RTC: RTC driver using BURTC. From Pierre-Noel Bouteville.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- AES: Add driver for STM32L162XX AES peripheral. From Juha Niskanen.
|
|
- Ethernet: The STM32 Ethernet driver can now be configuration to
|
|
perform all network processing on the work queue. This greatly
|
|
reduces the amount of interrupt level processing to service Ethernet
|
|
packets.
|
|
- Ethernet: Add support multicast address matching and IPv6.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- Added an IPv6 configuration for the STM32F4-Discovery board (with the
|
|
STM32-DISCO_BB base board).
|
|
- Converted all STM32F4-Discovery configurations (with base board) to
|
|
configure the Ethernet driver to use the work queue (vs. interrupt
|
|
level processing).
|
|
|
|
* TI Tiva Drivers:
|
|
|
|
- Added support for TM4C123G timers. From Calvin Maguranis.
|
|
- Added a Tiva ADC driver. From Calvin Maguranis.
|
|
|
|
* TI Tiva Boards:
|
|
|
|
- Added TM4C123G timers on the TM4C123G Launchpad. From Calvin Maguranis.
|
|
- Added Tiva ADC support to the TM4C123G-Launchpad. From Calvin Maguranis.
|
|
|
|
* C Library/Header Files:
|
|
|
|
- Math Library: Added support for inverse hyperbolic functions,
|
|
isfinite(), error functions, nan(), copysign(), and trunc()
|
|
functions. From Brennan Ashton.
|
|
|
|
* Applications:
|
|
|
|
- apps/examples/ustream: Add a simple test of Unix domain stream
|
|
sockets.
|
|
- apps/examples/udgram: Add a simple test of Unix domain datagram
|
|
sockets.
|
|
- apps/netutils/netlib: Add utilities to convert to/from prefix
|
|
lengths from/to 128-bit network masks.
|
|
- apps/nshlib: Modify the NSH IPv6 ifconfig command to show the more
|
|
standard post-pended prefix value, rather than the full 128-bit
|
|
netmask.
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* Processes. Much of the work in this release is focused on the
|
|
realization of Unix-style user processes in NuttX. There is more to
|
|
be done, however. The full roadmap and status is available at:
|
|
http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
|
|
|
|
* XMega: There are some fragments in place for an XMega port. That
|
|
port has not really started, however.
|
|
|
|
Bugfixes. Only the most critical bugfixes are listed here (see the
|
|
ChangeLog for the complete list of bugfixes and for additional, more
|
|
detailed bugfix information):
|
|
|
|
* Core OS:
|
|
|
|
- Work Queues: Fix a backward calculation when determining the time
|
|
to the next interesting event. . From Liio Chen via the PX4
|
|
repository.
|
|
- clock_systimespec(): Fixes for compilation errors in certain
|
|
configurations. From Macs Neklyudov.
|
|
|
|
* Graphics
|
|
|
|
- Fixed a problem with one of the font files. From Pierre-noel Bouteville.
|
|
|
|
* Networking:
|
|
|
|
- IOB Deadlock: There were issues with the TCP write-ahead buffering
|
|
if CONFIG_NET_NOINTS was enabled: There is a possibility of
|
|
deadlocks in certain timing conditions: The network should never
|
|
wait for TCP read-ahead buffering space to be available. It should
|
|
drop the packets immediately if no buffering is available. This was
|
|
fixed by duplicating most of the IOB interfaces: The versions that
|
|
waited are still present (like iob_alloc()), but now there are non-
|
|
waiting versions of the same interfaces (like iob_tryalloc()). The
|
|
TCP read-ahead logic now uses only these non-waiting interfaces.
|
|
- TCP Deadlock: Fix another deadlock when CONFIG_NET_NOINTS is enabled.
|
|
tcp_write_buffer_alloc() calls sem_wait() with network locked. That
|
|
worked if CONFIG_NET_NOINTS was not defined because interrupts are
|
|
automatically restored when the wait happens. But with
|
|
CONFIG_NET_NOINTS=y, the wait blocks with the network locked -- bad
|
|
style and also can lead to a deadlock condition.
|
|
- ARP response waiting: Fixes another CONFIG_NET_NOINTS issue. When
|
|
called sem_timedwait() with the network locked, the network stays
|
|
locked while we wait which is not what we want (without CONFIG_NET_NOINTS,
|
|
interrupts are re-enabled while we wait and all is well).
|
|
- TCP accept(): Fix a major TCP bug introduced with the NuttX-7.7
|
|
IPv6 changes: Some connection logic was reordered; setting the
|
|
socket as 'connected' got moved to BEFORE the point where the check
|
|
was made if the socket was already connected. The resulting behavior
|
|
was odd: Telnet would connect, but then when you exit and reconnect,
|
|
it would fail to connect. But then if try again, it would connect
|
|
okay. So the symptom was connect-fail-connect-fail-...
|
|
- Lots of build problems introduced into multiple NIC support with the
|
|
IPv6 changes of NuttX-7.7. Many places where conditional logic based
|
|
on CONFIG_NETDEV_MULTINIC is confused with CONFIG_NET_MULTILINK.
|
|
Lots of code changed with IPv6 that was never compiled with MULTINIC
|
|
enabled.
|
|
|
|
* Common Drivers:
|
|
|
|
- Pipes and FIFOs: Fix a race condition between FIFO buffer operations
|
|
and the opening and closing of FIFOs which necessary when the FIFOs
|
|
are used to support Unix domain, datagram sockets. The default
|
|
policy is the deallocate FIFO buffering when the last client closes
|
|
the pipe. When when used for datagram communications, packets left
|
|
in the FIFO will be lost. Some like UDP read-ahead is needed: The
|
|
buffered data in the FIFO needs to be retained until the reader gets
|
|
a chance to re-open the FIFO. Added an ioctl (PIPEIOC_POLICY) to
|
|
control the buffer policy. Default (0) is the legacy behavior; Unix
|
|
domain datagram logic sets the alternative policy so that the packet
|
|
data persists after the FIFO is closed.
|
|
- RAMTRON: Table of parts is not terminated properly if
|
|
CONFIG_RAMTRON_FRAM_NON_JEDEC is not defined. Noted by David
|
|
Sidrane.
|
|
|
|
* All Architectures:
|
|
|
|
- Removed all occurrences of up_maskack_irq() that disables interrupts
|
|
with up_ack_irq() that only acknowledges the interrupts. This is only
|
|
used in interrupt decoding logic. Also remove the logic that
|
|
unconditionally re-enables interrupts with the interrupt exits. This
|
|
interferes with the drivers ability to control the interrupt state.
|
|
This is a necessary, sweeping, global change and unfortunately
|
|
impossible to test.
|
|
|
|
* ARM
|
|
|
|
- ARMv7-A and ARMv7-M memcpy(): Optimized ARM assembly language
|
|
memcpy's were not returning a value in R0 they are required to do.
|
|
From David Sidrane.
|
|
- ARMv7-A interrupt handler should not automatically re-enable interrupts
|
|
on interrupt return. That interferes with the driver's ability to
|
|
manage interrupts. Analogous change made to all other architectures
|
|
as well (ARM7, ARM9, HC, SH, x86, z16, z80, etc,. See above.).
|
|
|
|
* STMicro STM32:
|
|
|
|
- GPIO Interrupts: Disabling any of EXTI 5-9 interrupts was disabling
|
|
interrupts for all EXTI 5-9. Same issue with EXTI 10-15. From Jussi
|
|
Kivilinna.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- RTCC: Fix for recent changes that caused compilation failrues with
|
|
STM32L15XX configurations. From Jussi Kivilinna.
|
|
- SPI: The source clock for SPI 4,5, and 6 should be PCLK2, not PCLK1
|
|
(for F411, F427, and F429). Per David Sidrane.
|
|
|
|
* C Library/Header Files:
|
|
|
|
- execl(): Fix bad logic in counting the number of arguments.
|
|
execl() parameter passing could never have worked. Noted by
|
|
Pierre-noel Bouteville.
|
|
|
|
* Applications:
|
|
|
|
- Fix for building with parallel make. Build-server sometimes failed
|
|
'make -j24' with errors in the builtin line or or sometimes silently
|
|
succeeds but generated builds that contain a random subset of
|
|
configured NuttX applications. There are two root causes for this:
|
|
(1) Recipes for building builtin_list.h and builtin_proto.h are
|
|
not linearizable, and (2) Nothing ensures that 'make context' is run
|
|
first for apps/builtin. This change address both issues. From Juha
|
|
Niskanen.
|
|
|
|
NuttX-7.9
|
|
---------
|
|
|
|
The 109th release of NuttX, Version 7.9, was made on April 14, 2015,
|
|
and is available for download from the SourceForge website. Note
|
|
that release consists of two tarballs: nuttx-7.9.tar.gz and
|
|
apps-7.9.tar.gz. Both may be needed (see the top-level nuttx/README.txt
|
|
file for build information).
|
|
|
|
Additional new features and extended functionality:
|
|
|
|
|
|
|
|
- Assertions: Add support for dumping board-specific information on
|
|
assertions. From David Sidrane.
|
|
- boardctl(): : Add a new non-standard OS interface called boardctl().
|
|
This is similar to a driver IOCTL call. But this is an IOCTL call
|
|
directly on the board logic. This function will eventually replace
|
|
all of the ad hoc OS interfaces that are current used to perform
|
|
application specific initialization and application driver test
|
|
configuration. It essentially formalizes and institutionalizes
|
|
these rogue interface in to at least a single crazy call.
|
|
|
|
* Graphics:
|
|
|
|
- Line Joins: Line drawing graphic functions now take an argument that
|
|
will draw a circular "cap" on the ends of lines to support cleaner
|
|
joining of lines segments..
|
|
|
|
* Common Drivers:
|
|
|
|
- SPI iInterface: Add an SPIDEV_USER so that there can be board-
|
|
specific definitions of SPI devices.
|
|
- I2C Interface: Add a user provided void * argument to the I2C
|
|
callback method for the I2C slave interface. Suggested by Nate
|
|
Weibley.
|
|
- AT24 EEPROM Driver: Add support for (1) the byte-oriented read()
|
|
method, (2) devices that have extended memory regions, and (3)
|
|
devices that use 8-bit addressing.
|
|
- Freescale MPL115A barometer: Add driver for the Freescale MPL115A
|
|
barometer. From Alan Carvalho de Assis.
|
|
- CS2100-CP: Add a driver for the CS2100-CP Fractional-N Multipler
|
|
chip.
|
|
- RTC IOCTls: Added the definitions of a driver based RTC interfaces
|
|
and RTC upper half driver.
|
|
|
|
* File Systems/Block Drivers/MTD:
|
|
|
|
- umount2(): Added to support un-mount flags. umount() is now a macro
|
|
that just calls umount2() with flags = 0.
|
|
- File system interface: Pass the umount2() flags to every unbind()
|
|
implementation. That is where the decision to umount or not and how
|
|
to umount will be made.
|
|
- FAT unbind: Add support for umount2(target, MNT_FORCE) in the FAT
|
|
file system.
|
|
|
|
* Networking:
|
|
|
|
- netdev_register(): Improve the network device registration logic.
|
|
When multiple link types are used, modify how each interface number
|
|
is assigned to the device name by incrementing the device number
|
|
individually for each interface link type. From Max Neklyudov.
|
|
- Add TUN network device. Used to support the Netutils PPPD
|
|
implementation. From Max Neklyudov.
|
|
|
|
* ARMv7-M
|
|
|
|
- ARM Cortex-M7: Add basic support for the Cortex-M7 architecture.
|
|
- ARMv7 Common Lazy Exception handling. Add common support for lazy
|
|
FPU state saving. MCU-specific lazy FPU saving was already in place.
|
|
This change just makes the code share-able.
|
|
|
|
* Atmel SAMA5D3/4 Drivers:
|
|
|
|
- SAMA5 Serial: Backport support for flowcontrol and termios from
|
|
SAM3/4.
|
|
|
|
* Atmel SAMV7:
|
|
|
|
- Atmel SAMV7: Add architecture support for the Atmel SAMV7 family
|
|
(Cortex-M7)
|
|
|
|
* Atmel SAMV7 Boards:
|
|
|
|
- Atmel SAMV71 Xplained Ultra: Add board support for this SAMV7 board.
|
|
This initialize release includes support for: SDRAM, TWI/I2C, SPI,
|
|
Ethernet, HSMCI, DMA, GPIOs, UARTs, AT24 EEPROM and the maXTouch
|
|
Xplained Pro LCD. Drivers are available for SSC/I2C, the WM8904,
|
|
the maXTouch trouchscreen, and USB device but have not yet been
|
|
fully integrated in this release.
|
|
|
|
* SiLabs EFM32 Drivers:
|
|
|
|
- EFM32 USB Device is now functional with the efforts of From Pierre-
|
|
noel Bouteville.
|
|
- EFM32 I2C: Add I2C driver. From Pierre-noel Bouteville.
|
|
|
|
* STMicro STM32:
|
|
|
|
- STM32F372/F373: Adds architecture support for this STM32 parts.
|
|
Tested on STM32F373CC. Contributed by Marten Svanfeldt.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- STM32 RTCC: Break out a new internal interface, stm32_rtc_setdatetime().
|
|
This eliminates some un-necessary time conversions. From Freddie Chopin.
|
|
- STM32 RTCC: Add an implementation of the RTC lower half interface
|
|
for the STM32.
|
|
- STM32 RTCC: Extend the RTC interface to support reading subseconds.
|
|
From Jussi Kivilinna.
|
|
- STM32 BBSRAM: Adds the ability to use the STM32F2 and STM32F4 Battery
|
|
Backed SRAM in the file system. With an option to Save Panic context
|
|
to one of the files. From David Sidrane.
|
|
|
|
* STMicro STM32 Boards:
|
|
|
|
- Olimexino-STM32: Board support for the Olimexino STM32 board from David
|
|
Sidrane.
|
|
- Viewtool-STM32F107: Add support for an optional, add-on Freescale
|
|
MPL115A baramoter. From Alan Carvalho de Assis.
|
|
|
|
* TI Tiva:
|
|
|
|
- TM4C1294: Add support for the TM4C1294. Contributed by Frank Sautter.
|
|
|
|
* TI Tiva Drivers:
|
|
|
|
- Tiva ADC: Updated files to allow for ADC and PWM triggering by a
|
|
timer. Refactoring of ADC implementation. From Calvin Maguranis.
|
|
- Tiva Timer: Refactoring by Calvin Maguranis
|
|
|
|
* TI Tiva Boards:
|
|
|
|
- TM4C123G-launchpad: Add ADC support. From Calvin Maguranis.
|
|
- TM4C123G-launchpad: Add board button interrupt support. From Calvin
|
|
Maguranis.
|
|
- TM4C1294 Launchpad: Add support for the TM4C1294 Launchpad.
|
|
Contributed by Frank Sautter.
|
|
|
|
* Microchip PIC32
|
|
|
|
- PIC32MZ: Add architectural support for the PIC32MZ (MIPS32 M14k).
|
|
Includes contributions from Kristopher Tate.
|
|
|
|
* Microchip PIC32MZ Boards
|
|
|
|
- PIC32MZ Starter Kit: Add basic board support for the PIC32MZ.
|
|
Includes contributions from David Sidrane.
|
|
|
|
* C Library/Header Files:
|
|
|
|
- gettimeofday(): This function is no longer a core OS interface. It
|
|
is only a wrapper around clock_settime().
|
|
- settimeofday(): Added. gettimeofday has been deprecated in POSIX
|
|
2008. settimeofday() was never part of POSIX, but I decided to add
|
|
it to libc as well just for symmetry.
|
|
- Day-of-Week: Add CONFIG_TIME_EXTENDED to support the last 3 members
|
|
of the tm struct and support for filling them in with the day of the
|
|
week. From David Sidrane.
|
|
- sighold(), sigrelse(), sigignore(), sigset() and sigpause(): New
|
|
signal handling functions.
|
|
- sys/select.h: Extend the fd_set type definition so that it can
|
|
handle more than 32 descriptors (if so configured). From Max
|
|
Neklyudov.
|
|
- netdb.h: Add a mostly-commented-out version of the standard netdb.h
|
|
header file.
|
|
- include/nuttx/board.h: Remove common board function prototypes from
|
|
other files and consolidate them in this new header file.
|
|
|
|
* Applications:
|
|
|
|
- OS test: Improved error checking for sem_timedwait() from Juha
|
|
Niskanen.
|
|
- OS test: Add a simple test of sigprocmask, sighold, and sigrelse.
|
|
- PPPD test: Add PPPD test case. Split out from the PPPD daemon by
|
|
Brennan Ashton.
|
|
- Netutils: Add a PPP daemon. From Max Neklyudov.
|
|
- NSH: NSH initialization now calls boardctl(BOARDIOC_INIT) instead
|
|
of nsh_archinitialize(). Remove support for CONFIG_NSH_ARCHMAC.
|
|
It is not used and there are better ways to do that operation.
|
|
- NSH: Allow NSH 'date' command with no hardware RTC. This command
|
|
is useful without an RTC too. Also, this permits testing on the
|
|
simulator which never has an RTC.
|
|
- apps/examples/: Several tests changed (touchscreen adc, pwm,
|
|
graphics). No longer call directly into the OS, but rather
|
|
indirectly via boardctl().
|
|
- Modbus: Includes extensions to support RTU master mode by
|
|
Armink(383016632@qq.com): https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32.
|
|
Ported to NuttX by Darcy Gong.
|
|
- TZ database: All logic to build timezone database needed for
|
|
localtime() support. Does not do much else yet.
|
|
|
|
Efforts In Progress. The following are features that are partially
|
|
implemented but present in this release. They are not likely to be
|
|
completed soon.
|
|
|
|
* Processes. Much of the work in this release is focused on the
|
|
realization of Unix-style user processes in NuttX. There is more to
|
|
be done, however. The full roadmap and status is available at:
|
|
http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
|
|
|
|
* XMega: There are some fragments in place for an XMega port. That
|
|
port has not really started, however.
|
|
|
|
Bugfixes. Only the most critical bugfixes are listed here (see the
|
|
ChangeLog for the complete list of bugfixes and for additional, more
|
|
detailed bugfix information):
|
|
|
|
* Core OS:
|
|
|
|
- atexit(): Fix compile failure due to reference to undefined variable
|
|
in certain configurations. From Juha Niskanen.
|
|
- syscalls: Last changes to message queue prototypes did not make it
|
|
into call gate logic. Some additional errors had crept as well since
|
|
the system calls are seldom used.
|
|
- waitpid(): Do not use uninitialized boolean in waitpid(). From Juha
|
|
Niskanen.
|
|
- Timing functions: Fix some nanosecond comparisons. Comparisons should
|
|
be greater than OR EQUAL TO 1000000000 for maximum value of nanoseconds
|
|
in struct tm. From Juha Niskanen.
|
|
- Time initialization: Fix an error in time initialization when there
|
|
is no RTC and the time is initialized from a fixed configured value.
|
|
The call to clock_calendar2utc() was returning the time in units of
|
|
seconds. The initialization logic, however, was expecting to get
|
|
time in units of days. This problem has been there forever but
|
|
obviously has not significant impact to behavior in systems where
|
|
time is not visible.
|
|
- mq_timedsend(): Should not check for valid time if there is space
|
|
in the message queue. Noted by Freddie Chopin.
|
|
- select() and sem_timedwait(): Fix places where the errno value was
|
|
being overwritten by subsequent actions so that the returned errno
|
|
value was incorrect. From Max Neklyudov.
|
|
- clock_systimer64(): Fix a problem in clock_systimer64 that occurs
|
|
when (1) the 64-bit system time is enabled, and (2) the value of
|
|
CONFIG_USEC_PER_TICK is less than 1 milliseconds (such as when using
|
|
the tickless mode of operation). In that case, the conversion of
|
|
time to 64-bit millisecond value in clock_systmer64() causes some
|
|
bad times to be returned. Time was converted to milliseconds, then
|
|
to configured ticks. Precision was lost in the millisecond
|
|
conversion. The fix is to first convert time to a 64-bit microsecond
|
|
value, then to the configured tick value. Noted by David Sidrane.
|
|
- clock_systimespec(): When an RTC is used clock_systimespec() must
|
|
subtract the basetime from the returned time. It needs to return
|
|
the time since power up, no the current time. Issue noted by Max
|
|
Neklyudov.
|
|
- AIO: correct some backward tests in aio_read() and aio_write():
|
|
Socket descriptors have higher numbers than file descriptors. In
|
|
aio_contain(), Copy u.ptr (void *) when initializing aioc and not
|
|
the case specific u.aioc_filep. From Michal Ulianko.
|
|
|
|
* File Systems/Block Drivers/MTD:
|
|
|
|
- procfs: Fix potential NULL pointer dereference of 'node'. From
|
|
Juha Niskanen.
|
|
- FAT: fat_unbind() was accessing 'fs->fs_sem' after freeing the 'fs'
|
|
struct. From Juha Niskanen.
|
|
- mkfatfs: Use DMA memory for mkfatfs when needed. This makes mkfatfs
|
|
use fat_dma_alloc() when CONFIG_FAT_DMAMEMORY is set. This is needed
|
|
to ensure mkfatfs operates with boards that use DMA for microSD.
|
|
From Andrew Tridgell via the PX4/NuttX repository.
|
|
- FAT unmount: Fix a bug in the FAT unbind() logic. There were
|
|
problems with the way certain internal list handling was
|
|
implemented. The end result is that newly opened or cloned file
|
|
structures were never being added to the list of open files. So
|
|
when the unmount() happens, it always looked like there were not
|
|
open files and a crash could ensue.
|
|
- FAT mounting: Fix misthink when CONFIG_ENDIAN_BIG=y. From Lwazi Dube.
|
|
|
|
* Common Drivers:
|
|
|
|
- CAN upper half driver: Some lines had to be reordered in the can_open
|
|
function otherwise the open count will only be incremented from 0 to
|
|
1. This caused problems when trying to open the can bus from two
|
|
different tasks. SourceForge Patch #46.
|
|
|
|
* Crypto:
|
|
|
|
- crypto: Fix issues when AES support was added for the STM32L1.
|
|
From Juha Niskanen.
|
|
|
|
* Networking:
|
|
|
|
- Network initialization: Divide net_intiialize() into net_setup() and
|
|
net_initialize() to solve a chicken-and-egg problem. net_setup()
|
|
must be called before up_initialize() is called so that networking
|
|
data structures are ready to register new network devices.
|
|
net_initialize() now does only timer related operations and is
|
|
called AFTER up_initialize() where the timers are configured.
|
|
Problem noted by Max Neklyudov.
|
|
- netdev_unregister(): Fix a list handling error. From Max Neklyudov.
|
|
- Socket dup: Do not call sockfd_socket() twice. From Juha Niskanen.
|
|
|
|
* Common Drivers:
|
|
|
|
- max11802 touchscreen: Fix possible unmatched IRQ restore (not
|
|
normally a problem, but could happen in certain configurations).
|
|
Noted by Juha Niskanen.
|
|
- MMCSD SPI Multi-block transfers: ACMD23 must be preceded with CMD55
|
|
command as any other ACMD commands. Also, after the block reading
|
|
wait loop must be inserted before writing the next block of data to
|
|
the sd card. From Dmitry Nikolaev via Jussi Kivilinna.
|
|
- MMCSD SDIO: Fix some bad logic when file system debug is turned on:
|
|
Arguments to syslog were missing so that garbage was being printed.
|
|
- Common upper-half serial driver: Report correct number of bytes free
|
|
in serial buffer with FIONWRITE. From Sami Pelkonen via Jussi Kivilinna.
|
|
- Pipes/Fifos: Fix zero-lenth writes to pipes/FIFOs. From Jussi Kivilinna.
|
|
- USB device MSC: Add NULL pointer check. From Juha Niskanen.
|
|
- BCH driver: Avoid NULL pointer dereference when bch->refs == 255.
|
|
From Juha Niskanen.
|
|
- Various drivers: The inode unlink method should not be support if
|
|
operations on the root pseudo-filesystem are disabled.
|
|
|
|
* ARMv7-M
|
|
|
|
- ARMv7M MPU: Bad syntax in ARMv7-M MPU logic would cause failure to
|
|
write the correct value to the MPU_RASR register. From Juha Niskanen.
|
|
|
|
* Atmel SAM3/4 Drivers:
|
|
|
|
- SAM3/4 Serial TERMIOS: A side-effect of changing serial settings
|
|
via TERMIOS (such as tcsetattr) is that serial interrupts were being
|
|
left disabled. This is not a problem if the serial configuration is
|
|
changed when there are no open references to the serial device. In
|
|
that case, serial interrupts are disabled and will not be enabled
|
|
enabled until the serial device is first opened. But it is fatal if
|
|
the serial device is already opened and if there is a task waiting
|
|
to receive data. In that case, the side-effect of disabling
|
|
interrupts is fatal: That task is then left hanging with interrupts
|
|
disabled.
|
|
- SAM3/4 Serial: The IMR register is read-only. This means that
|
|
sam_restoreints() did not actually re-enable UART interrupts
|
|
(Fortunately, that function was not being used up to this point).
|
|
- SAMA5 HSMCI: Fix a bug in SAMA5 HSMCI. The bitfield mask and shift
|
|
values were reversed resulting in a trashed value for the number of
|
|
blocks in the BLOCKR register. This was sufficient to prevent DMA
|
|
writes from working.
|
|
|
|
* Atmel SAMA5 Drivers:
|
|
|
|
- SAMA5 Timer/Counter: Fix typos in timer/counter header file. From
|
|
Bob Doiron.
|
|
|
|
* STMicro STM32 Drivers:
|
|
|
|
- STM32 PWR and RTC: Changes to support fully write protecting the
|
|
backup domain. N.B. stm32_pwr_enablebkp did not account for the delay
|
|
from enable to the domain being writable. The KISS solution is a
|
|
up_udelay. A more complex solution would be a negated write test
|
|
with restore. From David Sidrane.
|
|
- STM32 SPI: Add missing SPI callback functions to the STM32 SPI
|
|
driver. From Freddie Chopin.
|
|
- STM32 I2C: Add missing NULL check. From Juha Niskanen.
|
|
- STM32 USB device: Fix stale initialization invalidating later NULL
|
|
check. From Juha Niskanen.
|
|
- STM32 UART: Fix RX DMA setup for UART5. From Jussi Kivilinna.
|
|
- STM32 UART: Make input hardware flow-control work with RX DMA. From
|
|
Jussi Kivilinna.
|
|
- STM32 RTC and clock control: The STM32F4Discovery board doesn't
|
|
come with a Low speed external oscillator so the default LSE source
|
|
for the RTC doesn't work. In stm32_rtcc.c the up_rtcinitialize()
|
|
logic doesn't work with the LSI. The check on RTC_MAGIC on the BK0R
|
|
register lead to rtc_setup() call that rightfully enables the LSI
|
|
clock; but the next times, when the rtc is already setup, the
|
|
rtc_resume() call does NOT start the LSI clock! The right place to
|
|
put LSE/LSI initialisation is inside stm32_stdclockconfig() in
|
|
stm32fxxxxx_rcc.c. Doing this I checked the possible uses of the
|
|
LSI and the LSE sources: the LSI can be used for RTC and/or the
|
|
IWDG, while the LSE only for the RTC (and to output the MCO1 pin).
|
|
This change is not verifed for any other platforms. From Leo
|
|
Aloe3132
|
|
|
|
* Tiva Drivers:
|
|
|
|
- Tiva GPIO driver needed small fixes in the configuration routines and
|
|
discovered false-positive bugs in interrupt testing: interrupts are
|
|
now verified to actually be working reliably. From Calvin Maguranis .
|
|
|
|
* MIPS32:
|
|
|
|
- mips32/Toolchain.mk: Current Pinguino toolchain uses the prefix p32-
|
|
instead of mips-.
|
|
|
|
* C Library/Header Files:
|
|
|
|
- sigaddset() and sigdelset(): Need to set errno if a bad signal
|
|
number is received.
|
|
- sfrtime(): Missing implementation of %C in sfrtime() C (was being
|
|
treated as %y). From Freddie Chopin.
|
|
- pthread.h: Fix PTHREAD_COND_INITIALIZER.
|
|
- ungetc.c: Fix NULL pointer dereference in ungetc() if 'stream' was
|
|
NULL, 'stream->fs_oflags' was evaluated. From Juha Niskanen.
|
|
- Fixes to asinh(), atanh(), and sinh(): The 'basic' expansions all
|
|
exhibited bad cancellation errors near zero (<= 1E-10). This can be
|
|
easily seen e.g. with x = 1E-30, the results are all zero though they
|
|
should be extremely close to x. The cutoff values (1E-5, 1E-9) are
|
|
chosen so that the next term in the Taylor series is negligible (for
|
|
double). Functions could maybe be optimized to use only first term (x)
|
|
and a smaller cutoff, just bigger than where the cancellation occurs
|
|
- localtime(): Inconsistent configuration name: CONFIG_LIBC_TZDIR vs
|
|
CONFIG_LIBC_TZ_TZDIR. Former wins.
|
|
|
|
* Applications:
|
|
|
|
- Modbus: Fix some compile problems when TCP is enabled.
|