blob: b625a06fefdd511dd68229a531360624409f0b15 [file] [log] [blame]
<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../../../.docsrc/AVR32_ns.css">
</head>
<body>
<p align="left" class="whs2"><a href="../../../AVR32_SERVICES_Readme.html"<font color="red"></font>Back to the SERVICES main page</a></p>
<h1 align="center" class="whs1">AVR&reg;32 AT32UC3 Series Software Framework: Basic Web server and TFTP server example.<br>
</h1>
<p align="center" class="whs2">Copyright &copy; 2007 Atmel Corporation</p>
<h2>Introduction</h2>
<p>This example implements a basic Web server and a basic TFTP server.
It is running on top of the <a href="http://savannah.nongnu.org/projects/lwip"<font color="red"></font>lwIP TCP/IP stack</a> and the AVR32 UC3 <a href="http://freertos.org"<font color="red"></font>freeRTOS.org</a> port.</p>
<p>This example thus contains a port of the <a href="http://savannah.nongnu.org/projects/lwip"<font color="red"></font>lwIP TCP/IP stack</a>. This port is using both the AVR32 UC3 <a href="http://freertos.org"<font color="red"></font>freeRTOS.org</a> port and the AVR32 UC3A MACB interface for the Ethernet access.</p>
<p>&nbsp;</p>
<h2>lwIP TCP/IP stack</h2>
<p>lwIP is an implementation of the TCP/IP protocol suite. The focus of the lwIP TCP/IP implementation is to reduce resource usage while still having a full scale TCP.</p>
<DT><B><u>lwIP features</u>:</B>
<DD><p class="whs3"><li>IP (Internet Protocol) including packet forwarding over multiple network interfaces</p></li>
<DD><p class="whs3"><li>ICMP (Internet Control Message Protocol) for network maintenance and debugging</p></li>
<DD><p class="whs3"><li>UDP (User Datagram Protocol) including experimental UDP-lite extensions</p></li>
<DD><p class="whs3"><li>TCP (Transmission Control Protocol) with congestion control, RTT estimation and fast recovery/fast retransmit</p></li>
<DD><p class="whs3"><li>Specialized raw API for enhanced performance</p></li>
<DD><p class="whs3"><li>Optional Berkeley-alike socket API</p></li>
<DD><p class="whs3"><li>DHCP (Dynamic Host Configuration Protocol)</p></li>
<DD><p class="whs3"><li>PPP (Point-to-Point Protocol)</p></li>
<DD><p class="whs3"><li>ARP (Address Resolution Protocol) for Ethernet</p></li>
<p>lwIP is freely available (under a BSD-style license) in C source code format and can be downloaded from the <a href="http://savannah.nongnu.org/projects/lwip"<font color="red"></font>development homepage</a>.</p>
<p>&nbsp;</p>
<h2>The Basic Web server</h2>
<p>Implements a simplistic WEB server. To use this demo part, define HTTP_USED to 1, else define to 0. (default is 1)</p>
<B><u>Demo description</u>:</B> Every time a connection is made and data is received, a dynamic page that shows the current FreeRTOS.org kernel statistics is generated and returned. The connection is then closed.</p>
<B><u>Note</u>:</B> The WEB server is reachable at the IP address 192.168.0.2.
<p>&nbsp;</p>
<h2>The Basic TFTP server</h2>
<p>Implements a simplistic TFTP server. To use this demo part, define TFTP_USED to 1, else define to 0. (default is 1)</p>
<DT><B><u>Demo description</u>:</B>
<DD><p class="whs3"><li>To put a file onto the TFTP server (Supported file size < 2048 bytes), on a PC command line type <i><b>tftp 192.168.0.2 PUT "a_file"</i></b>: this will copy <i>a_file</i> from your hard drive to a RAM buffer of the demo.</p></li>
<DD><p class="whs3"><li>To get a file from the TFTP server, on a PC command line type <i><b>tftp 192.168.0.2 GET "a_file"</i></b>: this will copy <i>a_file</i> from the RAM buffer of the application to the PC's hard drive.</p></li>
<B><u>Note 1</u>:</B> only one file at a time is supported on this TFTP server. This is because the TFTP server being a simplistic example, it does not use a file system to store files but a predefined RAM area of 2048 Bytes.
<p><B><u>Note 2</u>:</B> The TFTP server is reachable at the IP address 192.168.0.2.</p>
<p>&nbsp;</p>
<h2>The Basic SMTP client</h2>
<p>Implements a simplistic SMTP client. To use this demo part, define SMTP_USED to 1, else define to 0. (default is 0)</p>
<DT><B><u>Demo description</u>:</B>
<DD><p class="whs3"><li>Prior to compile and run the SMTP client, you will have to configure the connection settings :
<DD><DD><li>Server address : default is <i>192.168.0.1</i>.</li>
<DD><DD><li>Server name : used in the EHLO field, default is <i>smtp.domain.com</i>.</li>
<DD><DD><li>Mail sender : used in the mailfrom field, default is <i>sender@domain.com</i>.</li>
<DD><DD><li>Mail recipient : used in the mailto field, default is <i>receiver@domain.com</i>.</li>
<DD><DD><li>Mail content : default is <i>Subject: *** SPAM ***\r\nFROM: \"Your Name here\" <sender@domain.com>\r\nTO: \"Your Contact here\" <receiver@domain.com>\r\n\r\nSay what you want here</i>.</li>
</p></li>
<DD><p class="whs3"><li>Once all fields are configured, remove the <i>#error</i> lines to allow compilation.</p></li>
<DD><p class="whs3"><li>Run the software and press Push Button 0 to send an email.</p></li>
<p>&nbsp;</p>
<h2>Device Info</h2>
All AVR32 UC3A devices with a MACB module can be used. This example has been tested with the following setup(s):
<DD><p class="whs3"><li type="disc">AT32UC3A0512 on the EVK1100 evaluation kit.</li></p>
<p>&nbsp;</p>
<hr align="center" width="50%" class="whs4">
<p class=legalfooter>AVR is a registered trademark of
Atmel Corporation.</p>
</body>
</html>