Amazon-FreeRTOS Github Repository Migration Guide
If you have an existing FreeRTOS project based on the now deprecated amazon-freertos repository, follow these steps:
-
Stay up to date with the latest, publicly available security fixes. Check the FreeRTOS LTS libraries
page for updates, or subscribe to the FreeRTOS-LTS GitHub repository to receive the latest LTS patches with critical and security bug fixes. You can download or clone the latest FreeRTOS LTS patches required directly from the individual GitHub repositories. -
Consider refactoring the network transport interface implementation to optimize your hardware platform. The abstract APIs like secure sockets and Wifi APIs are not required by the latest coreMQTT
library. See Transport Interface for further details.
Appendix
The following table provides recommendations for all demo projects, legacy libraries, and abstract APIs within the Amazon-FreeRTOS repository.
Name | Type | Recommendations |
---|---|---|
coreHTTP |
demos and library |
Clone or download the coreHTTP library directly from the
coreHTTP |
coreMQTT |
demos and library |
Clone or download the coreMQTT library directly from the
coreMQTT |
coreMQTT-Agent |
demos and library |
Clone or download the coreMQTT-Agent library directly from the
coreMQTT-Agent |
device_defender_for_aws |
demos and library |
The AWS IoT Device Defender library is in its repository in the
AWS GitHub organisation |
device_shadow_for_aws |
demos and library |
The AWS IoT Device Shadow library is in its repository in the
AWS GitHub organisation |
jobs_for_aws |
demos and library |
The AWS IoT Jobs library is in its repository in the
AWS GitHub organization |
OTA |
demos and library |
The AWS IoT Over-The-Air (OTA) Update library is in its repository in the
AWS GitHub organization |
CLI and FreeRTOS_Plus_CLI |
demos and library |
There is a CLI example running on WinSim. Refer to the
FreeRTOS Plus Command Line Interface |
logging |
macro |
There are implementations of the logging macro for specific hardware
platforms used by some of the FreeRTOS libraries. Refer to the
logging page |
greengrass_connectivity |
demo |
[Migration in progress] This demo project assumed that cloud connectivity
was available before connecting to an AWS IoT Greengrass device. A new project that
demonstrates local authentication and discovery capability is under development.
Expect the new demo project to be published shortly in the
FreeRTOS Github organization |
Name | Type | Recommendations |
---|---|---|
BLE |
demos and libraries |
The FreeRTOS BLE library implements the proprietary MQTT protocol and
supports publishing and subscribing to MQTT topics over Bluetooth Low Energy (BLE)
through a proxy device such as a mobile phone. This is no longer mandated. Use
either your own BLE stack or a third-party option such as
NimBLE |
dev_mode_key_provisioning |
demos |
The Featured FreeRTOS IoT reference integrations on the
NXP i.MX RT1060 |
posix |
abstraction and demo |
Not recommended for use. |
wifi_provisioning |
example |
This example demonstrated how to provision WiFi credentials on a device
using the Amazon-FreeRTOS BLE library. Refer to the FreeRTOS Featured IoT reference on the
ESP32C3 platform |
Legacy abstract APIs |
code |
These are APIs that were created to provide an abstract interface for
various third-party software stacks, connectivity modules, and MCU platforms
from a variety of vendors. For example, there are interfaces for WiFi abstraction,
secure sockets, and so on. They are supported in the Amazon-FreeRTOS repository
and are in the folder |
The libraries and demos in the table above will not get security patches or bug fixes.
Third-party libraries
When demos in Amazon-FreeRTOS use third-party libraries, we recommend that you sub-module them directly from their third-party repositories.
-
CMock: clone it (submodule if you use git) directly from the Cmock
repository. -
jsmn: not recommended and no longer supported.
-
lwip: clone it (submodule if you use git) directly from the lwip-tcpip
repository. -
lwip_osal: refer to the FreeRTOS Featured Reference Integrations on i.MX RT1060
or STM32U5 for how to implement lwip_osal on your hardware platform/board. -
mbedtls: clone it (submodule if you use git) directly from the Mbed-TLS
repository. The mbedtls config and utilities can be reused; make a local copy in this case. -
pkcs11: clone it (submodule if you use git) directly from either the corePKCS11
library or the OASIS PKCS 11 repository. -
tinycbor: clone it (submodule if you use git) directly from thetinycbor
repository. -
tinycrypt: we recommend that you use crypto accelerators from your MCU platform, if available. If you want to continue to use tinycrypt, clone it (submodule if you use git) directly from the tinycrypt
repository. -
tracealyzer_recorder: clone it (submodule if you use git) directly from Percepio's trace recorder
repository. -
unity: clone it (submodule if you use git) directly from the ThrowTheSwitch/Unity
repository. -
win_pcap: win_pcap is no longer maintained. We recommend that you use libslirp, libpcap (posix), or npcap instead.
Porting tests and integration tests
All tests under the /tests
folder that are required to validate integration
of FreeRTOS libraries were migrated to the
FreeRTOS-Libraries-Integration-Tests