ハードウェア/知識要件
この本を読むための主な知識要件は、Rust を ある程度 知っていることです。
ある程度 がどのくらいかを定量的に示すのは難しいのですが、少なくとも、
ジェネリクスを完全に理解している必要はないものの、クロージャを 使う 方法は
知っている必要があると言えます。また、2018 edition のイディオム、特に
2018 edition では extern crate が不要であることに慣れている必要があります。
組み込みプログラミングの性質上、値の2進数表現や16進数表現の仕組み、さらに いくつかのビット演算子の使い方を理解していることも、非常に役に立ちます。 たとえば、次のプログラムがどのようにその出力を生成するのかを 理解しているとよいでしょう。
fn main() {
let a = 0x4000_0000 + 0xa2;
// ビットシフト "<<" 演算の使用。
let b = 1 << 5;
// {:X} は値を16進数として整形する
println!("{:X}: {:X}", a, b);
}
また、この内容を進めるには、次のハードウェアが必要です。
(いくつかの部品は任意ですが、あると便利です)
- STM32F3DISCOVERY ボード。
(このボードは、“大手” の電子部品 販売業者、または 電子商取引 サイト から購入できます)
- 任意。3.3V USB <-> Serial モジュール。詳しく言うと、新しいほうの Discovery ボードのリビジョンを持っているなら(通常はそうです。というのも、 最初のリビジョンが出たのは何年も前だからです)、このモジュールは 不要 です。 ボード自体にこの機能がオンボードで含まれているからです。古いリビジョンの ボードを持っている場合は、第10章と第11章でこのモジュールが必要になります。 完全を期すため、Serial モジュールの使い方についての説明も含めます。本書では この特定のモデル を使いますが、3.3V で動作するならほかのモデル でもかまいません。電子商取引 サイトで買える CH340G モジュールも使えますし、 おそらくこちらのほうが安く手に入るでしょう。
- 任意。HC-05 Bluetooth モジュール(ヘッダ付きのもの!)。HC-06 でも動作します。
(ほかの中国製部品と同様に、これらはほぼ 電子商取引 サイト でしか見つかりません。 (米国の)電子部品販売業者は、なぜかたいていこれを扱っていません)
- mini-B USB ケーブルを2本。1本は STM32F3DISCOVERY ボードを動かすために必要です。もう1本は Serial <-> USB モジュールがある場合にのみ必要です。ケーブルによっては充電専用 のものもあるので、両方ともデータ転送に対応していることを確認してください。
注 これらは、ほとんどすべての Android 端末に付属している USB ケーブルでは ありません。 それらは micro USB ケーブルです。正しいものを用意してください!
- ほぼ任意。メス-メス 5本、オス-メス 4本、オス-オス 1本の ジャンパー(別名 Dupont) ワイヤ。ITM を動かすには、ほぼ確実にメス-メスが1本必要になります。ほかのワイヤは、 USB <-> Serial モジュールと Bluetooth モジュールを使う場合にのみ必要です。
(これらは電子部品の販売業者や 電子商取引 サイト から入手できます)
FAQ: ちょっと待って、なぜこの特定のハードウェアが必要なのですか?
そうすることで、私にとってもあなたにとってもずっと楽になります。
ハードウェアの違いを気にしなくてよければ、この教材ははるかに、はるかに取り組みやすく なります。これについては私を信じてください。
FAQ: 別の開発ボードでもこの内容を進められますか?
たぶん可能です。主に2つのこと次第です。1つは、これまでのマイクロコントローラの経験、
そしてもう1つは、あなたの開発ボード向けに f3 のような高レベルクレートが
どこかにすでに存在するかどうかです。
私見では、別の開発ボードを使うと、このテキストは初心者にやさしい点や「追いやすさ」の大半、 場合によってはそのすべてを失ってしまいます。
別の開発ボードを持っていて、自分をまったくの初心者だと思わないのであれば、 quickstart プロジェクトテンプレートから始めたほうがよいでしょう。