#libcore #avr #version #free #language #primitive #io

nightly avr-libcore

为AVR优化的libcore版本

1 个不稳定版本

使用旧的Rust 2015

0.1.0 2017年8月21日

#960嵌入式开发

MIT 许可证

1.5MB
20K SLoC

Rust 核心库

Rust 核心库是 Rust 标准库 的无依赖基础。它是语言及其库之间的可移植粘合剂,定义了所有Rust代码的内禀和原始构建块。它不链接任何上游库、系统库和libc。

[^free]: 严格来说,有一些符号是必需的,但它们并不总是必要的。

核心库是 最小的:它甚至没有意识到堆分配,也不提供并发或I/O。这些功能需要平台集成,而这个库是平台无关的。

如何使用核心库

请注意,所有这些细节目前都不被认为是稳定的。

这个库假设了一些现有的符号

  • memcpymemcmpmemset - 这些是核心内存例程,通常由LLVM生成。此外,这个库可以明确调用这些函数。它们的签名与C中的相同。这些函数通常由系统libc提供,也可以由 rlibc crate 提供。

  • rust_begin_panic - 这个函数接受三个参数,一个 fmt::Arguments、一个 &'static str 和一个 u32。这三个参数决定了panic消息、panic所在的文件和行。消费者需要定义这个panic函数;它只需要永不返回。这需要一个名为 panic_fmtlang 属性。

  • rust_eh_personality - 被编译器的失败机制使用。这通常映射到GCC的个人函数,但没有触发panic的crate可以确保此函数永远不会被调用。此 lang 属性称为 eh_personality

无运行时依赖