FreeRTOS

FreeRTOS is a market leading RTOS from Amazon Web Services that supports more than 35 architectures. It is distributed under the MIT license.

Features

  • Free RTOS scheduler - preemptive, cooperative and hybrid configuration options, with optional time slicing.
  • The SafeRTOS derivative product provides a high level of confidence in the code integrity.
  • Includes a tickless mode for low power applications.
  • RTOS objects (tasks, queues, semaphores, software timers, mutexes and event groups) can be created using either dynamically or statically allocated RAM.
  • Tiny footprint.
  • Official support for >30 embedded system architectures (counting ARM7 and ARM Cortex-M3 as one architecture each).
  • FreeRTOS-MPU supports the ARM Cortex-M3 Memory Protection Unit (MPU).
  • Designed to be small, simple and easy to use. Typically a RTOS kernel binary image will be in the region of 4K to 9K bytes.
  • Very portable source code structure, predominantly written in C.
  • Supports both real time tasks and co-routines.
  • Direct to task notifications, queues, binary semaphores, counting semaphores, recursive semaphores and mutexes for communication and synchronisation between tasks, or between real time tasks - and interrupts.
  • Innovative event group (or event flag) implementation.
  • Mutexes with priority inheritance.
  • Efficient software timers.
  • Powerful execution trace functionality.
  • Stack overflow detection options.
  • Pre-configured RTOS demo applications for selected single board computers allowing ‘out of the box’ operation and fast learning curve.
  • Free monitored forum support, or optional commercial support and licensing.
  • No software restriction on the number of real time tasks that can be created.
  • No software restriction on the number of task priorities that can be used.
  • No restrictions imposed on task priority assignment - more than one real time task can be assigned the same priority.
  • Free development tools for many supported architectures.
  • Free embedded software source code.
  • Royalty free.
  • Cross development from a standard Windows host.

