Discovery

Rustでマイクロコントローラの世界を楽しもう!

この本は、よくあるC/C++ではなく、Rustを使ったマイクロコントローラの組込みシステム入門コースです。

スコープ

以下のトピックを取り上げます(ゆくゆくは、そうしたいです)

  • 「組込み」(Rust)プログラムの書き方、ビルド方法、フラッシュへの書き込み方法、デバッグ方法。
  • マイクロコントローラで一般的な機能(「ペリフェラル」)。デジタル入出力、パルス幅変調(PWM)、アナログデジタル変換(ADC)、 シリアル、I2C、SPIのような一般的な通信プロトコル、など。
  • マルチタスク。協調的マルチタスク vs プリエンプティブマルチタスク、割り込み、スケジューラなど。
  • 制御システム。センサ、キャリブレーション、デジタルフィルタ、アクチュエータ、開ループ制御、閉ループ制御、など。

進め方

  • 初心者に優しく。マイクロコントローラや組込みシステムの開発経験は必要ありません。
  • ハンズオン形式で。理論を実践するためにたくさんの演習をします。あなたはほとんどの作業をここで行います。
  • ツール中心に。開発を容易にするツールをたくさん使用します。GDBを使った「実際の」デバッグとログ出力を早い段階で導入します。 デバッグ機能としてLEDを使用するようなことは、ここではやりません。

目標としないこと

この本でスコープ外のことは、以下の通りです。

  • Rustを教えること。このトピックについては、既に多くの教材があります。マイクロコントローラと組込みシステムに集中します。
  • 電気回路または電子機器の理論についての包括的なテキストであること。 いくつかのデバイスがどのように動くか、を理解するための最低限の情報を提供します。
  • Rustの低レベルな詳細を説明すること。リンカスクリプトやブートプロセス、 また、最小限のRustプログラムにこれらの2つの要素を結合する方法については、説明しません。

また、この教材を他の開発ボードに移植するつもりもありません。この本は、STM32F3DISCOVERY開発ボード専用のものです。

問題の報告

この本のソースはこのレポジトリにあります。誤植やコードに問題を発見した場合は、issueトラッカーに報告して下さい。

訳注:和訳への問題報告は、下記にお願いいたします。

和訳のソースは和訳レポジトリにあります。問題を発見した場合は、和訳issueに報告して下さい。

他の組込みRustの資料

このDiscovery本は、組込みワーキンググループが提供する組込みRust資料の1つに過ぎません。 組込みRustの本棚に、数多くの資料があります。そこには、よくある質問と回答のリストも有ります。

Many thanks to integer 32 for sponsoring me to work on this book! Please give them lots of work (they do Rust consulting!) so they'll have no choice but to hire more Rustaceans <3.