Discovery
Rust を通じてマイクロコントローラーの世界を発見しましょう!
本書は、通常の C/C++ ではなく Rust を学習言語として使用する、マイクロコントローラーベースの 組み込みシステムに関する入門コースです。
対象範囲
以下のトピックを扱う予定です(いずれ、そうなればと思っています):
-
「組み込み」(Rust) プログラムの書き方、ビルド方法、フラッシュ方法、デバッグ方法。
-
マイクロコントローラーで一般的に見られる機能(「ペリフェラル」): デジタル入力/出力、パルス幅変調 (PWM)、アナログ-デジタル変換器 (ADC)、Serial、I2C、SPI などの一般的な通信プロトコル、 など。
-
マルチタスクの概念: 協調型 vs プリエンプティブ型マルチタスク、割り込み、スケジューラー、など。
-
制御システムの概念: センサー、キャリブレーション、デジタルフィルター、アクチュエータ、 開ループ制御、閉ループ制御、など。
アプローチ
-
初心者向けです。マイクロコントローラーや組み込みシステムの事前経験は必要ありません。
-
実践重視です。理論を実践に移すための演習を豊富に用意しています。ここで作業の大半を行うのは あなた です。
-
ツール中心です。開発を容易にするために、さまざまなツールを積極的に活用します。GDB を使った 「本物の」デバッグやロギングも早い段階で導入します。デバッグ手段として LED を使うやり方に 出番はありません。
対象外
本書の対象外となるもの:
-
Rust を教えること。そのテーマに関する資料はすでに豊富にあります。ここではマイクロコントローラー と組み込みシステムに焦点を当てます。
-
電気回路理論や電子工学についての包括的な教科書であること。ここでは、一部のデバイスがどのように 動作するかを理解するために必要な最低限だけを扱います。
-
リンカスクリプトやブートプロセスのような詳細を扱うこと。たとえば、コードをボードに書き込むために 既存のツールを利用しますが、それらのツールがどのように動作するかについて詳しくは立ち入りません。
また、この教材を他の開発ボード向けに移植するつもりもありません。本書では STM32F3DISCOVERY 開発ボード のみを使用します。
問題の報告
本書のソースは this repository にあります。誤字やコードの問題を見つけた場合は、 issue tracker で報告してください。
その他の組み込み Rust リソース
この Discovery ブックは、Embedded Working Group が提供する複数の組み込み Rust リソースの うちの 1 つにすぎません。全体の一覧は The Embedded Rust Bookshelf にあります。ここには Frequently Asked Questions の一覧も含まれています。
スポンサー
この本に取り組むためのスポンサーになってくれた integer 32 に心から感謝します! ぜひたくさん 仕事を依頼してください(Rust コンサルティングをしています!)。そうすれば、より多くの Rustaceans を雇う以外に選択肢がなくなるはずです <3。