summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-09-29 19:10:52 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-09-29 19:10:52 +0000
commit57265abd72741dcd33de4f9adae3d42d75f036c4 (patch)
treeef836780563818769a3ca6aeaef66bacd44c19e6
parent86c7e0af25f73384237d89339618917b30e176f9 (diff)
downloadpx4-nuttx-57265abd72741dcd33de4f9adae3d42d75f036c4.tar.gz
px4-nuttx-57265abd72741dcd33de4f9adae3d42d75f036c4.tar.bz2
px4-nuttx-57265abd72741dcd33de4f9adae3d42d75f036c4.zip
Prep for 6.22 Releasenuttx-6.22
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5206 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--apps/ChangeLog.txt4
-rw-r--r--nuttx/ChangeLog26
-rw-r--r--nuttx/Documentation/NuttX.html1057
-rw-r--r--nuttx/ReleaseNotes104
4 files changed, 675 insertions, 516 deletions
diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt
index 8eb96ac69..75f02754b 100644
--- a/apps/ChangeLog.txt
+++ b/apps/ChangeLog.txt
@@ -286,7 +286,7 @@
* apps/nshlib/nsh_parse.c: CONFIG_NSH_DISABLE_WGET not CONFIG_NSH_DISABLE_GET
in one location (found by Kate).
* apps/examples/ostest/prioinherit.c: Limit the number of test
- threds to no more than 3 of each priority. Bad things happen
+ threads to no more than 3 of each priority. Bad things happen
when the existing logic tried to created several hundred test
treads!
* apps/nshlib/nsh.h: Both CONFIG_LIBC_STRERROR and CONFIG_NSH_STRERROR
@@ -341,7 +341,7 @@
* apps/netutils/webserver/httpd.c: Add support for Keep-alive connections
(from Kate).
* apps/NxWidget/Kconfig: This is a kludge. I created this NxWidgets
- directory that ONLY contains Kconfig. NxWidgets does not like in
+ directory that ONLY contains Kconfig. NxWidgets does not live in
either the nuttx/ or the apps/ source trees. This kludge makes it
possible to configure NxWidgets/NxWM without too much trouble (with
the tradeoff being a kind ugly structure and some maintenance issues).
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 438d89a91..ef9e77132 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -3193,7 +3193,7 @@
speed/duplex. This does not work for certain PHYs. Still some unresolved
issues (also from Kate).
* tools/Config.mk, Makefile, configs/*/Make.defs: Add a new Makefile
- fragement to de-quoate certain strings from the Kconfig logic that
+ fragment to de-quote certain strings from the Kconfig logic that
need to be used at path segments (Richard Cochran).
* arch/arm/src/stm32/stm32_usbotghost.c: The STM32 USB host driver only
works with debug turned on. The problem appears to be that with debug
@@ -3201,7 +3201,7 @@
reveals a variety of errors. This check in improves NAK robustness
for control transfers but does not resolve all of the issues.
* configs/stm3220g-eval/*/defconfig: Calibrated delay loop. It had
- never been calibrated was was way off.
+ never been calibrated was way off.
* sched/sem_holder.c: Add logic to handler some priority inheritance
cases when sem_post() is called from an interrupt handler. The
logic is clearly wrong, but it is not known if this is the
@@ -3212,13 +3212,13 @@
CONFIG_LIBC_STRERROR_SHORT that can be used to output shortened
strings by strerror().
* arch/arm/src/stm32/stm32_usbotghost.c: Finally... the USB OTG FS
- appears to handle NAKing correctly is complete.
+ appears to handle NAKing correctly.
* configs/stm32f4discovery/*: Added and verifed support for USB OTG FS
host on the STM32F4Discovery board.
* configs/*/defconfig: Remove configuration documentation from config
files. It is redundant, error-prone, and difficult to maintain.
Configuration documentation is available in configs/README.txt for
- common configurations and in configs/*/README.txt for board and MCU_
+ common configurations and in configs/*/README.txt for board and MCU-
specific configurations.
* configs/stm3240g-eval: Add USB host support.
* sched/os_bring.c, configs/*/defconfig, tools/mkconfig.c, and others: Added
@@ -3226,7 +3226,7 @@
the default entry from user_start to some other symbol. Contributed by
Kate. NOTE: This change does introduce a minor backward incompatibility.
For example, if your application uses NSH as its start-up program, then your
- code will not fail because it will be unable to find "user_start". The fix
+ build will now fail because it will be unable to find "user_start". The fix
for this link failure is to add the following to your configuration file:
CONFIG_USER_ENTRYPOINT="nsh_main".
* libs/stdio/lib_libfread.c and lib_*flush*.c: Correct a couple of
@@ -3269,7 +3269,7 @@
CONFIG_HEAP2_SIZE (decimal) instead of CONFIG_HEAP2_END (hex).
* tools/configure.sh: Don't append the apps directory path setting
if the correct setting is already in defined in the defconfig file.
- * fs/fat/fs_utils.c: Improper constructed bool expression. This
+ * fs/fat/fs_utils.c: Improperly constructed bool expression. This
would cause many unnecessary writes to FLASH (Thanks Ronen Vainish).
* Kconfig: Verify configuration settings for the LPC43xx. This includes
some corrections to configuration variable names and defconfig settings.
@@ -3319,13 +3319,13 @@
in all places.
* drivers/enc28j60.c, include/nuttx/net/enc28j60.h, and
olimex-strp711/src/up_enc28j60.c: No longer passes IRQ number
- as a parameters. Instead now passes a call table to manage
+ as a parameter. Instead now passes a call table to manage
ENC28J60 GPIO interrupts. That is because GPIO interrupts are
handled in different ways by different MCUs and some do not
support IRQ numbers for GPIO interrupts.
* mm/mm_gran* and include/nuttx/gran.h: Add a simple granule-
based allocator. The intent of this allocator is to support
- simple allocation of DMA I/O buffers. The initiali check-in
+ simple allocation of DMA I/O buffers. The initial check-in
is code complete but untested (not event built into the
mm/Makefile yet.
* confgs/fire-stm32v2: The board port is basically functional.
@@ -3352,7 +3352,7 @@
* arch/arm/include/armv7-m/irq.h: Fix a critical bug in irqsave().
It looks like sometimes the compile will re-order some instructions
inapproapriately. This end result is that interrupts will get
- stuff off.
+ stuck off.
* drivers/mtd/w25.c: Beginning of a driver for the Windbond SPI
FLASH family (W25x16, W25x32, and W25x64). The initial check-in
is basically just the SST25 driver with some name changes.
@@ -3372,7 +3372,7 @@
I2C reset logic to recover from locked devices on the bus.
* configs/*/*/Make.defs, tools/Config.mk, Makefile: Refactor all
common make definitions from the various Make.defs files into
- the common tools/Make.mk. Add support for a verbosity options:
+ the common tools/Config.mk. Add support for a verbosity options:
Specify V=1 on the make command line in order to see the exact
commands used in the build (Contributed by Richard Cochran).
* drivers/net/enc28j60.c: The ENC28J60 Ethernet driver is
@@ -3400,17 +3400,17 @@
* configs/shenzhou/src/up_lcd.c: Oops. Shenzhou LCD does not
have an SSD1289 controller. Its an ILI93xx. Ported the
STM3240G-EVAL ILI93xx driver to work on the Shenzhou board.
- * configs/shenzhou/nxwm: Added an NxWM configuratino for the
+ * configs/shenzhou/nxwm: Added an NxWM configuration for the
Shenzhou board. This is untested on initial check-in. It will
be used to verify the Shenzhou LCD driver (and eventually the
touchscreen driver).
* configs/shenzhou/src/up_touchscreen.c: Add ADS7843E touchscreen
support for the Shenzhou board. The initial check-in is untested
- and basically a clone of the the touchscreen support fro the SAM-3U.
+ and basically a clone of the the touchscreen support for the SAM-3U.
* tools/cfgparser.c: There are some NxWidget configuration
settings that must be de-quoted.
* arch/arm/src/stm32/Kconfig: There is no SPI4. Some platforms
- SPI3 and some do not (still not clear).
+ support SPI3 and some do not (still not clear).
* nuttx/configs/shenzhou: Various fixes to build new NxWM
configuration.
* configs/shenzhou: Oops. The Shenzhou LCD is and SSD1289,
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index 84e0024ef..0370a708d 100644
--- a/nuttx/Documentation/NuttX.html
+++ b/nuttx/Documentation/NuttX.html
@@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4">
<td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
- <p>Last Updated: August 25, 2012</p>
+ <p>Last Updated: September 29, 2012</p>
</td>
</tr>
</table>
@@ -480,6 +480,7 @@
<p>
<li>Supports character and block drivers as well as specialized driver interfaces.</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -489,6 +490,7 @@
Network, USB (host), USB (device), serial, CAN, ADC, DAC, PWM, Quadrature Encoder, and watchdog timer driver architectures.
</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -498,6 +500,7 @@
RAMDISK, pipes, FIFO, <code>/dev/null</code>, <code>/dev/zero</code>, and loop drivers.
</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -505,6 +508,7 @@
<p>
<li>Generic driver for SPI-based or SDIO-based MMC/SD/SDH cards.</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -512,6 +516,7 @@
<p>
<li><a href="NuttXPortingGuide.html#pwrmgmt">Power management</a> sub-system.</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -519,6 +524,7 @@
<p>
<li>ModBus support provided by built-in <a href="http://freemodbus.berlios.de/">FreeModBus</a> version 1.5.0.</li>
</p>
+ </td>
</tr>
<tr>
@@ -533,6 +539,7 @@
<p>
<li>Fully integrated into the OS.</li>
</p>
+ </td>
</tr>
<tr>
@@ -547,6 +554,7 @@
<p>
<li>TCP/IP, UDP, ICMP, IGMPv2 (client) stacks.</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -554,6 +562,7 @@
<p>
<li>SLIP</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -561,6 +570,7 @@
<p>
<li>Small footprint (based on uIP).</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -568,6 +578,7 @@
<p>
<li>BSD compatible socket layer.</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -575,6 +586,7 @@
<p>
<li>Networking utilities (DHCP server and client, SMTP client, TELNET client, FTP server and client, TFTP client, HTTP server and client). Inheritable TELNET sessions (as &quot;controlling terminal&quot;)</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -584,6 +596,7 @@
NFS Client. Client side support for a Network File System (NFS, version 3, UDP).
</li>
</p>
+ </td>
</tr>
<tr>
<td><br></td>
@@ -594,6 +607,27 @@
integrated with <a href="NuttXNxFlat.html">NXFLAT</a> to provide true, embedded CGI.
</li>
</p>
+ </td>
+</tr>
+<tr>
+ <td><br></td>
+ <td>
+ <p>
+ <li>
+ UDP Network Discover (Contributed by Richard Cochran).
+ </li>
+ </p>
+ </td>
+</tr>
+<tr>
+ <td><br></td>
+ <td>
+ <p>
+ <li>
+ XML RPC Server (Contributed by Richard Cochran).
+ </li>
+ </p>
+ </td>
</tr>
<tr>
@@ -974,264 +1008,205 @@
</tr>
</table>
-<h2>NuttX-6.21 Release Notes</h2>
+<h2>NuttX-6.22 Release Notes</h2>
<p>
- The 88<sup>th</sup> release of NuttX, Version 6.21, was made on August 25, 2012, and is available for download from the
+ The 89<sup>th</sup> release of NuttX, Version 6.22, was made on September 29, 2012, and is available for download from the
<a href="http://sourceforge.net/projects/nuttx/files/">SourceForge</a> website.
- Note that the release consists of two tarballs: <code>nuttx-6.21.tar.gz</code> and <code>apps-6.21.tar.gz</code>.
+ Note that the release consists of two tarballs: <code>nuttx-6.22.tar.gz</code> and <code>apps-6.22.tar.gz</code>.
Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information)
The change log associated with the release is available <a href="#currentrelease">here</a>.
Unreleased changes after this release are available in SVN.
These unreleased changes are also listed <a href="#pendingchanges">here</a>.
</p>
<p>
- This release corresponds with SVN release number: r5052
+ 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:
</p>
+<ul><pre>
+svn checkout -r5206 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
+</pre></ul>
+<p>Or</p>
+<ul><pre>
+svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
+</pre></ul>
+
<p>
<b>Additional new features and extended functionality</b>
</p>
<ul>
- <li><b>Core</b>
- <ul>
- <li>
- Add support for multiple registered <code>atexit()</code> functions.
- </li>
- <li>
- Syslog extended:
- Now any character driver may be used for the debug logging device.
- Mountpoint traversal logic.
- </li>
- </ul>
- </li>
- <li><b>Common Drivers</b>
- <ul>
- <li>
- Added support for the TI PGA112-7 amplifier/multiplexor.
- </li>
- </ul>
- </li>
- <li><b>NXP LPC43XX</b>
- <ul>
- <li>
- Added clock ramp-up logic to run at 204 MHz.
- </li>
- </ul>
- </li>
- <li><b>NXP LPC43XX Drivers</b>
- <ul>
- <li>
- SPIFI block driver
- </li>
- <li>
- RS-485 support
- </li>
- <li>
- Minimal termios support
- </li>
- <li>
- Framework for USB0 device controller driver.
- </li>
- </ul>
- </li>
- <li><b>NXP LPC17XX Drivers</b>
- <ul>
- <li>
- Minimal termios support
- </li>
- </ul>
+ <li>
+ <p>
+ <b>RTOS</b>:
+ Application entry point is no longer user_start, but can be configured using <code>CONFIG_USER_ENTRYPOINT</code>.
+ 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).
+ </p>
</li>
- <li><b>STM32</b>
- <ul>
- <li>
- Support for STM32 F1 &quot;Value Line&quot; (contributed by Mike Smith).
- </li>
- <li>
- Add support for STM32 F107 &quot;Connectivity Line&quot; (contributed by Max Holtzberg).
- </li>
- <li>
- Clock restart logic needed for recovery from low power modes.
- </li>
- </ul>
+ <li>
+ <p>
+ <b>Memory Management</b>:
+ Added a new granule-based allocated that can be used to manage, aligned and quantized DMA memory.
+ </p>
</li>
- <li><b>STM32 Drivers</b>
- <ul>
- <li>
- RTC alarm support. Usable for wakeup from sleep mode.
- </li>
- <li>
- Minimal serial termios support.
- </li>
- <li>
- USB OTG FS host driver (alpha).
- </li>
- </ul>
+ <li>
+ <p>
+ <b>File System</b>:
+ Add hooks to allocate I/O memory with and external allocated (need if required by DMA).
+ </p>
</li>
- <li><b>STM32 Boards</b>
- <ul>
- <li>
- Add power management hooks for the STM32F4Discovery
- </li>
- <li>
- Add support for the Olimex STM32-P107 (contributed by Max Holtzberg)
- </li>
- </ul>
+ <li>
+ <p>
+ <b>Networking</b>:
+ ENC28J60 driver is (finally) verified.
+ </p>
</li>
- <li><b>PIC32</b>
- <ul>
- <li>
- Add support for the Pinguino MIPS toolchain
- </li>
- </ul>
+ <li>
+ <p>
+ <b>Drivers</b>:
+ 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.
+ </p>
</li>
- <li><b>PIC32 Drivers</b>
- <ul>
- <li>
- GPIO driver now supports F1 analog regiaters (ANSEL)
- </li>
- </ul>
+ <li>
+ <p>
+ <b>ARMv7-M</b>:
+ Added logic to reset the MCU using the NVIC.
+ </p>
</li>
- <li><b>PIC32 Boards</b>
- <ul>
- <li>
- Add support for the PGA117 on the Mirtoo module
- </li>
- </ul>
+ <li>
+ <p>
+ <b>STM32</b>:
+ Add support for STM32F103VET6.
+ </p>
</li>
- <li><b>Calypso</b>
- <ul>
- <li>
- Add support for the SSD1783 LCD on the Compal E99
- </li>
- </ul>
+ <li>
+ <p>
+ <b>STM32 Drivers</b>:
+ Add logic to re-initialize UARTs a second time to enable DMA (Mike Smith).
+ I2C driver error recovery (Mike Smith).
+ </p>
</li>
-
- <li><b>Library</b>
- <ul>
- <li>
- <code>cfsetispeed()</code>, <code>cfsetospeed()</code>, <code>tcflush()</code>, <code>memchr()</code>, and <code>memccpy()</code>.
- </li>
- </ul>
+ <li>
+ <p>
+ <b>STM32 boards</b>:
+ 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).
+ </p>
</li>
- <li><b>Applications</b>
- <ul>
- <li>
- Port of freemodbus-v1.5.0.
- </li>
- <li>
- Add support for testing devices with multiple ADC, PWM, and QE devices.
- </li>
- <li>
- NSH <code>mount</code> command (with no arguments) will now show mounted volumes.
- </li>
- <li>
- Added new NSH <code>df</code> command to show file system usage.
- </li>
- <li>
- Extended NSH 'help' support.
- </li>
- <li>
- NSH now catches the return value from spawned applications (provided by Mike Smith).
- </li>
- </ul>
+ <li>
+ <p>
+ <b>Build System:</b>:
+ Kconfig string de-quoting logic.
+ Remove comments from <code>defconfig</code> files (Kate).
+ Add tool to create NuttX-style symbol tables.
+ Numerous changes to configuration logic as needed for the new <code>mconf</code>-based configuration (much of this from Richard Cochran).
+ Refactor common <code>Make.defs</code> logic into <code>tools/Config.mk</code> (Richard Cochran).
+ </p>
</li>
- <li><b>Build System</b>
- <ul>
- <li>
- <code>mkconfig</code> will not define <code>CONFIG_DRAM_END</code>.
- </li>
- <li>
- A lot of progress has been made on the automated NuttX configuration logic (Thanks go to Richard Cochran).
- </li>
- </ul>
+ <li>
+ <p>
+ <b>Library</b>:
+ Configurable terse output from <code>strerror()</code>.
+ Added <code>perror()</code> (Kate).
+ Add <code>%n</code> format to <code>sscanf()</code> (Kate).
+ </p>
</li>
- <li><b>Documentation</b>
- <ul>
- <li>
- Document ways to customize the behavior of NSH
- </li>
- </ul>
+ <li>
+ <p>
+ <b>Applications</b>:
+ 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).
+ </p>
</li>
</ul>
-
-<p><b>Bugfixes</b> (see the change log for details):</p>
+<p>
+ <b>Bugfixes</b> (see the change log for details)
+ Some of these are very important (marked <b><i>critical</i></b>):
+</p>
<ul>
- <li><b>Serial drivers (all)</b>
- <ul>
- <li>
- Fix <code>ioctl()</code> return value.
- </li>
- <li>
- Common &quot;upper half&quot; serial driver will now return with <code>EINTR</code> if a serial wait is interrupted by a signal.
- </li>
- </ul>
+ <li>
+ <p>
+ <b>RTOS</b>:
+ Fixes to priority inheritance logic (<b><i>critical</i></b>).
+ <code>waitpid()</code> critical section.
+ Assertion in <code>work_cancel()</code> (Mike Smith).
+ <code>mmap()</code> (Kate).
+ </p>
</li>
- <li><b>FAT</b>
- <ul>
- <li>
- Fix statfs() file name length
- </li>
- </ul>
+ <li>
+ <p>
+ <b>FAT File System</b>:
+ Improper Boolean expression caused un-necessary writes and performance issues (<b><i>critical</i></b>, Ronen Vainish).
+ </p>
</li>
- <li><b>NXP LPC43xx</b>
- <ul>
- <li>
- Clock configuration
- </li>
- </ul>
+ <li>
+ <p>
+ <b>Networking</b>:
+ Remove an un-necessary delay from <code>recvfrom()</code>.
+ This greatly improves network performance (<b><i>critical</i></b>, Max Holtzberg).
+ </p>
</li>
- <li><b>STM32</b>
- <ul>
- <li>
- Pinmap fixes
- </li>
- <li>
- SPI driver re-initialization
- </li>
- </ul>
+ <li>
+ <p>
+ <b>Graphics</b>:
+ NX parameter checking errors.
+ </p>
</li>
- <li><b>STM32 Boards</b>
- <ul>
- <li>
- Correct and lower SDIO frequency for F2 and f4 boards
- </li>
- </ul>
+ <li>
+ <p>
+ <b>Drivers</b>:
+ Fix double release of memory in SDIO-based, MMC/SD driver (Ronen Vainish).
+ </p>
</li>
- <li><b>AVR</b>
- <ul>
- <li>
- C++ build issues
- </li>
- </ul>
+ <li>
+ <p>
+ <b>LPC17xx</b>:
+ Ethernet driver fixes needed for certain PHYs (Kate).
+ </p>
</li>
- <li><b>Power Management (PM)</b>
- <ul>
- <li>
- Fix a place where interrupts were not be re-enabled
- </li>
- </ul>
+ <li>
+ <p>
+ <b>AVR</b>:
+ Fix build error (Richard Cochran).
+ </p>
</li>
- <li><b>Applications</b>
- <ul>
- <li>
- Fix NSH application start-up race condition
- </li>
- </ul>
+ <li>
+ <p>
+ <b>STM32</b>:
+ USB OTG FS host driver NAKing an retries.
+ Power management compilation errors (Diego Sanchez).
+ Missing SPI3 remap logic.
+ </p>
</li>
- <li><b>Library</b>
- <ul>
- <li>
- Fieldwidth and justification for <code>%s</code> format.
- </li>
- <li>
- Fixed several issues with presenting floating point numbers.
- </li>
- <li>
- NULL definition for C++
- </li>
- </ul>
+ <li>
+ <p>
+ <b>STM32 Drivers</b>:
+ Fix for Ethernet errata for STM32F107 (<b><i>critical</i></b>).
+ Ethernet buffer alignment check.
+ Add &quot;kludge&quot; to Ethernet driver to handle DM9161 PHY which (at least on the Shenzhou board), sometimes does not come up correctly.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Applications</b>:
+ THTTPD (Kate).
+ NSH <code>ping</code> when IP address is on a different network (Darcy Gong).
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Library</b>:
+ <code>fread()</code>, <code>fflush()</code>, <code>fdopen()</code>: Fix error handling logic (Ronen Vainish).
+ Fix some field-width handling issues in <code>sscanf()</code>
+ </p>
</li>
</ul>
<p>
+ As well as other, less critical bugs.
See the <a href="#currentrelease">ChangeLog</a> for additional, detailed changes.
</p>
@@ -1450,8 +1425,8 @@
but only partially tested. Additional features are needed: USB driver, MMC integration,
to name two (the slot on the board appears to accept on MMC card dimensions; I have only
SD cards).
- An SPI-based ENC29J60 Ethernet driver for add-on hardware is under development and
- should be available in the NuttX 5.5 release.
+ An SPI-based ENC28J60 Ethernet driver for add-on hardware is available and
+ but has not been fully verified on the Olimex board (due to issues powering the ENC28J60 add-on board).
</p>
<p>
<b>Development Environments:</b>
@@ -3232,284 +3207,364 @@ Other memory:
</table>
<ul><pre>
-nuttx-6.21 2012-08-25 Gregory Nutt &lt;gnutt@nuttx.org&gt;
-
- * configs/lpc4330-xplorer/up_nsh.c: Add support for a basic SPIFI block
- driver for use by NSH. Does not work! Crashes on first SPIFI write.
- * configs/lpc4330-xplorer/*/defconfig: Calibrate delay loops (this is
- based on the current &quot;slow&quot; 72MHz M4 clock and will need to be
- re-calibrated when this is increased).
- * configs/stm3220g-eval/include/board.h and configs/stm3240g-eval/include/board.h:
- The SDIOCLK frequency in the F2 and F4 derives for PLL48CLK and not HCLK
- so that the SDIOCLK input frequency should always be 48MHz.
- * sched/os_internal.h, sched_setupidlefiles.c, sched_setuptaskfiles.c, and
- sched_setupidlefiles.c: Detangle some conditional compilation. Allow for
- a perverse configuration that has socket descriptors and streams but no file
- descriptors (sure, why not?).
- * sched/: Stylistic clean-up of all files. Some of these files are pretty old
- and do not follow current NuttX coding standards in detail.
- * fs/: More stylistic file clean-up.
- * mm/: More stylistic file clean-up.
- * drivers/ and drivers/serial/: More stylistic file clean-up.
- * arch/arm/src/lpc43xx/lpc43_clockconfig.c: Fix PLL1 bit manipulation logic.
- Critical bugfix! This would often cause the LPC43xx to fail to boot.
- * arch/arm/src/lpc43xx/lpc43_rgu.c: The soft reset logic called from the
- beginning of __start seems cause problems. A magic delay seems to improve
- the logic some. But I suspect that real fix is to get rid of all of the
- soft reset logic. This would also be a critical bugfix if I believed
- that it really fixed all of the issues.
- * arch/arm/src/lpc43xx/chip/lpc43_cgu.h: Fix a bit mask in the PLL1
- control register. Critical bugfix.
- * arch/arm/src/lpc43xx/lpc43_clockconfig.c and configs/lpc4330-xplorer/include/board.h:
- Implement PLL1 ramp-up logic; Now the LPC43xx is running at 204MHz.
- * configs/lpc4330-xplorer/*/defconfig: Re-calibrated delay loops using
- the 204MHz clock. The LPC43xx ripping rips! This calibration was performed
- with symbols enabled and all optimization disabled. It will need to be
- better recalibrated again down the road.
- * arch/arm/src/stm32/stm32_exti.c: Renamed to rch/arm/src/stm32/stm32_exti_gpio.c
- to make a little room in the file name space.
- * arch/arm/src/stm32/stm32_exti_alarm.c: Add initial logic to attached the
- RTC alarm EXTI interrupt. This is work be performed mostly by Diego Sanchez.
- * include/: More stylistic file clean-up.
- * arch/arm/src/lpc43xx/lpc43_spifi.c, lpc43_spifi.h, and chip/lpc43_spifi.h: Add
- logic to configure and initialize the SPIFI device (does not yet work).
- * configs/lpc4330-xplorer/include/board.h: Reduce SPI SCLK value.
- * arch/arm/src/lpc43xx/lpc43_spifi.c, lpc43_spifi.h, and chip/lpc43_spifi.h:
- Logic completely redesigned. It now creates an MTD driver to access SPIFI...
- but the driver still does not work.
- * arch/arm/src/stm32 and arch/arm/include/stm32: Make name of RTC ALARM interrupt
- common on STM32 F1,2,4
- * arch/arm/src/stm32 and arch/arm/include/stm32: Add support for the
- STM32F100x &quot;Value Line&quot; devices. This includes changes to stm32F10xx_rcc.c that
- add the ability to run the chip off the internal oscillator. There is no open
- board configuration for this part yet (the STM32VLDiscovery would be a candidate).
- Contributed by Mike Smith.
- * arch/arm/src/stm32: Fixed typos in conditional compilation in the CAN and DMA
- and some pin configuration. This would have caused problems for STM32 F107xx.
- Typos noted by Mike Smith.
- * arch/arm/src/lpc43xx/lpc43_serial.c: Add support for certain RS-485 features
- * lib/termios/lib_cfsetispeed.c, lib_cfsetospeed.c, lib_tcflush.c: Add
- simple implementations of cfsetispeed(), cfsetospeed(), and tcflush().
- * include/sys/str_tty.h, lib/lib_setspeed.c, lib_getspeed.c, and lib_resetspeed.c:
- Add APIs to support setting non-standard BAUD values not supported by POSIX
- termios. These are non-standard interfaces but have a precedence: There are
- similar interfaces in AIX.
- * include/sys/str_tty.h, lib/lib_setspeed.c, lib_getspeed.c, and lib_resetspeed.c:
- Sigh... removed. We don't need any more almost standard interfaces! (SVN
- revision 4968 if you want the short-lived code).
- * include/termios.h and lib/termios/*: Open the existing, standard termios
- interfaces to permit some non-standard baud settings. The new termios definitions
- still supports the POSIX standard except that it does not strictly enforce
- baud rate settings, permitting some non-portable, but useful baud rate settings
- (this is what the short-lived AIX-like interfaces would have accomplished as well).
- * include/termios.h and lib/termios/*: Redesigned yet again (this is getting
- painful. NuttX now supports the BOTHER baud setting just as Linux does. termios
- Bxxx definitions are again encoded; cf[set|get][o|i]speed now deal with only the
- encoded values. If the encoded baud is set to BOTHER, then the values in the (non-
- standard) c_ispeed and c_ospeed baud values may be accessed directly.
- * arch/arm/src/stm32/stm32_serial.c: Add minimal termios support for the STM32
- (BOTHER style baud settings only). Contributed by Mike Smith.
- * configs/lpc4343-xplorer/src: Clean up SPIFI-library based build to that it
- actually works.
- * arch/arm/src/lpc43xx/lpc43_spifi.c: Add support for verification to writes.
- Add debug option to dump buffers. Several bugfixes... almost works.
- * include/termios.h, lib/termios/*, and arch/arm/src/stm32/stm32_serial.c: :
- BOTHER is gone again.
- * arch/arm/src/stm32/stm32_sdio.c and chip/stm32f20xx_pinmap.h: STM32 F2 SDIO
- fixes from Gary Teravskis and Scott Rondestvedt.
- * include/termios.h and lib/termios/*: Replace cfsetispeed and cfsetospeed with
- cfsetspeed (with definitions for the input/outputs in termios.h).
- * configs/stm32f4discovery/src and configs/stm32f4discovery/pm: Add a power
- management configuration for the STM32F4Discovery and supporting logic. This
- check-in also includes some fixes for the F4 RTC alarm logic.
- * drivers/input/pga11x.c and include/nuttx/input/pga11x.h: Add support for the
- TI PGA112/3/6/7 amplifier/multiplexer parts.
- * configs/mirtoo/README.txt, nsh/defconfig, and nxffs/defconfig: Add support
- for the PGA117 on the Mirtoo module.
- * drivers/analog/pga11x.c and include/nuttx/analog/pga11x.h: These belong in
- the analog subdirectories, not input.
- * configs/compal_e99/src/ssd1783.c and /ssd1783.h: Drivers for the SSD1783
- LCD found in the Motorola C155 telephone. The driver is specific to the C155
- because it uses the uwire transport. Contributed by Denis Carilki and
- Alan Carvalho de Assis.
- * drivers/power/pm_changestate.c. Correct a case where interrupts were not
- being re-enabled. Found by Diego Sanchez.
- * configs/mirtoo/nxffs/defconfig: This Mirtoo NXFFS configuration now uses the
- open Pinguino toolchain by default. This is necessary because the free C32
- toolchain does not support any optimization and the unoptimized NXFFS image
- hits the PIC32MX2 FLASH size (128K). There is plenty of room to grow using
- the Pinguino toolchain with -O2 optimization.
- * configs/mirtoo/src/up_adc.c. This is just a stub for now, but this is
- where Mirtoo ADC logic will eventually need to go.
- * arch/mips/src/pic32mx/pic32mx-gpio.c: Now supports the PIC32MX1/2 ANSEL
- IOPORT register.
- * lib/string/lib_memchr.c: Add support for memchr() (contributed by Mike Smith)
- * lib/string/lib_memccpy.c: Add support for memccpy()
- * arch/arm/src/lpc17xx/lpc17_serial.c: Now supports ioctl commands to change
- the baud using tcsetattr() (contributed by Chris Taglia).
- * arch/*/src/*_serial.c: Fix ioctl method return values. These methods
- should return a negated errno value; they should not set the errno
- variable.
- * sched/on_exit.c, sched/task_exithook.c, and include/nuttx/sched.c: Add
- support for multiple registered on_exit() functions if CONFIG_SCHED_ONEXIT_MAX
- is defined.
- * drivers/syslog/ramlog.c: Move the RAM SYSLOG device into drivers/syslog
- so that it will be in the same directory as some new SYSLOGing devices
- in the works.
- * include/nuttx/syslog.h and drivers/syslog/ramlog.c: The SYSLOG putc function
- now has a common name that is independent of the device that provides the
- SYSLOG.
- * include/nuttx/syslog.h and drivers/syslog/syslog.c: This is a new, generic
- SYSLOG device that can redirect debug output to any character device or file.
- So you can log debug output to a file or you can put the console on /dev/ttyS0
- and the debug output on /dev/ttyS1.
- * arch/arm/src/lpc43xxl/lpc43_spifi.c: Correct an addressing error in the LPC43
- SPIFI MTD driver
- * drivers/syslog/syslog.c and fs/fs_syslog.c: Moved the generic syslog logic
- from drivers/syslog to fs/ where is belongs. Especially after realizing that
- the syslog logic is going to have to some internal FS operations in order
- to realize a totally thread-independent SYSLOG interface.
- * arch/arm/src/stm32/stm32*_rcc.c and .h: If CONFIG_PM is defined, add a
- function called stm32_clockenable() that can be used by PM logic to re-start
- the PLL after re-awakening from deep sleep modes.
- * fs/fs_foreachinode.c and fs/fs_foreachmountpoint.c: Add logic to traverse
- inodes and mountpoints in the NuttX pseudo-file system.
- * fs/fat/fs_fat32.c: Max. filename length reported by statfs() was wrong
- if FAT long file names were enabled.
- * lib/stdio/lib_libvsprintf.c: Fieldwidth and justification were not
- supported for the %s format. As a result, %s, %12s, and %-12s all
- produced the same output.
- * lib/stdio/lib_libdtoa.c: Fix several issues with presenting floating
- point numbers (conversions are fine, but presentation was bad). This
- is a critical bug fix if you use printf or sprintf to deal with floating
- point numbers.
- * lib/stdio/lib_libdtoa.c and lib_libvsprintf.c: Correct some floating
- point options.
- * arch/arm/lpc43xx/lpc32_usb0dev.c: Add framework for development of
- an USB0, device-side driver for the LPC43XX. The initial check-in,
- however, is simply for the LPC31xx driver with name changes. The
- LPC31xx has the same USB IP, but will require some additional initialization
- (and lots of testing) before it can be used with the LPC43xx.
- * nuttx/Documentation/NuttShell.html: Added a section covering ways to
- customize the behavior of NSH.
- * arch/arm/src/stm32/chip/stm32f1*_pinmap.h: STM32 CAN TX/RX pins reversed;
- inconsistent conditional compilation. Reported by Max Holtzberg.
- * arch/arm/*/stm32: Add support for STM32 F107 &quot;Connectivity Line&quot;
- Ethernet (contributed by Max Holtzberg).
- * configs/olimex-stm32-p107: Add board support for the Olimiex STM32-P107
- board (contributed by Max Holtzberg).
- * arch/arm/src/stm32/stm32f2xx_dma.c, stm32f4xx_dma.c, stm32_serial.c, and
- stm32_spic.c: DMA priority was getting zeroed by STM32 F2/F4 DMA drivers
- so that all DMAs ran at the lowest priority.
- * configs/stm3240g-eval/include/board.h and configs/stm3220: Drop SD card
- frequency from 24 to 16 MHz. Apparently 24 MHz is too fast for the board.
- This (plus the change to the STM32 DMA (above) fixes SDIO DMA on the
- STM3240G-EVAL (and probably STM3220G-EVAL -- untested).
- * arch/arm/src/stm32/stm32f2xx_dma.c and stm32f4xx_dma.c: Backed out the
- DMA priority change just above. The reduced SD card frequency was
- necessary and sufficient to resolve the problem.
- * drivers/serial/serial.c: open, read, write, and poll methods may now
- abort return EINTR (or a short transfer size) if a signal is received
- while waiting to receive or send serial data. This behavior is required
- by POSIX.
- * include/sys/types.h: Define NULL to be (0) if __cplusplus is defined.
- (contributed by Mike Smith)
- * include/ctype.h: Remove a stray semi-colon in a definitions (Thanks
- Mike Smith).
- * configs/.../Make.defs. Fix C++ include path set-up in Make.defs file
- for all 8-bit AVR platforms (Thanks Richard Cochran).
- * lib/stdio/lib_*stream.c: Revised to handle new error return values from
- serial.c.
- * arch/arm/src/stm32/stm32_spi.c: SPI driver can now service re-
- initialization (Mike Smith).
- * tools/mkconfig.c: If CONFIG_DRAM_END is not specified, this tool
- will provide default definition of (CONFIG_DRAM_START + CONFIG_DRAM_SIZE)
- * arch/arm/src/stm32/stm32_otgfshost.c: Renamed from stm32_usbhost.c.
- This is nearly code complete and, with any luck, will be available
- in NuttX-6.21.
- * configs/*/defconfig: Update all defconfig files to remove syntax
- that is incompatible with the mconf configuration tool.
- * arch/arm/src/stm32/stm32_otgfshost.c: This driver now appears to be
- functional (although more testing is necesary).
-
-apps-6.21 2012-08-25 Gregory Nutt &lt;gnutt@nuttx.org&gt;
-
- * apps/include/: Stylistic clean-up of all header files.
- * apps/modbus and apps/include/modbus: A port of freemodbus-v1.5.0
- has been added to the NuttX apps/ source tree.
- * apps/examples/modbus: A port of the freemodbus-v1.5.0 &quot;demo&quot;
- program that will be used to verify the FreeModBus port
- * apps/modbus: Don't use strerror(). It is just too big.
- * apps/modbus: Add CONFIG_MB_TERMIOS. If the driver doesn't support
- termios ioctls, then don't bother trying to configure the baud, parity
- etc.
- * apps/nshlib: If waitpid() is supported, then NSH now catches the
- return value from spawned applications (provided by Mike Smith)
- * apps/nshlib: Lock the scheduler while starting built-in applications
- in order to eliminate race conditions (also from Mike Smith).
- * apps/examples/adc, pwm, and qencoder: Add support for testing
- devices with multiple ADC, PWM, and QE devices.
- * apps/nshlib/nsh_mntcmds.c: Separated mount-related commands out of
- nsh_fscmds.c. Extended to the mount command so that if no arguments
- are provided, then the current mountpoints are enumerated.
- * apps/nshlib/nsh_mntcmds.c: Add an NSH df command to list the
- properties of mounted file systems.
- * apps/nshlib/nsh_parse.c: Extend help command options. 'help' with
- no arguments outputs a short list of commands. With -v lists all
- command line details. A command name can be added to just get
- help on one command.
- * system/readline.c: If character input/output is interrupted by a
- signal, then readline() will try the read/write again.
- * apps/*/Make.defs: Numerous fixes needed to use the automated
- configuration (from Richard Cochran).
-
-NxWidgets-1.2 2012-06-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
-
- * NXWidgets::CCallback: callback arguement is now type CCallback and not
- CWidgetControl; Added a method to redirect keyboard contacts to either
- the widgets in the window (via CWidgetControl) or to an NxConsole (via
- nxcon_kbdin()).
- * NXWidgets::INxWindow, CBgWindow, CNxTkWindow, CNxToolbar, CNxWindow:
- Now pass the CCallback intances as the callback argument instead of
- the CWidgetControl instance. New method redirectNxConsole() will
- support redirection of any window keyboard input to the NxConsole
- (via CCallback).
- * NxWM:CNxConsole: Configures the NxConsole window to redirection keyboard
- input to the NxConsole; redirects standard input to the NxConsole
- device driver.
- * NxWM:CKeyboard: Add a new class that implements a keyboard listener
- thread. This thread reads from /dev/console and injects the keyboard
- input into NX. NX will determine which window is at the top of the
- heirarchy and re-direct the keyboard input to only that top window.
- This solves an important problem with, for example, running multiple
- copies of the NxConsole: On the copy of the NxConsole at the top of
- the heirarchy should get the keyboard input.
- * UnitTests/nxwm/main.cxx: Now starts the keyboard thread if
- CONFIG_NXWM_KEYBOARD is defined.
- * NxWM::CTaskbar: After drawing the task bar, need to raise the
- application window otherwise the taskbar will be on the top and
- keyboard input will not be received by the top application.
- * NxWM::CTaskbar: Bugfix... previous window should not be minimized
- when a new window is started. It should stay in a maximized state
- so that it will re-appear with the window above it is closed or
- minimized.
- * NxWM::CHexCalculator: Add a hexadecimal/decimal calculator
- example.
- * NXWidgets::CNxTkWindow: Back out height adjustment in the getSize()
- method. The code was correct as it was before.
- * NXWidgets::CButtonArray and NXWidgets::CGraphicsPort: There is
- a kludge in there to handle the case where we cannot read the
- background data because the LCD does not support read operations.
- In that case, we just use the default background color. However,
- that doesn't work either for the case where the background color
- changes when the widget is selected. Then the background color
- in the font is wrong. Fixed in CButtonArrary, but the problem
- probably exists in other places as well.
- * NxWM: Increase default spacing of icons on the Start Window.
- * NxWM::CHexCalculator: Fix some non-standard calculator behavior
- after = is pressed. Use upper case hex. Increase font size.
- * nxwm/Makefile: Fix error that creapt in during some other
- recent check-ins.
+nuttx-6.22 2012-09-29 Gregory Nutt &lt;gnutt@nuttx.org&gt;
+
+ * include/semaphore.h, sched/sem_holders.c, and lib/semaphore/sem_init.c:
+ Fix some strange (and probably wrong) list handling when
+ CONFIG_PRIORITY_INHERITANCE and CONFIG_SEM_PREALLOCHOLDERS are defined.
+ This list handling was probably causing errors reported by Mike Smith
+ * sched/sched_waitpid.c: Fix a possible issue with logic logic that
+ should be brought into a critical section (suggested by Mike Smith)
+ * sched/sched_setuptaskfiles.c: Should be 'struct socket' not
+ 'struct sockets'. How did this compile before? (found by Kate)
+ * syscall/syscall.csv: Fix prototype for usleep() and prctl() (also
+ from Kate).
+ * arch/arm/src/lpc17xx/lpc17_ethernet.c: Conditionally elide setting PHY
+ speed/duplex. This does not work for certain PHYs. Still some unresolved
+ issues (also from Kate).
+ * tools/Config.mk, Makefile, configs/*/Make.defs: Add a new Makefile
+ fragment to de-quote certain strings from the Kconfig logic that
+ need to be used at path segments (Richard Cochran).
+ * arch/arm/src/stm32/stm32_usbotghost.c: The STM32 USB host driver only
+ works with debug turned on. The problem appears to be that with debug
+ OFF, there are more NAKs occuring in more places than before and this
+ reveals a variety of errors. This check in improves NAK robustness
+ for control transfers but does not resolve all of the issues.
+ * configs/stm3220g-eval/*/defconfig: Calibrated delay loop. It had
+ never been calibrated was way off.
+ * sched/sem_holder.c: Add logic to handler some priority inheritance
+ cases when sem_post() is called from an interrupt handler. The
+ logic is clearly wrong, but it is not known if this is the
+ cause of any known bugs.
+ * lib/stdio/lib_perror(): Add perror(). Contributed by Kate.
+ * lib/string/lib_strerror(): Add option CONFIG_LIBC_STRERROR that
+ is now required to enabled strerror(). Add an option
+ CONFIG_LIBC_STRERROR_SHORT that can be used to output shortened
+ strings by strerror().
+ * arch/arm/src/stm32/stm32_usbotghost.c: Finally... the USB OTG FS
+ appears to handle NAKing correctly.
+ * configs/stm32f4discovery/*: Added and verifed support for USB OTG FS
+ host on the STM32F4Discovery board.
+ * configs/*/defconfig: Remove configuration documentation from config
+ files. It is redundant, error-prone, and difficult to maintain.
+ Configuration documentation is available in configs/README.txt for
+ common configurations and in configs/*/README.txt for board and MCU-
+ specific configurations.
+ * configs/stm3240g-eval: Add USB host support.
+ * sched/os_bring.c, configs/*/defconfig, tools/mkconfig.c, and others: Added
+ configuration variable CONFIG_USER_ENTRYPOINT that may be used to change
+ the default entry from user_start to some other symbol. Contributed by
+ Kate. NOTE: This change does introduce a minor backward incompatibility.
+ For example, if your application uses NSH as its start-up program, then your
+ build will now fail because it will be unable to find &quot;user_start&quot;. The fix
+ for this link failure is to add the following to your configuration file:
+ CONFIG_USER_ENTRYPOINT=&quot;nsh_main&quot;.
+ * libs/stdio/lib_libfread.c and lib_*flush*.c: Correct a couple of
+ error cases where the lib semaphore was not be released on error
+ exits (thanks Ronen Vainish). Also, improved some error reporting:
+ the generic ERROR was being used instead of the specific errno
+ value; the errno variable was not always set correctly.
+ * tools/mkfsdata.pl: The uIP web server CGI image making perl script was
+ moved from apps/netutils/webserver/makefsdata to nuttx/tools/mkfsdata.pl
+ (Part of a larger change submitted by Max Holtzberg).
+ * configs/stm3240g-eval/script/ld.script: All of the identical ld.script
+ files for the STM3240G-EVAL were replaced by one version in this directory.
+ * configs/stm3240g-eval/webserver: Configuration submitted by Max Holtzberg
+ for testing the changes to the uIP web server (see apps/ChangeLog.txt).
+ * lib/stdio/lib_perror.c: Remove CONFIG_LIBC_PERROR_DEVNAME. What was I
+ thinking? Arbitrary streams cannot be shared by different tasks.
+ * tools/mksyscall.c, csvparser.c, and csvparser.h: Separate CSV parsing
+ logic from mksyscall.c into files where it can be shared.
+ * tools/mksymtab.c: Add a tool that can be used to convert a CSV file
+ into a NuttX-style symbol table.
+ * sched/work_cancel.c: Fix a bad assertion (reported by Mike Smith)
+ * configs/stm3210e-eval/src/up_idle.c: Correct some power management
+ compilation errors (reported by Diego Sanchez).
+ * include/nuttx/wqueue.h, sched/work*, and others: Added logic to support
+ a second, lower priority work queue (CONFIG_SCHED_LPWORK).
+ * arch/arm/src/stm32/stm32_dma.c, chip/stm32*_memorymap.h: FSMC SRAM is
+ only 16-bits wide and the SDIO DMA must be set up differently.
+ * arch/arm/src/stm32/stm32_dma.c: Back out the 16-bit DMA change. It
+ is incorrect.
+ * configs/: Make use of UART4/5 vs USART4/5 consistent in all places.
+ * Kconfig: Serial 2STOP setting must be integer 0/1, not a boolean.
+ * lib/misc/sendfile.c and include/sys/sendfile.h: Add a Linux style
+ sendfile() (non-standard!)
+ * Kconfig: Refactor serial settings (moved from chip to drivers/serial).
+ AVR &quot;teensy&quot; now builds with Kconfig (contributed by Richard Cochran).
+ * Kconfig: Add configuration settings for the LPC17xx
+ * Kconfig: Add configuration settings for the LM3S (from Richard Cochran).
+ * Kconfig: Verify configuration settings for the STM32. This includes
+ changes in the way that the external SRAM is configured: Define
+ CONFIG_HEAP2_SIZE (decimal) instead of CONFIG_HEAP2_END (hex).
+ * tools/configure.sh: Don't append the apps directory path setting
+ if the correct setting is already in defined in the defconfig file.
+ * fs/fat/fs_utils.c: Improperly constructed bool expression. This
+ would cause many unnecessary writes to FLASH (Thanks Ronen Vainish).
+ * Kconfig: Verify configuration settings for the LPC43xx. This includes
+ some corrections to configuration variable names and defconfig settings.
+ * Kconfig: Add and verify configuration settings for the LPC31xx.
+ * arch/arm/src/stm32/stm32_uart.h and stm32_serial.c: Add logic to
+ re-initialize the console UART as needed to enable DMA on the
+ console UART (contributed by Mike Smith).
+ * net/recvfrom.c, net/Kconfig, include/nuttx/net/uipopt.h: Remove delay
+ after receiving data. That has historical reasons to be there (it
+ was needed before read-ahead buffering was added), but kills performance.
+ (Noted by Max Holtzberg).
+ * configs/shenzhou: Add beginnings of a board configuration for the
+ Shenzhou STM32107 board (see www.armjishu.com). Very little is in
+ place as of this initial check-in.
+ * QEMU: Fixes from Richard Cochran to build QEMU with Kconfig files.
+ * arch/*/src/Makefile: Remove some old logic that was kicked off
+ when CONFIG_BOOT_RUNFROMFLASH=y. The old logic used to use
+ objcopy to move sections. Newer logic changes the load position
+ of sections in the the linker script. As far as I can tell, there
+ is nothing in the source tree now that depends on the old way of
+ doing things (if I am wrong, they will need a change to the linker
+ script).
+ * configs/fire-stm32v2: Configuration for the M3 Wildfire board. I
+ don't know very much about this board other than is has an
+ STM32F103VET6 chip, LCD, touchscreen, and ENC28J60 network. Very
+ little is in place on the initial check-in.
+ * configs/shenzhou: Coding for the Shenzhou board port is complete,
+ but tested has been deferred until I get the right tools.
+ * arch/arc/include/stm32/chip.h and arch/arm/src/stm32/chip.h:
+ Add support for the STM32F103VET6.
+ * fs/fs_fdopen.c: Bad check for failure to allocate memory. (Noted
+ by Ronen Vainish).
+ * drivers/mmcsd/mmcsd_sdio.c: If the MMC/SD driver were ever
+ uninitialized then there would be a double release of memory
+ (Noted by Ronen Vainish).
+ * fs/mmap/fs_rammap.c: Fix logic error and errno check (contributed
+ by Kate).
+ * arch/avr/src: Fixes from AVR32 build errors that have crept in
+ over the time; incorporated Kconfig for AVR3 (Richard Cochran).
+ * fs/fat and include/nuttx/fs/fat.h: The FAT file system allocates
+ memory for sector I/O buffers used to exchange data with the
+ configured block driver. In some contexts, the block driver may
+ require DMA-capable memory. If CONFIG_FAT_DMAMEMORY is defined,
+ then the FAT FS will use platform-provided DMA memory allocators
+ to allocate the block driver I/O buffers.
+ * CONFIG_NET_ENC28J60 renamed CONFIG_ENC28J60 to be consistent
+ in all places.
+ * drivers/enc28j60.c, include/nuttx/net/enc28j60.h, and
+ olimex-strp711/src/up_enc28j60.c: No longer passes IRQ number
+ as a parameter. Instead now passes a call table to manage
+ ENC28J60 GPIO interrupts. That is because GPIO interrupts are
+ handled in different ways by different MCUs and some do not
+ support IRQ numbers for GPIO interrupts.
+ * mm/mm_gran* and include/nuttx/gran.h: Add a simple granule-
+ based allocator. The intent of this allocator is to support
+ simple allocation of DMA I/O buffers. The initial check-in
+ is code complete but untested (not event built into the
+ mm/Makefile yet.
+ * confgs/fire-stm32v2: The board port is basically functional.
+ Not all features have been verified. The ENC28J60 network
+ is not yet functional.
+ * configs/stm3240g-eval/discover: A configuration for testing
+ the UDP discovery utility. Contributed by Max Holtzberg.
+ * mm/README.txt: Add a new README file.
+ * include/nuttx/usb/usb.h, arch/*/src/*usb.c, and arch/*/src/*otg*.c:
+ Add hooks to to use common, external DMA buffer allocation
+ implementation.
+ * net/recvfrom.c: Don't block in recvfrom if (1) read-ahead buffering
+ is enabled and (2) some data was obtained from read-ahead buffers.
+ Blocking is a bad idea in that case because there is no timeout!
+ (submitted by Max Holtzberg).
+ * configs/stm3240g-eval/xmlrpc: An example configuration for the
+ Embeddable Lightweight XML-RPC Server at apps/examples/xmlrpc.
+ See http://www.drdobbs.com/web-development/\
+ an-embeddable-lightweight-xml-rpc-server/184405364 for more info.
+ Contributed by Max Holtzberg.
+ * configs/*/nxwm/defconfig and sched/task_exithook.c: Fixes for
+ bugs that crept in during recent changes. (Submitted by Max
+ Holtzberg).
+ * arch/arm/include/armv7-m/irq.h: Fix a critical bug in irqsave().
+ It looks like sometimes the compile will re-order some instructions
+ inapproapriately. This end result is that interrupts will get
+ stuck off.
+ * drivers/mtd/w25.c: Beginning of a driver for the Windbond SPI
+ FLASH family (W25x16, W25x32, and W25x64). The initial check-in
+ is basically just the SST25 driver with some name changes.
+ * arch/arm/include/armv7-m/irq.h and arch/arm/src/stm32/stm32_spi.c:
+ Back out the last change in irq.h. It is (most likely) fine the
+ way it was. The really interrupt related problem was in stm32_spi.c:
+ When SPI3 is not enabled, then the irqrestore() falls in the
+ else clause.
+ * include/nuttx/compiler.h and other files: Moved always_inline
+ and noinline __attributes__ here. Also replaced all occurrences
+ of explicit __atributes__ in other files with definitions from
+ this header file.
+ * drivers/mtd/w25.c: The Windbond SPI FLASH W25 FLASH driver is
+ code complete (but still untested).
+ * arch/arm/src/stm32/stm32_i2c.c: I2C improvements from Mike Smith.
+ Unified configuration logic; dynamic timeout calculations;
+ I2C reset logic to recover from locked devices on the bus.
+ * configs/*/*/Make.defs, tools/Config.mk, Makefile: Refactor all
+ common make definitions from the various Make.defs files into
+ the common tools/Config.mk. Add support for a verbosity options:
+ Specify V=1 on the make command line in order to see the exact
+ commands used in the build (Contributed by Richard Cochran).
+ * drivers/net/enc28j60.c: The ENC28J60 Ethernet driver is
+ now functional.
+ * configs/fire-stm32v2: Add support or the fire-stm32v3 board as
+ well (untested because I do not have a v3 board).
+ * lib/stdio/lib_sscanf.c: Add %n psuedo-format (from Kate).
+ * lib/stdio/lib_sscanf.c: There is an issue of handling input
+ when (1) no fieldwidth is provided and (2) there is no space
+ seperating the input values. No solutions is in place for this
+ case now (either space or a fieldwidth must be provided). But
+ at least some of the bad logic that attempted to handle this
+ case has been removed (noted by Kate).
+ * arch/arm/src/stm32/stm32_eth.c: DMA buffer sizes must be an
+ even multiple of 4, 8, or 16 bytes.
+ * arch/arm/src/stm32/stm32_idle.c: Fixes STM32F107 DMA issues:
+ We cannot go into sleep mode while Ethernet is actively DMAing.
+ * configs/shenzhou/src/up_ssd1289.c: Add infrastructure to support
+ SSD1289 LCD. Initial checkin is just a clone of the
+ STM32F4Discovery's FSMC-based LCD interface. The Shenzhou
+ will need a completely need bit-banging interface; this
+ initial check-in is only for the framework.
+ * configs/shenzhou/src/up_ssd1289.c: Bit-banging driver is
+ code complete.
+ * configs/shenzhou/src/up_lcd.c: Oops. Shenzhou LCD does not
+ have an SSD1289 controller. Its an ILI93xx. Ported the
+ STM3240G-EVAL ILI93xx driver to work on the Shenzhou board.
+ * configs/shenzhou/nxwm: Added an NxWM configuration for the
+ Shenzhou board. This is untested on initial check-in. It will
+ be used to verify the Shenzhou LCD driver (and eventually the
+ touchscreen driver).
+ * configs/shenzhou/src/up_touchscreen.c: Add ADS7843E touchscreen
+ support for the Shenzhou board. The initial check-in is untested
+ and basically a clone of the the touchscreen support for the SAM-3U.
+ * tools/cfgparser.c: There are some NxWidget configuration
+ settings that must be de-quoted.
+ * arch/arm/src/stm32/Kconfig: There is no SPI4. Some platforms
+ support SPI3 and some do not (still not clear).
+ * nuttx/configs/shenzhou: Various fixes to build new NxWM
+ configuration.
+ * configs/shenzhou: Oops. The Shenzhou LCD is and SSD1289,
+ not an ILI93xx.
+ * configs/shenzhou/src/up_ssd1289.c: The LCD is basically functional
+ on the Shenzhou board.
+ * graphics/nxmu: Correct some bad parameter checking that caused
+ failures when DEBUG was enabled.
+ * arch/arm/src/armv7-m/nvic.h: Add bit definitions for the AIRCR
+ register.
+ * drivers/input/ads7843.c: Need semaphore protection in logic
+ that samples the position.
+ * drivers/lcd/ssd1289.c: On some platforms we are unable to
+ read the device ID -- reason unknown; workaround in place.
+ * drivers/input/ads7843.c: Add thresholding options and an
+ option to swap X and Y positions. Fix some logic errors in
+ the SPI locking/selecting logic.
+ * arch/arm/src/armv7-m/up_systemreset.c: Add logic to reset
+ the Cortex-Mx using the AIRCR register. Contributed by Darcy
+ Gong.
+ * arch/arm/src/stm32/up_eth.c: Add logic specifically for the
+ DM9161 PHY. If the DM9161 failed to initialize, then use the
+ up_sysemreset() logic to reset the MCU. Contributed by Darcy
+ Gong.
+ * arch/arm/src/stm32/stm32_gpio.c: Add missing logic to set bit
+ for SPI3 remap. This fixes the XPT2046 touchscreen driver using
+ drivers/input/ads7843.c
+ * configs/shenzhou/src/up_ssd1289.c: Fix naming error in
+ conditional compilation.
+ * configs/shenzhou/nxwm/defconfig: Disable reading from the LCD.
+ This does not work. The hardware and the driver support the
+ capability, but there is some bug that causes memory corruption.
+ The work around for now: Just disable reading from the LCD.
+ * drivers/lcd/ssd1289.c: Add some logic to reduce the amount of
+ output when CONFIG_DEBUG_LCD is enabled.
+ * configs/shenzhou/nxwm/defconfig: Bug found and fixed... The
+ original configuration had too much stuff turned on. Reducing
+ stack sizes, some features, and buffer sizes made the
+ configuration reliable (Reading from the LCD is still disabled).
+ * net/uip/uip_icmpping.c: Fix problem that prevented ping from
+ going outside of local network. Submitted by Darcy Gong
+
+apps-6.22 2012-09-29 Gregory Nutt &lt;gnutt@nuttx.org&gt;
+
+ * apps/netutils/thttpd/thttpd_cgi.c: Missing NULL in argv[]
+ list (contributed by Kate).
+ * apps/nshlib/nsh_parse.c: CONFIG_NSH_DISABLE_WGET not CONFIG_NSH_DISABLE_GET
+ in one location (found by Kate).
+ * apps/examples/ostest/prioinherit.c: Limit the number of test
+ threads to no more than 3 of each priority. Bad things happen
+ when the existing logic tried to created several hundred test
+ treads!
+ * apps/nshlib/nsh.h: Both CONFIG_LIBC_STRERROR and CONFIG_NSH_STRERROR
+ must be defined to use strerror() with NSH.
+ * apps/examples/*/*_main.c, system/i2c/i2c_main.c, and others: Added
+ configuration variable CONFIG_USER_ENTRYPOINT that may be used to change
+ the default entry from user_start to some other symbol. Contributed by
+ Kate.
+ * apps/netutils/webserver/httpd/c: Fix a typo that as introduced in
+ version r4402: 'lese' instead of 'else' (Noted by Max Holtzberg).
+ * tools/mkfsdata.pl: The uIP web server CGI image making perl script was
+ moved from apps/netutils/webserver/makefsdata to nuttx/tools/mkfsdata.pl
+ (Part of a larger change submitted by Max Holtzberg).
+ * apps/netutils/webserver, apps/examples/uip, and apps/include/netutils/httpd.h:
+ The &quot;canned&quot; version of the uIP web servers content that was at
+ netutils/webserver/httpd_fsdata.c has been replaced with a dynamically
+ built configuration located at apps/examples/uip (Contributed by
+ Max Holtzberg).
+ * apps/netutils/webserver: Several inenhancements from Kate including the
+ ability to elide scripting and SERVER headers and the ability to map
+ files into memory before transferring them.
+ * apps/netutils/webserver: Add ability to map a URL to CGI function.
+ Contributed by Kate.
+ * apps/nshlib/nsh_mntcmds.c: The changes of 6.21 introduced holes in the
+ error handling: Now the number of arguments to mount can be 0 or 4.
+ Additional parameter checking is required to prevent mysterious errors
+ (submiteed by Kate).
+ * apps/netutils/webserver/httpd_mmap.c: Fix errors when the mmap()
+ length is zero (submitted by Kate).
+ * apps/netutils/webserver/httpd_sendfile.c: Add and option,
+ CONFIG_NETUTILS_HTTPD_SENDFILE to transfer files using the NuttX
+ sendfile() interface.
+ * apps/netutils/discover: A UDP network discovery utility contributed
+ by Max Holtzberg.
+ * apps/examples/discover: A test example for the UDP network discovery
+ utility (also contribed by Max Holtzberg).
+ * apps/examples/*/main.c: Too many files called main.c. Each renamed
+ to something unique so that they will not collide in the archive.
+ * apps/netutils/xmlrpc: The Embeddable Lightweight XML-RPC Server
+ discussed at http://www.drdobbs.com/web-development/\
+ an-embeddable-lightweight-xml-rpc-server/184405364. Contributed by
+ Max Holtzberg.
+ * apps/netutils/uip_listenon.c: Logic in uip_server.c that creates
+ the listening socket was moved to this new file to support re-use.
+ Contributed by Kate.
+ * apps/netutils/webserver/httpd.c: The option CONFIG_NETUTILS_HTTPD_SINGLECONNECT
+ can now be used to limit the server to a single thread. Option
+ CONFIG_NETUTILS_HTTPD_TIMEOUT can be used to generate HTTP 408 errors.
+ Both from Kate.
+ * apps/netutils/webserver/httpd.c: Improvements to HTTP parser from
+ Kate.
+ * apps/netutils/webserver/httpd.c: Add support for Keep-alive connections
+ (from Kate).
+ * apps/NxWidget/Kconfig: This is a kludge. I created this NxWidgets
+ directory that ONLY contains Kconfig. NxWidgets does not live in
+ either the nuttx/ or the apps/ source trees. This kludge makes it
+ possible to configure NxWidgets/NxWM without too much trouble (with
+ the tradeoff being a kind ugly structure and some maintenance issues).
+ * apps/examples/Make.defs: Missing support for apps/examples/watchdog.
+ * apps/NxWidgets/Kconfig: Add option to turn on the memory monitor
+ feature of the NxWidgets/NxWM unit tests.
+
+NxWidgets-1.3 2012-09-29 Gregory Nutt &lt;gnutt@nuttx.org&gt;
+
+ * UnitTests/*/main.cxx: Change entry point name to be consistent
+ with with entry point naming conventions introduced in NuttX
+ 6.22.
+ * Kconfig: Added a mconfig configuration file. Eventually, NxWidgets
+ needs to get hooked into the NuttX mconf configuration. Still not
+ exactly sure how to do that.
+ * libnxwidgets/Makefile and NxWidgets/nxwm/Makefile: Need updates
+ for consistency with recent changes to NuttX build system (&gt;= 6.22)
+ * Kconfig: Add option to turn on the memory monitor feature of the
+ NxWidgets/NxWM unit tests.
pascal-3.0 2011-05-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes
index 4d7211669..80362f5dd 100644
--- a/nuttx/ReleaseNotes
+++ b/nuttx/ReleaseNotes
@@ -3063,3 +3063,107 @@ Bugfixes (see the change log for details) :
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)