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