February 24, 2021
For IoT applications with strict real-time requirements, FreeRTOS is many developers’ OS kernel of choice.
Approximately 127 devices are connected to the internet every second. In other words, in the time between the average person’s blinks (roughly 3.5 seconds), nearly 450 new devices join the Internet of Things (IoT). This is a helpful frame of reference for understanding how there will be 41 billion IoT devices in circulation by 2027, a mere 28 years after P&G’s Kevin Ashton coined the term “Internet of Things” — the blink of an eye, historically speaking.
This exponential growth would not have been possible without advances in embedded systems, the computers (usually microcontrollers) whose processing, memory, and input/output peripherals function as IoT devices’ “brains.” Unsurprisingly, the increasing popularity of IoT devices has been mirrored by a steady expansion of the embedded systems market, one that shows no signs of slowing down. While the global market for embedded systems was valued at $84.23 billion in 2019, it is forecast to hit $137.31 billion by 2027.
Notably, real-time embedded systems — systems that are designed to process data as it arrives without buffer delays — account for over one-third of the current embedded systems market. This healthy market share is attributable to the rise of the IoT in industries with strict real-time requirements, including energy, healthcare, heavy industry, telecommunications, and transportation. To accommodate the demands of these IoT use cases, an embedded system must run a lightweight, simple real-time operating system (RTOS) like FreeRTOS.
Created by Richard Barry in 2003, FreeRTOS is an open source RTOS that quickly became many IoT device developers’ preferred option for embedded systems. “Many companies were originally not sure whether open source software would meet their quality and documentation standards. They wanted to have clarity about the IP ownership, as well as broad hardware support,” Barry explains. “To answer these concerns, we tested FreeRTOS aggressively, and documented its MISRA coding standard compliance. We ensured that the FreeRTOS API was fully documented online, in the code, and in a reference manual.”
These extensive support operations eventually became overwhelming for Barry and his team, and in 2017, he handed over stewardship of FreeRTOS to Amazon. Amazon continues to maintain the software infrastructure Barry created, but now issues FreeRTOS under the free MIT License (until 2017, FreeRTOS was issued under the GPLv2 License).
Like other RTOS, FreeRTOS is a lightweight operating system kernel that enables developers to build applications for embedded systems that deliver highly predictable response times. The standard FreeRTOS kernel is just 9KB and can be flashed to a microcontroller as a single compiled image. This image provides a multitasking scheduler (which enables FreeRTOS to be used for deterministic operations), intertask coordination (including task notifications and multiple types of semaphores), and a variety of memory allocation options.
When combined with FreeRTOS’ ever-growing portfolio of thread libraries and APIs, the FreeRTOS kernel lets developers build embedded systems featuring everything from over-the-air updates and data encryption to key management and cloud connectivity (usually via a gateway device).
There are a number of reasons so many developers choose FreeRTOS when creating applications for embedded systems. As Barry mentioned, the core of FreeRTOS’ code — the FreeRTOS kernel comprises just three C files — is written in strict compliance with MISRA C, and everything about FreeRTOS is rigorously documented. However, these benefits represent just a fraction of FreeRTOS’ appeal. As the open source community around FreeRTOS has matured, the kernel’s value propositions have come to include:
As alluded to above, organizations operating in industries with strict real-time requirements can derive a great deal of value from FreeRTOS. For instance, sensors in vehicle airbags and pump sensors on oil rigs must be able to intake and process data in real time — in the event of a crash or a leak, there is no room for information delays — but must also be small and cost-effective enough to be produced in massive volumes. Similarly, while slightly larger in size, commercial security systems and medical monitors both have strict real-time requirements. In all these cases, producing an embedded system programmed with FreeRTOS will give organizations a reliable, purpose-fit solution for their unique IoT use case.
Different IoT use cases will require different types of connectivity, but when energy efficiency is a top priority, equipping devices with Bluetooth® Low Energy capabilities can be a great decision. Provided their microcontrollers accommodate it, developers can use the standard Generic Access Profile (GAP) or Generic Attribute Profiles (GATT) to create Bluetooth LE applications on their embedded systems.
True to our commitment to a wide range of IoT use cases, Telink provides a SDK that supports the development of Bluetooth LE applications for FreeRTOS. Please visit our wiki to learn more about all our development tools, or ask us a question using our new Technical Forum or by contacting us directly today.