Prep for release 6.20

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4937 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-07-12 17:57:31 +00:00
parent 99aa8de1c6
commit 79a879d7cf

View File

@ -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: July 6, 2012</p>
<p>Last Updated: July 12, 2012</p>
</td>
</tr>
</table>
@ -968,70 +968,63 @@
</tr>
</table>
<h2>NuttX-6.19 Release Notes</h2>
<h2>NuttX-6.20 Release Notes</h2>
<p>
The 86<sup>th</sup> release of NuttX, Version 6.19, was made on June 15, 2012, and is available for download from the
The 87<sup>th</sup> release of NuttX, Version 6.20, was made on July 12, 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.19.tar.gz</code> and <code>apps-6.19.tar.gz</code>.
Note that the release consists of two tarballs: <code>nuttx-6.20.tar.gz</code> and <code>apps-6.20.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><b>NFS client</b>.
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 terabyte of storage!
<p>
This release corresponds with SVN release number: r4937
</p>
<p>
This might be useful for data collection, for MCU configuration information, for software updates, for providing modular, loadable code modes, controlling a &quot;farm&quot; of MCUs ... there are many possibilities and opportunities for innovation!
<b>Additional new features and extended functionality</b>
</p>
<p>
The NuttShell (NSH) now supports the following command:
</p>
<ul><pre>
nfsmount &lt;server-address&gt; &lt;mount-point&gt; &lt;remote-path&gt;
</pre></ul>
<p>
That command will mount the remote NFS server directory &lt;remote-path&gt; at &lt;mount-point&gt; on the target machine.
&lt;server-address&gt; is the IP address of the remote server.
</p>
<p>
The NFS development was the graduation project of Jose Pablo Rojas V. who is a student at the <i>Instituto Tecnológico de Costa Rica</i> (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 for his success.
</p>
<p>
<p>
<p><b>Additional new features and extended functionality</b>.</p>
<ul>
<li><b>Drivers</b>:
SSD1289 LCD driver, MIO283QT2 LCD driver
<li><b>Power Management</b>
<p>
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.
</li>
<li><b>LM3S</b>:
Additional register definition header files (contributed by Max Neklyudov).
<li><b>Drivers</b>
<p>
Added a driver for the SST 25 SPI-based FLASH parts.
</li>
<li><b>STM32 Boards</b>:
The STM32F4Discovery will now support an SSD1289 LCD, STM3220G-EVAL
board support is now equivalent to the STM3240G-EVAL board support.
<li><b>PIC32</b>
<p>
Added support for the PIC32MX1 and PIC32MX2 families.
Added support for the microchipOpen and Pinguino toolchains.
</li>
<li><b>PIC32 Boards</b>:
The Mikroelektronika PIC32MX7 MMB board port is now functional, very complete, and stable.
<li><b>NXP LPC43XX</b>
<p>
Added support for the entire LPC43xx family
</li>
<li><b>Graphics</b>:
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.
<li><b>PIC32 boards</b>
<p>
Added support for the DTX1-4000L &quot;Mirtoo&quot; module/
See the <a href="http://www.dimitech.com/">Dimitech</a> website for further information.
(PIC32MX2).
</li>
<li><b>apps/</b>:
Add the capability to use an arbitrary USB device as the console (not necessarily <code>/dev/console</code>).
Additional enhancements for USB consoles.
Added the <code>mv</code> command.
<li><b>NXP LPC43XX Boards</b>
<p>
Added support for <a href="http://www.ngxtech.com/">NGX Technologies</a> LPC4330-Xplorer board.
</li>
<li><b>NXP LPC17XX Boards</b>
<p>
Added support for <a href="http://www.micromint.com/">Micromint</a> Lincoln60 board (LPC1769).
</li>
<li><b>LM3S Boards</b>
<p>
Add a configuration to support the TI/Stellaris EKK-LM3S3B96 development board.
Contributed by Jose Pablo Rojas V.
</li>
<li><b>Library</b>
<p>
NuttX now supports platform-specific stdarg.h header files.
</li>
</ul>
@ -1040,29 +1033,41 @@ nfsmount &lt;server-address&gt; &lt;mount-point&gt; &lt;remote-path&gt;
</p>
<ul>
<li><b>Automated Configuration</b>.
Automated configuration based on the <code>kconfig-frontends</code> tool is being incorporated into the build system.
The configuration is still not complete enough for general use in this release.
<li><b>Automated Configuration</b>
<p>
Automated configuration based on the <code>kconfig-frontends</code> tool is being incorporated into the build system.
The configuration is still not complete enough for general use in this release.
</p>
</li>
<li><b>STM32 Drivers</b>.
Added files that will (eventually) hold an STM32 OTG FS host driver. This is still a work in progress.
<li><b>STM32 Drivers</b>
<p>
Added files that will (eventually) hold an STM32 OTG FS host driver. This is still a work in progress.
</p>
</li>
</ul>
<p><b>Bugfixes</b> (see the change log for details):</p>
<ul>
<li><b>General</b>:
<code>sleep()</code> and <code>usleep()</code> return values,
<code>sig_timedwait()</code> errno setting on timeout.
<li><b>PIC32</b>
<p>
GPIO output configuration (critical bug)
</p>
</li>
<li><b>Drivers</b>:
STMPE811 touchscreen driver, USB PLC2303, USB CDC/ACM
<li><b>STM32</b>
<p>
Typos in pin mapping files.
</p>
</li>
<li><b>STM32</b>:
Several USB device controller driver fixes, F4 interrrupt priorities (contributed by Mike Smith).
<li><b>LM3S</b>
<p>
Fixed an optimization related but that caused slow start-up times if optimization was disabled.
</p>
</li>
<li><b>Graphics</b>:
Keyboard input, fill trapezoid bug
<li><b>Library</b>
<p>
Fixed signed extension but in all <code>limit.h</code> files(reported by Lorenz Meier).
Fixed inet_ntoa compilation failure on with SDCC.
</p>
</li>
</ul>
<p>
@ -1929,9 +1934,31 @@ nfsmount &lt;server-address&gt; &lt;mount-point&gt; &lt;remote-path&gt;
<ul>
<p>
<b>STATUS:</b>
This port is in progress.
It is nearly code-complete and almost ready to begin test.
I hope to have the basic port to this board complete and available in the NuttX-6.20 release.
The basic port is complete.
The OS test configuration and the basic NSH configurations are present and fully verified.
This includes verified support for: SYSTICK system time, pin and GPIO configuration, and a serial console.
</p>
<p>
Several drivers have been coped from the related LPC17xx port but require integration into the LPC43xx: ADC, DAC, GPDMA, I2C, SPI, and SSP.
The registers for these blocks are the same in both the LPC43xx and the LPC17xx and they should integrate into the LPC43xx very easily by simply adapting the clocking and pin configuration logic.
</p>
<p>
Other LPC17xx drivers were not brought into the LPC43xx port because these peripherals have been completely redesigned: CAN, Ethernet, USB device, and USB host.
</p>
<p>
So then there is no support for the following LPC43xx peripherals: SD/MMC, EMC, USB0,USB1, Ethernet, LCD, SCT, Timers 0-3, MCPWM, QEI, Alarm timer, WWDT, RTC, Event monitor, and CAN.
</p>
<p>
Some of these can be leveraged from other MCUs that appear to support the same peripheral IP:
<ul>
<li>
USB0 appears to be the same as the USB OTG peripheral for the LPC31xx.
It should be possible to drop in the LPC31xx driver with a small porting effort.
</li>
<li>
The Ethernet block looks to be based on the same IP as the STM32 Ethernet and, as a result, it should be possible to leverage the NuttX STM32 Ethernet driver with a little more effort.
</li>
</ul>
</p>
</ul>
</td>
@ -1948,6 +1975,7 @@ nfsmount &lt;server-address&gt; &lt;mount-point&gt; &lt;remote-path&gt;
1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU Cortex-M3 or 4toolchain, or 3) Cygwin with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux or Cygwin is provided by the NuttX
<a href="http://sourceforge.net/projects/nuttx/files/buildroot/">buildroot</a> package.
I use FreeScale's <i>CodeWarrior</i> IDE only to work with the JTAG debugger built into the Kinetis boards.
I use the <i>Code Red</i> IDE with the some of the NXP parts and the <i>Atollic</i> toolchain with some of the STMicroelectronics parts.
</p>
</td>
</tr>
@ -2249,10 +2277,11 @@ nfsmount &lt;server-address&gt; &lt;mount-point&gt; &lt;remote-path&gt;
<ul>
<p>
<b>STATUS:</b>
The basic port is code complete but development is ongoing and many features have not yet been verified.
The basic port is code complete.
Two configurations are available:
An OS test configuration and a that support the NuttShell (NSH).
The OS test configuration is fully functional and proves that we have a basically healthy NuttX port to the Mirtoo.
This includes support for the SST25 serial FLASH on board the module.
See the <a href="http://www.nuttx.org/NuttShell.html">NSH User Guide</a> for further information about NSH.
There are some remaining issues to be resolved with the NSH configuration but, with any luck, the verified port should be available with the NuttX 6.20 release.
</p>
@ -2950,140 +2979,86 @@ Other memory:
</table>
<ul><pre>
nuttx-6.19 2012-06-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
nuttx-6.20 2012-07-12 Gregory Nutt &lt;gnutt@nuttx.org&gt;
* graphics/nxconsole/nxcon_kbdin.c: If selected, the NxConsole will take
input from the NX keyboard input callback. If this option is set, then
the interface nxcon_kdbin() is enabled. That interface may be driven by
window callback functions so that keyboard input *only* goes to the top
window. If CONFIG_NXCONSOLE_NXKBDIN is not selected, then the NxConsole
will receive its input from stdin (/dev/console). This works great but
cannot be shared between different windows. Chaos will ensue if you
try to support multiple NxConsole windows without CONFIG_NXCONSOLE_NXKBDIN
* graphics/nxmu/nx_kbdin.c: Fix pointer argument. This is a error
introduced in changes leading up to the 6.18 release. This error will
cause crashes or perhaps simply not work when you try to handle window
keyboard data in multi-user mode.
* graphics/nxconsole/nxcon_kdbind.c: Fixed unmatched sem_wait and sem_post.
Fix some conditional compilation that included a few too many lines of code.
* drivers/input/stmpe811_tsc.c and stmpe811.h: Add a timeout to catch missed
pen up events. Now the STM3240G-EVAL touchscreen works very smoothly.
* configs/stm3240g-eval/nxwm/defconfig: Enable support for NxConsole keyboard
input. Increasing spacing of icons.
* configs/stm3240g-eval/nxwm/defconfig: Use a larger font for the calculator.
* include/nuttx/lcd/ssd1289.h, drivers/lcd/ssd1289.c and .h: Generic LCD
driver for LCDs based on the Solomon Systech SSD1289 LCD driver. This
of this as a template for an LCD driver that will have to be cusomized
for your particular LCD hardware.
* configs/stm32f4discovery/src/up_extmem.c and up_ssd1289.c: Add support to
STM32F4Discovery for than an external, SSD1289-based LCD.
* configs/stm32f4discovery/nxlines: Add an STM32F4Discovery configuration
to thest the SSD1289-based LCD.
* configs/stm3240g-eval/src: Add USB GPIO initialization logic needed
in board-specific boot logic.
* configs/stm32f4discovery/src: Add USB GPIO initialization logic needed
in board-specific boot logic.
* drivers/usbdev/pl2303.c and cdcacm.c: Fix the request size used for sending
packets. It was not using the maximum request size, but instead the previous
request size. As a result, packets get smaller, and smaller, and ... This
is an important USB serial fix.
* arch/arc/src/stm32_otgfsdev.c: Bug fix: Don't process TXFE if we have
already processed an XFRC interrupt. We have already done what needs
to done in that case.
* arch/arc/src/stm32_otgfsdev.c: Fixed some status settings in queuing of write
messages. Added a &quot;hack&quot; to work around missing TxFIFO empty interrupts. The
hack is basically to poll for space in the TxFIFO instead of of setting up
the interrupt.
* arch/arm/src/stm32/stm32f2* and chip/stm32f2*: Update all STM32 F2 file so
that they are equivalent to F4 files. This is kind of a maintenance nightmare.
* configs/stm3220g-eval/: Update existing configurations to the same level
as the corresponding STM3240G-EVAL configurations. This adds FSMC SRAM,
touchscreen, and LCD support.
* configs/stm3220g-eval/: Add a NxWM configuration for the STM3220G-EVAL.
* stmpe11*: Fix a massive naming problem. All references to STMPE11 should be
STMPE812.
* arch/arm/src/stm32/stm32_otgfsdev.c: Need to enabled USB reset interrupt
(contributed by Erik Van Der Zalm).
* sched/sleep.c: Fix the return value from sleep(). The correct behavior is
to return the number of unwaited seconds; the implementation was always
returning zero.
* sched/usleep.c and include/unistd.h: Was a void function, but should return
0 on success. usleep() needs to check the return value from sigtimedwait().
sigtimewait() returns the signal number that awakened it and an error (EAGAIN)
if the timeout expired (normal case).
* sched/sig_timedwait.c: Fix sigtimedwait() return value. On a timeout, it was
setting the 8-bit si_signo field to -1 and eded up reported successfully awakened
by signal 255! Now detects the timeout and errors -1 with errno == EGAIN. If
sigtimedwait() is awakened by an unblocked signal, but it is not one of the
signals in the waited-for set, it will return -1 with errno == EINTR.
* arch/arm/src/stm32_i2c.c: Fix STM32 F2 I2C. It is apparently bug-for-bug
compatible with the F4 and needs the same work-around for the missing BTF
signal that was needed for the F4.
* drivers/lcd/ssd1289.*: Fix some of the initial register settings.
* configs/stm32f4discovery/src/up_ssd1289.c: FSMC address bit 16 is used to
distinguish command and data. But FSMC address bits 0-24 correspond to ARM
address bits 1-25, se we need to set bit 17 in order generate output on
FSMC_A16.
* arch/arm/src/lm3s/lm3s_epi.h and lm3s_timer.h: LM3S header files
(contributed by Max Neklyudov).
* arch/arm/src/stm32/stm32_irq.c: Some of the interrupt priorities were
not be initialized (F2 and F4 only). Thus, the very high numbered
interrupts (like UART6) and cause nested interrupts. This leads to
some very difficult to debug crashes. Fix contributed by Mike Smith.
* arch/mips/src/pic32/pic32_head.S and pic32_config.h and
configs/pic32mx7mmb/include/board.h: Extended PIC32 device configuration
capabilities and change board.h to support unique clocking requirements
of the Mikroelektronika PIC32MX7 MMB. That board now works!
* configs/pic32mx7mmb/nsh: Added and verify a NuttShell configuration
for the Mikroelektronika PIC32MX7 MMB board.
* arch/mips/pic32/pic32mx-ethernet.c: Fix logic that guesses PHY address;
the search loop missed the PHY address needed by the Mikroelektronika
PIC32MX7 MMB board.
* configs/pic32mx7mmb/nsh: Configuration now supports a network by default.
* configs/pic32mx7mmb/src: Add support for the MMC/SD slot on board
the Mikroelektronika PIC32MX7 MMB board (not working on initial check-in).
* arch/mips/src/pic32/pic32mx-spi.c: Add support for very low-level,
register access debug output.
* configs//pic32mx7mmb/include/board.h: Reduced peripheral clock to
4MHz to match other PIC32 configurations.
* configs/pic32mx7mmb/src/up_nsh.c: SD card needs to operate in SPI
mode 2.
* configs/pic32mx7mmb/nsh/defconfig: MMC/SD card support is now
enabled by default in the PIC32MX7 MMB board configuration.
* configs/pic32mx7mmb/nsh/defconfig: Verified the USB Mass Storage
Class (MSC) using MMC/SD card as the logical unit. Updated the default
PIC32MX7 MMB board configuration so that USB and the mass storage class
are enabled by default.
* drivers/lcd/mio283qt2.c and include/nuttx/lcd/mio283qt2.h: Add generic
support for the MIO283QT2 LCD.
* configs/pic32mx7mmb/src/up_mio283qt2.c: Add support for the MIO283QT2
LCD on the PIC32MX7 MMB board.
* configs/pic32mx7mmb/src/up_touchscreen.c: Add an ADC-based touchscreen
driver for the PIC32MX7 MMB board. Kind of works, but needs more
verification and tuning.
* arch/mips/src/common/up_idle.c: Strange but important fix. For some still-
unknown reason, interrupts are left in an unhealthy state in the IDLE
when the work queue is enabled. This is partially because some interrupt
related logic is not built in that case. Simply disabling then re-
enabling interrupts restores the proper state.
* graphics/nxglib/lcd/nxglib_filltrapezoid.c and fb/nxglib_filltrapezoid.c:
Fix an error when the trapezoid is only 1 line high. In this case, a
divide by zero error would occur. The fix is to draw the 1 line high
trapezoid as a run.
* drivers/usbdev/pl2303.c: Fixe a cut'n'paste error that snuck into
the PL2303 emulation driver several months back.
* configs/stm3210e-eval/src and arch/arm/src/stm32/: Add beginnings of
power management support for the STM32 and the STM3210E-EVAL board, in
particular.
* Documentation/NfsHowTo.html: Add a How-To document for the new NFS
client feature.
* arch/mips/include/pic32mx and arch/mips/src/pic32mx: Add support for the
PIC32MX1 and PIC32MX2 families.
* configs/mirtoo: Add a board configuration to support the DTX1-4000L
&quot;Mirtoo&quot; module from http://www.dimitech.com/
* tools/pic32mx: All of the duplicate directories containing the same
same PIC32 tools were move to this single location.
* configs/mirtoo: The basic Mirtoo port is now functional.
* configs/mirtoo/ostest: Added support for the microchipOpen toolchain
(see http://sourceforge.net/projects/microchipopen/).
* configs/mirtoo/nsh: Added a NuttShell (NSH) configuration for
the Mirtoo module.
* configs/mirtoo/scripts: Move all Mirtoo linker scripts to a common
directory.
* arch/mips/src/pic32mx/pic32mx-gpio.c: All digital inputs were being
configured as outputs. This is a *critical* bug fix and needs to be
incorporated by any PIC32 users.
* drivers/mtd/sst25.c: Added a driver for the SST 25 SPI-based FLASH
parts.
* configs/mirtoo/src/up_nsh.c: The Mirtoo NSH configuration can now
mount the SST 25 devices so that it can be used for a FAT file system.
There are are, however, some NSH memory usage issues if this configuration
enabled now. Some tuning is still needed.
* configs/mirtoo/nxffs: Add an alternative NSH configure for the Mirtoo
module for testing the on-module SST 25 chip using the NXFFS file system.
* arch/arm/src/lpc43xx and arch/arm/include/lpc43xx: The NXP LPC43xx port
is slowly evolving in these directories.
* configs/stm3210e-eval/pm: Add a new configuration for testing STM32 power
management.
* configs/stm3210e-eval/scripts: Moved all of the duplicate ST3210-EVAL
linker scripts into one set of linker scripts at this location.
* configs/stm3210e-eval/src/up_buttons.c, up_lcd.c, and up_pm.c: New logic
for testing STM32 power management.
* configs/lincoln60: Add a configuration to support the Micromint Lincoln60
board.
* configs/ekk-lm3s3b96: Add a configuration to support the TI/Stellaris
EKK-LM3S3B96 development board. Contributed by Jose Pablo Rojas V.
* arch/arm/src/lpc43xx/chip: Created header files for *all* (really)
lpc43xx registers and all bit-fields.
* configs/lpc4330-xplorer: Added a configuration for the NXP LPC43XX
Xplorer board. This is just to facilitate testing of the LPC43xx
port but will, with any luck, become proper board support for that
board.
* arch/arm/src/lm3s/lm3s_syscontrol.c: Fix an optimization related problem
by adding a volatile qualifier to a timing loop. Oddly, the consequence
of the bug is that when debug was off, the LM3S platform too a long time
to boot. It now boots rapidly whether debug is on or off.
* arch/*/include/limits.h: Change all values in all limits.h for all
architectures to signed decimal; the hex values were not sign extending
appropriate in most uses (reported by Lorenz Meier).
* arch/arm/src/stm32/chip/stm32f103/7vc_pinmap: Fix typographical error in
two pinmap definition files.
* lib/net/lib_inetntoa.c: Fix typographical error that cause compilation
failure on platforms that do not support passing of structures as
parameters.
* arch/arm/*/lpc43xx and configs/lpc4330-xplorer and code complete and
ready for testing. Hopefully, verified LPC43xx support will appear
in NuttX-6.20.
* include/nuttx/stdarg.h: If CONFIG_ARCH_STDARG_H=y is defined, the top-level
makefile will copy the generic (GCC-only) stdarg.h header file from
include/nuttx/stdarg.h to include/stdarg.h. So for the architectures
that cannot use their GCC toolchain's stdarg.h file, they can use this
alternative by defining CONFIG_ARCH_STDARG_H=y. If CONFIG_ARCH_STDARG_H,
is not defined, then the redirecting stdarg.h header file will stay
out-of-the-way in include/nuttx/.
* configs/lpc4330-xplorer/nsh: Add an NSH configuration for the LPC4330
Xplorer board.
apps-6.19 2012-06-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
apps-6.19 2012-07-12 Gregory Nutt &lt;gnutt@nuttx.org&gt;
* apps/nshlib/nsh_usbdev.c: Add the capability to use an arbitrary USB
device as the console (not necessarily /dev/console). This is a useful
option because then you can still use the serial console to debug with.
* apps/nshlib/nsh_usbdev.c: User now has to press ENTER 3 times before
USB console will start. Otherwise, the USB console starts before there
is anyone at the other end to listen.
* apps/nshlib/nsh_usbdev.c and nsh_consolemain.c: Add support for the USB
capability when a USB console is used.
* apps/nshlib/nsh_fscmds.c: Add the 'mv' command
* namedapp/exec_namedapp.c - Correct an error when round robin scheduling
is enabled. The priority of the new, named application was erroneously
being set to the priority of the parent thread; losing its configured
priority. Reported by Mike Smith.
NxWidgets-1.2 2012-06-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;