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

インストールを確認する

すべてのツールが正しくインストールされたことを確認しましょう。

Linux のみ

パーミッションを確認する

USB ケーブルを使って micro:bit をコンピューターに接続します。

micro:bit は、これで /dev/bus/usb に USB デバイス(ファイル)として表示されるはずです。どのように 列挙されたかを確認してみましょう:

$ lsusb | grep -i "NXP ARM mbed"
Bus 001 Device 065: ID 0d28:0204 NXP ARM mbed
$ # ^^^        ^^^

私の場合、micro:bit はバス #1 に接続され、デバイス #65 として列挙されました。つまり、 ファイル /dev/bus/usb/001/065 そのもの が micro:bit です。ファイルのパーミッションを確認してみましょう:

$ ls -l /dev/bus/usb/001/065
crw-rw-r--+ 1 nobody nobody 189, 64 Sep  5 14:27 /dev/bus/usb/001/065

パーミッションは crw-rw-r--+ になっているはずです。末尾の + に注意し、次のコマンドを実行してアクセス権を確認してください。

$ getfacl /dev/bus/usb/001/065
getfacl: Removing leadin '/' from absolute path names
# file: dev/bus/usb/001/065
# owner: nobody
# group: nobody
user::rw-
user:<YOUR-USER-NAME>:rw-
group::rw-
mask::rw-
other::r-

上の一覧に、あなたのユーザー名が rw- パーミッション付きで表示されるはずです。表示されない場合は … udev rules を確認し、次のコマンドで再読み込みしてみてください:

$ sudo udevadm control --reload
$ sudo udevadm trigger

共通

cargo-embed を確認する

まず、USB ケーブルを使って micro:bit をコンピューターに接続します。

少なくとも、micro:bit の USB ポートのすぐ横にあるオレンジ色の LED が点灯するはずです。 さらに、まだ別のプログラムを micro:bit に書き込んだことがない場合は、micro:bit に最初から入っている デフォルトプログラムが背面の赤い LED を点滅させ始めるはずですが、それらは 無視してかまいません。

それでは、probe-rs、そしてその拡張である cargo-embed が micro:bit を認識できるか確認しましょう。これは次のコマンドを実行することで行えます。

$ probe-rs list
The following debug probes were found:
[0]: BBC micro:bit CMSIS-DAP -- 0d28:0204:990636020005282030f57fa14252d446000000006e052820 (CMSIS-DAP)

あるいは、micro:bit のデバッグ機能についてさらに詳しい情報が必要であれば、次を実行できます:

$ probe-rs info
Probing target via JTAG

Error identifying target using protocol JTAG: The probe does not support the JTAG protocol.

Probing target via SWD

ARM Chip with debug port Default:
Debug Port: DPv1, DP Designer: ARM Ltd
├── 0 MemoryAP
│   └── ROM Table (Class 1), Designer: Nordic VLSI ASA
│       ├── Cortex-M4 SCS   (Generic IP component)
│       │   └── CPUID
│       │       ├── IMPLEMENTER: ARM Ltd
│       │       ├── VARIANT: 0
│       │       ├── PARTNO: Cortex-M4
│       │       └── REVISION: 1
│       ├── Cortex-M3 DWT   (Generic IP component)
│       ├── Cortex-M3 FBP   (Generic IP component)
│       ├── Cortex-M3 ITM   (Generic IP component)
│       ├── Cortex-M4 TPIU  (Coresight Component)
│       └── Cortex-M4 ETM   (Coresight Component)
└── 1 Unknown AP (Designer: Nordic VLSI ASA, Class: Undefined, Type: 0x0, Variant: 0x0, Revision: 0x0)


Debugging RISC-V targets over SWD is not supported. For these targets, JTAG is the only supported protocol. RISC-V specific information cannot be printed.
Debugging Xtensa targets over SWD is not supported. For these targets, JTAG is the only supported protocol. Xtensa specific information cannot be printed.

次に、本書のソースコードの src/03-setup ディレクトリにある Embed.toml を 変更する必要があります。default.general セクションには、コメントアウトされた 2 つのチップバリアントがあります:

[default.general]
# chip = "nrf52833_xxAA" # micro:bit V2 の場合はこの行のコメントを外します
# chip = "nrf51822_xxAA" # micro:bit V1 の場合はこの行のコメントを外します

micro:bit v2 ボードを使っている場合は 1 行目のコメントを外し、v1 の場合は 2 行目のコメントを外してください。

次に、以下のいずれかのコマンドを実行します:

$ # 本書のソースコードの src/03-setup にいることを確認してください
$ # micro:bit v2 を使っている場合
$ rustup target add thumbv7em-none-eabihf
$ cargo embed --target thumbv7em-none-eabihf

$ # micro:bit v1 を使っている場合
$ rustup target add thumbv6m-none-eabi
$ cargo embed --target thumbv6m-none-eabi

すべて正しく動作すれば、cargo-embed はまずこのディレクトリ内の小さなサンプルプログラムを コンパイルし、それをフラッシュして、最後に Hello World を表示する見やすいテキストベースのユーザーインターフェイスを 開くはずです。

(うまくいかない場合は、general troubleshooting の手順を確認してください。)

この出力は、たった今 micro:bit に書き込んだ小さな Rust プログラムから送られてきています。 すべて正常に動作しており、次の章に進めます!