简介
欢迎阅读《嵌入式 Rust 书籍》:一本关于在“裸机”嵌入式系统(如微控制器)上使用 Rust 编程语言的入门书籍。
嵌入式 Rust 的适用对象
嵌入式 Rust 适用于所有希望进行嵌入式编程,同时利用 Rust 语言提供的高级概念和安全保障的开发者。(另请参阅Rust 的适用对象)
范围
本书的目标是
-
让开发者快速掌握嵌入式 Rust 开发。例如,如何设置开发环境。
-
分享使用 Rust 进行嵌入式开发的*当前*最佳实践。例如,如何最好地使用 Rust 语言特性来编写更正确的嵌入式软件。
-
在某些情况下充当食谱。例如,如何在单个项目中混合使用 C 和 Rust?
本书试图尽可能地保持通用性,但为了方便读者和作者,它在所有示例中都使用了 ARM Cortex-M 架构。但是,本书并不假设读者熟悉这种特定的架构,并在必要时解释了这种架构特有的细节。
目标读者
本书面向具有一定嵌入式背景或 Rust 背景的读者,但我们相信,任何对嵌入式 Rust 编程感兴趣的人都能从本书中有所收获。对于没有任何先验知识的读者,我们建议您阅读“假设和先决条件”部分,并补充缺少的知识,以便更好地理解本书内容,提升阅读体验。您可以查看“其他资源”部分,找到您可能需要补充的主题的资源。
假设和先决条件
- 您能够熟练使用 Rust 编程语言,并且已经在桌面环境中编写、运行和调试过 Rust 应用程序。您还应该熟悉2018 版的习惯用法,因为本书的目标是 Rust 2018。
- 您能够熟练地使用其他语言(如 C、C++ 或 Ada)开发和调试嵌入式系统,并且熟悉以下概念:
- 交叉编译
- 内存映射外设
- 中断
- 常见接口,如 I2C、SPI、串行等。
其他资源
如果您不熟悉上述任何内容,或者您想了解更多关于本书中提到的某个特定主题的信息,您可能会发现以下一些资源对您有所帮助。
主题 | 资源 | 描述 |
---|---|---|
Rust | Rust 书籍 | 如果您还不熟悉 Rust,我们强烈建议您阅读本书。 |
Rust,嵌入式 | 探索书籍 | 如果您从未做过任何嵌入式编程,这本书可能更适合您入门 |
Rust,嵌入式 | 嵌入式 Rust 书架 | 在这里,您可以找到 Rust 嵌入式工作组提供的其他一些资源。 |
Rust,嵌入式 | 嵌入式秘籍 | 使用 Rust 进行嵌入式编程时的细枝末节。 |
Rust,嵌入式 | 嵌入式常见问题解答 | 在嵌入式环境中使用 Rust 的常见问题。 |
Rust,嵌入式 | 全面的 Rust 🦀:裸机 | 关于裸机 Rust 开发的为期 1 天的课程的教材 |
中断 | 中断 | - |
内存映射 I/O/外设 | 内存映射 I/O | - |
SPI、UART、RS232、USB、I2C、TTL | 关于 SPI、UART 和其他接口的 Stack Exchange | - |
翻译
本书由热心的志愿者翻译。如果您希望将您的翻译列在这里,请提交 PR 添加它。
如何使用本书
本书通常假设您是从头到尾阅读的。后面的章节建立在前面章节的概念之上,而前面的章节可能不会深入探讨某个主题的细节,而是在后面的章节中重新讨论该主题。
本书将使用意法半导体的STM32F3DISCOVERY开发板作为本书中大多数示例的平台。该开发板基于 ARM Cortex-M 架构,虽然基于该架构的大多数 CPU 的基本功能相同,但不同供应商的微控制器的外设和其他实现细节有所不同,即使是同一供应商的不同微控制器系列之间也 often 不同。
因此,我们建议您购买STM32F3DISCOVERY开发板,以便学习本书中的示例。
为本书做出贡献
如果您在按照本书中的说明操作时遇到问题,或者发现本书的某些部分不够清晰或难以理解,那么这就是一个错误,应该在本书的问题跟踪器中报告。
欢迎提交 PR 来修复错别字和添加新内容!
重复使用本材料
本书根据以下许可证分发
- 本书中包含的代码示例和独立的 Cargo 项目根据MIT 许可证和Apache 许可证 v2.0的条款进行许可。
- 本书中包含的文字、图片和图表根据 Creative Commons CC-BY-SA v4.0 许可证的条款进行许可。
TL;DR:如果您想在您的作品中使用我们的文字或图片,您需要
- 给予适当的署名(即在您的幻灯片中提及本书,并提供相关页面的链接)
- 提供CC-BY-SA v4.0许可证的链接
- 说明您是否以任何方式更改了材料,并根据相同的许可证提供对我们材料的任何更改
另外,如果您发现本书对您有所帮助,请告诉我们!