diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2010-09-08 01:53:23 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2010-09-08 01:53:23 +0000 |
commit | b76443d8e3de91c643aac56864d9044dc84513dd (patch) | |
tree | 93781493ed521a7d18a95cfbca03132b10ed436d | |
parent | cda1c1428eba597a4bcabc6ff1ca306aed9e2cf1 (diff) |
Prep for 5.10 release
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@2928 7fd9a85b-ad96-42d3-883c-3090e2eb8679
-rw-r--r-- | nuttx/Documentation/NuttX.html | 116 | ||||
-rw-r--r-- | nuttx/ReleaseNotes | 46 | ||||
-rw-r--r-- | nuttx/TODO | 14 | ||||
-rwxr-xr-x | nuttx/configs/ea3131/README.txt | 27 |
4 files changed, 156 insertions, 47 deletions
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 4ea3c1f50f..9a6087152d 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 5, 2010</p> + <p>Last Updated: September 7, 2010</p> </td> </tr> </table> @@ -772,58 +772,72 @@ </tr> </table> -<p><b>nuttx-5.9 Release Notes</b>: +<p><b>nuttx-5.10 Release Notes</b>: <p> - This 56<sup>th</sup> release of NuttX was made on August 25, 2010 and is available for download from the + This 57<sup>th</sup> release of NuttX, Version 5.10, was made on September 7, 2010 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> - This release is difficult to categorize; - NuttX-5.9 was really released because there were too many changes accumulating in CVS -- - a few important, some large, unverified implementations, and a couple of important bugfixes. +<p> + This release includes a combination of some new features as well as several bugfixes. + New features include: <ul> <li> - By far biggest change in this release is the complete implementation of on-demand paging support. - This feature will allow you to execute large programs on a mass storage device (such as SPI FLASH) in a small RAM. - All of the core on-demand paging logic was completed - (see <a href="http://www.nuttx.org/NuttXDemandPaging.html">NuttXDemandPaging.html</a>) - and support was implemented for the ARM-9 family. - A test configuration is in place for the NXP LPC3131. - It has been verified that this new logic does not interfere with normal fixed-page ARM9 operation, but otherwise this new on-demand paging feature is untested. - </li> - <li> - Add support for the CodeSourcery toolchain to the Olimex-lpc2378 port and for the Neuros OSD port. + <b>TI/Luminary Stellaris LM3S9B96</b>. + Header file changes contributed by Tiago Maluta. </li> <li> - The Neuros OSD port has been updated to work with the production v1.0 OSD - (previously there was NuttX support only for the development board). + <b>TI/Luminary Stellaris LM3S8962</b>. + Header file changes and support for the Stellaris LM3S8962 Ethernet+CAN Evaluation Board contributed by Larry Arnold. </li> <li> - And some miscellaneous feature enhancements as detailed in the <a href="#currentrelease">ChangeLog</a>. - </li> - </ul> -</p> -<p> - This includes several important bugfixes: - <ul> - <li> - NXP LPC17xx - Fixed a critical bug in the GPIO configuratino logic: - When attempting to set no pull-up or pull-down (floating), it would, instead, select pull-down. + <b>On-Demand Paging Support</b>. + The basic logic for the On-Demand Paging feature is complete, implemented for the NXP LPC3131, and partially tested. + See <a href="http://www.nuttx.org/NuttXDemandPaging.html">On-Demand Paging Documentation</a>. + Some additional test infrastructure will be needed in order to complete the verification. + See the EA3131 <a href="http://nuttx.cvs.sourceforge.net/viewvc/nuttx/nuttx/configs/ea3131/README.txt?view=log">README</a> file for details. </li> <li> - TI/Luminary LM3Sxxxx - Fixed (1) a logic error in an address table lookup, - (2) GPIO port encoding the limited support to only 8 GPIO ports. - </li> + <b>Two Pass Build Support</b>. + The make system now supports a two pass build where a relocatable, partially linked object is created on the first pass and that object is linked with the NuttX libraris to produce the final executable on the second pass. + This two pass build is currently only used to support the On-Demand paging feature: + The first pass link forces critical logic into the locked text region; + the second pass builds the NuttX executable more-or-less as normal. <li> - Corrected the lease time in the DHCPC implementation: - It was not in host byte order. + <b><code>CONFIG_APP_DIR</code></b>. + Generalized the way in which applications are built and linked with NuttX. + The new configuration <code>CONFIG_APP_DIR</code> replaces <code>CONFIG_EXAMPLE</code>. + <code>CONFIG_EXAMPLE</code> used to identify the sub-directory within the NuttX <code>examples/</code> directory that held the example application to be built. + That made it awkward to configure to build an application that resided outside of the NuttX <code>examples/</code> directory. + <code>CONFIG_APP_DIR</code> is more general; + it can be used to refer to any directory containing the application to be built. + <ul> + <p><small> + For people who have their own configurations and/or Makefiles, you will need to make a couple of changes: + <ul> + <li> + Replace all occurrences of <code>CONFIG_EXAMPLE=foobar</code> with <code>CONFIG_APP_DIR=examples/foobar</code> in all of the configuration files. + </li> + <li> + Replace any occurrences of <code>examples/$(CONFIG_EXAMPLE)</code> with <code>$(CONFIG_APP_DIR)</code> + </li> + <li> + Replace any occurrences of <code>lib$(CONFIG_EXAMPLE)$(LIBEXT)</code> with <code>libapp$(LIBEXT)</code> in your Makefiles. + </li> + <li> + Check any other occurrences of <code>CONFIG_EXAMPLE</code>. + </li> + </ul> + </small></p> + </ul> </li> <li> - And several other less important bugs as documented in the <a href="#currentrelease">ChangeLog</a>: - Warnings, cornercase compilation problems, etc. + <b>Other</b>. + Several bugfixes are included as well as code changes to eliminate some warnings. + See the ChangeLog for details. </li> </ul> </p> @@ -1157,6 +1171,20 @@ <td><br></td> <td> <p> + <b>Luminary/TI LM3S9B96</b>. + Header file support was contributed by Tiago Maluta for this part. + However, no complete board support configuration is available as of this writing. + </p> + </td> +</tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> +<tr> + <td><br></td> + <td> + <p> <b>STMicro STM32F103x</b>. This port uses the <a href=" http://www.st.com/">STMicro</a> STM3210E-EVAL development board that features the STM32F103ZET6 MCU. @@ -1244,15 +1272,15 @@ <b>STATUS:</b> Some initial files for the LPC17xx family were released in NuttX 5.6, but the first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with some - additional enhancements through NuttX-5.9. + additional enhancements through NuttX-5.9. That initial, 5.6, basic release included timer interrupts and a serial console and was verified using the NuttX OS test (<code>examples/ostest</code>). - Configurations available include include a verified NuttShell (NSH) configuration + Configurations available include include a verified NuttShell (NSH) configuration (see the <a href="http://www.nuttx.org/NuttShell.html">NSH User Guide</a>). The NSH configuration support the Nucleus2G's microSD slot and additional configurations are available to exercise the the USB serial and USB mass storage devices. - However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. - (Although it has been reported to me that the SPI microSD is functional on other platforms). + However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. + (Although it has been reported to me that the SPI microSD is functional on other platforms). </p> <p> <b>Development Environments:</b> @@ -1933,14 +1961,14 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> For people who have their own configurations and/or Makefiles, you will need to make a couple of changes: - - Replace all occurrences of CONFIG_EXAMPLE=foobar with + - Replace all occurrences of CONFIG_EXAMPLE=foobar with CONFIG_APP_DIR=examples/foobar in all of the configuration files. - Replace any occurrences of examples/$(CONFIG_EXAMPLE) with $(CONFIG_APP_DIR) - Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) with libapp$(LIBEXT) in your Makefiles. - - Check any other occurrences of CONFIG_EXAMPLE.pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + - Check any other occurrences of CONFIG_EXAMPLE. * arch/arm/src/lpc313x/lpc313x_spi.c - Fix compilation error when when CONFIG_DEBUG is enabled. @@ -1952,6 +1980,12 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> should not be conditioned on CONFIG_ARCH_LEDs being defined! * arch/arm/src/lpc313x/ - APB0 and APB1 cannot lie in different sections; they are too close together. + * arch/arm/src/lpc313x/lpc13x_boot.c - Resetting all of the clocking + had a side effect of wiping out the first 6 words of memory where the + interrupt vectors are located (and also not resetting the fractional + dividers). This is not usually noticeable because the IRQ vectors + are after this point, but really causes problems if you want to handle + data and prefectch aborts which are within this zeroed region. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes index 3a572ad466..dbfda36bb1 100644 --- a/nuttx/ReleaseNotes +++ b/nuttx/ReleaseNotes @@ -1367,3 +1367,49 @@ This includes several important bugfixes: * And several other less important bugs as documented in the ChangeLog: Warnings, cornercase compilation problems, etc. +nuttx-5.10 +^^^^^^^^^^ + +This is the 57th release of NuttX. This release includes a combination of +some new features as well as several bugfixes. New features include: + + * TI/Luminary Stellaris LM3S9B96. Header file changes contributed by + Tiago Maluta. + * TI/Luminary Stellaris LM3S8962. Header file changes and support for + the Stellaris LM3S8962 Ethernet+CAN Evaluation Board contributed by + Larry Arnold. + * On-Demand Paging Support. The basic logic for the On-Demand Paging + feature is complete, implemented for the NXP LPC3131, and partially + tested. See http://www.nuttx.org/NuttXDemandPaging.html. Some additional + test infrastructure will be needed in order to complete the verification. + See configs/ea3131/README.txt for details. + * Two Pass Build Support. The make system now supports a two pass build + where a relocatable, partially linked object is created on the first + pass and that object is linked with the NuttX libraris to produce the + final executable on the second pass. This two pass build is currently + only used to support the On-Demand paging feature: The first pass + link forces critical logic into the locked text region; the second pass + builds the NuttX executable more-or-less as normal. + * CONFIG_APP_DIR. Generalized the way in which applications are built + and linked with NuttX. The new configuration CONFIG_APP_DIR replaces + CONFIG_EXAMPLE. CONFIG_EXAMPLE used to identify the sub-directory within + the NuttX examples/ directory that held the example application to be + built. That made it awkward to configure to build an application that + resides outside of the NuttX examples/ directory. CONFIG_APP_DIR is + more general; it can be used to refer to any directory containing the + application to be built. + + For people who have their own configurations and/or Makefiles, + you will need to make a couple of changes: + + - Replace all occurrences of CONFIG_EXAMPLE=foobar with + CONFIG_APP_DIR=examples/foobar in all of the configuration + files. + - Replace any occurrences of examples/$(CONFIG_EXAMPLE) with + $(CONFIG_APP_DIR) + - Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) + with libapp$(LIBEXT) in your Makefiles. + - Check any other occurrences of CONFIG_EXAMPLE. + + * Several bugfixes are included as well as code changes to eliminate + some warnings. See the ChangeLog for details. diff --git a/nuttx/TODO b/nuttx/TODO index 7ff4dbdd6e..22597af6bc 100644 --- a/nuttx/TODO +++ b/nuttx/TODO @@ -1,5 +1,5 @@ -NuttX TODO List (Last updated August 21, 2010) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +NuttX TODO List (Last updated September 6, 2010) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (5) Task/Scheduler (sched/) (1) On-demand paging (sched/) @@ -70,9 +70,13 @@ o On-demand paging (sched/) Description: On-demand paging has recently been incorporated into the RTOS. The design of this feature is described here: - http://www.nuttx.org/NuttXDemandPaging.html. - As of this writing, the feature is incomplete and untested. - It should not be enabled! + http://www.nuttx.org/NuttXDemandPaging.html. + As of this writing, the basic feature implementation is + complete and much of the logic has been verified. The test + harness for the feature exists only for the NXP LPC3131 (see + configs/ea3131/pgnsh and locked directories). There are + some limitations of this testing so I still cannot say that + the feature is fully functional. Status: Open, in work Priority: Medium-Low diff --git a/nuttx/configs/ea3131/README.txt b/nuttx/configs/ea3131/README.txt index dda10c292a..2e3c1b874c 100755 --- a/nuttx/configs/ea3131/README.txt +++ b/nuttx/configs/ea3131/README.txt @@ -389,7 +389,32 @@ On-Demand Paging This example is incomplete in that it does not have any media to reload the page text region from: The file configs/ea3131/src/up_fillpage.c is only a stub. That logic to actually reload the page from some storage medium - would have to be implemented in order to complete this example. + (among other things) would have to be implemented in order to complete this + example. At present, the example works correctly up to the point where + up_fillpage() is first called and then fails in the expected way. + + Here are the detailed list of things that would need to be done in addition + to finishing th up_fillpage() logic (this assumes that SPI NOR FLASH is the + media on which the NuttX image is stored): + + 1. Develop a NOR FLASH layout can can be used to (1) boot the locked text + section into memory on a reset, and (2) map a virtual fault address + to an offset into paged text section in NOR FLASH. + 2. Develop/modify the build logic to build the binaries for this NOR + flash layout: Can the NuttX image be formed as a single image that + is larger than the IRAM? Can we boot from such a large image? If + so, then no special build modifications are required. Or, does the + locked section have to be smaller with a separate paged text section + image in FLASH? In this case, some tool will be needed to break + the nuttx.bin file into the two pieces. + 3. Develop a mechanism to load the NuttX image into SPI NOR FLASH. A + basic procedure is already documented in NXP publications: "LPC313x + Linux Quick Start Guide, Version 2.0" and "AN10811 Programming SPI + flash on EA3131 boards, V1 (May 1, 2009)." That procedure may be + sufficient, depending on the decisions made in (1) and (2): + 4. Develop a procedure to boot the locked text image from SPI NOR. + The references and issues related to this are discussed in (2) + and (3) above. ARM/EA3131-specific Configuration Options ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |