summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nuttx/ChangeLog7
-rw-r--r--nuttx/Documentation/NuttX.html76
-rw-r--r--nuttx/Documentation/NuttxPortingGuide.html64
-rw-r--r--nuttx/Documentation/NuttxUserGuide.html63
-rw-r--r--nuttx/ReleaseNotes40
-rw-r--r--nuttx/arch/arm/src/c5471/c5471_ethernet.c16
-rw-r--r--nuttx/examples/nettest/nettest.h12
7 files changed, 183 insertions, 95 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 77b2207f6..a270f8252 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -258,7 +258,7 @@
* Improved ACK handling in send() to better hander deferred acknowledgements
and polling intervals. Greatly improves send performance.
-0.3.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+0.3.4 2007-12-10 Gregory Nutt <spudmonkey@racsa.co.cr>
* Added and partially verified DHCP server logic (netutils/dhcpd)
* Fix BROADCAST=y compilation problems
@@ -266,6 +266,9 @@
* Correct processing of input UDP broadcast packets.
* Verfied basic DHCP client functionality (netutils/dhcpc)
* Implemented send() timeout logic
+ * Added and verifed a TELNETD front end to NSH (examples/nsh)
* Add a skeleton Ethernet device driver (drivers/net/skeleton.c)
* Added C5471 Ethernet device driver (arch/arm/src/c5471/c5471_ethernet.c)
- * Improved utilization of read-ahead buffers
+ * Found and fixed several problems in uIP when compiled for ARM with optimization.
+
+0.3.5 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index b5996a81f..0ab157618 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: December 5, 2007</p>
+ <p>Last Updated: December 10, 2007</p>
</td>
</tr>
</table>
@@ -390,7 +390,7 @@
</table>
<p>
- The 15th release of NuttX (nuttx-0.3.3) is available for download
+ The 16th release of NuttX (nuttx-0.3.4) 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>.
@@ -398,40 +398,38 @@
These unreleased changes are listed <a href="#pendingchanges">here</a>.
</p>
<p>
- NuttX 0.3.3 is the 4th release containing the integration of a network
+ NuttX 0.3.4 is the 5th release containing the integration of a network
subsystem and the uIP TCP/IP, UDP, and ICMP stacks based on
<a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a>
into NuttX.
</p>
<p>
- Many network-related problems have been fixed from version 0.3.2
- and the implementation has matured significantly.
- Changes in this release include:
+ This release is primarily a bug-fix release. New features include only:
</p>
<ul>
-<li>TCP-related bug-fixes for disconnecting sockets,</li>
-<li>Correction of some TCP read-ahead logic,<li>
-<li>TCP performance improvements,</li>
-<li>Initial UDP integration, and</li>
-<li>IMisc. additions and cleanup (See the ChangeLog for a complete list of
- changes).</li>
+<li>TELNET front-end to NSH,</li>
+<li>DHCPC server functionality, and</li>
+<li>C5471 Ethernet driver.</li>
</ul>
+
+<p>
+ Numerous network related problems were fixed related to DHCPC, UDP
+ input processing, UDP broadcast, send timeouts, and bad compilation when
+ uIP is compiled at high levels of optimizatin.
+</p>
+
<p>
- The level of network reliability is at an early beta release level. The
+ The level of network reliability is at a strong beta release level. The
baseline functionality of NuttX continues to mature and remains at
- post-beta. Open network-related issues include only:
+ post-beta or production level.
</p>
-<ul>
-<li>Some minor unimplemented BSD socket functionality,</li>
-<li>Thread safety issues: the same socket cannot be used concurrently on
- different threads, </li>
-<li>Pending design changes necessary to support multiple network interfaces, and </li>
-<li>IPv6 support is incomplete.</li>
-</ul>
+
<p>
- This release has been verified only on the Neuros OSD (DM320 ARM9)
- platform using the DM90x0 driver. Any feedback for improving the network
- reliability/performance would be greatly appreciated.
+ Parts of this release were verified only on the Neuros OSD (DM320 ARM9)
+ platform using the DM90x0 Ethernet driver and other parts on the Spectrum
+ Digital C5471 EVM using the C5471 Ethernet driver. Any feedback about bugs
+ or suggestions for mproving the network reliability/performance would be
+ greatly appreciated.
</p>
<table width ="100%">
@@ -918,17 +916,7 @@ Other memory:
using examples/udp
* recvfrom() and accept() now correctly return the remote address.
* Fixed computation error in ntohl().
-</pre></ul>
-
-<table width ="100%">
- <tr bgcolor="#e4e4e4">
- <td>
- <a name="currentrelease">ChangeLog for Current Release</a>
- </td>
- </tr>
-</table>
-<pre><ul>
0.3.3 2007-11-28 Gregory Nutt <spudmonkey@racsa.co.cr>
* Removed unused uIP files
@@ -947,13 +935,13 @@ Other memory:
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
- <a name="pendingchanges">Unreleased Changes</a>
+ <a name="currentrelease">ChangeLog for Current Release</a>
</td>
</tr>
</table>
<pre><ul>
-0.3.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+0.3.4 2007-12-10 Gregory Nutt <spudmonkey@racsa.co.cr>
* Added and partially verified DHCP server logic (netutils/dhcpd)
* Fix BROADCAST=y compilation problems
@@ -961,10 +949,22 @@ Other memory:
* Correct processing of input UDP broadcast packets.
* Verfied basic DHCP client functionality (netutils/dhcpc)
* Implemented send() timeout logic
- * Add TELNETD front end to NSH (examples/nsh)
+ * Added and verifed a TELNETD front end to NSH (examples/nsh)
* Add a skeleton Ethernet device driver (drivers/net/skeleton.c)
* Added C5471 Ethernet device driver (arch/arm/src/c5471/c5471_ethernet.c)
- * Improved utilization of read-ahead buffers
+ * Found and fixed several problems in uIP when compiled for ARM with optimization.
+</pre></ul>
+
+<table width ="100%">
+ <tr bgcolor="#e4e4e4">
+ <td>
+ <a name="pendingchanges">Unreleased Changes</a>
+ </td>
+ </tr>
+</table>
+
+<pre><ul>
+0.3.5 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
</pre></ul>
<table width ="100%">
diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html
index fe18ecba8..4f54d4cda 100644
--- a/nuttx/Documentation/NuttxPortingGuide.html
+++ b/nuttx/Documentation/NuttxPortingGuide.html
@@ -16,7 +16,7 @@
</b></big>
<p><small>by</small></p>
<p>Gregory Nutt</p>
- <p><small>Last Update: September 8, 2007</small></p>
+ <p><small>Last Update: December 10, 2007</small></p>
</center>
<center><h1>Table of Contents</h1></center>
@@ -88,6 +88,7 @@
<li><a href="#irqdispatch">4.2.4 <code>irq_dispatch()</code></a></li>
</ul>
</ul>
+<li><a href="#NxFileSystem">5.0 NuttX File System</a></li>
<li><a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a></li>
<hr>
@@ -607,13 +608,8 @@
<h2>2.6 <a name="DirStructFs">fs</a></h2>
<p>
- This directory contains the NuttX filesystem.
- The NuttX filesystem is very simple; it does not involve any block drivers or
- particular filesystem (like FAT or EXT2 etc.).
- The NuttX filesystem simply supports a set a filesystem APIs
- (<code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write</code>, etc.)
- and a registration mechanism that allows devices drivers to a associated with <i>nodes</i>
- in a file-system-like name space.
+ This directory contains the NuttX file system.
+ This file system is described <a href="#NxFileSystem">below</a>.
</p>
<h2>2.7 <a name="DirStructInclude">include</a></h2>
@@ -1144,6 +1140,56 @@ The system can be re-made subsequently by just typing <code>make</code>.
the appropriate, registered handling logic.
</p>
+<h1><a name="NxFileSystem">5.0 NuttX File System</a></h1>
+
+<p><b>Overview</b>.
+ NuttX includes an optional, scalable file system.
+ This file-system may be omitted altogther; NuttX does not depend on the presence
+ of any file system.
+</p>
+
+<p><b>Pseudo Root File System</b>.
+ Or, a simple <i>in-memory</i>, <i>psuedo</i> file system can be enabled.
+ This simple file system can be enabled setting the CONFIG_NFILE_DESCRIPTORS
+ option to a non-zero value (see <a href="#apndxconfigs">Appendix A</a>).
+ This is an <i>in-memory</i> file system because it does not require any
+ storage medium or block driver support.
+ Rather, file system contents are generated on-the-fly as referenced via
+ standard file system operations (open, close, read, write, etc.).
+ In this sense, the file system is <i>psuedo</i> file system (in the
+ same sense that the Linux <code>/proc</code> file system is also
+ referred to as a psuedo file system).
+</p>
+
+<p>
+ Any user supplied data or logic can be accessed via the psuedo-file system.
+ Built in support is provided for character and block drivers in the
+ <code>/dev</code> psuedo file system directory.
+</p>
+
+<p><b>Mounted File Systems</b>
+ The simple in-memory file system can be extended my mounting block
+ devices that provide access to true file systems backed up via some
+ mass storage device.
+ NuttX supports the standard <code>mount()</code> command that allows
+ a block driver to be bound to a mountpoint within the psuedo file system
+ and to a a file system.
+ At present, NuttX supports only the VFAT file system.
+</p>
+
+<p><b>Comparison to Linux</b>
+ From a programming perspective, the NuttX file system appears very similar
+ to a Linux file system.
+ However, there is a fundamental difference:
+ The NuttX root file system is a psuedo file system and true file systems may be
+ mounted in the psuedo file system.
+ In the typical Linux installation by comparison, the Linux root file system
+ is a true file system and psuedo file systems may be mounted in the true,
+ root file system.
+ The approach selected by NuttX is intended to support greater scalability
+ from the very tiny platform to the moderate platform.
+</p>
+
<h1><a name="apndxconfigs">Appendix A: NuttX Configuration Settings</a></h1>
<p>
@@ -1209,7 +1255,7 @@ The system can be re-made subsequently by just typing <code>make</code>.
<code>CONFIG_DEBUG_NET</code>: enable network debug output (disabled by default)
</li>
<li>
- <code>CONFIG_DEBUG_FS</code>: enable filesystem debug output (disabled by default)
+ <code>CONFIG_DEBUG_FS</code>: enable file system debug output (disabled by default)
</li>
<li>
<code>CONFIG_DEBUG_LIB</code>: enable C library debug output (disabled by default)
diff --git a/nuttx/Documentation/NuttxUserGuide.html b/nuttx/Documentation/NuttxUserGuide.html
index 8485f287c..9e63bb0b5 100644
--- a/nuttx/Documentation/NuttxUserGuide.html
+++ b/nuttx/Documentation/NuttxUserGuide.html
@@ -21,7 +21,7 @@ User's Manual
<p>
Gregory Nutt
<p>
-<small>Last Update: September 23, 2007</small>
+<small>Last Update: December 10, 2007</small>
</center>
<h1>1.0 <A NAME="Introduction">Introduction</a></h1>
@@ -54,7 +54,7 @@ Gregory Nutt
<li>Paragraph 2.8 <a href="#Signals">Signal Interfaces</a></li>
<li>Paragraph 2.9 <a href="#Pthread">Pthread Interfaces</a></li>
<li>Paragraph 2.10 <a href="#Environ">Environment Variables</a></li>
- <li>Paragraph 2.11 <a href="#FileSystem">Filesystem Interfaces</a></li>
+ <li>Paragraph 2.11 <a href="#FileSystem">File System Interfaces</a></li>
<li>Paragraph 2.12 <a href="#Network">Network Interfaces</a></li>
</ul>
</li>
@@ -5687,11 +5687,58 @@ interface of the same name.
Zero on success.
</p>
-<h1><a name="FileSystem">2.11 Filesystem Interfaces</a></h1>
-<p>
- The NuttX filesystem is very simple; it does not involve any block drivers or
- particular filesystem (like FAT or EXT2 etc.).
- The NuttX filesystem simply supports a set a filesystem APIs
+<h1><a name="FileSystem">2.11 File System Interfaces</a></h1>
+
+<p><b>Overview</b>.
+ NuttX includes an optional, scalable file system.
+ This file-system may be omitted altogther; NuttX does not depend on the presence
+ of any file system.
+</p>
+
+<p><b>Pseudo Root File System</b>.
+ Or, a simple <i>in-memory</i>, <i>psuedo</i> file system can be enabled.
+ This simple file system can be enabled setting the CONFIG_NFILE_DESCRIPTORS
+ option to a non-zero value.
+ This is an <i>in-memory</i> file system because it does not require any
+ storage medium or block driver support.
+ Rather, file system contents are generated on-the-fly as referenced via
+ standard file system operations (open, close, read, write, etc.).
+ In this sense, the file system is <i>psuedo</i> file system (in the
+ same sense that the Linux <code>/proc</code> file system is also
+ referred to as a psuedo file system).
+</p>
+
+<p>
+ Any user supplied data or logic can be accessed via the psuedo-file system.
+ Built in support is provided for character and block drivers in the
+ <code>/dev</code> psuedo file system directory.
+</p>
+
+<p><b>Mounted File Systems</b>
+ The simple in-memory file system can be extended my mounting block
+ devices that provide access to true file systems backed up via some
+ mass storage device.
+ NuttX supports the standard <code>mount()</code> command that allows
+ a block driver to be bound to a mountpoint within the psuedo file system
+ and to a a file system.
+ At present, NuttX supports only the VFAT file system.
+</p>
+
+<p><b>Comparison to Linux</b>
+ From a programming perspective, the NuttX file system appears very similar
+ to a Linux file system.
+ However, there is a fundamental difference:
+ The NuttX root file system is a psuedo file system and true file systems may be
+ mounted in the psuedo file system.
+ In the typical Linux installation by comparison, the Linux root file system
+ is a true file system and psuedo file systems may be mounted in the true,
+ root file system.
+ The approach selected by NuttX is intended to support greater scalability
+ from the very tiny platform to the moderate platform.
+</p>
+
+<p><b>File System Interfaces</b>.
+ The NuttX file system simply supports a set of standard, file system APIs
(<code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write</code>, etc.)
and a registration mechanism that allows devices drivers to a associated with <i>nodes</i>
in a file-system-like name space.
@@ -6597,7 +6644,7 @@ notify a task when a message is available on a queue.
<li><a href="#directoryoperations">Directory operations</a></li>
<li><a href="#driveroperations">Driver operations</a></li>
<li><a href="#exit">exit</a></li>
- <li><a href="#FileSystem">Filesystem interfaces</a></li>
+ <li><a href="#FileSystem">File system interfaces</a></li>
<li><a href="#getpid">getpid</a></li>
<li><a href="#getsockopt">getsockopt</a></li>
<li><a href="#gmtimer">gmtime_r</a></li>
diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes
index 0001c1378..5953aba2e 100644
--- a/nuttx/ReleaseNotes
+++ b/nuttx/ReleaseNotes
@@ -1,31 +1,29 @@
-nuttx-0.3.3
+nuttx-0.3.4
^^^^^^^^^^^
-This is the 15th release of NuttX and the 4th release containing
+This is the 16th release of NuttX and the 5th release containing
the integration of a network subsystem and the uIP TCP/IP, UDP, and
ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page).
-Many network-related problems have been fixed and the implementation
-has matured significantly. This release consists of:
+This release is primarily a bug-fix release. New features include
+only:
-o TCP-related bug-fixes for disconnecting sockets
-o Correction of some TCP read-ahead logic
-o TCP performance improvements
-o Misc. additions and cleanup (See the ChangeLog for a complete list of
- changes).
+o TELNET front-end to NSH,
+o DHCPC server functionality, and
+o C5471 Ethernet driver.
-The level of network reliability is at an early beta release level. The
-baseline functionality of NuttX continues to mature and remains at
-post-beta. Open network-related issues include only:
+Numerous network related problems were fixed related to DHCPC, UDP
+input processing, UDP broadcast, send timeouts, and bad compilation when
+uIP is compiled at high levels of optimizatin.
-o Some minor unimplemented BSD socket functionality,
-o Thread safety issues: the same socket cannot be used concurrently on
- different threads.
-o Pending design changes necessary to support multiple network interfaces.
-o IPv6 support is incomplete.
+The level of network reliability is at a strong beta release level. The
+baseline functionality of NuttX continues to mature and remains at
+post-beta or production level.
-This release has been verified only on the Neuros OSD (DM320 ARM9)
-platform using the DM90x0 driver. Any feedback for improving the network
-reliability/performance would be greatly appreciated.
+Parts of this release were verified only on the Neuros OSD (DM320 ARM9)
+platform using the DM90x0 Ethernet driver and other parts on the Spectrum
+Digital C5471 EVM using the C5471 Ethernet driver. Any feedback about bugs
+or suggestions for mproving the network reliability/performance would be
+greatly appreciated.
-This tarball contains a complete CVS snapshot from November 28, 2007.
+This tarball contains a complete CVS snapshot from December 10, 2007.
diff --git a/nuttx/arch/arm/src/c5471/c5471_ethernet.c b/nuttx/arch/arm/src/c5471/c5471_ethernet.c
index e957eb970..a36b51908 100644
--- a/nuttx/arch/arm/src/c5471/c5471_ethernet.c
+++ b/nuttx/arch/arm/src/c5471/c5471_ethernet.c
@@ -1082,7 +1082,7 @@ static void c5471_rxstatus(struct c5471_driver_s *c5471)
{
if (EIM_TXDESC_OWN_HOST & getreg32(desc))
{
- /* The incoming packe queue is empty. */
+ /* The incoming packet queue is empty. */
break;
}
@@ -1274,7 +1274,7 @@ static void c5471_receive(struct c5471_driver_s *c5471)
/* Set amount of data in c5471->c_dev.d_len. */
dev->d_len = packetlen;
- nvdbg("Received packet, packetlen: %d type: %02x\n", packetlen, BUF->type);
+ nvdbg("Received packet, packetlen: %d type: %02x\n", packetlen, ntohs(BUF->type));
c5471_dumpbuffer(dev->d_buf, dev->d_len);
/* We only accept IP packets of the configured type and ARP packets */
@@ -1286,7 +1286,7 @@ static void c5471_receive(struct c5471_driver_s *c5471)
#endif
{
uip_arp_ipin();
- uip_input(&c5471->c_dev);
+ uip_input(dev);
/* If the above function invocation resulted in data that should be
* sent out on the network, the field d_len will set to a value > 0.
@@ -1294,16 +1294,16 @@ static void c5471_receive(struct c5471_driver_s *c5471)
* access rights to submit another Ethernet frame.
*/
- if (c5471->c_dev.d_len > 0 &&
+ if (dev->d_len > 0 &&
(EIM_TXDESC_OWN_HOST & getreg32(c5471->c_rxcpudesc)) == 0)
{
- uip_arp_out(&c5471->c_dev);
+ uip_arp_out(dev);
c5471_transmit(c5471);
}
}
- else if (BUF->type == htons(UIP_ETHTYPE_ARP))
+ else if (BUF->type == HTONS(UIP_ETHTYPE_ARP))
{
- uip_arp_arpin(&c5471->c_dev);
+ uip_arp_arpin(dev);
/* If the above function invocation resulted in data that should be
* sent out on the network, the field d_len will set to a value > 0.
@@ -1311,7 +1311,7 @@ static void c5471_receive(struct c5471_driver_s *c5471)
* access rights to submit another Ethernet frame.
*/
- if (c5471->c_dev.d_len > 0 &&
+ if (dev->d_len > 0 &&
(EIM_TXDESC_OWN_HOST & getreg32(c5471->c_rxcpudesc)) == 0)
{
c5471_transmit(c5471);
diff --git a/nuttx/examples/nettest/nettest.h b/nuttx/examples/nettest/nettest.h
index 318211e79..4805c8f9a 100644
--- a/nuttx/examples/nettest/nettest.h
+++ b/nuttx/examples/nettest/nettest.h
@@ -69,15 +69,9 @@
# define errno *get_errno_ptr()
- /* If debug is enabled, use the synchronous lib_lowprintf so that the
- * program output does not get disassociated in the debug output.
- */
-
-# ifdef CONFIG_DEBUG
-# define message(...) lib_lowprintf(__VA_ARGS__)
-# else
-# define message(...) printf(__VA_ARGS__)
-# endif
+ /* Used lib_rawprintf() so that there is not confusion from buffered IO */
+
+# define message(...) lib_rawprintf(__VA_ARGS__)
/* At present, uIP does only abortive disconnects */