Skip to content
ReleaseNotes 93.1 KiB
Newer Older
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 (<64Kb).
  * 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 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
    (128Kb FLASH but only 4Kb 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: 64Kb of FLASH and 4Kb 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 128Kb
    of FLASH and 8Kb 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-8Kb
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
^^^^^^^^^

The 76th release of NuttX, Version 6.8, was made on September 11, 2011
and is available for download from the SourceForge website.  Note
that release consists of two tarballs:  nuttx-6.9.tar.gz and
apps-6.9.tar.gz.  Both may be needed (see the top-level nuttx/README.txt
file for build information).

This release includes a few new features and several important bug fixes.
The new features (some still incomplete) include:

  * Analog Support/ NXP LPC17xx: New DAC sub-system including ADC and DAC
    drivers for the LPC17xx.  Extensions to the ADS1255 driver.
    (Contributed by Li Zhuoyi (Lzyy))

  * Power Management:  Added a new NuttX power management sub-system for
    controlling and coordinating reduced power states.  At present, only
    verified in a simulation environment.

  * I2C Test Tool:  A new application was added that can be used to
    verify and debug I2C interfaces from the NuttShell (NSH) command
    line.

  * NuttShell (NSH):  In addition to the I2C test tool, a date command
    is now supported (if CONFIG_RTC is defined) that can be used to
    read and set the RTC.

  * NXP LPC17xx: I2C and DAC driver for the NXP LPC17xx family submitted by Li Zhuoyi
   (Lzyy)

  * Kinetis Cortex-M4:  Added a SDHC driver for the Kinetis parts.
    Complete debug of the Kinetis SDHC driver was not completed, however,
    do to some higher priority tasks that forced me to stop work.

  * Other new drivers: Driver for I2C-based at24cxx EEPROM submitted by
    Li Zhuoyi (Lzyy); Driver for the LM-75 temperature sensor.  Support
    for the LM-75 temperature sensor integrated into the SM3210E-EVAL
    development board.

  * NuttX Graphics (NX):  Added new NX interfaces for drawing circles,
    both circle outlines and filled circles.

  * FLASH: Added a function that accepts the path to a block driver and
    then erases the underlying FLASH memory

  * Build System:  The Make export logic now also tries to track down all
    architecture-specific header files and include these in the NuttX
    export bundle as well.  Various changes and modifications so that
    NuttX wil build on FreeBSD using the ASH shell (submitted by Kurt Lidl).

Bugfixes, order roughly on decreasing criticality include:

  * STM32 I2C Driver:  Add resets, timeout, and other fixes to work
    reliably with the I2C tool.  Corrected a major error introduced in
    NuttX 6.8.

  * BCH Driver.  Several important bugs (noted by Li Zhuoyi (Lzyy))
    were fixed.

  * C Library:  Fixed errors in gmtime() and gmtime_r() that could lead to
    errors in date calculations.

  * Timing:  Correct an error in the tv_nsec calculation that happens
    only config CONFIG_RTC is enabled

  * Build System: Use of -print-libgcc-file-name to get path to
    libgcc.a might select the wrong libgcc.a if a multilib toolchain
    is used