我正在考虑在硬实时编程中使用Rust来替代C/C++。我已经确定了两个可能存在的问题:
1)我该如何避免调用Rust的垃圾回收机制(GC)?有人建议可以通过避免使用托管指针和非实时安全库(例如Rust标准库)来解决此问题,那么这样做是否足以确保我的实时任务永远不会调用垃圾回收机制?
2)如何将我的实时任务映射到操作系统线程?我知道Rust标准库实现了N:M并发模型,但实时任务必须直接对应一个操作系统线程。是否有一种方法可以生成此类型的线程?
1)我该如何避免调用Rust的垃圾回收机制(GC)?有人建议可以通过避免使用托管指针和非实时安全库(例如Rust标准库)来解决此问题,那么这样做是否足以确保我的实时任务永远不会调用垃圾回收机制?
2)如何将我的实时任务映射到操作系统线程?我知道Rust标准库实现了N:M并发模型,但实时任务必须直接对应一个操作系统线程。是否有一种方法可以生成此类型的线程?
#[no_std]
的理解是它适用于整个 crate。如果我在#[no_std]
的 crate 中编译实时代码为库,然后将其与应用程序的其余部分链接,这样我就可以在非实时代码中使用 Rust 的运行时和标准库了吗? - crosstalk