Skip to content
This repository has been archived by the owner on Dec 8, 2022. It is now read-only.

Commit

Permalink
Merge pull request #2731 from aws/release-candidate
Browse files Browse the repository at this point in the history
Sync release branch with release-candidate for 202011.00 release
  • Loading branch information
ericyeh1995 authored Nov 10, 2020
2 parents 4e8219e + bedf3d9 commit fd27d7b
Show file tree
Hide file tree
Showing 2,598 changed files with 1,186,940 additions and 378,063 deletions.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @aws/freertos-pr-bar-raisers
17 changes: 16 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,22 @@
[submodule "mbedtls"]
path = libraries/3rdparty/mbedtls
url = https://github.com/ARMmbed/mbedtls.git
branch = mbedtls-2.16.7
branch = mbedtls-2.16.8
[submodule "libraries/abstractions/pkcs11/psa"]
path = libraries/abstractions/pkcs11/psa
url = https://github.com/Linaro/freertos-pkcs11-psa.git
[submodule "libraries/coreMQTT"]
path = libraries/coreMQTT
url = https://github.com/FreeRTOS/coreMQTT.git
[submodule "libraries/coreJSON"]
path = libraries/coreJSON
url = https://github.com/FreeRTOS/coreJSON.git
[submodule "libraries/abstractions/pkcs11/corePKCS11"]
path = libraries/abstractions/pkcs11/corePKCS11
url = https://github.com/FreeRTOS/corePKCS11.git
[submodule "libraries/freertos_plus/standard/freertos_plus_tcp"]
path = libraries/freertos_plus/standard/freertos_plus_tcp
url = https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/
[submodule "libraries/device_shadow_for_aws"]
path = libraries/device_shadow_for_aws
url = https://github.com/aws/device-shadow-for-aws-iot-embedded-sdk.git
126 changes: 120 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,119 @@
# Change Log
This repository contains the `FreeRTOS AWS Reference Integrations`, which are pre-integrated FreeRTOS projects that demonstrate connectivity with AWS IoT. The repository contains projects for many different microcontroller evaluation boards.
This repository contains the `FreeRTOS AWS Reference Integrations`, which are pre-integrated FreeRTOS projects that demonstrate connectivity with AWS IoT. The repository contains projects for many different microcontroller evaluation boards.

## 202011.00 November 2020

### New Features

