Telink white logo with Telink word in small size

We noticed you are using Internet Explorer.

We recommend using one of the below listed browsers to enjoy the best experience of our website.

Click here to download:

Chrome

Firefox

Safari

Edge

Telink white logo with Telink word
Rotate your device top arrow

PLEASE ROTATE ME

Rotate your device bottom arrow
Preloader image
loading...
Telink white logo with Telink word in small size

FreeRTOS: The Real-Time Operating System Behind Much of the IoT

Telink Staff

February 24, 2021

Technology

Network of IoT devices

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.

What Is 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).

The Benefits of FreeRTOS

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:

  1. Ecosystem Support: FreeRTOS’ partner ecosystem gives developers access to an impressive array of resources — some from community contributors, others from professional support personnel — including integrated IDE and productivity tools.
  2. Fast Speed-to-Market: Thanks in part to its (intentional) simplicity, FreeRTOS facilitates rapid project setup and streamlined application development. With FreeRTOS, developers have a wealth of IoT reference integrations and preconfigured demos at their fingertips, helping them avoid many common go-to-market obstacles.
  3. Long-Term Support: In December, FreeRTOS announced its first long-term support (LTS) release, FreeRTOS 202012.00 LTS. Whereas, by virtue of its open source nature, the mainline version of FreeRTOS is (and will remain) in constant flux, moving forward, FreeRTOS will release LTS versions of its operating system that provide feature stability, security patches, and critical bug fixes for two years from their release dates.

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.

Bringing Bluetooth® Low Energy to FreeRTOS

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.