freertos_rs 0.1.0

Rust interface for the FreeRTOS embedded operating system.

This library is a Rust interface for the FreeRTOS API. Currently, it requires nightly Rust.

It is assumed that it will be used as a library in the firmware project for your embedded platform, with a C compiler providing the base system. This library uses a C shim to communicate with FreeRTOS's APIs. Dynamic memory allocation must be provided.

Build Status


Introduction article


First, add this to your Cargo.toml:

freertos_rs = "0.1"

Next, add this to your crate:

extern crate freertos_rs;

use freertos_rs::*;

Unit tests

This project includes unit tests that are run on the The GNU ARM Eclipse QEMU emulator. The basic firmware for STM32 is written in C, compiled with GCC and finally linked with the particular unit test's entry point. Since the QEMU emulator doesn't support FPU registers, slight changes were made to the FreeRTOS kernel. Lacking timer hardware emulation is simulated with a Systick-dependent IRQ trigger. Rust code invokes the cross compilation of this crate, compilation of the base firmware, final linkage and then runs the unit tests using the emulator.