Skip to content

Commit f888335

Browse files
committed
periodic update 10/01/2021 14:58 PDT
1 parent f3d148d commit f888335

21 files changed

+118
-32
lines changed

doc_source/portingguide/afr-porting-ss.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ To port the Secure Sockets library, you need the following:
1818
For information about porting the Wi\-Fi library, see [Porting the Wi\-Fi library](afr-porting-wifi.md)\.
1919
+ If your board has cellular connectivity, you must provide a Secure Sockets library that uses the cellular modem as transport\. You can implement the Secure Sockets library in two ways:
2020
+ Implement the Secure Sockets API by using the AT commands of your modem directly\.
21-
+ Use the Cellular library provided by FreeRTOS, which hides the AT commands and provides a socket\-like API\. For more information, see [Porting the Cellular library](freertos-porting-cellular.md)\.
21+
+ Use the Cellular Interface library provided by FreeRTOS, which hides the AT commands and provides a socket\-like API\. For more information, see [Porting the Cellular Interface library](freertos-porting-cellular.md)\.
2222
+ A port of a TCP/IP stack\.
2323

2424
For information about porting a TCP/IP stack, see [Porting a TCP/IP stack](afr-porting-tcp.md)\.

doc_source/portingguide/afr-porting.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ Currently AWS IoT Device Tester does not support qualification of Over the Air u
4040
**Note**
4141
Currently, a port of the FreeRTOS common I/O library is not required for qualification\.
4242

43-
1. [Porting the Cellular library](freertos-porting-cellular.md)
43+
1. [Porting the Cellular Interface library](freertos-porting-cellular.md)
4444
**Note**
45-
Currently, a port of the FreeRTOS Cellular library is not required for qualification\.
45+
Currently, a port of the FreeRTOS Cellular Interface library is not required for qualification\.
4646

4747
After you port FreeRTOS to your board, you can officially validate the ports for FreeRTOS qualification with AWS IoT Device Tester for FreeRTOS\. For more information about AWS IoT Device Tester for FreeRTOS, see [Using AWS IoT Device Tester for FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html) in the FreeRTOS User Guide\.
4848

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
# Porting the Cellular library<a name="freertos-porting-cellular"></a>
1+
# Porting the Cellular Interface library<a name="freertos-porting-cellular"></a>
22

