The Cellular Interface library implement a simple unified Application Programming Interfaces (APIs) that hide the complexity of AT commands. The cellular modems to be interchangeable with the popular options built upon TCP stack and exposes a socket-like interface to C programmers.
Most cellular modems implement more or less the AT commands defined by the 3GPP TS v27.007 standard. This project provides an implementation of such standard AT commands in a reusable common component. The three Cellular 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 API.
The common component that implements the 3GPP TS v27.007 standard has been written in compliance of the following code quality criteria:
coverity
".FreeRTOS Cellular Interface v1.4.0 Source Code is part of the FreeRTOS 202406.00 LTS release.
To clone using HTTPS:
git clone https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface.git
Using SSH:
git clone git@github.com/FreeRTOS/FreeRTOS-Cellular-Interface.git
At the root of this repository are these folders:
The FreeRTOS Cellular Interface runs on MCUs. It uses an abstracted interface - the Comm Interface, to communicate with cellular modems. A Comm Interface must be implemented as well on the MCU platform. The most common implementations of the Comm Interface are over UART hardware, but it can be implemented over other physical interfaces such as SPI as well. The documentation of the Comm Interface is found within the Cellular API References. These are example implementations of the Comm Interface:
The FreeRTOS Cellular Interface uses kernel APIs for task synchronization and memory management.
Adding Support for New Cellular ModemsFreeRTOS Cellular Interface now supports AT commands, TCP offloaded Cellular abstraction Layer. In order to add support for a new cellular modem, the developer can use the common component that has already implemented the 3GPP standard AT commands.
In order to port the common component:
The Cellular Common APIs document provides detail information required in each steps. It is recommended that you start by cloning the implementation of one of the existing modems, then make modifications where your modem's vendor-specific (non-3GPP) AT commands are different.
Current Example Implementations:
Integrate FreeRTOS Cellular Interface with ApplicationOnce comm interface and cellular module implementation are ready, we can start to integrate FreeRTOS Cellular Interface. The following diagram depicts the relationship of these software components:
Follow these steps to integrate FreeRTOS Cellular Interface into your project:
We also provide Demos for FreeRTOS-Cellular-Interface on Windows Simulator as references for these three cellular modems example implementations.
By default, the submodules in this repository are configured with update=none
in .gitmodules to avoid increasing clone time and disk space usage of other repositories (like FreeRTOS that submodules this repository).
To build unit tests, the submodule dependency of CMock is required. Use the following command to clone the submodule:
git submodule update --checkout --init --recursive test/unit-test/CMock
Go to the root directory of this repository. (Make sure that the CMock submodule is cloned as described above.)
Run the cmake command: cmake -S test -B build
Run this command to build the library and unit tests: make -C build all
The generated test executables will be present in build/bin/tests
folder.
Run cd build && ctest
to execute all tests and view the test run summary.
To learn more about CBMC and proofs specifically, review the training material here.
The test/cbmc/proofs
directory contains CBMC proofs.
In order to run these proofs you will need to install CBMC and other tools by following the instructions here.
Please refer to the demos of the Cellular Interface library here using FreeRTOS on the Windows simulator platform. These can be used as reference examples for the library API.
The Doxygen references were created using Doxygen version 1.9.6. To generate the Doxygen pages, please run the following command from the root of this repository:
doxygen docs/doxygen/config.doxyfile
See CONTRIBUTING.md for information on contributing.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4