FreeRTOS Libraries - FreeRTOS
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

FreeRTOS Libraries

FreeRTOS libraries provide additional functionality to the FreeRTOS kernel and its internal libraries. You can use FreeRTOS libraries for networking and security in embedded applications. FreeRTOS libraries also enable your applications to interact with Amazon IoT services. FreeRTOS includes libraries that make it possible to:

  • Securely connect devices to the Amazon IoT Cloud using MQTT and device shadows.

  • Discover and connect to Amazon IoT Greengrass cores.

  • Manage Wi-Fi connections.

  • Listen for and process FreeRTOS Over-the-Air Updates.

The libraries directory contains the source code of the FreeRTOS libraries. There are helper functions that assist in implementing the library functionality. We do not recommend that you change these helper functions.

FreeRTOS porting libraries

The following porting libraries are included in configurations of FreeRTOS that are available for download on the FreeRTOS console. These libraries are platform-dependent. Their contents change according to your hardware platform. For information about porting these libraries to a device, see the FreeRTOS Porting Guide.

FreeRTOS porting libraries
Library API Reference Description
Bluetooth Low Energy Bluetooth Low Energy API Reference Using the FreeRTOS Bluetooth Low Energy library, your microcontroller can communicate with the Amazon IoT MQTT broker through a gateway device. For more information, see Bluetooth Low Energy library.
Over-the-Air Updates Amazon IoT Over-the-air update API reference

The FreeRTOS Amazon IoT Over-the-air (OTA) update library lets you manage update notifications, download updates, and perform cryptographic verification of firmware updates on your FreeRTOS device.

For more information, see Amazon IoT Over the air (OTA) library.

FreeRTOS+POSIX FreeRTOS+POSIX API Reference

You can use the FreeRTOS+POSIX library to port POSIX-compliant applications to the FreeRTOS ecosystem.

For more information, see FreeRTOS+POSIX.

Secure Sockets Secure Sockets API Reference

For more information, see Secure Sockets library.

FreeRTOS+TCP FreeRTOS+TCP API Reference

FreeRTOS+TCP is a scalable, open source and thread safe TCP/IP stack for FreeRTOS.

For more information, see FreeRTOS+TCP.

Wi-Fi Wi-Fi API Reference

The FreeRTOS Wi-Fi library enables you to interface with your microcontroller's lower-level wireless stack.

For more information, see the Wi-Fi library.

corePKCS11

The corePKCS11 library is a reference implementation of the Public Key Cryptography Standard #11, to support provisioning and TLS client authentication.

For more information, see the corePKCS11 library.

TLS

For more information, see Transport Layer Security.

Common I/O Common I/O API Reference

For more information, see Common I/O.

Cellular Interface Cellular Interface API Reference

The Cellular Interface library exposes the capabilities of a few popular cellular modems through a uniform API. For more information, see the Cellular Interface library.

FreeRTOS application libraries

You can optionally include the following standalone application libraries in your FreeRTOS configuration to interact with Amazon IoT services on the cloud.

Note

Some of the application libraries have the same APIs as libraries in the Amazon IoT Device SDK for Embedded C. For these libraries, see the Amazon IoT Device SDK C API Reference. For more information about the Amazon IoT Device SDK for Embedded C, see Amazon IoT Device SDK for Embedded C.

FreeRTOS application libraries
Library API Reference Description
Amazon IoT Device Defender Device Defender C SDK API Reference

The FreeRTOS Amazon IoT Device Defender library connects your FreeRTOS device to Amazon IoT Device Defender.

For more information, see Amazon IoT Device Defender library.

Amazon IoT Greengrass Greengrass API Reference

The FreeRTOS Amazon IoT Greengrass library connects your FreeRTOS device to Amazon IoT Greengrass.

For more information, see Amazon IoT Greengrass Discovery library.

MQTT

MQTT (v1.x.x) Library API Reference

MQTT (v1) Agent API Reference

MQTT (v2.x.x) C SDK API Reference

The coreMQTT library provides a client for your FreeRTOS device to publish and subscribe to MQTT topics. MQTT is the protocol that devices use to interact with Amazon IoT.

For more information about the coreMQTT library version 3.0.0, see coreMQTT library.

coreMQTT Agent

coreMQTT Agent Library API Reference

The coreMQTT Agent library is a high level API that adds thread safety to the coreMQTT library. It lets you create a dedicated MQTT agent task that manages an MQTT connection in the background and doesn't need any intervention from other tasks. The library provides thread safe equivalents to the coreMQTT's APIs, so it can be used in multi-threaded environments.

For more information about the coreMQTT Agent library see coreMQTT Agent library.

Amazon IoT Device Shadow Device Shadow C SDK API Reference

The Amazon IoT Device Shadow library enables your FreeRTOS device to interact with Amazon IoT device shadows.

For more information, see Amazon IoT Device Shadow library.

Configuring the FreeRTOS libraries

Configuration settings for FreeRTOS and the Amazon IoT Device SDK for Embedded C are defined as C preprocessor constants. You can set configuration settings with a global configuration file, or by using a compiler option such as -D in gcc. Because configuration settings are defined as compile-time constants, a library must be rebuilt if a configuration setting is changed.

If you want to use a global configuration file to set configuration options, create and save the file with the name iot_config.h, and place it in your include path. Within the file, use #define directives to configure the FreeRTOS libraries, demos, and tests.

For more information about the supported global configuration options, see the Global Configuration File Reference.