4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RustのESP32開発環境構築

Last updated at Posted at 2023-01-07

RustのESP32開発環境構築

プログラミング言語Rustを使用してESP32用のプログラムを開発するための環境を構築する。

実行環境

  • ターゲットボード

    ESP32-DevKitC-32C

    ※ターゲットボードが変わると以下で使用するコマンドが変わるので注意

  • 開発ホスト

    Ubuntu 20.04 LTS

環境準備

Rustインストール

開発ホストにRustをインストールする。Rustはインストールが非常に簡単で下記のコマンドを実行するだけで完了する

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Rustをインストール

Rustの環境変数を設定する

ホームフォルダ直下の.cargoフォルダ内に環境変数のスクリプトがあるので、
そのスクリプトから設定を行う。

source ~/.cargo/env

環境変数が正しく設定されれば以下のコマンドが実行できるはずなので確認する。

# rustcコマンドの確認
rustc --version
# cargoコマンドの確認
cargo version
# rustupコマンドの確認
rustup show

ESP32用のツールチェインをインストールする

cargo install espup
cargo install cargo-espflash

espup install --esp-idf-version <ESP_IDF_VERSION>
# <ESP_IDF_VERSION>は4.4を使用する
# バージョン情報は[esp-idf-template](https://github.com/esp-rs/esp-idf-template)を参考にする
# ex. espup install --esp-idf-version 4.4

# ESP32用の環境変数を設定
. $HOME/export-esp.sh

ESP32用プロジェクトを作成する

cargo-generateを使用してesp-idf-templateからプロジェクトを作成する

# [no_std]
cargo generate --git https://github.com/esp-rs/esp-template

# [std]
cargo generate --git https://github.com/esp-rs/esp-idf-template cargo

ESP32用プロジェクトをビルドする

デフォルトでは使用するツールチェーンはESP32になっていないため、使用するツールチェーンを指定してビルドを実施する。

# ※ビルドする前に必ず設定
# ESP32用の環境変数を設定
. $HOME/export-esp.sh

cargo +esp build

ESP32にプログラムを書き込む

# 書き込みのみ
# no_std
# Debugモード
cargo espflash --target=xtensa-esp32-none-elf /dev/ttyUSB0
# Releaseモード
cargo espflash --release --target=xtensa-esp32-none-elf /dev/ttyUSB0

# std
# Debugモード
cargo espflash --target=xtensa-esp32-espidf /dev/ttyUSB0
# Releaseモード
cargo espflash --release --target=xtensa-esp32-espidf /dev/ttyUSB0

# 書き込み後、シリアルモニタを開始
# no_std
# Debugモード
cargo espflash /dev/ttyUSB0 --monitor
# Releaseモード
cargo espflash --release /dev/ttyUSB0 --monitor

# std
# Debugモード
cargo espflash --target=xtensa-esp32-espidf /dev/ttyUSB0 --monitor
# Releaseモード
cargo espflash --release --target=xtensa-esp32-espidf /dev/ttyUSB0 --monitor

ESP32実行中プログラムのシリアルモニタ

# シリアルモニタソフトをインストール
cargo install cargo-espmonitor

# デバイスを指定してシリアルモニタを起動する
cargo espmonitor /dev/ttyUSB0

1つのプロジェクトで複数の実行ファイルを作成

.Cargo.tomlに以下の追記する

...
[[bin]]
name = "trial1"
path = "src/trial1.rs"

[[bin]]
name = "trial2"
path = "src/trial2.rs"
...

ビルドしたいものを選択する

cargo build --bin <name>

書き込みたいものを選択する

cargo espflash --bin <name>

参考リンク

ESP32 on Rust チートシート

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?