Skip to content

ashmagin/amazon-freertos

 
 

Repository files navigation

FreeRTOS AWS Reference Integrations

Update (05/26/2021)

In the next few months, we will have an official release of the AWS Reference Integration repository which brings in the 202012.01-LTS libraries. In this release, we will carry the LTS libraries and remove legacy ones from main branch. The legacy libraries will continue to be accessible through the 202012.00 release, and AWS will continue to support Github issues on these libraries on a case by case basis. We also created 20210526_Archive tag for archiving old libraries with the latest changes in main, but it is neither an official release nor tested.

We're removing the following libraries under /libraries/c_sdk:

  • Defender Client Library V3.0.3 under /c_sdk/aws/defender. Migrate to AWS IoT Device Defender v1.1.0 under /libraries/device_defender_for_aws (update from v1.0.1 in 202012.00 release).
  • Shadow V2.2.3 under /c_sdk/aws/shadow. Migrate to AWS IoT Device Shadow v1.0.2 under /libraries/device_shadow_for_aws (no change from 202012.00 release)
  • MQTT Client Library V2.3.1 under /c_sdk/standard/mqtt. Migrate to coreMQTT v1.1.0 under /libraries/coreMQTT (no change from 202012.00 release).
  • HTTPS Client Library V1.2.0 under /c_sdk/standard/https. Migrate to coreHTTP v2.0.0 under /libraries/coreHTTP (no change from 202012.00 release).
  • Serializer Library V1.1.2 under /c_sdk/standard/serializer. All libraries included in the upcoming release no longer have dependencies on the serializer library.
  • Common Libraries V1.2.0 under /c_sdk/standard/common. All libraries included in the upcoming release no longer have dependencies on the common libraries.

We're relocating BLE library from /libraries/c_sdk to /libraries and removing /libraries/c_sdk folder.
We're also removing Over the Air Update V1.2.1 under libraries/freertos_plus/aws/ota and adding the new AWS IoT Over-the-air Update v3.0.0 under /libraries/ota_for_aws in the upcoming release.

Cloning

This repo uses Git Submodules to bring in dependent components.

Note: If you download the ZIP file provided by GitHub UI, you will not get the contents of the submodules. (The ZIP file is also not a valid git repository)

If using Windows, set core.symlinks to true since copying a directory with symlinks may cause hangups:

git config --global core.symlinks true

To clone using HTTPS:

git clone https://github.com/aws/amazon-freertos.git --recurse-submodules

Using SSH:

git clone git@github.com:aws/amazon-freertos.git --recurse-submodules

If you have downloaded the repo without using the --recurse-submodules argument, you need to run:

git submodule update --init --recursive

Important branches to know

master --> Development is done continuously on this branch
release --> Fully tested released source code
release-candidate --> Preview of upcoming release
feature/* --> Alpha/beta of an upcoming feature

Getting Started

For more information on FreeRTOS, refer to the Getting Started section of FreeRTOS webpage.

To directly access the Getting Started Guide for supported hardware platforms, click the corresponding link in the Supported Hardware section below.

For detailed documentation on FreeRTOS, refer to the FreeRTOS User Guide.

AWS Collection of Metrics

The demos that connect to AWS IoT report metrics to AWS about the operating system, and the MQTT client library used by sending a specially formatted string in the username field of the MQTT CONNECT packet. These metrics help AWS IoT improve security and provide better technical support. Providing these metrics is optional for users, and these can be disabled by updating the following configuration macros in the demos/include/aws_iot_metrics.h file:

#define AWS_IOT_METRICS_STRING           NULL
#define AWS_IOT_METRICS_STRING_LENGTH    0U

Format

The format of the username string with metrics is:

<Actual_Username>?SDK=<OS_Name>&Version=<OS_Version>MQTTLib=<MQTT_Library_name>@<MQTT_Library_version>

where

  • Actual_Username is the actual username used for authentication (if a username/password is used for authentication).
  • OS_Name is the Operating System the application is running on.
  • OS_Version is the version number of the Operating System.
  • MQTT_Library_name is the MQTT Client library being used.
  • MQTT_Library_version is the version of the MQTT Client library being used.

FreeRTOS Qualified Boards

For a complete list of boards that have been qualified for FreeRTOS by AWS Partners, please visit the AWS Partner Device Catalog

In addition, AWS supports the following boards with FreeRTOS Build Integration and maintains them with each release:

  1. Texas Instruments - CC3220SF-LAUNCHXL.
  2. STMicroelectronics - STM32L4 Discovery kit IoT node.
  3. NXP - LPC54018 IoT Module,
  4. Espressif - ESP32-DevKitC, ESP-WROVER-KIT, ESP32-WROOM-32SE
  5. Infineon - Infineon XMC4800 IoT Connectivity Kit, Optiga TrustX
  6. Xilinx - Xilinx Zynq-7000 based MicroZed Industrial IoT Bundle
  7. MediaTek - MediaTek MT7697Hx Development Kit
  8. Renesas - Renesas Starter Kit+ for RX65N-2MB
  9. Cypress CYW54907 - Cypress CYW954907AEVAL1F Evaluation Kit
  10. Cypress CYW43907 - Cypress CYW943907AEVAL1F Evaluation Kit
  11. Cypress PSoC 64 - PSoC 64 Standard Secure AWS Wi-Fi Bluetooth Pioneer Kit
  12. NXP MW320 - MW320 AWS IoT Starter Kit
  13. NXP MW322 - MW322 AWS IoT Starter Kit
  14. Nordic nRF52840 DK - nRF52840 DK Development kit
  15. Nuvoton - NuMaker-IoT-M487
  16. Windows Simulator - To evaluate FreeRTOS without using MCU-based hardware, you can use the Windows Simulator.

amazon-freeRTOS/projects

The ./projects folder contains the IDE test and demo projects for each vendor and their boards. The majority of boards can be built with both IDE and cmake (there are some exceptions!). Please refer to the Getting Started Guides above for board specific instructions.

Mbed TLS License

This repository uses Mbed TLS under Apache 2.0.

amazon-freerTOS/vendors License

The ./vendors directory contains content that may be subject to different license terms. For vendor licensing information, see the LICENSE files or source header documentation for each vendor directory.

About

IoT operating system for microcontrollers.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 93.2%
  • Python 3.7%
  • CMake 2.1%
  • Makefile 0.5%
  • Shell 0.2%
  • HTML 0.1%
  • Other 0.2%