intent

intent的blog

🚴自行车骑的最远的全栈工程师
github

RustをベースとしたESP32の環境構築

Rust のインストール#

参考Rust のインストール / 更新 / パッケージング

Rust を nightly に切り替える#

rustup install nightly
rustup default nightly

ESP32 ツールのインストール#

ESP32 の Rust 開発には 2 つの方法があります

  • stdライブラリを使用した開発
  • coreライブラリ(no_std)を使用したベアメタル開発

ldproxy#

Rust の標準ライブラリ std を使用してアプリケーションをビルドする場合、必要なツールです

cargo install ldproxy

espflash#

ESP デバイスのフラッシュツール

# cargo-espflashはクロスコンパイルとフラッシュに使用されます
cargo install cargo-espflash
cargo install espflash

espmonitor#

esp32 と esp8266 のシリアルモニター

# cargo-espmonitorはesp32とesp8266のシリアルモニターに使用されます
cargo install cargo-espmonitor
cargo install espmonitor

RISC-V ターゲットのみ#

Rust アプリケーションを乐鑫チップ(RISC-Vアーキテクチャベース)にビルドする場合は、次の手順を実行してください:

  1. nightlyツールチェーンとrust-srcコンポーネントをインストールする
rustup toolchain install nightly --component rust-src
rustup default nightly
  1. ターゲットを設定する
  • no_stdベアメタルアプリケーションの場合、次のコマンドを実行します
# ESP32-C2およびESP32-C3向け
rustup target add riscv32imc-unknown-none-elf
# ESP32-C6およびESP32-M2向け
rustup target add riscv32imac-unknown-none-elf

新しいプロジェクトの作成#

cargo-generate をインストールする:

cargo install cargo-generate

上記のツールをインストールしたら、対応するテンプレートを使用してプロジェクトを生成できます。2 つのテンプレートがあります:

  1. esp-templateベアメタルno_stdプロジェクトテンプレート
  2. esp-idf-templatestdをサポートするテンプレート

これらのテンプレートをローカルにクローンしておくこともできます:

mkdir ~/.espressif
cd ~/.espressif
git clone https://github.com/esp-rs/esp-template
git clone https://github.com/esp-rs/esp-idf-template.git

その後、テンプレートを使用してプロジェクトを作成します。たとえば、esp-idf-templateテンプレートを使用してプロジェクトを作成する場合:

cargo generate ~/.espressif/esp-idf-template/

espidf プロジェクトの作成

プロジェクトの設定#

.cargo/config.tomlを開き、以下の行を[env]セクションの最後に追加します。他の内容は変更しないでください。

cd xxx
vi .cargo/config.toml
[env]
ESP_IDF_TOOLS_INSTALL_DIR = { value = "global" }

プロジェクトの実行#

# プロジェクトのクロスコンパイル
cargo build --release
# プロジェクトのクロスコンパイルと実行
cargo run --release

cargo run

ハードウェアのチェック#

問題が発生した場合は、ハードウェアのチェックを参照してください。

シミュレーション#

公式ウェブサイト#

https://wokwi.com/、wokwi はオンラインシミュレーションのウェブサイトです。

コードをローカルで書きたい場合、ウェブシミュレーションをインストールできます:

cargo install wokwi-server
  1. 新しいプロジェクトを作成します
  2. ウェブの URL の id をメモしておきます

image

  1. その後、ローカルで次のコマンドを入力します
# コンパイル
cargo build --release
# 実行
wokwi-server -c esp32c3 -i ウェブのid target/riscv32imac-esp-espidf/release/espidf-demo

チュートリアル#

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。