All Projects → hashmismatch → Freertos.rs

hashmismatch / Freertos.rs

A Rust wrapper for FreeRTOS.

Programming Languages

c
50402 projects - #5 most used programming language
rust
11053 projects

Labels

Projects that are alternatives of or similar to Freertos.rs

Heimdall
Heimdall is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung Galaxy devices.
Stars: ✭ 1,829 (+982.25%)
Mutual labels:  firmware
Fwtr
Open Database of Firmware Test Results
Stars: ✭ 154 (-8.88%)
Mutual labels:  firmware
Me Tools
Tools for working with Intel ME
Stars: ✭ 165 (-2.37%)
Mutual labels:  firmware
Ergodox Layout
algernon's ErgoDox EZ layout
Stars: ✭ 135 (-20.12%)
Mutual labels:  firmware
Jtag2updi
UPDI programmer software for Arduino (targets Tiny AVR-0/1/2, Mega AVR-0 and AVR-DA/DB MCUs)
Stars: ✭ 147 (-13.02%)
Mutual labels:  firmware
Repetier Firmware 4 Davinci
Repetier-Firmware-0.92 based for DaVinci printer (Beta - so far so good)
Stars: ✭ 157 (-7.1%)
Mutual labels:  firmware
Esp32 Ota Https
Secure over-the-air updates for the ESP32 platform
Stars: ✭ 132 (-21.89%)
Mutual labels:  firmware
Nf Interpreter
⚙️ nanoFramework Interpreter, CLR, HAL, PAL and reference target boards
Stars: ✭ 168 (-0.59%)
Mutual labels:  firmware
Mu basecore
Project mu BaseCore
Stars: ✭ 149 (-11.83%)
Mutual labels:  firmware
Opensk
OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.
Stars: ✭ 2,114 (+1150.89%)
Mutual labels:  firmware
Mstar Bin Tool
Scripts to manipulate Mstar firmware binaries (e.g. MstarUpgrade.bin, LetvUpgrade.bin etc)
Stars: ✭ 137 (-18.93%)
Mutual labels:  firmware
Tasmocompiler
Web GUI for custom Tasmota compilation
Stars: ✭ 143 (-15.38%)
Mutual labels:  firmware
Exein
Exein core for Linux based firmware
Stars: ✭ 158 (-6.51%)
Mutual labels:  firmware
Kmk firmware
Clackety Keyboards Powered by Python
Stars: ✭ 132 (-21.89%)
Mutual labels:  firmware
Hydrafw
HydraFW official firmware for HydraBus/HydraNFC for researcher, hackers, students, embedded software developers or anyone interested in debugging/hacking/developing/penetration testing
Stars: ✭ 165 (-2.37%)
Mutual labels:  firmware
Marlin Ai3m 2.0.x
🖨 Marlin 2.0.x optimized for the Anycubic i3 Mega 3D printer
Stars: ✭ 134 (-20.71%)
Mutual labels:  firmware
Esp8266 Firmware
DeviceHive esp8266 firmware. Control hardware via clouds with DeviceHive!
Stars: ✭ 154 (-8.88%)
Mutual labels:  firmware
Micropython Ulab
a numpy-like fast vector module for micropython, circuitpython, and their derivatives
Stars: ✭ 166 (-1.78%)
Mutual labels:  firmware
U Bmc
Open-source firmware for your baseboard management controller (BMC)
Stars: ✭ 166 (-1.78%)
Mutual labels:  firmware
Pylink
Python Library for device debugging/programming via J-Link
Stars: ✭ 158 (-6.51%)
Mutual labels:  firmware

freertos.rs

A Rust wrapper for FreeRTOS. Beta Rust is required - soon to be stable.

The main entry point for your embedded executable should be provided by your platform's preffered compiler toolchain. For example, for STM microcontrollers, a project generated using STM32CubeMX and compiled using GCC could be used as a starting point. Additional shims between C and Rust provide access to drivers, hardware and FreeRTOS.

This library uses a C shim to communicate with FreeRTOS's API. Dynamic memory allocation is required at the moment.

RustNightly

Documentation

Introduction article

Usage

First, add this to your Cargo.toml:

[dependencies]
freertos_rs = "0.3"

Next, add this to your project:

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].