The download includes the kernel source code, and a demo application for EVERY
RTOS port.  See http://www.freertos.org/a00017.html for full details of the 
directory structure and information on locating the files you require.

The easiest way to use FreeRTOS is start start with one of the demo application 
projects.  Once this is running the project can be modified to include your own
source files.  This way the correct files and compiler options will be 
automatically included in your application.

+ The Source directory contains the real time kernel source files for every 
port.  The kernel itself is only 3 files.

+ The Demo directory contains the demo application source files for every 
port.

+ The TraceCon directory contains the trace visualisation exe file.

See the readme files in the respective directories for further information.

