9
0
Fork 0

Release 0.3.4

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@436 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2007-12-10 17:15:11 +00:00
parent 9ed2b9876c
commit ff320193a6
7 changed files with 181 additions and 93 deletions

View File

@ -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>

View File

@ -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>
The level of network reliability is at an early beta release level. The
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 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%">

View File

@ -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)

View File

@ -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>
<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>
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
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>

View File

@ -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
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.
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.
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.
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 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.
This tarball contains a complete CVS snapshot from November 28, 2007.
This tarball contains a complete CVS snapshot from December 10, 2007.

View File

@ -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);

View File

@ -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.
*/
/* Used lib_rawprintf() so that there is not confusion from buffered IO */
# ifdef CONFIG_DEBUG
# define message(...) lib_lowprintf(__VA_ARGS__)
# else
# define message(...) printf(__VA_ARGS__)
# endif
# define message(...) lib_rawprintf(__VA_ARGS__)
/* At present, uIP does only abortive disconnects */