Development is now underway that will enable us to provide long-term support (LTS) releases of FreeRTOS. An LTS release is maintained separately from the main codebase. Typically, no new features are added after release, but critical bugs and security vulnerabilities are patched for years after launch.
We are currently working to improve modularity and memory usage of FreeRTOS libraries to ensure the FreeRTOS LTS release helps our users cover a wider set of use cases. To that end, we are testing each new library against a set of criteria defined in the LTS Code Quality Checklist below. You can see the latest progress of our development in GitHub. The LTS Development Snapshot download will be updated periodically as we make progress toward the LTS release. All libraries in the LTS-development branch will be included in the upcoming LTS release.
We welcome feedback on the LTS roadmap at our FreeRTOS Community Forums.
The LTS roadmap captures the libraries that we anticipate in our first LTS release, and their progress towards meeting the LTS Code Quality Checklist. We plan to include libraries that enable connectivity to any MQTT broker (in bold) in our first LTS release within calendar year 2020, but we may include additional libraries based on user feedback.Last Updated: 2/18/2020
|FreeRTOS kernel||LTS Ready||Done|
|MQTT||Work in Progress||Q2 2020|
|AWS IoT Device Shadow||Planned|
LTS Code Quality Checklist
Each library in the LTS development roadmap will meet the LTS Code Quality checklist, after which it will be added to the main download.
|1||Complexity Score||All functions will have a GNU Complexity score of 8 or lower|
|2||Coding Standard||All functions will comply with the MISRA coding standard|
|3||Static Checking||All code will be statically checked with Coverity|
|4||Function Returns||All functions will have a single exit point|
|5||Code Testing||All code will have extensive unit tests. Gcov reports will be used to report the test coverage, and each library will have extended functional tests.|
|6||Requirements Documentation||All libraries will have documented requirements, which may include resource requirements, listing all dependencies, and porting requirements (as applicable)||7||Design Documentation||All libraries will have a design document, which may include application and cloud interface, state machines, and synchronization (as applicable).||8||Compiler Warning||Code will compile without generating any compiler warnings when the gcc -Wall -Wextra compiler options are used.|