「基礎から学ぶ 組み込みRust」を読んだ

どうも、たくチャレ(@takuchalle)です。

基礎から学ぶ 組み込みRustを読みました。

本書はWio Terminalというマイコンボードを対象に組み込みRustを学べるという、日本でも稀有な本になっています。Rustで組み込みをやってみたい人は一度読んでみることをオススメします。

現在絶賛0歳児の子育て中で「がっつりマイコンボードを触って試す」ということが難しいので、一通り読んだ段階での感想となります。ご了承ください。


まずとても良かった点は、embeded-halクレートをベースとしたアーキテクチャを分かりやすく解説してくれている点です。 この俯瞰図があれば他のマイコンボードのcrateを見ていくのに道標になりそうです。

組み込みソフトウェアで一番シンドいのは、回路図やデータシートを読み解いていく部分だと思うので、そこをお膳立てしてくれてるのはありがたいです。 一方で本書を読んで他のマイコンボードを触ってみようと思った時に回路図やデータシートを見て絶望するのではないか。回路図やデータシートが間違えてることもありますし…1 ハードウェアってソフトウェアと違って設定が間違えててもエラー出力されずにただただ何も起きないもしくは壊れるのでデバッグが難しい…ひたすら回路図とレジスタ設定をにらめっこするのは本当につらい。


Rustの文法に関しては最初に解説してくれるので、Rust初心者でも問題ないです。基本的な文法・所有権・ライフタイム・パッケージなど一通り学べます。 組み込みソフトウェアの経験がなくても、Wio Terminalのペリフェラルについてそれぞれ最低限の部分は解説をしてくれるので安心です。

個人的には型状態プログラミング2みたいな組み込み向け特化したRustテクニックみたいなのがもしあれば知りたかったですね。 The Embedded Rust Bookに書いてあるのかもしれませんが、あまり読めてません…

あと、ハードウェアはほぼembedded-halが隠蔽されているので、ゴリゴリベアメタルを触りたいって人は物足りないかと思います。 そんな人はatsamd-halみたいなembedded-halトレイトの実装側をやっていくといいんじゃないでしょうか。3

最後に正誤表のリンクを貼っておきます。

余談ですが、本書の表紙の質感を娘が気に入ったのか、ずっと触ってるのでシワシワになってしまいました。


  1. Wio Terminal でも加速度センサの回路図のピンのアドレスが間違えてますね ↩︎

  2. 型状態プログラミングについてちょっと調べました。こちら ↩︎

  3. 私も実装側の方が興味ありです ↩︎