NOTE: The project and documentation presented on this page is a work in progress so provided as a separate zip file download.  It will be released in the main FreeRTOS download following full review and completion of this documentation.

IoT Task Pool
 

Introduction

The IoT Task Pool library is a utility library that provides a “pool” of tasks that can be shared by the MCU application and FreeRTOS IoT libraries. This pooling of tasks alleviates the need for each library to create and manage its own tasks.

The FreeRTOS IoT libraries can be used individually or collectively to create locally connected or internet connected MCU applications.  Each library can be freely used and is distributed under the MIT Open Source License.

 

IoT Task Pool Implementations

The IoT Task Pool library has many use cases, including for large Linux application development. Typical FreeRTOS use cases do not require its full functionality, so an optimized version specifically for FreeRTOS is provided in the demo described on these pages. In this optimized version, the task pool:

  • Only supports a single task pool (system task pool) at a time.
  • Does not auto-scale by dynamically adding more tasks if the number of tasks in the pool becomes exhausted. Instead, the number of tasks in the pool is fixed at compile time by the IOT_TASKPOOL_NUMBER_OF_WORKERS constant in iot_config.h.
  • Cannot be shut down – it exists for the lifetime of the application.

Users can switch to the full task pool implementation if the full capability is needed.