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 を ある程度 知っていることです。
ある程度 がどのくらいかを定量的に示すのは難しいのですが、少なくとも、 ジェネリクスを完全に理解している必要はないものの、クロージャを 使う 方法は 知っている必要があると言えます。また、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);
}

また、この内容を進めるには、次のハードウェアが必要です。

(いくつかの部品は任意ですが、あると便利です)

(このボードは、“大手” の電子部品 販売業者、または 電子商取引 サイト から購入できます)

  • 任意。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 プロジェクトテンプレートから始めたほうがよいでしょう。