Sample projects and resources

  • FreeRTOS Ported to Raspberry Pi. This project provides a very basic port of FreeRTOS to Raspberry pi. It includes a demo application that use 2 FreeRTOS tasks to flash the LED on and off.
  • DuinOS. DuinOS is a small multithreading real time operating system (RTOS), based on the FreeRTOS kernel, for Arduino compatible boards.It’s installed as an Arduino core, and currently supports the following AVR processors:
  • LPC43XX-FreeRTOS-with-2xLED-Threads. This is example code of using a NXP LPC4337 Xplorer board from NGX with FreeRTOS.It has two LED blinking tasks running at the same time.
  • FreeRTOS on XMEGA. port.c and portmacro.h for FreeRTOS to run on any AVR XMEGA
  • FreeRTOS on STM32. FreeRTOS demos for STM32F103ZET6 board that include LEDs, Buttons, USART, and LCD.
  • FreeRTOS on AVR with external RAM. This project add extra RAM connected to the external memory interface of Atmega128.
  • LPC4300 Development Boards with FreeRTOS demo. LPC4350 Dual-Core Cortex-M4 and Cortex-M0 Development BoardLPC4350 is the first asymmetrical dual-core digital signal controller with ARM Cortex-M4 and Cortex-M0 processors. The LPC-4350-DB1 development board consists of the most essential components that you need to start your development.It contains the LPC4350FET256 dual-core controller, USB, Ethernet and JTAG connectors, 4 push buttons + 4 LEDs, 16MB external NOR flash.
  • Porting FreeRTOS to MikroC for STM32 M3. This project port FreeRTOSV7.1.1 to CORTEX STM32F107 MikroC Version 2.5.
  • Using FreeRTOS kernel in AVR projects. Instructions to run FreeRTOS on AVR Atmega128L, using AVRStudio5.
  • Running multiple FreeRTOS tasks on AVR. Let us go further with our example code and add more tasks to our FreeRTOS engine. We already have LED flashing task that toggles LED every second. Additionally we are going to create another task that checks button state. Also we are going to send some information to LCD. As always lets take care of drivers for all of them.
  • Running FreeRTOS on the Keil MCBSTM32 Board with the RVMDK Evaluation Tools. This application note describes how to modify an existing port demo of the FreeRTOS operating system that targets the Luminary Micro LM3S102 evaluation board. It uses Keil
  • uc3l0 freertos demo. Demos for FreeRTOS and the UC3L0. This demo provides: Full USART Command TerminalConfigurable ADC TaskPWM control over RGB LEDs (on the L0 Xplained)Printable Data from various sources.
  • gsm control system. G.S.A. (GSM System Automation) is a control system that allows you to manage your domestic appliances by means of gsm-communication.You can program GSA simply by send a SMS.
  • STM32F4 – Deploy FreeRTOS Embedded OS in under 10 seconds!. This tutorial describe how to build and deploy the FreeRTOS embedded operating system on STM32F4 Discovery board under 10 seconds.
  • ST ARM Cortex-M7 STM32 F7 RTOS Demo. This page provides documentation for the FreeRTOS demo that targets the STM32756G-EVAL Evaluation Kit, which incorporates an STM32F7 ARM Cortex-M7 microcontroller from STMicroelectronics. Pre-configured build projects are provided for both the IAR and ARM Keil tools.
  • Creating a FreeRTOS-based WiFi HTTP server for ESP8266. This tutorial shows how to create a FreeRTOS-based HTTP server with the ESP8266 chip.
  • esp-open-rtos. A community developed open source FreeRTOS-based framework for ESP8266 WiFi-enabled microcontrollers. Intended for use in both commercial and open source projects.
  • libwebsockets. canonical libwebsockets.org networking library.
  • InfiniTime. Firmware for Pinetime smartwatch written in C++ and based on FreeRTOS.
  • arduino-pico. Raspberry Pi Pico Arduino core, for all RP2040 boards.
  • Avem. 🚁 轻量级无人机飞控-[Drone]-[STM32]-[PID]-[BLDC].
  • Lua-RTOS-ESP32. Lua RTOS for ESP32.
  • Arduino_FreeRTOS_Library. A FreeRTOS Library for all Arduino AVR Devices (Uno, Leonardo, Mega, etc).
  • MuditaOS. Mobile operating system based on FreeRTOS™ optimized for E Ink displays - developed for Mudita Pure minimalist phone.
  • luos_engine. Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins..
  • freertos-addons. Additions to FreeRTOS.
  • Modbus-STM32-HAL-FreeRTOS. Modbus TCP and RTU, Master and Slave for STM32 using Cube HAL and FreeRTOS.
  • FreeRTOS-rust. Rust crate for FreeRTOS.
  • freertos.rs. A Rust wrapper for FreeRTOS..
  • kendryte-freertos-sdk. This project is no longer maintained Not recommended for product development..
  • esp32-cam-mjpeg-multiclient. ESP32 MJPEG Multiclient Streaming Server.
  • hongbomiao.com. A personal research and development (R&D) lab that facilitates the sharing of knowledge..
  • blinker-doc. blinker中文文档.
  • SmartSpeaker. 一个基于云端语音识别的智能控制设备,类似于天猫精灵,小爱同学。采用的芯片为stm32f407,wm8978,esp8266。.
  • nesper. Program the ESP32 with Nim! Wrappers around ESP-IDF API’s. .
  • ESP32-freeRTOS. Basic Examples of FreeRTOS with ESP32 and ESP-IDF.
  • FastLED-idf. FastLED port to the ESP-IDF 4.0 development environment.
  • stm32_framework. 一个志在实现STM32F1、F2和F4工程模板的项目,集成了FreeRTOS、LWIP、FATFS、DSP、USB、IAP、菜单库、有限状态机模板等等的组件,以及未来将加入的加密、BPNN、最小二乘、音频图片视频解码、LittlevGL等诸多常用的算法或组件,并具有良好的易用性、解耦性和可剪裁性!.
  • esp32-mjpeg-multiclient-espcam-drivers. ESP32 MJPEG Multiclient Streaming Server with latest Espressif drivers.
  • ot-rtos. OpenThread RTOS, an integration of OpenThread, LwIP, and FreeRTOS..
  • ds18b20. ds18b20 library for stm32 hal.
  • XR871-OLD. XR871 SDK.
  • reliance-edge. Transactional power-failsafe filesystem for microcontrollers.
  • nuclei-sdk. Nuclei RISC-V Software Development Kit.
  • OV-Watch. A powerful Smart Watch. Only cost ¥80 RMB ( $12 USD )..
  • esp-wifi-logger. ESP32 WiFi Logger component.
  • XC-OS. Open source graphics operating system for microcontroller.
  • multizone-sdk. MultiZone® Security TEE is the quick and safe way to add security and separation to any RISC-V processors. The RISC-V standard ISA doesn’t define TrustZone-like primitives to provide hardware separation. To shield critical functionality from untrusted third-party components, MultiZone provides hardware-enforced, software-defined separation of multiple equally secure worlds. Unlike antiquated hypervisor-like solutions, MultiZone is self-contained, presents an extremely small attack surface, and it is policy driven, meaning that no coding is required – and in fact even allowed. MultiZone works with any 32-bit or 64-bit RISC-V processors with standard Physical Memory Protection unit (PMP) and “U” mode..
  • FreeRTOS-RISCV. A port of FreeRTOS for the RISC-V ISA.
  • freertos-teensy. FreeRTOS port with C++ std::thread support for ARM boards Teensy 3.5, 3.6, 4.0 and 4.1 (cortex-m4f and cortex-m7f).
  • STM32_Base_Project. STM32 Base project with a lot of stuff.
  • RP2040-FreeRTOS. Raspberry Pi RP2040 FreeRTOS baseline development project.
  • smart-home-automation-rtos. A complete home automation system developed on ESP32 microcontroller using freeRTOS. The system is controlled wirelessly via Bluetooth with an android app developed using MIT App Inventor..
  • unabto. uNabto SDK - direct P2P connectivity for embedded devices (and more).
  • FreeRTOS-Emulator. POSIX based FreeRTOS emulator with SDL2 graphics interface and multiple async communications interfaces, aiming to make it possible to teach FreeRTOS without embedded hardware using similar processes.
  • ArduRTOS. Real Time Operating System Lessons using Arduino and The FreeRTOS Kernel.
  • pubsub-c. Pub/Sub library for C.
  • EmbeddedMqttBroker. This is a Mqtt broker for embedded devices, developed in C++, FreeRTOS, arduino core and tested in an Esp32. .
  • freertos-cell. FreeRTOS for Jailhouse Cells.
  • mTower. mTower is Trusted Execution Environment specially designed to be used on MicroController Units (MCUs) supporting ARM TrustZone technology (e.g., Cortex-M23/33/35p). mTower operates well under restrictions typical for such environment – small RAM and ROM sizes, relatively low performance, absence of rich OSes providing variety of services available on PCs or in enterprise environments. mTower is intended for usage in IoT, embedded devices, Smart Home applications, distributed heterogeneous networks and other environments where secure processing of sensitive data is necessary..
  • hsmcpp. C++ based Hierarchical / Finite State Machine library oriented for embedded and RTOS systems..
  • STM32_HTTPs_WolfSSL. STM32 HTTPs demo , using lib : WolfSSL, Lwip, FreeRTOS, LAN8720.
  • stm32f10x_makefile_freertos. stm32f10x gcc makefile freertos.
  • SUCHAI-Flight-Software. THIS REPOSITORY HAS BEEN MOVED TO GITLAB.
  • FreeVario. FreeVario for paragliders.
  • pid-stm32f746. Embedded graphical interface for PID control.
  • Seeed_Arduino_FreeRTOS. This library gives an example of how to get FreeRTOS running on Seeed production. The project can be used as a template to build your projects off of as well..
  • FreeRTOS-Cpp. C++17 header-only interface to the FreeRTOS kernel API..
  • openMMC. Open source firmware for MMC controllers.
  • rtos-wot. Open source FreeRTOS SDK for ESP8266 WiFi Module.
  • coreMQTT-Agent-Demos. Demonstrates use of coreMQTT-Agent for simple MQTT connection sharing among different threads of execution. .
  • TM4C129_FreeRTOS_Demo. Demo of FreeRTOS 10.2.1 for the Tiva TM4C1294 Connected Launchpad from Texas Instruments.
  • esp32-i2c-mpu6050. ESP32 I2C MPU6050 driver for esp-idf.
  • aimbots-dev. The Taproot-based rewrite of our 2021 development platform..
  • STM32H745_Ethernet. Ethernet on STM32H745 using FreeRTOS and LWIP.
  • freertos-mcpp. Wrapping FreeRTOS in modern C++ classes.
  • uas-catpilot. CatPilot is a hardware and OS agnostic drone’s autopilot software stack. It is designed for faster creation of scalable distributed control systems for mission-critical applications. (UAS-CatPilot repo is a upper lever repo for sharing configurations for UAVs).
  • ZYNQ_ADC_DMA_LWIP. Interfacing ZYNQ SoC device with ADC, Transferring data through DMA and LwIP.
  • pico-freertos-sample. Raspberry Pi Pico Sample application with FreeRTOS.
  • ESP8266-RTOS-HomeKit. ESP8266 HomeKit Accessory Implementation based on FreeRTOS..
  • air32f103-template. AIR32F103 template project for GNU Arm Embedded Toolchain.
  • IPv6-ESP8266. examples for setting up ipv6 on the esp8266.
  • LPTIM-Tick. FreeRTOS Tick/Tickless via LPTIM.
  • golioth-firmware-sdk. Golioth Firmware SDK.
  • micro_ros_stm32_template. Boilerplate to create a project with: STM32 + Ethernet + micro-ROS + FreeRTOS + Arduino + PlatformIO.
  • Cicada-FW. IoT Communications Module for Energy Access. An easy way to get production ready, bi-directional communications for your IoT embedded device. Proiect supported by the EnAccess Foundation - https://enaccess.org.
  • frt. Lightweight, easy-to-use wrapper around the Arduino_FreeRTOS_Library.
  • STM32F407VG-freeRTOS-FATFS-SDIO-SD-CARD. STM32F407VG+freeRTOS+FATFS+SDIO+SD CARD example.
  • FreeRTOS-Wrapper. RT-Thread操作系统的FreeRTOS兼容层 | FreeRTOS Application Compatibility Layer (ACL) for RT-Thread.
  • platformio-libopencm3-freertos. Sample blinky project for PlatformIO using libopencm3 and FreeRTOS.
  • obdh. On-Board Data Handling Module.
  • coreMQTT-Agent. Implements an MQTT agent (or daemon) task for simple MQTT connection sharing among different threads of execution..
  • CorePartition. Universal Cooperative Multithread Lib with real time Scheduler that was designed to work, virtually, into any modern micro controller or Microchip and, also, for user space applications for modern OS (Mac, Linux, Windows) or on FreeRTOS as well. Supports C and C++ .
  • obdh2. On-Board Data Handling Module 2.
  • multizone-iot-sdk. MultiZone® Trusted Firmware is the quick and safe way to build secure IoT applications with any RISC-V processor. It provides secure access to commercial and private IoT clouds, real-time monitoring, secure boot, and remote firmware updates. The built-in Trusted Execution Environment provides hardware-enforced separation … .
  • FreeRTOS-HIFI4-DSP. FreeRTOS for Cadence Tensilica HIFI 4 DSP on R329, D1-H, T113 With GCC Compiler.
  • Prust. PUS-C on Rust. This is the entry point for the Prust tools. List of the tools and a Wiki for them..
  • dscKeybusInterface-RTOS. An esp-open-rtos library to directly interface with DSC security systems, including native HomeKit support..
  • development-of-real-time-systems. Coursera Development of Real-Time Systems Course Assignments.
  • freertos-mqttclient. a demo of mqttclient on freertos platform,https://github.com/jiejieTop/mqttclient.
  • murasaki. STM32 HAL class library.
  • drone_stm32. An Open Source Hobby Drone project with STM32F103C8T6 (BluePill).
  • FreeRTOS-raspi3. FreeRTOS port Raspberry Pi 3 ( 64bit / aarch64 ).
  • selfie-archive-cc-iarrc2018. Software for 1:10 scale autonomous cars.
  • supla-device. Create your own Supla device! This software can be used as a library for Arduino IDE, or can be used directly with ESP8266 RTOS SDK and with ESP IDF. It is also possible to compile and run it on Linux and in FreeRTOS..
  • open-authenticator-app. Firmware for Open Authenticator.
  • catpilot. CatPilot is a hardware and OS agnostic drone’s autopilot software stack. It is designed for faster creation of scalable distributed control systems for mission-critical applications..
  • FreeRTOS_RH850. FreeRTOS port for Renesas RH850.
  • ESP32-Repo. ESP-IDF with ESP32.
  • lorawan_freertos_esp32. Projeto open-source de end-device LoRaWAN com ESP32, sensor BMP180 e FreeRTOS.

FreeRTOS Platforms

  • MSP430
  • ARM
  • AVR
  • ColdFire
  • PIC
  • x86

FreeRTOS Components

  • FileSystem
  • Network
  • TLS/SSL
  • Command Line Interface
  • Runtime Analysis