引言

本书的目的在于提供一个将 Rust 编程语言用于乐鑫(Espressif)设备的全面指南。

Rust 对这些设备的支持仍在不断改进中,并且进展迅速。因此,本文档的某些部分可能已经过时,或者在多次阅读之间发生了重大变化。

与 Rust on ESP 相关的工具和库,请查看 GitHub 上的 esp-rs 组织。该组织由乐鑫的员工以及社区成员共同管理。

欢迎加入 Matrix 上的 esp-rs 社区,来探讨任何技术问题!社区对所有人开放。

这本书适合谁

本书适用于具有一定 Rust 经验,并且对嵌入式开发和电子相关知识有基础了解的人群。对于没有相关经验的读者,我们建议先阅读前提条件资源部分,以快速掌握相关知识。

前提条件

  • 你能够轻松使用 Rust 编程语言,并且在桌面环境下编写和运行过应用程序。
  • 你应该熟悉 Rust 2021 版的术语,因为本书面向的是 Rust 2021 版。
  • 你能够轻松使用其他语言(如 C 或 C++)开发嵌入式系统,并熟悉以下概念:
    • 交叉编译
    • 常见数字接口,如 UARTSPII2C
    • 内存映射外设
    • 中断

资源

如果你对上面提到的任何内容不够熟悉,或者只是想要关于书中特定主题的更多信息,以下资源可能会很有帮助:

资源描述
The Rust Programming Language如果你不熟悉 Rust,我们建议你先阅读这本书。
The Embedded Rust Book这里包含由 Rust 嵌入式工作组提供的其他资源。
The Embedonomicon在使用 Rust 进行嵌入式编程时的细节。
Embedded Rust (std) on Espressif在乐鑫 SoC 上使用 std 的入门指南
Embedded Rust (no_std) on Espressif在乐鑫 SoC 上使用 no_std 的入门指南

翻译

本书已由慷慨的志愿者参与翻译。如果你希望在此处列出你的译本,请(向英文原版仓库)提交 PR。

如何使用这本书

本书假设你按顺序从头到尾阅读。在没有前面章节的背景知识时,后面章节涵盖的内容可能会不太容易理解。

为本书做出贡献

本书的工作是在此代码仓库中进行协调的。

如果你在按照书中的说明进行操作时遇到问题,或者发现书中的某些部分不够清晰,那么这就是一个 bug。请在本书的 issue 追踪器中报告该问题。

欢迎提交修复 typo 和添加新内容的 Pull Request。

重用本材料

本书根据以下许可分发:

  • 本书中包含的示例代码和独立的 Cargo 项目均根据 MIT 许可证Apache 许可证 v2.0 的条款获得许可。
  • 本书中包含的文字、图片和图表均根据 Creative Commons CC-BY-SA v4.0 许可条款获得许可。

总而言之,如果要在你的作品中使用本书的文本或图像,你需要:

  • 给予适当的认可(例如,在幻灯片上提及这本书,并提供相关页面的链接)
  • 提供指向 CC-BY-SA v4.0 许可证的链接
  • 指出你是否以任何方式更改了材料,并使这些更改在相同的许可证下可用

如果你觉得这本书有用,请告诉我们!