From 74fd8cf3e0f788c69c6299d8c37b80ab3bab98c9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 21 Jun 2011 15:20:14 +0000 Subject: Prep for 6.5 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3730 42af7a65-404d-4744-a932-0658087f49c3 --- apps/ChangeLog.txt | 5 +- nuttx/ChangeLog | 10 +- nuttx/Documentation/NuttX.html | 247 +++++++++++++++++---------------- nuttx/ReleaseNotes | 81 ++++++++++- nuttx/configs/micropendous3/README.txt | 4 + nuttx/configs/teensy/README.txt | 4 + 6 files changed, 224 insertions(+), 127 deletions(-) diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt index 8dc3bf71f..a69959606 100755 --- a/apps/ChangeLog.txt +++ b/apps/ChangeLog.txt @@ -57,6 +57,9 @@ * examples/ftpc: A simple add-on to the NSH. From NSH, you can start this simple FTP shell to transfer files to/from a remote FTP server. -6.5 2011-xx-xx Gregory Nutt +6.5 2011-06-21 Gregory Nutt * netutils/ftpc: Simpflication and size reduction. + +6.6 2011-xx-xx Gregory Nutt + diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 259b9947b..ce9c92235 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -1808,13 +1808,13 @@ some networks: CONFIG_NET_BUFSIZE should be set to at least 576 in all defconfig files. This has only been fixed in this defconfig file. -6.5 2011-xx-xx Gregory Nutt +6.5 2011-06-21 Gregory Nutt * arch/avr/src/avr and arch/avr/include/avr: Adds general support for the Atmel 8-bit AVR family. - * arch/avr/src/atmega and arch/avr/include/atmega: Addes support for the + * arch/avr/src/atmega and arch/avr/include/atmega: Adds support for the Atmel AVR ATMega family. - * arch/avr/src/at90usb and arch/avr/include/at90usb: Addes support for the + * arch/avr/src/at90usb and arch/avr/include/at90usb: Adds support for the Atmel AVR AT90USB family. * configs/micropendous3: Adds a board configuration for the Opendous Micropendous 3 board. This board may be populated with several different @@ -1822,9 +1822,11 @@ * configs/amber: This is a placehold for the Atmel ATMega128 Amber Web Server from SoC Robotics. Not much present in this directory on initial check-in. - * configs/teensy: Adds a board configuration for the PJRC Teensy++ 2.0 boar + * configs/teensy: Adds a board configuration for the PJRC Teensy++ 2.0 board that features an Atmel AT90USB1286 MCU. * fs/fat: Offsets, sector numbers, etc. need to be off_t, not size_t. size_t is intended to be the maximum size of a memory object, not a file offset. This does not make any difference except on systems (like the AVR) where size_t is only 16-bits. + +6.6 2011-xx-xx Gregory Nutt diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 56ecb3992..52bd5b177 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@

NuttX RTOS

-

Last Updated: June 20, 2011

+

Last Updated: June 21, 2011

@@ -829,59 +829,97 @@ -

nuttx-6.4 Release Notes: +

nuttx-6.5 Release Notes:

- The 71st release of NuttX, Version 6.4, was made on June 6, 2011 and is available for download from the + The 72nd release of NuttX, Version 6.5, was made on June 21, 2011 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are also listed here.

