Skip to content
ReleaseNotes 182 KiB
Newer Older
GPIO interrupts, LPC17xx UART2/3, the FAT file system, build issues,
and strrch().  See the ChangeLog for more details.

NuttX-6.3
patacongo's avatar
patacongo committed

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.
patacongo's avatar
patacongo committed

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.
patacongo's avatar
patacongo committed

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.
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed

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
patacongo's avatar
patacongo committed

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
patacongo's avatar
patacongo committed

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.
patacongo's avatar
patacongo committed

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.
patacongo's avatar
patacongo committed

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.
patacongo's avatar
patacongo committed

See the ChangeLog for a detailed description of these changes.
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed

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
patacongo's avatar
patacongo committed

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.
patacongo's avatar
patacongo committed

NuttX-6.9
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
The 76th release of NuttX, Version 6.9, was made on September 11, 2011
patacongo's avatar
patacongo committed
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
patacongo's avatar
patacongo committed

NuttX-6.10
patacongo's avatar
patacongo committed

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

patacongo's avatar
patacongo committed
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.
patacongo's avatar
patacongo committed

NuttX-6.11
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
The 78th release of NuttX, Version 6.11, was made on November 12, 2011
patacongo's avatar
patacongo committed
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

patacongo's avatar
patacongo committed
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.
patacongo's avatar
patacongo committed
    * 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.

patacongo's avatar
patacongo committed
See the change log for more detailed information.

NuttX-6.12
patacongo's avatar
patacongo committed

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

patacongo's avatar
patacongo committed
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++
patacongo's avatar
patacongo committed

NuttX-6.13
patacongo's avatar
patacongo committed

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

patacongo's avatar
patacongo committed
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.
patacongo's avatar
patacongo committed

NuttX-6.14
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
The 81st release of NuttX, Version 6.14, was made on January 15, 2012,
patacongo's avatar
patacongo committed
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

patacongo's avatar
patacongo committed
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
patacongo's avatar
patacongo committed
      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.

patacongo's avatar
patacongo committed
NuttX-6.15
patacongo's avatar
patacongo committed

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

patacongo's avatar
patacongo committed
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
patacongo's avatar
patacongo committed
      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.

patacongo's avatar
patacongo committed
NuttX-6.16
patacongo's avatar
patacongo committed

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

patacongo's avatar
patacongo committed
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.

patacongo's avatar
patacongo committed
NuttX-6.17
patacongo's avatar
patacongo committed

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

patacongo's avatar
patacongo committed
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()).
patacongo's avatar
patacongo committed

NuttX-6.18
patacongo's avatar
patacongo committed

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

patacongo's avatar
patacongo committed
New features and extended functionality:

    * Drivers.  Added a watchdog timer driver infrastructure.  Add general
      support for STMicro STMPE811 I/O Expander/touchscreen device.
patacongo's avatar
patacongo committed

    * 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
patacongo's avatar
patacongo committed
      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.

patacongo's avatar
patacongo committed
NuttX-6.19
patacongo's avatar
patacongo committed

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

patacongo's avatar
patacongo committed
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

patacongo's avatar
patacongo committed
    * LM3S: Additional register definition header files (contributed by Max
patacongo's avatar
patacongo committed
      Neklyudov).

    * STM32 Boards:  The STM32F4Discovery will now support an SSD1289 LCD,
      The STM3220G-EVAL board support is now equivalent to the STM3240G-EVAL
      board support.

    * PIC32 Boards: The Mikroelektronika PIC32MX7 MMB board port is now
      functional, very complete, and stable.

    * Graphics:  The NxConsole will now take keyboard input from the NX graphics
      subsystem.  This means that if there are multiple NxConsole windows, only
      the top instance that has focus will receive the keyboard input.

    * apps/:  Add the capability to use an arbitrary USB device as the console
      (not necessarily /dev/console).  Additional enhancements for USB consoles.
      Added the 'mv' command.

Work in progress.  This release includes some partially completed
work that is still not ready for prime time.

    * Automated Configuration. Automated configuration based on the
      kconfig-frontends tool is being incorporated into the build
      system.  The configuration is still not complete enough for
      general use in this release.

    * STM32 Drivers. Added files that will (eventually) hold an STM32
      OTG FS host driver.  This is still a work in progress.

Bugfixes (see the change log for details) :

    * General:  sleep() and usleep() return values, sig_timedwait() errno setting
      on timeout.
    * Drivers: STMPE811 touchscreen driver, USB PLC2303, USB CDC/ACM
    * STM32: Several USB device controller driver fixes, F4 interrrupt priorities
      (contributed by Mike Smith).
    * Graphics: Keyboard input, fill trapezoid bug

As well as other, less critical bugs (see the ChangeLog for details)
patacongo's avatar
patacongo committed

NuttX-6.20
patacongo's avatar
patacongo committed

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
patacongo's avatar
patacongo committed
      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.