3-
FreeRTOS Labs now supports AT commands, TCP offloaded cellular abstraction Layer\. For more information, see [FreeRTOS Labs \- Cellular Libraries](https://freertos.org/cellular/index.html) and the [Porting Guide](https://freertos.org/cellular-porting-guide.html) for more information\.
4-
5-
**Note**
6-
The Cellular Library is in FreeRTOS Labs\. The libraries in the FreeRTOS Labs download are fully functional, but undergoing improvements to their implementation, documentation, and coding style\.
3+
FreeRTOS supports the AT commands of a TCP offloaded cellular abstraction Layer\. For more information, see [FreeRTOS Cellular Interface Library](https://freertos.org/cellular/index.html) and the [Porting Guide](https://freertos.org/cellular-porting-guide.html) for more information\.
74

85
## Prerequisites<a name="freertos-porting-cellular-prereqs"></a>
96

10-
There is no direct dependency for the Cellular Library, however, in the FreeRTOS network stack, Ethernet, Wi\-Fi and cellular cannot co\-exist, so developers must choose one of them to integrate with the [Secure Sockets library](https://docs.aws.amazon.com/freertos/latest/userguide/secure-sockets.html)\.
7+
There is no direct dependency for the Cellular Interface library, however, in the FreeRTOS network stack, Ethernet, Wi\-Fi and cellular cannot co\-exist, so developers must choose one of them to integrate with the [Secure Sockets library](https://docs.aws.amazon.com/freertos/latest/userguide/secure-sockets.html)\.
118

129
**Note**
1310
If the cellular module is able to support TLS offload, or does not support AT commands, developers can implement their own cellular abstraction to integrate with the [Secure Sockets library](https://docs.aws.amazon.com/freertos/latest/userguide/secure-sockets.html)\.

doc_source/portingguide/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Amazon's trademarks and trade dress may not be used in
4646
+ [Porting the Bluetooth Low Energy library](afr-porting-ble.md)
4747
+ [Perform Over the Air Updates using Bluetooth Low Energy](ota-updates-ble.md)
4848
+ [Porting the common I/O libraries](freertos-porting-commonio.md)
49-
+ [Porting the Cellular library](freertos-porting-cellular.md)
49+
+ [Porting the Cellular Interface library](freertos-porting-cellular.md)
5050
+ [Migrating from Version 1.4.x to Version 201906.00 (and newer)](porting-migration.md)
5151
+ [Migrating from version 1 to version 3 for OTA applications](porting-migration-ota.md)
5252
+ [Migrating from version 1 to version 3 for OTA Pal port](porting-migration-ota-pal.md)

doc_source/portingguide/ota-updates-ble.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ Before you create the AWS IoT Policy, you need to know your AWS region and AWS a
9191

9292
1. In the upper\-right corner, choose your account and under **My Account** make a note of your 12\-digit account ID\.
9393

94-
1. In the left navigation pane, choose **Settings**\. Under **Custom endpoint**, make a note of the endpoint value\. The endpoint should be something like "*xxxxxxxxxxxxxx*\.iot\.*us\-west\-2*\.amazonaws\.com"\. In this example, the AWS region is "us\-west\-2"\.
94+
1. In the left navigation pane, choose **Settings**\. Under **Device data endpoint**, make a note of the endpoint value\. The endpoint should be something like "*xxxxxxxxxxxxxx*\.iot\.*us\-west\-2*\.amazonaws\.com"\. In this example, the AWS region is "us\-west\-2"\.
9595

9696
1. In the left navigation pane, choose **Secure**, choose **Policies**, and then choose **Create**\.
9797

doc_source/portingguide/testing-connect-iot.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ After you obtain your certificates and keys from the AWS IoT console, you need t
7070

7171
1. In the navigation pane, choose **Settings**\.
7272

73-
Your AWS IoT endpoint is displayed in **Endpoint**\. It should look like `123456789012-ats.iot.us-east-1.amazonaws.com`\. Make a note of this endpoint\.
73+
Your AWS IoT endpoint is displayed in **Device data endpoint**\. It should look like `123456789012-ats.iot.us-east-1.amazonaws.com`\. Make a note of this endpoint\.
7474

7575
1. In the navigation pane, choose **Manage**, and then choose **Things**\.
7676

doc_source/qualificationguide/afr-qualification.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ Q: *We will be hosting our FreeRTOS port in our own repo as per the qualificatio
6969
A: Host all the files and folders necessary to make the port work as an out of the box experience for a customer who downloads it from the repository\. You should include your entire `freertos_kernel`, `libraries`, and `tools` folders, along with a `docs` folder for your documents, a `projects` folder for your IDE projects, and a `vendors` folder for your vendor\-specifc files\. Also include your entire demo folder\.
7070
The coreMQTT Agent demo must be supported\. Other demos are at your discretion\. Also, the `tools` folder isn't required\. However, we recommend that you host this folder to assist customers with testing\.
7171

72+
Q: *My device uses only cellular connectivity\. Can I still qualify?*
73+
A: The FreeRTOS Cellular Interface library supports the AT commands of a TCP offloaded Cellular abstraction Layer\. These are available from [GitHub](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface)\. There are qualified devices that use the FreeRTOS Cellular Interface library, such as the STM32L4\+ Discovery IoT Node with STEVAL\-STMODLTE that uses a Quectel BG96 cellular modem\. For more information, see [Porting the Cellular Interface library](https://docs.aws.amazon.com/freertos/latest/portingguide/freertos-porting-cellular.html) in the *FreeRTOS Porting Guide*\.
74+
7275
If you have questions about qualification that are not answered on this page or in the rest of the *FreeRTOS Qualification Guide*, contact your AWS representative or [the FreeRTOS engineering team](https://freertos.org/RTOS-contact-and-support.html)\.
7376

7477
### Documentation history<a name="afr-doc-history"></a>

doc_source/userguide/c-sdk.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ For Fleet Provisioning, use the `v4_beta_deprecated` version of the AWS IoT Devi
1010
The AWS IoT Device SDK for Embedded C is generally targeted at resource constrained devices that require an optimized C language runtime\. You can use the SDK on any operating system and host it on any processor type \(for example, MCUs and MPUs\)\. However, if your devices have sufficient memory and processing resources, we recommend that you use one of the higher order [AWS IoT Device SDKs](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html#iot-device-sdks)\.
1111

1212
For more information, see the following:
13+
+ [AWS IoT Device SDK for Embedded C](https://docs.aws.amazon.com/embedded-csdk/latest/lib-ref/)
1314
+ [AWS IoT Device SDK for Embedded C on GitHub](https://github.com/aws/aws-iot-device-sdk-embedded-C)
1415
+ [AWS IoT Device SDK for Embedded C Readme](https://github.com/aws/aws-iot-device-sdk-embedded-C#aws-iot-device-sdk-for-embedded-c)
1516
+ [ AWS IoT Device SDK for Embedded C Samples](https://docs.aws.amazon.com/embedded-csdk/202012.00/lib-ref/docs/doxygen/output/html/demos_main.html)
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Cellular Interface library<a name="cellular-interface"></a>
2+
3+
## Introduction<a name="freertos-cellular-interface-introduction"></a>
4+
5+
The FreeRTOS Cellular Interface library exposes the capabilities of a few popular cellular modems through a uniform API\. Currently, this project contains libraries for these three cellular modems\.
6+
+ [Quectel BG96](https://www.quectel.com/product/lte-bg96-cat-m1-nb1-egprs/)
7+
+ [ Sierra Wireless HL7802 ](https://www.sierrawireless.com/products-and-solutions/embedded-solutions/products/hl7802/)
8+
+ [U\-Blox Sara\-R4](https://www.u-blox.com/en/product/sara-r4-series)
9+
10+
The current version of the Cellular Interface library encapsulates the TCP stack offered by those cellular modems\. They all implement the same uniform [ Cellular Interface library API](https://www.freertos.org/Documentation/api-ref/cellular/index.html)\. That API hides the complexity of AT commands, and exposes a socket\-like interface to C programmers\.
11+
12+
Even though applications can choose to use the Cellular Interface API directly, it is not designed for this purpose\. In a typical FreeRTOS system, applications use higher level libraries, such as the [coreMQTT](https://www.freertos.org/mqtt/index.html) library and the [coreHTTP](https://www.freertos.org/http/index.html) library, to communicate with other end points\. These higher level libraries use an abstract interface, the [Transport Interface](https://www.freertos.org/network-interface.html), to send and receive data\. A Transport Interface can be implemented on top of the Cellular Interface library; the [FreeRTOS Cellular demo](https://www.freertos.org/cellular-demo.html) uses such an implementation\.
13+
14+
Most cellular modems implement more or less of the AT commands defined by the [ 3GPP TS v27\.007](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1515) standard\. This project provides an [implementation](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source) of such standard AT commands in a [ reusable common component](https://freertos.org/Documentation/api-ref/cellular/cellular_porting_module_guide.html)\. The three Cellular Interface libraries in this project all take advantage of that common code\. The library for each modem only implements the vendor\-specific AT commands, then exposes the complete Cellular Interface API\.
15+
16+
The common component that implements the 3GPP TS v27\.007 standard has been written in compliance with the following code quality criteria:
17+
+ GNU Complexity scores are not over 8
18+
+ MISRA C:2012 coding standard\. Any deviations from the standard are documented in source code comments marked by "coverity"\.
19+
20+
## Dependencies and requirements<a name="freertos-cellular-interface-dependencies"></a>
21+
22+
There is no direct dependency for the Cellular Interface library\. However, Ethernet, Wi\-Fi and cellular cannot co\-exist in the FreeRTOS network stack\. Developers must choose one of the network interface to integrate with the [Secure Sockets library](https://docs.aws.amazon.com/freertos/latest/userguide/secure-sockets.html)\.
23+
24+
## Porting<a name="freertos-cellular-interface-porting"></a>
25+
26+
For information about porting the Cellular Interface library to your platform, see [ Porting the Cellular Interface library](https://docs.aws.amazon.com/freertos/latest/portingguide/freertos-porting-cellular.html) in the *FreeRTOS Porting Guide*\.
27+
28+
## Memory use<a name="freertos-cellular-interface-memory-use"></a>
29+
30+
31+
****
32+
33+
| Code Size of cellular interface library \(example generated with GCC for ARM Cortex\-M\) | File | With \-O1 Optimization | With \-Os Optimization |
34+
| --- | --- | --- | --- |
35+
| cellular\_3gpp\_api\.c | 6\.3K | 5\.7K |
36+
| cellular\_3gpp\_urc\_handler\.c | 0\.9K | 0\.8K |
37+
| cellular\_at\_core\.c | 1\.4K | 1\.2K |
38+
| cellular\_common\_api\.c | 0\.5K | 0\.5K |
39+
| cellular\_common\.c | 1\.6K | 1\.4K |
40+
| cellular\_pkthandler\.c | 1\.4K | 1\.2K |
41+
| cellular\_pktio\.c | 1\.8K | 1\.6K |
42+
| Total estimates | 13\.9K | 12\.4K |
43+
44+
## Getting started<a name="freertos-cellular-interface-getting-started"></a>
45+
46+
### Download the source code<a name="freertos-cellular-interface-download-source"></a>
47+
48+
The source code can be downloaded as part of the FreeRTOS libraries or by itself\.
49+
50+
To clone the library from Github using HTTPS:
51+
52+
```
53+
git clone https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface.git
54+
```
55+
56+
Using SSH:
57+
58+
```
59+
git clone git@github.com:FreeRTOS/FreeRTOS-Cellular-Interface.git
60+
```
61+
62+
### Folder structure<a name="freertos-cellular-interface-folder-structure"></a>
63+
64+
At the root of this repository you will see these folders:
65+
+ `source` : reusable common code that implements the standard AT commands defined by 3GPP TS v27\.007
66+
+ `modules` : vendor\-specific code that implements non\-3GPP AT commands for each cellular modem
67+
+ `doc` : documentation
68+
+ `test` : unit test and cbmc
69+
+ `tools` : tools for Coverity static analysis and CMock
70+
71+
### Configure and build the Library<a name="freertos-cellular-interface-configure"></a>
72+
73+
The FreeRTOS Cellular Interface library should be built as part of an application\. In order to do this, you must provide certain configurations\. The [ Lab\-Project\-FreeRTOS\-Cellular\-Demo](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo) project provides an [ example](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/cellular/bg96/cellular_config.h) of how to configure the build\. More information can be found in the [Cellular API References](https://www.freertos.org/Documentation/api-ref/cellular/cellular_config.html)\.
74+
75+
Please refer to the [README file of the Lab\-Project\-FreeRTOS\-Cellular\-Demo](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo) project for more information\.
76+
77+
## Integrate the FreeRTOS Cellular Interface library with MCU platforms<a name="freertos-cellular-interface-integrate"></a>
78+
79+
The FreeRTOS Cellular Interface library runs on MCUs using an abstracted interface, the [ Comm Interface](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/blob/main/source/interface/cellular_comm_interface.h), to communicate with cellular modems\. A Comm Interface must be implemented on the MCU platform as well\. The most common implementations of the Comm Interface communicate over UART hardware, but can be implemented over other physical interfaces, such as SPI, as well\. The documentation for the Comm Interface can be found in the [ Cellular API References](https://www.freertos.org/Documentation/api-ref/cellular/cellular_porting.html#cellular_porting_comm_if)\. The following example implementations of the Comm Interface are available:
80+
+ [ FreeRTOS Windows simulator comm interface](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/cellular/comm_if_windows.c)
81+
+ [ FreeRTOS Common IO UART comm interface](https://github.com/aws/amazon-freertos/blob/main/libraries/abstractions/common_io/include/iot_uart.h)
82+
+ [ STM32 L475 discovery board comm interface](https://github.com/aws/amazon-freertos/blob/feature/cellular/vendors/st/boards/stm32l475_discovery/ports/comm_if/comm_if_uart.c)
83+
+ [ Sierra Sensor Hub board comm interface](https://github.com/aws/amazon-freertos/blob/feature/cellular/vendors/sierra/boards/sensorhub/ports/comm_if/comm_if_sierra.c)

doc_source/userguide/dev-guide-freertos-libraries.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ The following porting libraries are included in configurations of FreeRTOS that
2222
| FreeRTOS\+POSIX | [FreeRTOS\+POSIX API Reference](https://freertos.org/Documentation/api-ref/POSIX/index.html) | You can use the FreeRTOS\+POSIX library to port POSIX\-compliant applications to the FreeRTOS ecosystem\. For more information, see [FreeRTOS\+POSIX](https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_POSIX/index.html)\. |
2323
| Secure Sockets | [ Secure Sockets API Reference](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/secure_sockets/index.html) | For more information, see [Secure Sockets library](secure-sockets.md)\. |
2424
| FreeRTOS\+TCP | [ FreeRTOS\+TCP API Reference](https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/FreeRTOS_TCP_API_Functions.html) | FreeRTOS\+TCP is a scalable, open source and thread safe TCP/IP stack for FreeRTOS\. For more information, see [FreeRTOS\+TCP](https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/index.html)\. |
25-
| Wi\-Fi | [Wi\-Fi API Reference](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/wifi/index.html) | The FreeRTOS Wi\-Fi library enables you to interface with your microcontroller's lower\-level wireless stack\. For more information, see [Wi\-Fi library](freertos-wifi.md)\. |
26-
| 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 [corePKCS11 library](security-pkcs.md)\. |
25+
| Wi\-Fi | [Wi\-Fi API Reference](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/wifi/index.html) | 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](freertos-wifi.md)\. |
26+
| 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](security-pkcs.md)\. |
2727
| TLS | | For more information, see [Transport Layer Security](security-tls.md)\. |
2828
| Common I/O | Common I/O API Reference | For more information, see [Common I/O](common-io.md)\. |
29+
| Cellular Interface | Cellular Interface API Reference | The FreeRTOS Cellular Interface library exposes the capabilities of a few popular cellular modems through a uniform API\. For more information, see the [Cellular Interface library](cellular-interface.md)\. |
2930

3031
## FreeRTOS application libraries<a name="dev-guide-freertos-application-libraries"></a>
3132

0 commit comments

Comments
 (0)