*** IMPORTANT NOTE ***

FreeRTOS-Labs contains libraries and demos that are fully functional, but
undergoing optimizations or refactoring to improve memory usage, modularity,
documentation, demo usability, or test coverage.  At this time the projects ARE
A WORK IN PROGRESS and will be released in the main FreeRTOS directories of the
download following full review and completion of the documentation.


*** INTRODUCTION ***

This distribution currently contains demos from the FreeRTOS task pool library,
MQTT library, HTTPS Client library, Shadow library, and Jobs library.

The pre-configured projects use the FreeRTOS kernel Windows port (often
called the Windows simulator) to enable their evaluation using the free Visual
Studio tools and without needing specific microcontroller hardware.


*** INSTRUCTIONS ***

Instructions for configuring and using the FreeRTOS IoT libraries are in the
following links:

  + https://www.FreeRTOS.org/task-pool/
  + https://www.FreeRTOS.org/mqtt/
  + https://www.freertos.org/https/
  + https://www.FreeRTOS.org/shadow/
  + https://www.FreeRTOS.org/jobs/


*** LOCATING THE EXAMPLE PROJECTS ***

The Visual Studio projects for each of the FreeRTOS IoT library examples are
located in sub-directories of the following top-level directories:

  + /FreeRTOS-Labs/Demo/FreeRTOS_IoT_Libraries/utilities
  + /FreeRTOS-Labs/Demo/FreeRTOS_IoT_Libraries/mqtt
  + /FreeRTOS-Labs/Demo/FreeRTOS_IoT_Libraries/https
  + /FreeRTOS-Labs/Demo/FreeRTOS_IoT_Libraries/shadow
  + /FreeRTOS-Labs/Demo/FreeRTOS_IoT_Libraries/jobs


*** ADDITIONAL INFORMATION ***

See http://www.freertos.org/a00017.html for full details of the FreeRTOS
directory structure

See also -
http://www.freertos.org/FreeRTOS-quick-start-guide.html
http://www.freertos.org/FAQHelp.html
