Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

介紹

歡迎來到《嵌入式 Rust 手冊》:一本介紹如何在「裸機」嵌入式系統(如微控制器)上使用 Rust 程式語言的入門書。

嵌入式 Rust 的適用對象

嵌入式 Rust 適合想進行嵌入式開發、同時享受 Rust 語言提供的高階概念與安全保證的人。(另見 Rust 的適用對象

範疇

本書的目標是:

  • 讓開發者快速上手嵌入式 Rust 開發。例如:如何設定開發環境。

  • 分享使用 Rust 進行嵌入式開發的_當前_最佳實務。例如:如何善用 Rust 語言特性來寫出更正確的嵌入式軟體。

  • 在某些情況下作為食譜。例如:如何在單一專案中混用 C 與 Rust?

本書力求通用,但為了讓讀者與作者更容易上手,所有範例都採用 ARM Cortex-M 架構。不過,本書不假設讀者熟悉該架構,並在需要時解釋其特定細節。

本書的讀者

本書面向具備嵌入式或 Rust 背景的人,但我們相信所有對嵌入式 Rust 感到好奇的人都能從本書中有所收穫。若你沒有相關先備知識,我們建議先閱讀「假設與先備條件」章節並補足不足,讓你從本書獲益更多並提升閱讀體驗。你也可查看「其他資源」章節,尋找你想補充的主題。

假設與先備條件

  • 你已能熟練使用 Rust 程式語言,並在桌面環境撰寫、執行與除錯 Rust 應用程式。你也應熟悉 2018 edition 的慣例,因為本書以 Rust 2018 為目標。

  • 你能以 C、C++ 或 Ada 等其他語言進行嵌入式系統開發與除錯,並熟悉以下概念:

    • 交叉編譯
    • 記憶體對映周邊
    • 中斷
    • I2C、SPI、序列埠等常見介面

其他資源

如果你對上述內容不熟悉,或想了解本書提及的特定主題,以下資源可能會有幫助。

話題資源描述
RustRust 手冊若你尚未熟悉 Rust,我們強烈建議先閱讀此書。
Rust、嵌入式Discovery 手冊若你從未做過嵌入式開發,這本書可能是更好的起點
Rust、嵌入式Embedded Rust Bookshelf在這裡可以找到 Rust 嵌入式工作群提供的其他資源。
Rust、嵌入式Embedonomicon使用 Rust 進行嵌入式開發時的繁瑣細節。
Rust、嵌入式嵌入式 FAQ關於嵌入式情境中的 Rust 常見問題。
Rust、嵌入式Comprehensive Rust 🦀:裸機裸機 Rust 開發 1 日課程的教學教材
中斷中斷-
記憶體對映 I/O/周邊記憶體對映 I/O-
SPI、UART、RS232、USB、I2C、TTL關於 SPI、UART 與其他介面的 Stack Exchange 討論-

翻譯

本書由熱心志工翻譯完成。若你希望你的翻譯列在此處,請開 PR 加入。

如何使用這本手冊

該手冊一般假設你從前往後閱讀。後續章節會建立在前面章節的概念之上,而前面章節可能不會深入某些話題,並在後續章節再回頭詳述。

本書多數範例會使用 STMicroelectronics 的 STM32F3DISCOVERY 開發板。此開發板基於 ARM Cortex-M 架構,雖然此架構的多數 CPU 基本功能相同,但不同廠商的微控制器周邊與其他實作細節各不相同,甚至同一廠商不同家族也可能不同。

因此,我們建議購買 STM32F3DISCOVERY 開發板來跟著本書範例操作。

為本書做出貢獻

本書的工作由此儲存庫 協調,主要由資源團隊 開發。

如果你在跟著本書指引時遇到困難,或發現某些章節不夠清楚或難以理解,那就是問題,應在本書的議題追蹤器 回報。

非常歡迎修正錯字與新增內容的 Pull Request!

重複使用本資料

本書以以下授權條款釋出:

TL;DR:若你想在作品中使用我們的文字或圖片,你需要:

  • 給予適當的引用(例如在投影片中提到本書,並提供相關頁面的連結)
  • 提供 CC-BY-SA v4.0 授權連結
  • 說明是否對素材做過任何變更,並將你對素材的修改以相同授權釋出

如果你覺得本書有幫助,也請務必讓我們知道!