Skip to content
This repository has been archived by the owner on Nov 13, 2023. It is now read-only.

future-proof-iot/embedded-threads

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

This is embedded-threads, an experimental embedded Rust scheduler.

NOTE: This repository has been re-integrated into RIOT-rs. All future development will happen there.

A while ago, I re-wrote the RIOT scheduler in Rust. That was supposed to be API- compatible and run RIOT applications as-is. The result worked and was of comparable performance, but the implementation turned out too C-like.

So this is a try to create a scheduler that is sound, but still allows to implement RIOT's semantics "on top".

I hope to make this scheduler flexible and usable enough to be usable outside RIOT-rs context.

Status

Basic threading is implemented, for Cortex-M3+ (thumbv7m). This is experimental, expect changes and breakage. Feedback welcome!

Roadmap

  • basic thread switching
    • Cortex-M
      • Cortex-M3+
      • Cortex-M0+
      • floating-point support
    • RISCV
    • ESP32 (Xtensa)
  • MPU support / sandboxing
  • highest-runnable-first scheduler
  • provide basic IPC
    • locks/mutexes
    • thread flags
    • channels
  • integrate into RIOT-rs
  • make scheduler implementation pluggable
  • provide formally verified implementation
  • provide best-in-class performance

Licence

embedded-threads is licensed under the terms of the Apache license (version 2.0).

About

embedded threads: an embedded Rust scheduler

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published