This directory contains a set of FreeRTOS.org ports and demo applications that 
have not yet been adopted into the official FreeRTOS.org release.  The files 
are supplied within .zip archives exactly as they were sent to me.  They have
not been tested or verified by either myself or WITTENSTEIN (the official 
commercial partner) so are provided as is and without support.

The files contained within each .zip file vary, some contain all the files
required to run a port demo, while other require adding to the standard .zip
download directory tree.

Some .zip files contain ports and demos that are based on historic versions of
FreeRTOS.org.

Please note that some .zip files contain copies of the lwIP TCP/IP stack, and 
where this is the case users must be aware that lwIP is licensed separately from
FreeRTOS.org.  The lwIP license can be viewed here:
http://savannah.nongnu.org/projects/lwip/ .

Many thanks to all contributors.

