Compendium
Technologies announces a port of the lwIP TCP/UDP/IP protocol
stack to the Softools C
compiler in support of Rabbit 2000 and
3000embedded development kits and core modules.
Updated 04 August 2002: Second alpha build released,
including RCM3000 support, working sample HTTP server, DHCP client,
some additional API routines, and Rabbit assembly-optimized checksum
routines. See the DOWNLOAD
section below for the new version.
FEATURES
Supported core modules and boards:
- Rabbit Semiconductor TCP/IP Development Kit
- Rabbit Semiconductor RCM2100 series (pictured)
- Rabbit Semiconductor RCM2200 series
- Rabbit Semiconductor RCM3000 series
- Supported protocols:
- TCP
- UDP
- IPv4
- ARP
- ICMP
- DHCP
- IPv6 (coming soon)
- DNS (coming soon)
- HTTP (coming soon)
- SMTP (coming soon)
- FTP (coming soon)
- POP3 (coming soon)
- Small memory footprint
- Code footprint less than 52k (all far code)
- Configurable memory footprint from 4k up
- Three APIs for maximum performance or programming ease
- Open source
WHY SHOULD I USE LWIP?
Since its introduction in 2001, lwIP has been ported to many
embedded processors, operating systems and environments. lwIP is a
modern, high-performance, ANSI-C, no buffer copy TCP/IP stack
designed to run with minimal memory configurations. lwIP is actively
enhanced and libraries that support virtually all common internet
protocols are being developed, contributed and maintained. lwIP
benefits from the open source process, and as such should ultimately
be more stable and reliable than competing stacks due to a wide user
base.
Specific advantages of lwIP over the stack included with Dynamic
C in the Rabbit Semiconductor development kits are:
- No specially sized stack is required
- Three APIs:
- High performance callback API (called the "raw" API)
- No copy blocking API (netconn)
- BSD-like socket API
- Configurable memory footprint (currently through a header
file, programmatic interface being developed)
- Support for IPV6 (in lwIP currently but not in the port yet)
Note that at this point in time, however, in terms of
protocol support, the Dynamic C stack is more complete.
TO DO
This is a quick to do status list for the lwIP port as of August,
2002. Please note that lwIP is under active development, as is this
port of lwIP. This represents some of the features that are being
worked on. Note that this list is not in any particular order.
- Make RAM parameters configurable
- Support far memory RAM buffers
- Develop generalized HTTP server
- SMTP email protocol development
- DNS client protocol development
- POP3 email client protocol development
- HTTP client library
- lwIP PPP client (from lwIP community)
- FTP server (fromt lwIP community)
- Compile and test IPV6 version
- Dynamic C compatibility API
- Bug fixes
Please note that Compendium is not paid to port or support this
software. The author can't guarantee when problems encountered will
be dealt with, or whether they will be dealt with. Code
contributions and bug fixes are welcome; see the support section
below.
DOWNLOAD LWIP PORT
Currently the lwIP port is considered alpha quality, with many
features to be added and some bugs fixes to be done. The port
consists of zip file containing the full source, built net2000.lib
library, TCP and UDP examples and header files.
By downloading the lwIP software for the Rabbit processors, you
agree to the following terms:
Softools/Compendium Technologies lwIP Rabbit
2000/3000 port agreement:
Copyright (c) 2001, Swedish Institute of Computer Science.
Portions Copyright (c) 2002 Compendium Technologies, Inc. and
Softools, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with
the distribution.
3. Neither the name of the Institute nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Any portions of this code copyrighted by Compendium Technologies,
Inc. or by Softools, Inc. may not be used with any other compiler
other than the Softools compiler, without the permission of
Compendium Technologies, Inc. and Softools, Inc.
lwIP for Softools build available:
DOCUMENTATION
Documentation for the networking APIs in lwIP is at the main lwIP
site here.
In addition, Compendium has added an executive layer (the
netConfigure
, netRecognize
,
ethernetStart
, ethernetStop
and related
functions). These calls will be documented soon. The example
programs are currently the best source of information for using the
network executive.
SUPPORT
Please report all bugs and problems! The author, John Toman, will make an
effort to fix bugs and problems as they occur and issue new
releases. The timeliness of bug fixes and enhancements can't be
guaranteed. Please note once again that the author is not paid for
this work. If you need the author's time to address specific issues,
drivers for other boards, or something else you need now, consider
hiring him to support you. Remember that, unless the changes you
need are very specific to your application, Compendium and the the
author reserve the right to distribute to others (free of charge
only) any modifications made to the lwIP port.
You may use the Softools Email Support
Group for help or email
John directly with bug reports, patches, fixes, success stories,
etc.