Rust

WindowsでESP32向けRust開発環境を構築する手順

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

1. 必要なツールと前提条件

ツール 用途 インストール方法
MSVC C++ ビルドツール Rust の rustc が Windows 用にリンクするためのコンパイラ・ライブラリ https://visualstudio.microsoft.com/visual-cpp-build-tools/ から Build Tools for Visual Studio をダウンロードし、C++ デスクトップ開発 ワークロード(MSVC v143)を選択
Rustup / Rust stable Rust 本体・標準ツールチェーンの管理 rustup-init.exehttps://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe)を実行
ESP‑IDF Tools Installer ESP‑IDF 本体、Xtensa ツールチェーン、Python 環境の自動セットアップ https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.htmlESP-IDF Tools Installer をダウンロード
OpenOCD(任意) JTAG/SWD デバッグサーバ – VS Code からデバッガを呼び出す際に使用 GitHub リリースページ https://github.com/openocd-org/openocd/releases から Windows 用 zip を取得し C:\OpenOCD\bin に展開
VS Code + 拡張機能 エディタ・IDE としてコード補完・デバッグを実現 https://code.visualstudio.com/ からインストールし、拡張機能 rust-analyzer, ESP‑Debugger(または Cortex‑Debug) を追加
probe‑run(probe‑rs スイート) USB‑Serial 経由で ESP32 にフラッシュ/実行デバッグを行うコマンドラインツール 後述の cargo install probe-run でインストール

ポイント
- 上記すべては管理者権限の PowerShell から実行してください。
- Python がシステムに未インストールの場合、ESP‑IDF Tools Installer が自動的にミニマルな CPython を配置しますが、別途 python.org から最新版(3.9 以上)をインストールしても問題ありません。


2. Rust 本体と組込みターゲットのセットアップ

注意
rustup target add xtensa-esp32-none-elf だけではコンパイルに必要なリンカや標準ライブラリが不足します。ESP‑IDF が提供する Xtensa ツールチェーン(上記 $env:PATH に追加したもの)と、esp-idf-sys クレートが利用できるように IDF_PATH を設定してください。


3. 補助ツールのインストール

インストール後、%USERPROFILE%\.cargo\binPATH に含まれていることを必ず確認してください。


4. VS Code のセットアップ

  1. VS Code 本体 を公式サイトからダウンロードしてインストール
  2. 拡張機能パネルで次の拡張子を検索し、Install ボタンをクリック
拡張機能 目的
rust-analyzer 高速なコード補完・診断
ESP-Debugger(または Cortex-Debug ESP32 用デバッグ設定のテンプレート提供
  1. ユーザー設定 (settings.json) に以下を追記し、OpenOCD のスクリプトパスを環境変数で柔軟に指定できるようにします。


5. OpenOCD と ESP‑IDF の設定例

5‑1. OpenOCD(任意)

launch.json で参照するパスは次のように変数化しておくと環境依存を回避できます。

5‑2. ESP‑IDF Tools Installer のインストール手順(Python 含む)

  1. 上記リンクから ESP‑IDF Tools Installer をダウンロードし実行
  2. インストーラが表示するチェックリストで “Add Python to PATH”“Install Xtensa toolchain” に必ずチェックを入れる
  3. 完了後、PowerShell で次のコマンドが成功すればインストールは完了です。


6. 実践:LED 点滅(blinky)サンプルの作成・ビルド・書き込み

6‑1. テンプレート取得

Cargo.toml の依存関係に esp-idf-sys = { version = "0", features = ["native"] } が自動で追加されます。

6‑2. ビルド(デバッグモード)

ビルドが通らない場合は次を確認してください。

エラー 原因例 対処
cannot find crate 'std' ターゲット未追加または Xtensa ツールチェーンが PATH に無い rustup target list --installed で確認し、必要なら再度 rustup target add xtensa-esp32-none-elf
リンカエラー (ld.exe: fatal error) ESP‑IDF の環境変数 IDF_PATH が未設定 $env:IDF_PATH = "$HOME\.espressif\esp-idf" を PowerShell に書き込む

6‑3. 書き込み & デバッグ(probe‑run)

probe-run は内部で esptool.py を呼び出すため、追加のスクリプトインストールは不要です。

代替手段
- cargo embed --target xtensa-esp32-none-elf --release(ARM 用に最適化された場合のみ)
- idf.py flash monitor(ESP‑IDF 標準コマンド)

6‑4. 動作確認

シリアルモニタが自動で起動し、次のようなログが表示されれば成功です。

LED が点滅すればハードウェア側も正しく接続できています。


7. トラブルシューティングまとめ

現象 主な原因 解決策
probe-run: No probes found USB ドライバが未インストール、または PowerShell が管理者権限でない デバイスマネージャで COM ポートを確認し、PowerShell を 管理者 で再起動
ビルド時に undefined reference to __wrap_* Xtensa ツールチェーンのパスが通っていない $env:PATH += ";$HOME\.espressif\tools\xtensa-esp32-elf\bin" を実行し、再度ビルド
デバッグ中に target remote :3333 がタイムアウト OpenOCD の設定ファイルパスが間違っている launch.jsonopenOcdConfig パスを ${env:HOME}/.espressif/tools/openocd-*/share/openocd/scripts/board/... に修正
Python が見つからない ESP‑IDF Installer で「Add to PATH」にチェックし忘れた python -m pip install --upgrade esptool で手動インストール、または再度インストーラを実行

8. 今後のステップ

  1. コード更新cargo build … && probe-run … のサイクルで開発
  2. 外部クレート活用(例: embedded-hal, esp-idf-svc)で Wi‑Fi や BLE も組み込む
  3. CI/CD(GitHub Actions + cross) を導入すれば Windows 以外でも同一手順でビルド可能

以上で、Windows 環境における Rust + ESP32 の開発基盤が整いました。質問や不具合は GitHub リポジトリの Issue、もしくは本稿のコメント欄からお気軽にどうぞ!

スポンサードリンク

-Rust
-, , , , , , ,