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:
parent
9ed2b9876c
commit
ff320193a6
|
@ -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>
|
||||
|
|
|
@ -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%">
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
Loading…
Reference in New Issue