diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-12-10 17:15:11 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-12-10 17:15:11 +0000 |
commit | 89b3ca3216c72caf0534f2f9660554198afdfe7e (patch) | |
tree | 3fb1a52ef7453a3bcfa44506b1934cc7be903cdd /nuttx | |
parent | c63a13af0b0ab849d62890c00d09ff1fab754141 (diff) | |
download | px4-nuttx-89b3ca3216c72caf0534f2f9660554198afdfe7e.tar.gz px4-nuttx-89b3ca3216c72caf0534f2f9660554198afdfe7e.tar.bz2 px4-nuttx-89b3ca3216c72caf0534f2f9660554198afdfe7e.zip |
Release 0.3.4nuttx-3.4
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@436 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx')
-rw-r--r-- | nuttx/ChangeLog | 7 | ||||
-rw-r--r-- | nuttx/Documentation/NuttX.html | 76 | ||||
-rw-r--r-- | nuttx/Documentation/NuttxPortingGuide.html | 64 | ||||
-rw-r--r-- | nuttx/Documentation/NuttxUserGuide.html | 63 | ||||
-rw-r--r-- | nuttx/ReleaseNotes | 40 | ||||
-rw-r--r-- | nuttx/arch/arm/src/c5471/c5471_ethernet.c | 16 | ||||
-rw-r--r-- | nuttx/examples/nettest/nettest.h | 12 |
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 */ |