summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-05-06 19:04:31 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-05-06 19:04:31 +0000
commit4c3a7673e9a391302a0e2417d8846bfdf7d9171f (patch)
tree2fd643e2514a1796399488a578cb4b788f395239
parentf922c0b476868df9638acf9f420ddb2b4f8175e4 (diff)
downloadnuttx-4c3a7673e9a391302a0e2417d8846bfdf7d9171f.tar.gz
nuttx-4c3a7673e9a391302a0e2417d8846bfdf7d9171f.tar.bz2
nuttx-4c3a7673e9a391302a0e2417d8846bfdf7d9171f.zip
Prep for 6.2 releasenuttx-6.2
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3571 42af7a65-404d-4744-a932-0658087f49c3
-rwxr-xr-xapps/ChangeLog.txt7
-rw-r--r--misc/buildroot/ChangeLog5
-rw-r--r--misc/buildroot/ReleaseNotes14
-rw-r--r--nuttx/ChangeLog6
-rw-r--r--nuttx/Documentation/NuttX.html276
-rw-r--r--nuttx/ReleaseNotes28
-rw-r--r--nuttx/configs/sim/nxffs/defconfig1
-rw-r--r--nuttx/drivers/mtd/rammtd.c69
8 files changed, 213 insertions, 193 deletions
diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt
index fb89e46d5..3443a9fe8 100755
--- a/apps/ChangeLog.txt
+++ b/apps/ChangeLog.txt
@@ -26,4 +26,9 @@
* Numerous fixes to build system required to support building with native
Windows toolchain.
-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+6.2 2011-05-06 Gregory Nutt <spudmonkey@racsa.co.cr>
+
+ * apps/examples/nxffs: Add a test a a configuration that will be used to
+ verify NXFFS.
+
+6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/misc/buildroot/ChangeLog b/misc/buildroot/ChangeLog
index 3c48d3937..be0142aa4 100644
--- a/misc/buildroot/ChangeLog
+++ b/misc/buildroot/ChangeLog
@@ -77,12 +77,12 @@ buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
patches available from http://www.msextra.com/tools courtesy of James
Cortina. Add configs/m9x12x-defconfig-3.3.6.
-buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr>
+buildroot-1.10 2011-05-06 <spudmonkey@racsa.co.cr>
* Add patch submitted by Dimiter Georgiev to work around problems in building
GDB 6.8 with versions of Cygwin > 1.7.
* configs/i486-defconfig-4.3.3 - Builds an i486 cross development toolchain
- using gcc 4.3.3. Why wouldyou want such a thing? On Linux, of course,
+ using gcc 4.3.3. Why would you want such a thing? On Linux, of course,
such a thing is not needed because you can use the installed GCC to build
i486 ELF binaries. But that will not work under Cygwin! The Cygwin
toolchain (and probably MinGW), build DOS MZ format executables (i.e.,
@@ -101,5 +101,6 @@ buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr>
* configs/arm920t-eabi-defconfig-4.5.2 - Add a configuration to build a
GCC 4.5.2 EABI ARM toolchain for the ARM920t.
+buildroot-1.11 2011-xx-xx <spudmonkey@racsa.co.cr>
diff --git a/misc/buildroot/ReleaseNotes b/misc/buildroot/ReleaseNotes
index d0077d613..889b97073 100644
--- a/misc/buildroot/ReleaseNotes
+++ b/misc/buildroot/ReleaseNotes
@@ -1,8 +1,8 @@
-ReleaseNotes v0.1.9:
-^^^^^^^^^^^^^^^^^^^
+ReleaseNotes v0.1.10:
+^^^^^^^^^^^^^^^^^^^^^
This is a highly hacked up version of the buildroot (see
-http://buildroot.uclibc.org/ . It has been hacked so that it
+http://buildroot.uclibc.org/). It has been hacked so that it
can be used to build the following NuttX-compatible toolchains:
o arm-elf toolchain needed for use with the TI C5471 (ARM7TDMI),
@@ -12,9 +12,9 @@ can be used to build the following NuttX-compatible toolchains:
NXFLAT toolchain for use with the ARM7 and ARM9.
- o arm-elf (thumb2) toolchain needed for use with the Luminary
- LM3S6918 (ARM Cortex-M3) and STM32 ports provided with the
- NuttX releases.
+ o arm-elf ARM Cortex-M3 (thumb2) toolchain needed for use with
+ the Luminary LM3Sxxx, NXP 17xxxx, Atmel SAM3u, and STMicor
+ STM32 ports provided with the NuttX releases.
NXFLAT toolchain for use with the ARM Cortex-M3.
@@ -58,6 +58,7 @@ Supported tool versions include:
o gcc-3.4.6 + binutils-2.17
o gcc-4.2.4 + binutils-2.19
o gcc-4.3.3 + binutils-2.19.1
+ o gcc-4.5.2 + binutils-2.21
See the ChangeLog of features/architectures added in v0.1.9.
@@ -86,4 +87,3 @@ select omit building GCC with and only build the NXFLAT toolchain
for use with your own GCC toolchain.
NFFLAT is only available for ARM and Cortex-M3 architectures.
-
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 702ffe09f..a3547a2ac 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -1664,7 +1664,7 @@
* configs/lpcxpresso-lpc1768: Add a board configuration for the Embedded
Artists LPCXpresso LPC1768 board.
-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+6.2 2011-05-06 Gregory Nutt <spudmonkey@racsa.co.cr>
* arch/arm/src/lpc17xx/lpc17_gpioint.c: Correct errors in logic that maps
and IRQ number into a register bit number.
@@ -1720,4 +1720,8 @@
will be used to verify NXFFS.
* fs/fat/fs_fat32.c and fs_fat32util.c: Incorpated two bugs with fixed provided
by Sheref Younan. Thanks!
+ * fs/nxffs: After a couple of weeks of testing and bug fixes, NXFSS appears
+ stable and functional.
+
+6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index 8936c0841..4d5691b08 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: April 28, 2011</p>
+ <p>Last Updated: May 6, 2011</p>
</td>
</tr>
</table>
@@ -424,6 +424,13 @@
<td><br></td>
<td>
<p>
+ <li>NXFFS. the NuttX wear-leveling FLASH file system.</li>
+ </p>
+</tr>
+<tr>
+ <td><br></td>
+ <td>
+ <p>
<li>Generic driver for SPI-based MMC/SD/SDH cards.</li>
</p>
</tr>
@@ -534,6 +541,13 @@
<td><br></td>
<td>
<p>
+ <li>NXFFS. the NuttX wear-leveling FLASH file system.</li>
+ </p>
+</tr>
+<tr>
+ <td><br></td>
+ <td>
+ <p>
<li>Support for SPI-based FLASH and FRAM devices.</li>
</p>
</tr>
@@ -815,74 +829,45 @@
</tr>
</table>
-<p><b>nuttx-6.1 Release Notes</b>:
+<p><b>nuttx-6.2 Release Notes</b>:
<p>
- The 68<sup>th</sup> release of NuttX, Version 6.1, was made on April 10, 2011 and is available for download from the
+ The 69<sup>th</sup> release of NuttX, Version 6.2, was made on May 6, 2011 and is available for download from the
<a href="http://sourceforge.net/projects/nuttx/files/">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 SVN.
- These unreleased changes are listed <a href="#pendingchanges">here</a>.
-</p>
-<p>
- The 6.0 release introduced a detach-able application environment to build applications outside of the NuttX source tree.
- The primary purpose of this release is to correct numerous build problems introduced by that architectural change:
-</p>
-<ul>
- <li>
- In many newer environments, NuttX produced strange Makefile errors but built correctly in older environments.
- A fix provided by Rafael Noronha was incorporated and is reported to fix those build problems.
- </li>
- <li>
- The <code>apps/</code> directory build system would not handle Windows-native toolchains due to obscure path formatting issues.
- </li>
- <li>
- And other problems as detailed in the change log.
- </li>
-</ul>
-
-<p>
- Many additional changes were made in the 6.1 release for another major architectural change:
- NuttX will now build as a seperately linked micro-kernel.
- In this build option the RTOS builds as a kernel, applications build separtate and interface with kernel via system calls.
- Applications run in user mode and kernel logic users in kernel-mode.
- This provides a secure environment for NuttX.
- This feature is fully coded in NuttX-6.1, but has not been tested due to higher priority tasks that have arisen.
-</p>
-<p>
- Related to this change, support for the Cortex-M3 memory protection unit (MPU) has been integrated with the NuttX kernel build to provide an even higher level of security.
+ These unreleased changes are also listed <a href="#pendingchanges">here</a>.
</p>
-<p><small>
- NOTE: This kernel build is an option; the default build configuration is still the standard, flat, unsecured RTOS as in previous releases.
-</small></p>
<p>
- Additional new features in this release:
+ The 6.2 NuttX release includes several new features:
</p>
<ul>
<li>
- Support for LPC17xx GPIO interrupts (with much support from Decio Renno).
- </li>
- <li>
- Basic timer support for STM32 (Contributed by Uros Platise)
+ NXFFS: The obvious new feature is NXFFS, the NuttX wear-leveling FLASH file system.
+ This new file system is intended to be small for the MCU usage and has some limitations.
+ No formal documentation of NXFFS yet exists.
+ See the <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/fs/nxffs/README.txt?view=log"><code>fs/nxffs/README.txt</code></a>
+ file for more details.
</li>
<li>
- A binfs file system.
- This is a tiny psuedo file system that lets named appliations to be viewed and accessed in NSH under the <code>/bin</code> directory.
+ Support for NXP LPCXpresso LPC1768 board on the Embedded Artists base board.
+ The Code Red toolchain is supported under either Linux or Windows.
+ Verifed configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), the NuttX OS test, THTTPD, and USB mass storage device.
</li>
<li>
- An I2C-based driver for the LIS331DL MEMS motion sensor (Contributed by Uros Platise).
+ Support for the Univision UG-9664HSWAG01 OLED with Solomon Systech SD1305 LCD controller.
</li>
<li>
- A board configuration for the Embedded Artists LPCXpresso LPC1768 board.
+ A new RAM MTD driver with FLASH simulation capability.
</li>
<li>
- The <code>user_initialize()</code> interface has been removed.
+ A <code>version.h</code> file is now automatically generated so that C code can now be version-aware.
</li>
</ul>
-
<p>
- And several bugfix are included.
- This includes chagnes associated with SD drivers, openddir(), signed 8-bit types (<code>int8_t</code>), and USB serial device. See the ChangeLog for details.
+ In addition to these new feature, several important bugfixes are included in this release correcting problems with
+ <code>dup2()</code>, LPC17xx GPIO interrupts, LPC17xx UART2/3, the FAT file system, build issues, and <code>strrch()</code>.
+ See the ChangeLog for more details.
</p>
<table width ="100%">
@@ -1342,7 +1327,7 @@
</ul>
</p>
<p>
- The Nucleus 2G and the mbed boards feature the NXP LPC1768 MCU;
+ The Nucleus 2G boar, the mbed board, and the LPCXpresso all feature the NXP LPC1768 MCU;
the Olimex LPC1766-STK board features an LPC1766.
All use a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).
</p>
@@ -1352,8 +1337,9 @@
The following summarizes the features that has been developed and verified on individual LPC17xx-based boards.
These features should, however, be common and available for all LPC17xx-based boards.
</p>
- <p>
- <b>Nucleus2G LPC1768</b>.
+ <ol>
+ <li>
+ <p><b>Nucleus2G LPC1768</b></p>
<ul>
<li>
Some initial files for the LPC17xx family were released in NuttX 5.6, but
@@ -1374,8 +1360,9 @@
However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified.
(Although they have since been verfiied on other platforms; this needs to be revisited on the Nucleus2G).
</p>
- <p>
- <b>mbed LPC1768</b>.
+ </li>
+ <li>
+ <p><b>mbed LPC1768</b></p>
<ul>
<li>
Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11.
@@ -1385,8 +1372,9 @@
<p>
This port includes a NuttX OS test configuration (see <code>apps/examples/ostest</code>).
</p>
- <p>
- <b>Olimex LPC1766-STK</b>.
+ </li>
+ <li>
+ <p><b>Olimex LPC1766-STK</b></p>
<ul>
<li>
Support for that Olimex-LPC1766-STK board was added to NuttX 5.13.
@@ -1405,16 +1393,7 @@
</li>
</ul>
</p>
- <p>
- <b>Embedded Artists base board with NXP LPCXpresso LPC1768</b>.
- <ul>
- <li>
- An initial board configuration is included in NuttX-6.1.
- However, certain Code Red download issues have not yet been resolved and the port has not yet been tested.
- </li>
- </ul>
- </p>
- <p>
+ <ul><p>
Verified configurations are now available for the NuttX OS test,
for the NuttShell with networking and microSD support(NSH, see the <a href="ttp://www.nuttx.org/NuttShell.html">NSH User Guide</a>),
for the NuttX network test, for the <a href="http://acme.com/software/thttpd">THTTPD</a> webserver,
@@ -1422,16 +1401,25 @@
Support for the USB host mass storage device can optionally be configured for the NSH example.
A driver for the <i>Nokia 6100 LCD</i> and an NX graphics configuration for the Olimex LPC1766-STK have been added.
However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.17 release.
- </p>
+ </p></ul>
+ </li>
+ <li>
+ <p><b>Embedded Artists base board with NXP LPCXpresso LPC1768</b></p>
+ <ul>
+ An fully verified board configuration is included in NuttX-6.2.
+ The Code Red toolchain is supported under either Linux or Windows.
+ Verifed configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), the NuttX OS test, THTTPD, and USB mass storage device.
+ </ul>
+ </li>
+ </ol>
<p>
<b>Development Environments:</b>
1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin
- with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux
+ with Windows native toolchain (CodeSourcery devkitARM or Code Red). A DIY toolchain for Linux
or Cygwin is provided by the NuttX
<a href="http://sourceforge.net/projects/nuttx/files/buildroot/">buildroot</a>
package.
</p>
- </ul>
</td>
</tr>
<tr>
@@ -2095,109 +2083,7 @@ Other memory:
</table>
<ul><pre>
-nuttx-6.1 2011-04-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-
- * arch/arm/include/lpc17xx/irq.h and arch/arm/src/lpc17xx/lpc17_gpio*.c:
- Fix several bugs in the GPIO interrupt logic. Submited by
- Decio Renno.
- * Initialization for the CONFIG_APPS_DIR is now supported during the
- earlier, 'context' build phase.
- * arch/arm/src/lpc17_gpioint.c: Finish coding of the LPC17xx GPIO
- interrupt logic.
- * net/netdev_unregister.c: Add capability to un-register a network
- device.
- * drivers/mmcsd/mmcsd_sdio.c: extra effort to correctly handle cases
- without the SDcard (but one issue still exists in STM32)
- * arch/arm/src/stm32/stm32_tim.*: Added basic timer support TIM1..TIM8
- with output PWMs and interrupt logic
- * config/vsn/src: added basic support for Sensor Interface (GPIO and
- PWM Power Output, and the sif utility program)
- * fs/: Reorgnize header so that file systems can be built outside
- of the nuttx source tree
- * apps/namedapp/binfs.c: Create a tiny filesystem that can be used
- to show the internal named apps under /bin.
- * fs/fs_opendir.c: Correct an error that occurs when a file system is
- mounted in the root directory. This was discovered while mounting
- the named app's /bin directory.
- * lib/: Move all source files into a subdirectory of lib/ named after
- the header file in which the library function is prototyped.
- * sched/ and lib/pthread/: Move pthread attribute-related interfaces
- from sched/ to lib/pthread where they more appropriately belong.
- * sched/ and lib/semaphore/: Move some semaphore-related interfaces
- from sched/ to lib/pthread where they more appropriately belong.
- * syscall/: The beginnings of an optional syscall kernel interface.
- * tools/mksyscall.c: Add a tool that will auto-generate syscall proxies
- and stubs from a comma-separated-value (CSV) data file.
- * arch/arm/src/cortexm3/mpu.h: Add a header file describing the Cortex-M3
- MPU registers.
- * Numerous modifications to the build system. Various people have reported
- build problems since the re-organization and release of NuttX-6.0. I am
- unable to replicate the build problems in my environment, but the changes
- have be incorporated in hope of correcting the build issues in other
- environments.
- * drivers/i2c/st_lis331dl.c: I2C-based driver for the LIS331DL MEMS
- motion sensor. Contributed by Uros Platise.
- * Makefile: The NuttX build system will now supported building NuttX as two
- separately linked images: (1) a kernel-mode RTOS image, and (2) a user-
- mode application image that communicates to the RTOS kernel via system
- calls. A lot more still must be done.
- * user_initialize(): Eliminated the user_initialize() initialization hook.
- It is difficult to maintain and redundant: Board level initialization
- an up_initialize() provide the same kind of capability.
- * arch/*/include/*/type.h: On some compilers, char defaults as unsigned.
- Explicitly add signed to integer types if signed is what is required.
- * arch/*: For all architectures -- Global register state save structure
- (usually called current_regs) should be marked volatile; Added general
- capability to support nested interrupts (not fully realized for all
- architectures).
- * sched/task_create.c: Add support for starting kernel-mode thread.
- * drivers/usbdev/usbdev_serial.c: Fix reported by Sheref Younan. USB
- was being reset after serial driver was closed. As a result, you could
- no reopen the serial driver.
- * configs/lpcxpresso-lpc1768: Add a board configuration for the Embedded
- Artists LPCXpresso LPC1768 board.
-
-apps-6.1 2011-04-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-
- * Creation of auto-generated header files now occurs during the context
- build phase.
- * Added sdcard insert and eject, nsh command '?' and some code remarks
- * Renamed nuttapp to namedapp
- * namedapp/binfs.c -- Create a tiny filesystem that can be used
- to show the internal named apps under /bin.
- * Numerous fixes to build system required to support building with native
- Windows toolchain.
-
-pascal-2.0 2009-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-
- * Updated to use standard C99 types in stdint.h and
- stdbool.h. This change was necessary for compatibility
- with NuttX-5.0 (any beyond).
-
-buildroot-1.9 2011-02-10 &lt;spudmonkey@racsa.co.cr&gt;
-
- * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
- * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
- arm926
- * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
- * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
- GDB 6.8 won't build because the tarbal was released with -Werror enabled and
- the build stops on the first warning.
- * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
- patches available from http://www.msextra.com/tools courtesy of James
- Cortina. Add configs/m9x12x-defconfig-3.3.6.
-</pre></ul>
-
-<table width ="100%">
- <tr bgcolor="#e4e4e4">
- <td>
- <a name="pendingchanges">Unreleased Changes</a>
- </td>
- </tr>
-</table>
-
-<ul><pre>
-nuttx-6.2 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+nuttx-6.2 2011-05-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
* arch/arm/src/lpc17xx/lpc17_gpioint.c: Correct errors in logic that maps
and IRQ number into a register bit number.
@@ -2215,7 +2101,7 @@ nuttx-6.2 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
- __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*)
- __exidx_end = ABSOLUTE(.);
- } >sram
+ } &gt;sram
+ __exidx_end = ABSOLUTE(.);
* arch/arm/src/lpc17xx: Correct some typos/bugs in configuration of LPC17xx
@@ -2229,8 +2115,8 @@ nuttx-6.2 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
* sched/clock_getutc() and lib/time/lib_time.c: Add support for 1 second UTC
interface.
* net/net_dup2.c and include/nuttx/net.h: The conditional compilation for
- '#if CONFIG_NFILE_DESCRIPTOR > 0' was wrong in both of these files. It should
- be '#if CONFIG_NFILE_DESCRIPTORS > 0'. This causes a dup2() failure in THTTPD
+ '#if CONFIG_NFILE_DESCRIPTOR &gt; 0' was wrong in both of these files. It should
+ be '#if CONFIG_NFILE_DESCRIPTORS &gt; 0'. This causes a dup2() failure in THTTPD
and a failure to get a CGI page. The consequence can be a very serious bug!
* configs/lpcxpresso-lpc1768/usbstorage, thttpd, and dhcpd: Add an USB storage,
THTTPD web server, and DHCP server configurations for the NXP LPCXpresso board.
@@ -2239,7 +2125,7 @@ nuttx-6.2 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
* configs/lpcxpresso-lpc1668/nx: Add a NX graphics configuration for the LPCXPRESO
board.
* graphics/nxglib/nxglib_nonintersecting.c: Fix some single bit errors in
- calculation of non-intersecting regions. This was causing an anomoaly
+ calculation of non-intersecting regions. This was causing an anomaly
in examples/nx in column 0.
* drivers/mtd/rammtd.c: Added a RAM based MTD driver. This RAM driver simulates
FLASH and is useful for testing purposes.
@@ -2249,17 +2135,30 @@ nuttx-6.2 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
* fs/nxffs: Adding a tiny, wear-leveling FLASH file system for NuttX. This
file system is intended to be small and will have some limitations. The
implementation is incomplete on initial checkin.
+ * apps/examples/nxffs and configs/sim/nxffs: Add a test a a configuration that
+ will be used to verify NXFFS.
+ * fs/fat/fs_fat32.c and fs_fat32util.c: Incorpated two bugs with fixed provided
+ by Sheref Younan. Thanks!
+ * fs/nxffs: After a couple of weeks of testing and bug fixes, NXFSS appears
+ stable and functional.
-apps-6.2 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+apps-6.2 2011-05-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-pascal-2.1 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+ * apps/examples/nxffs: Add a test a a configuration that will be used to
+ verify NXFFS.
+
+pascal-2.0 2009-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+
+ * Updated to use standard C99 types in stdint.h and
+ stdbool.h. This change was necessary for compatibility
+ with NuttX-5.0 (any beyond).
-buildroot-1.10 2011-xx-xx &lt;spudmonkey@racsa.co.cr&gt;
+buildroot-1.10 2011-05-06 &lt;spudmonkey@racsa.co.cr&gt;
* Add patch submitted by Dimiter Georgiev to work around problems in building
GDB 6.8 with versions of Cygwin &gt; 1.7.
* configs/i486-defconfig-4.3.3 - Builds an i486 cross development toolchain
- using gcc 4.3.3. Why would you want such a thing? On Linux, of course,
+ using gcc 4.3.3. Why wouldyou want such a thing? On Linux, of course,
such a thing is not needed because you can use the installed GCC to build
i486 ELF binaries. But that will not work under Cygwin! The Cygwin
toolchain (and probably MinGW), build DOS MZ format executables (i.e.,
@@ -2276,8 +2175,25 @@ buildroot-1.10 2011-xx-xx &lt;spudmonkey@racsa.co.cr&gt;
* toolchain/binutils/2.21 and toolchain/gcc/4.5.2 - Add support for GCC
4.5.2 with binutils 2.21.
* configs/arm920t-eabi-defconfig-4.5.2 - Add a configuration to build a
- GCC 4.5.2 EABI ARM toolchain for the ARM920.
+ GCC 4.5.2 EABI ARM toolchain for the ARM920t.
+</pre></ul>
+
+<table width ="100%">
+ <tr bgcolor="#e4e4e4">
+ <td>
+ <a name="pendingchanges">Unreleased Changes</a>
+ </td>
+ </tr>
+</table>
+
+<ul><pre>
+nuttx-6.3 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+
+apps-6.3 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+
+pascal-2.1 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+buildroot-1.11 2011-xx-xx &lt;spudmonkey@racsa.co.cr&gt;
</pre></ul>
<table width ="100%">
diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes
index a933828ec..8080297a7 100644
--- a/nuttx/ReleaseNotes
+++ b/nuttx/ReleaseNotes
@@ -1824,3 +1824,31 @@ Additional new features in this release:
And several bugfix associated with SD drivers, openddir(), signed 8-bit types
(int8_t), and USB serial device. See the ChangeLog for details.
+
+nuttx-6.2
+^^^^^^^^^
+
+The 69th release of NuttX, Version 6.2, was made on May 6, 2011 and is
+available for download from the SourceForge website. The 6.2 release
+includes several new features:
+
+ * NXFFS: The obvious new feature is NXFFS, the NuttX wear-leveling
+ FLASH file system. This new file system is intended to be
+ small for the MCU usage and has some limitations. No formal
+ documentation of NXFFS yet exists. See the fs/nxffs/README.txt
+ file for details (see
+ http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/fs/nxffs/README.txt?view=log)
+ * Support for NXP LPCXpresso LPC1768 board on the Embedded
+ Artists base board. The Code Red toolchain is supported under
+ either Linux or Windows. Verifed configurations include dhcpd,
+ nsh, nx, ostest, thttpd, and usbstorage.
+ * Support for the Univision UG-9664HSWAG01 OLED with Solomon
+ Systech SD1305 LCD controller.
+ * A new RAM MTD driver with FLASH simulation capability.
+ * A version.h file is now automatically generated so that C code
+ can now be version-aware.
+
+In addition to these new feature, several important bugfixes are included
+in this release correcting problems with dup2(), LPC17xx GPIO interrupts,
+LPC17xx UART2/3, the FAT file system, build issues, and strrch(). See the
+ChangeLog for more details.
diff --git a/nuttx/configs/sim/nxffs/defconfig b/nuttx/configs/sim/nxffs/defconfig
index 2fa2297c1..15560befe 100644
--- a/nuttx/configs/sim/nxffs/defconfig
+++ b/nuttx/configs/sim/nxffs/defconfig
@@ -362,6 +362,7 @@ CONFIG_NXFSS_PREALLOCATED=y
CONFIG_RAMMTD_BLOCKSIZE=512
CONFIG_RAMMTD_ERASESIZE=4096
CONFIG_RAMMTD_ERASESTATE=0xff
+CONFIG_RAMMTD_FLASHSIM=y
CONFIG_EXAMPLES_NXFFS_NEBLOCKS=32
#
diff --git a/nuttx/drivers/mtd/rammtd.c b/nuttx/drivers/mtd/rammtd.c
index a7adf4b99..c4c422cd6 100644
--- a/nuttx/drivers/mtd/rammtd.c
+++ b/nuttx/drivers/mtd/rammtd.c
@@ -67,6 +67,10 @@
# define CONFIG_RAMMTD_ERASESTATE 0xff
#endif
+#if CONFIG_RAMMTD_ERASESTATE != 0xff && CONFIG_RAMMTD_ERASESTATE != 0x00
+# error "Unsupported value for CONFIG_RAMMTD_ERASESTATE"
+#endif
+
#if CONFIG_RAMMTD_BLOCKSIZE > CONFIG_RAMMTD_ERASESIZE
# error "Must have CONFIG_RAMMTD_BLOCKSIZE <= CONFIG_RAMMTD_ERASESIZE"
#endif
@@ -97,6 +101,18 @@ struct ram_dev_s
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
+/* The RAM MTD driver may be useful just as it is, but another good use of
+ * the RAM MTD driver is as a FLASH simulation -- to support testing of FLASH
+ * based logic without having FLASH. CONFIG_RAMMTD_FLASHSIM will add some
+ * extra logic to improve the level of FLASH simulation.
+ */
+
+#define ram_read(dest, src, len) memcpy(dest, src, len)
+#ifdef CONFIG_RAMMTD_FLASHSIM
+static void *ram_write(FAR void *dest, FAR const void *src, size_t len);
+#else
+# define ram_write(dest, src, len) memcpy(dest, src, len)
+#endif
/* MTD driver methods */
@@ -116,6 +132,55 @@ static int ram_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg);
****************************************************************************/
/****************************************************************************
+ * Name: ram_write
+ ****************************************************************************/
+
+#ifdef CONFIG_RAMMTD_FLASHSIM
+static void *ram_write(FAR void *dest, FAR const void *src, size_t len)
+{
+ FAR uint8_t *pout = (FAR uint8_t *)dest;
+ FAR const uint8_t *pin = (FAR const uint8_t *)src;
+
+ while (len-- > 0)
+ {
+ /* Get the source and destination values */
+
+ uint8_t oldvalue = *pout;
+ uint8_t srcvalue = *pin++;
+ uint8_t newvalue;
+
+ /* Get the new destination value, accounting for bits that cannot be
+ * changes because they are not in the erased state.
+ */
+
+#if CONFIG_RAMMTD_ERASESTATE == 0xff
+ newvalue = oldvalue & srcvalue; /* We can only clear bits */
+#else /* CONFIG_RAMMTD_ERASESTATE == 0x00 */
+ newvalue = oldvalue | srcvalue; /* We can only set bits */
+#endif
+
+ /* Report any attempt to change the value of bits that are not in the
+ * erased state.
+ */
+
+#ifdef CONFIG_DEBUG
+ if (newvalue != srcvalue)
+ {
+ dbg("ERROR: Bad write: source=%02x dest=%02x result=%02x\n",
+ srcvalue, oldvalue, newvalue);
+ }
+#endif
+
+ /* Write the modified value to simulated FLASH */
+
+ *pout++ = newvalue;
+ }
+
+ return dest;
+}
+#endif
+
+/****************************************************************************
* Name: ram_erase
****************************************************************************/
@@ -195,7 +260,7 @@ static ssize_t ram_bread(FAR struct mtd_dev_s *dev, off_t startblock, size_t nbl
/* Then read the data frp, RAM */
- memcpy(buf, &priv->start[offset], nbytes);
+ ram_read(buf, &priv->start[offset], nbytes);
return nblocks;
}
@@ -235,7 +300,7 @@ static ssize_t ram_bwrite(FAR struct mtd_dev_s *dev, off_t startblock,
/* Then write the data to RAM */
- memcpy(&priv->start[offset], buf, nbytes);
+ ram_write(&priv->start[offset], buf, nbytes);
return nblocks;
}