- The 6.4 release includes several new features: + 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 Nuttx forum and because of the availability of newer, larger + capacity AVR parts (that I don't have yet).

-
    -
  • FTP Client. - A new, full-featured FTP client is included in this release. - 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. -
  • -
  • C1101 Wireless Driver. - A functional C1101 wireless driver (contributed by Uros Platise) -
  • -
  • E1000 Ethernet Driver. - A PCI-based E1000 Ethernet driver (contributed by Yu Qiang) -
  • -
  • C-Library Functions. - New C library functions: inet_addr() (contributed by Yu Qiang), strndup(), and asprintf(). -
  • -
  • Smaller Memory Allocation Overhead. - Reduced memory allocation overhead for MCUs with small heaps (<64Kb). -
  • -
  • C Buffered I/O Integrated with Networking. - fdopen() now works with socket descriptors allowing standard bufferedC functions to be used for network communications. -
  • -
  • iconfig Extensions. - 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: + 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:

-
    -
  • MicroChip PIC32MX Support. - The MicroChip PIC32MX port is now code complete and ready to begin testing. - Unfortunately, testing will be delayed due to tool issues. +
  • +

    SoC Robotics Amber Web Server (ATMega128). + This port of NuttX to the Amber Web Server from + SoC Robotics. + 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. + Micropendous3 may be populated with an AT90USB646, 647, 1286, or 1287. + 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!!&qquo; 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). +

  • -
  • NXP LPC315x Support. - Support for the NXP LPC315x MCUs. +
  • +

    PJRC Teensy++ 2.0 (AT90USB1286). + This is a port of NuttX to the PJRC Teensy++ 2.0 board. + This board was developed by PJRC. + 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). +

    +

    Unfinished Stuff. + 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. +

- Additional miscellaneous enhancements and bug fixes to task_delete(), recvfrom(), and other changes as noted in the ChangeLog. + 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. + Or, +
  2. +
  3. + Create a special version of printf that knows how to access strings that reside in FLASH (or EEPROM). +
  4. +
@@ -1548,8 +1586,8 @@

    STATUS: - The basic port was release in NuttX-6.5. This basic port consists only of - a "Hello, World!!" example that demonstrates initialization of the OS, + 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.

@@ -1565,26 +1603,42 @@

PJRC Teensy++ 2.0 AT9USB1286. This is a port of NuttX to the PJRC Teensy++ 2.0 board. - This board is developed by PJRC. + This board was developed by PJRC. The Teensy++ 2.0 is based on an Atmel AT90USB1286 MCU.

    STATUS: - The basic port was release in NuttX-6.5. This basic port consists of - a "Hello, World!!" example that demonstrates initialization of the OS, - creation of a simple task, and serial console output as well as a + The basic port was released in NuttX-6.5. This basic port consists of + a "Hello, World!!" example that demonstrates initialization of the OS, + creation of a simple task, and serial console output as well as a somewhat simplified NuttShell (NSH) configuration (see the NSH User Guide).

    - An SPI driver and a USB device driver exist for the AT90USB (as well - as a USB mass storage example). However, this configuration is not + An SPI driver and a USB device driver exist for the AT90USB as well + as a USB mass storage configureation. However, this configuration is not fully debugged as of the NuttX-6.5 release.

+ + + + + + + + @@ -2290,62 +2344,30 @@ Other memory:



+

+ Development Environments: + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin with Windows native toolchain. + All testing, however, has been performed using the Nuttx DIY toolchain for Linux or Cygwin is provided by the NuttX + buildroot package. + As a result, that toolchain is recommended. +

+
    -nuttx-6.4 2011-06-06 Gregory Nutt <spudmonkey@racsa.co.cr>
    -
    -    * lib/drivers/cc1101: Add initial, functional CC1101 wireless driver
    -      (contributed by Uros Platise)
    -    * arch/mips and configs/pcblogic-pic32mx: The MicroChip PIC32MX port is now
    -      code complete and ready to begin testing.  Unfortunately, it looks like
    -      testing will be delayed due to tool issues (My PICkit 2 will not work the
    -      the MPLAB debugger on PIC32; I will need to get a PICkit 3).
    -    * drivers/net/e1000.c/h: A PCI-based E1000 ethernet driver submitted
    -      by Yu Qiang.
    -    * lib/net/lib_inetaddr.c: An implementation of the inet_addr() function
    -      submitted by Yu Qiang.
    -    * arch/arm/src/lpc31xx and arch/arm/include/lpc31xx:  Renamed from lpc313x
    -      to make name space for other famiy members.
    -    * arch/arm/*/lpc31xx: Added support for the LPC315x family (untested).
    -    * sched/task_exithook.c: Functionality performed when a task exits or is
    -      deleted has been moved to a common file task_exithook.c.  Now exit()
    -      functionality (like flushing I/O and calling registered atexit()
    -      functions, etc.) will be performed when a task is deleted as well.
    -    * mm/:  Added support for CONFIG_MM_SMALL. Each memory allocation has a
    -      small allocation overhead.  The size of that overhead is normally
    -      determined by the "width" of the address support by the MCU.  MCUs
    -      that support 16-bit addressability have smaller overhead than devices
    -      that support 32-bit addressability.  However, there are many MCUs
    -      that support 32-bit addressability *but* have internal SRAM of size
    -      less than or equal to 64Kb.  In this case, CONFIG_MM_SMALL can be
    -      defined so that those MCUs will also benefit from the smaller, 16-
    -      bit-based allocation overhead.
    -    * lib/string/lib_strndup.c: Add standard strndup() library function.
    -    * net/getsockname.c: Added standard getsockname() to return the local
    -      address associated with a socket.
    -    * lib/stdio/lib_asprintf.c: Add asprintf()
    -    * configs/olimex-lpc1766stk/ftpc:  Add a configuration to support
    -      testing of the FTP client shell.
    -    * fd/fs_fdopen.c and net/net_checksd.c: Add support so that fdopen may
    -      be used with socket descriptors.
    -    * net/recvfrom.c: Fix an error found in receiving small files via FTP:
    -      The small file is received a buffered in the readahead buffer, then the
    -      socket is disconnected.  When the app calls recvfrom, the socket is
    -      already disconnected and the buffered data is stranded.  Now, recvfrom
    -      will continue to return success after the socket is disconnected until
    -      the readahead buffer is drained.
    -    * olimex-lp1766stk/ftpc/defconfig: Many configurations have the MTU 
    -      (CONFIG_NET_BUFSIZE) set to very small numbers, less then the minimum
    -      MTU size that must be supported -- 576. This can cause problems in
    -      some networks:  CONFIG_NET_BUFSIZE should be set to at least 576 in
    -      all defconfig files.  This has only been fixed in this defconfig file.
    -
    -apps-6.4 2011-06-06 Gregory Nutt <spudmonkey@racsa.co.cr>
    -
    -    * nshlib/nsh_netcmds.c: If a network device name and IP address are provided
    -      with the ifconfig command, then this command will now set the network address.
    -      (Contributed by Yu Qiang).
    -    * netutils/ftpc: A library to support client-side FTP.
    -    * examples/ftpc: A simple add-on to the NSH.  From NSH, you can start
    -      this simple FTP shell to transfer files to/from a remote FTP server.
    +nuttx-6.5 2011-06-21 Gregory Nutt <spudmonkey@racsa.co.cr>
    +
    +    * arch/avr/src/avr and arch/avr/include/avr: Adds general support for
    +      the Atmel 8-bit AVR family.
    +    * arch/avr/src/atmega and arch/avr/include/atmega: Adds support for the
    +      Atmel AVR ATMega family.
    +    * arch/avr/src/at90usb and arch/avr/include/at90usb: Adds support for the
    +      Atmel AVR AT90USB family.
    +    * configs/micropendous3: Adds a board configuration for the Opendous
    +      Micropendous 3 board.  This board may be populated with several different
    +      members of the Atmel AVR AT90USB family.
    +    * configs/amber: This is a placehold for the Atmel ATMega128 Amber Web
    +      Server from SoC Robotics.  Not much present in this directory on initial
    +      check-in.
    +    * configs/teensy: Adds a board configuration for the PJRC Teensy++ 2.0 board
    +      that features an Atmel AT90USB1286 MCU.
    +    * fs/fat: Offsets, sector numbers, etc. need to be off_t, not size_t.  size_t
    +      is intended to be the maximum size of a memory object, not a file offset. This
    +      does not make any difference except on systems (like the AVR) where size_t
    +      is only 16-bits.
    +
    +apps-6.5 2011-06-06 Gregory Nutt <spudmonkey@racsa.co.cr>
    +
    +    * netutils/ftpc:  Simpflication and size reduction.
     
     pascal-1.0 2011-05-15 Gregory Nutt <spudmonkey@racsa.co.cr>
     
    @@ -2388,26 +2410,9 @@ buildroot-1.10 2011-05-06 <spudmonkey@racsa.co.cr>
     
     
     
      -nuttx-6.5 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
      +nuttx-6.6 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
       
      -    * arch/avr/src/avr and arch/avr/include/avr: Adds general support for
      -      the Atmel 8-bit AVR family.
      -    * arch/avr/src/atmega and arch/avr/include/atmega: Addes support for the
      -      Atmel AVR ATMega family.
      -    * arch/avr/src/at90usb and arch/avr/include/at90usb: Addes support for the
      -      Atmel AVR AT90USB family.
      -    * configs/micropendous3: Adds a board configuration for the Opendous
      -      Micropendous 3 board.  This board may be populated with several different
      -      members of the Atmel AVR AT90USB family.
      -    * configs/amber: This is a placehold for the Atmel ATMega128 Amber Web
      -      Server from SoC Robotics.  Not much present in this directory on initial
      -      check-in.
      -    * configs/teensy: Adds a board configuration for the PJRC Teensy++ 2.0 boar
      -      that features an Atmel AT90USB1286 MCU.
      -
      -apps-6.5 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
      -
      -    * netutils/ftpc:  Simpflication and size reduction.
      +apps-6.6 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
       
       pascal-3.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
       
      diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes
      index bde78a9c5..d3e498611 100644
      --- a/nuttx/ReleaseNotes
      +++ b/nuttx/ReleaseNotes
      @@ -1901,4 +1901,83 @@ This release also includes some completed but untest functionality.
             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.
      +Additional miscellaneous enhancements and bug fixes to task_delete(), recvfrom(),
      +and other changes as noted in the ChangeLog.
      +
      +nuttx-6.5
      +^^^^^^^^^
      +
      +The 72nd release of NuttX, Version 6.5, was made on June 21, 2011 and is
      +available for download from the SourceForge website.  The 6.5 release
      +is all about support for the Atmel 8-bit AVR family.  I have been
      +interested in the AVR family for some time but because of the severe
      +SRAM constraints and because of the availability of many tiny schedulers
      +for the AVR, it has not been "on the radar screen."  However, I have
      +recently become interested because of interest expressed by members of
      +the forum and because of the availability of newer, larger capacity AVR
      +parts (that I don't have yet).
      +
      +This release 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).
      diff --git a/nuttx/configs/micropendous3/README.txt b/nuttx/configs/micropendous3/README.txt
      index 1787f7288..32112aa58 100644
      --- a/nuttx/configs/micropendous3/README.txt
      +++ b/nuttx/configs/micropendous3/README.txt
      @@ -196,6 +196,10 @@ Serial Console
       Toolchains
       ^^^^^^^^^^
       
      +There are several toolchain options.  However, testing has been performed
      +using *only* the NuttX buildroot toolchain described below.  Therefore,
      +the NuttX buildroot toolchain is the recommended choice:
      +
       Buildroot:
       
         There is a DIY buildroot version for the AVR boards here:
      diff --git a/nuttx/configs/teensy/README.txt b/nuttx/configs/teensy/README.txt
      index 24579e82c..9a5fa3eed 100644
      --- a/nuttx/configs/teensy/README.txt
      +++ b/nuttx/configs/teensy/README.txt
      @@ -199,6 +199,10 @@ Teensy SPI Connection
       Toolchains
       ^^^^^^^^^^
       
      +There are several toolchain options.  However, testing has been performed
      +using *only* the NuttX buildroot toolchain described below.  Therefore,
      +the NuttX buildroot toolchain is the recommended choice:
      +
       Buildroot:
       
         There is a DIY buildroot version for the AVR boards here:
      -- 
      cgit v1.2.3