This release includes refactored MQTT, JSON Parser, and AWS IoT Device Shadow libraries for optimized memory usage and modularity, and includes dependent libraries via GitHub submoduling. These libraries have gone through code quality checks including verification that no function has a [GNU Complexity](https://www.gnu.org/software/complexity/manual/complexity.html) score over 8, and checks against the [MISRA coding standard](https://www.misra.org.uk/MISRAHome/MISRAC2012/tabid/196/Default.aspx). Deviations from the MISRA C:2012 guidelines are documented under [MISRA Deviations](https://github.com/aws/aws-iot-device-sdk-embedded-C/blob/202009.00/MISRA.md). These libraries have also undergone both static code analysis from [Coverity static analysis](https://github.com/aws/aws-iot-device-sdk-embedded-C/blob/202009.00/MISRA.md), and validation of memory safety and functional correction proofs through the CBMC automated reasoning tool.

The MQTT library in this release, coreMQTT, supports backward compatibility with the MQTT library in FreeRTOS version 201906.00 or higher via a [compatibility layer](https://github.com/aws/amazon-freertos/tree/202011.00/libraries/c_sdk/standard/mqtt). Therefore, MQTT-dependent libraries in FreeRTOS version 201906.00 or higher, including AWS IoT Device Shadow, AWS IoT Device Defender, and Greengrass Discovery, can use the coreMQTT library via the compatibility layer.

#### AWS IoT Device Shadow V1.0.1

- The [AWS IoT Device Shadow](https://github.com/aws/device-shadow-for-aws-iot-embedded-sdk) library enables you to store and retrieve the current state (the “shadow”) of every registered device. The device’s shadow is a persistent, virtual representation of your device that you can interact with from AWS IoT Core even if the device is offline. The device state captured as its “shadow” is itself a JSON document. The device can send commands over MQTT or HTTP to update its latest state. Each device’s shadow is uniquely identified by the name of the corresponding “thing”, a representation of a specific device or logical entity on AWS IoT. More details about AWS IoT Device Shadow can be found in [AWS IoT documentation](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html).
- The AWS IoT Device Shadow library has no dependencies on additional libraries other than the standard C library. It also doesn’t have any platform dependencies, such as threading or synchronization. It can be used with any MQTT library and any JSON library (see [demos](https://github.com/aws/aws-iot-device-sdk-embedded-C/tree/master/demos/shadow) with coreMQTT and coreJSON).
- See memory requirements for the latest release [here](https://docs.aws.amazon.com/embedded-csdk/202011.00/lib-ref/libraries/aws/device-shadow-for-aws-iot-embedded-sdk/docs/doxygen/output/html/index.html#shadow_memory_requirements).

#### coreJSON V2.0.0

- The [coreJSON](https://github.com/FreeRTOS/coreJSON) library is a JSON parser that strictly enforces the [ECMA-404 JSON standard](https://www.json.org/json-en.html). It provides a function to validate a JSON document, and a function to search for a key and return its value. A search can descend into nested structures using a compound query key. A JSON document validation also checks for illegal UTF8 encodings and illegal Unicode escape sequences.
- See memory requirements for the latest release [here](https://docs.aws.amazon.com/embedded-csdk/202011.00/lib-ref/libraries/standard/coreJSON/docs/doxygen/output/html/index.html#json_memory_requirements).

#### coreMQTT V1.0.1

- The [coreMQTT](https://github.com/FreeRTOS/coreMQTT) library provides the ability to establish an MQTT connection with a broker over a customer-implemented transport layer, which can either be a secure channel like a TLS session (mutually authenticated or server-only authentication) or a non-secure channel like a plaintext TCP connection. This MQTT connection can be used for performing publish operations to MQTT topics and subscribing to MQTT topics. The library provides a mechanism to register customer-defined callbacks for receiving incoming PUBLISH, acknowledgement and keep-alive response events from the broker. The library has been refactored for memory optimization and is compliant with the [MQTT 3.1.1](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html) standard. It has no dependencies on any additional libraries other than the standard C library, a customer-implemented network transport interface, and optionally a customer-implemented platform time function. The refactored design embraces different use-cases, ranging from resource-constrained platforms using only QoS 0 MQTT PUBLISH messages to resource-rich platforms using QoS 2 MQTT PUBLISH over TLS connections.
- See memory requirements for the latest release [here](https://docs.aws.amazon.com/embedded-csdk/202011.00/lib-ref/libraries/standard/coreMQTT/docs/doxygen/output/html/index.html#mqtt_memory_requirements).

#### OTA PAL for Renesas Starter Kit + RX65N-2MB

- Added OTA PAL Port for Renesas RX65N-2MB board

### Updates

#### Bluetooth Low Energy (BLE) Hardware Abstraction Library (HAL) V5.1.0

- Added ACL connection state change callback for BLE HAL

#### Bluetooth Low Energy Management Library V2.2.0

- Added transport interface for BLE library to send data to AWS IoT using the coreMQTT and AWS IoT Device Shadow client libraries. The transport interface utilizes a companion device mobile application implemented using FreeRTOS BLE Android and iOS SDKs to send data to AWS IoT.
- Added coreMQTT and AWS IoT Device Shadow demos for BLE. The respective demos "MQTT BLE Transport Demo" and "Shadow BLE Transport Demo" can be found under `demos/ble` folder. The demo uses the new MQTT and Shadow client libraries and the BLE transport interface to send and receive data with AWS IoT.

#### Common I/O Library V0.1.2

- Added more peripherals to CMake.

#### FreeRTOS+CLI V1.0.5

- Added FreeRTOS+CLI V1.0.4 to Amazon FreeRTOS repository.
- Added FreeRTOS Console API to interact with CLI over common IO or UDP interface.
- Added sample which demonstrates executing commands using FreeRTOS+CLI and UART interface.

#### FreeRTOS+TCP V2.3.1

- Sub-moduled to the [FreeRTOS/FreeRTOS-Plus-TCP](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP) repository. This is a breaking change for users using 202007.00 release of amazon-freertos due to change in folder structure.
- Bug Fix for UDP only (`ipconfigUSE_TCP == 0`) compilation of FreeRTOS+TCP. Conditional compilation on the value of `ipconfigUSE_TCP` updated to exclude TCP only components.
- Added descriptions for functions and variables in Doxygen compatible format.
- Updated `prvParseDNSReply` function signature.

#### FreeRTOS+POSIX Utils V1.2.0

- The `iot_pki_utils.h` and `iot_pki_utils.c` are renamed to `core_pki_utils.h` and `core_pki_utils.c` respectively. They are also now a part of the corePKCS11 repository.

#### Greengrass Discovery V2.0.2

- Added more logging in library.

#### MQTT Client Library V2.3.0

- Refactored as compatibility layer for V2.x.x MQTT APIs using coreMQTT library. This is the library that supports backward compatibility with MQTT APIs present in between 201906.00 and 202007.00.

#### Over the Air Update V1.2.1

- Added check to abort the update if updating job status as self-test in service fails, this helps in early detection of mismatch in device and jobs states before activating new image.

#### PKCS11 V2.1.1

- Sub-moduled to the [FreeRTOS/corePKCS11](https://github.com/FreeRTOS/corePKCS11) repository.
- Updated ECC608A and PSA library dependencies to corePKCS naming scheme. Refactored AFQP tests to support HSMs that have locked down credentials.

#### Secure Sockets LwIP V1.3.0

- Added new optional API `SOCKETS_Bind`.
- Extended `SOCKETS_SetSockOpt` to support TCP keepalive settings.

#### Shadow V2.2.3

- Updated unit tests to work with the MQTT compatibility layer. This is the library that supports backward compatibility with Shadow APIs present in between 201906.00 and 202007.00.

#### TLS Shim Layer V1.3.0

- Added missing Max Fragment Length (MFL) runtime configuration if MFL macro is enabled.

#### Wi-Fi V2.0.0

- Updated WiFi APIs to support more granular error codes, WEP encryption, SoftAP provisioning, optional asynchronous APIs, event handling and set country code.

#### OTA PAL for Espressif ESP32-DevKitC

- Changed default configuration for number and size of blocks to be compatible with the size of the mbedTLS input buffer.

#### OTA PAL for Espressif ESP-WROVER-KIT

- Changed default configuration for number and size of blocks to be compatible with the size of the mbedTLS input buffer.

#### OTA PAL for Microsoft Windows Simulator

- Changed default configuration for number and size of blocks to be compatible with the size of the mbedTLS input buffer.

#### OTA PAL for Microchip ATECC608A with Windows Simulator

- Changed default configuration for number and size of blocks to be compatible with the size of the mbedTLS input buffer.

#### OTA PAL for Microchip Curiosity PIC32MZEF

- Changed default configuration for number and size of blocks to be compatible with the size of the mbedTLS input buffer.

## 202007.00 July 2020

Expand All @@ -11,7 +125,7 @@ This repository contains the `FreeRTOS AWS Reference Integrations`, which are pr
- Updated the OTA demo to demonstrate how to suspend an in-progress OTA update should the MQTT connection disconnect, then resume the same update when the MQTT connection reconnects. In line with best practice, the reconnect logic uses an exponential backoff and jitter algorithm to prevent the MQTT server getting overwhelmed with connection requests if a fleet of devices get disconnected and then attempt to reconnect at the same time.
- For testing purposes only, it is now possible to use the OTA agent to downgrade a version number or revert to an older version. This new functionality is disabled by default.

#### New Board: Cypress PSoC 64 Standard Secure AWS Wi-Fi Bluetooth Pioneer Kit
#### New Board: Cypress PSoC 64 Standard Secure AWS Wi-Fi Bluetooth Pioneer Kit
- New Board: The <b>Cypress PSoC 64</b> board is now qualified with FreeRTOS.

#### New Board: ESP32-WROOM-32SE
Expand All @@ -37,7 +151,7 @@ This repository contains the `FreeRTOS AWS Reference Integrations`, which are pr
#### PKCS#11 V2.1.0

- Added doxygen to various PKCS #11 files.
- Added improved logging for mbed TLS return codes in iot_pkcs11_mbedtls.c.
- Added improved logging for mbed TLS return codes in iot_pkcs11_mbedtls.c.

#### Bluetooth Low Energy (BLE) Hardware Abstraction Library (HAL) V5.0.0

Expand Down Expand Up @@ -66,14 +180,14 @@ This repository contains the `FreeRTOS AWS Reference Integrations`, which are pr

#### Over the Air Update V1.2.0

- Fixed an issue encountered when an OTA job is force cancelled while the related download is in progress. It was caused due to the self-start timer starting after the OTA job document is received. The fix starts the self-start timer when the OTA agent on the device starts.
- Fixed an issue encountered when an OTA job is force cancelled while the related download is in progress. It was caused due to the self-start timer starting after the OTA job document is received. The fix starts the self-start timer when the OTA agent on the device starts.

#### Espressif

- Support OTA via HTTP over the BLE channel for ESP32 (when SPIRAM is enabled).
- Added ESP-IDF component for WiFi provisioning in SoftAP mode. This allows provisioning devices with Wi-Fi credentials via a web-server running on the device and a provisioning mobile application. This mode requires the use of lwIP as the networking stack.
- Added ESP-IDF component for WiFi provisioning in SoftAP mode. This allows provisioning devices with Wi-Fi credentials via a web-server running on the device and a provisioning mobile application. This mode requires the use of lwIP as the networking stack.
- Replaced ESP-IDF code to be a submodule pointer to the official ESP-IDF repository.
- Updated LwIP as the default networking stack.
- Updated LwIP as the default networking stack.

## 202002.00 2/18/2020

Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
endif()

project(amazon-freertos)
set(PROJECT_VERSION "202007.00")
set(PROJECT_VERSION_MAJOR "202007")
set(PROJECT_VERSION "202011.00")
set(PROJECT_VERSION_MAJOR "202011")
set(PROJECT_VERSION_MINOR "00")

# Import global configurations.
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ The following MCU boards are supported for FreeRTOS:
* [Getting Started Guide](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_cypress_psoc64.html)
* IDE: [ModusToolbox](https://www.cypress.com/products/modustoolbox-software-environment)
13. **Marvell MW320** - [Marvell MW320 AWS IoT Starter Kit](https://www.marvell.com/microcontrollers/aws-iot-starter-kit/)
* [Getting Started Guide](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_marvell320.html)
* [Getting Started Guide](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_mw32x.html)
14. **Marvell MW322** - [Marvell MW322 AWS IoT Starter Kit](https://www.marvell.com/microcontrollers/aws-iot-starter-kit/)
* [Getting Started Guide](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_marvell322.html)
* [Getting Started Guide](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_mw32x.html)
15. **Nordic nRF52840 DK** - [nRF52840 DK Development kit](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK/)
* [Getting Started Guide](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_nordic.html)
16. **Nuvoton** - [NuMaker-IoT-M487](https://direct.nuvoton.com/en/numaker-iot-m487)
Expand Down
Loading

0 comments on commit fd27d7b

Please sign in to comment.