#thread #free-rtos #standard #std #sync #com

nightly freertos-std

FreeRTOS 的 Rust 标准库的克隆

2 个版本

0.0.1 2023 年 7 月 31 日
0.0.0 2023 年 7 月 18 日

#10#free-rtos

MIT/Apache

4.5MB
83K SLoC

为 FreeRTOS 实现的 Rust 标准库

这是 FreeRTOS 的 Rust 标准库端口的一个早期 alpha 版本。到目前为止,它已经支持线程和同步原语的基本功能。

如何使用

建议将此仓库作为子模块包含在你的工作区中,因为 FreeRTOS 构建系统需要从中包含 c 文件。

$ git submodule add [email protected]:sheref-sidarous/freertos-std.git

rust 应用程序

  • 在 Cargo.toml 中将 freertos-std 依赖项作为 std 库添加
std = {path = "../freertos-std", features = ["panic_immediate_abort"], package = "freertos-std"}

其中路径是指 freertos-std 被检出的地方

  • 将应用程序构建为静态库
[lib]
crate-type = ["staticlib"]
  • 你需要在根 lib.rs 的顶部包含 restricted_std 功能
#![feature(restricted_std)]

FreeRTOS 构建系统

  • 将 freertos-std 中的 C 文件 src/sys/freertos/rust_std_shim.c 构建到构建系统中
  • 链接构建的 Rust 应用程序静态库

示例用法

查看 freertos-std-example 以获取一个示例,该示例使用 Qemu 构建并运行此库

依赖关系

~1.5–2.4MB
~46K SLoC