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