STM32 Rustの環境を構築する 前編

STM32 Rustの環境を構築する 前編

皆さま ご無沙汰しております。

最近人気の言語である「Rust」に触れてみようと思い、環境を構築してみることにしました。

今まで使ってきた以下のボードと環境を引き続き使います。

PC:Windows10 OS
Board: STM32Nucleo-F401RE
デバイス:STM32F401RE

ボードの情報は こちら からご覧いただけます。

Rustの環境構築方法は、すでにいくつかのWebサイトで書かれています。

手持ちの本に書かれている内容と、それらを加味しながら作業を進めていきます。

Rustの環境をつくる

こちら から青い文字の rustup-init.exe をクリックし、ダウンロードした rustup-init.exe を実行します。

次のウィンドウが出るので 1 を入力した後 Enterキーを押してインストールを始めます。

コマンドプロンプトやPowerShellから rustc や cargo コマンドが使えるようになります。

cargo -V と rustc -V のコマンドを打ちこんでみましょう。
以下のようにお返事をもらえればOKです。(xxxxxの部分は皆さまのユーザー名です)

C:\Users\xxxxx>cargo -V
cargo 1.57.0 (.....)

C:\Users\xxxxx>rustc -V
rustc 1.57.0 (.....)

cargoはRustのパッケージマネージャーです。プロジェクト管理も含め開発の中心的なツールです。
rustcはRustのコンパイラです。直接実行することもできますが基本的にはcargoコマンドを経由して実行します。

Hello world プロジェクトをつくってみる

以下のようにコマンドを
cargo new hello
cd hello
cargo run
の順に実行します。

C:\Users\xxxxx>cargo new hello
     Created binary (application)`hello`package
C:\Users\xxxxx>cd hello
C:\Users\xxxxx\hello>cargo run

画面に Hello, world! と表示されれば成功です。

cargo-edit

cargo-editをインストールするとCargoサブコマンドとして add, rm, upgrade が使用できるようになります。
以下のように実行します。

cargo install cargo-edit

インストールには少々時間がかかります。

C:\Users\xxxxx>cargo install cargo-edit

cargo-generate

cargo-generateをインストールするとCargoサブコマンドとして generateが使用できるようになります。
generateは指定したテンプレートからプロジェクトを作成してくれる機能です。
以下のように実行します。

cargo install cargo-generate

C:\Users\xxxxx>cargo install cargo-generate

リンカーがない場合

Rustには「リンカーがない」という話があります。

ここまでで、もしリンカーがなくて、うまく動かない場合にはリンカーを準備してみてください。

例えば Visual Studio のものですと、ダウンロードページ から「C++ Build Tools」をインストールすれば良さそうです。

こちらの環境にはすでにいろいろなツール群がインストールされていて確認ができないため、リンカーのインストールの説明は省略させていただきます。

Rust Language Server(rls)

開発を効率化するために Rust Language Server 導入しておきましょう。
goto definition機能や型情報の表示、コード補完を提供します。

以下のように実行します。

rustup component add rls rust-analysis rust-src

C:\Users\xxxxx>rustup component add rls rust-analysis rust-src

次にインストールするVSCodeでRust用の拡張機能を入れることでrlsを使うことができるようになります。

エディタを用意する

こちらでは Visual Studio Code (以下VS Code) を使います。

エディタをお持ちでない場合やVS Codeを使ってみたい方は、例えば こちら からインストールします。

VSCodeでは拡張機能でさまざまな機能を追加することができます。

rls

スタートメニューの V – Visual Studio Code から VSCode を起動します。
Ctrl + P ( Ctrlキーを押しながら P ) でコマンドパレットが出るので、そこに

ext install rust-lang.rust と入力し Enterキーを押します。

rust-analyzer

rlsに代わる新たなLanguage Serverとしてrust-analyzerというプロジェクトが進められています。
こちらもインストールしておきましょう。

左側の赤枠の部分から拡張機能を選択することができます。

上部のボックスに rust-analyzer と入力して一番上(英語)の方の install ボタンを押します。

Cortex-Debug

STM32などのArmマイコンのデバッグを行うCortex-Debugをインストールします。

同じく拡張機能から上部のボックスに Cortex-Debug と入力して 一番上に出てきた Cortex-Debugの install ボタンを押します。

ARM GDB(GNUデバッガ)のインストール

こちら からインストールします。

2022年1月現在 gcc-arm-none-eabi-10.3-2021.10-win32.exe が最新のようです。

win64がないようなので、これをインストールします。

こちらはダウンロードに時間がかかりました。

以下の画面でパスの設定にチェックを入れておきます。

OpenOCDのインストール

こちら から最新版をインストールします。

解凍したファイルは C:\openOCD\OpenOCD-20211118-0.11.0 に配置しました。

OpenOCD-xxxxxxxx-x.xx.x の部分はお使いのものに合わせてください。

環境変数の設定で bin と scripts にパスを通しておきます。

Cortex-Mターゲット向けのツールチェーン

STM32F401REはFPU付きのCortex-M4マイコンなので、それに応じたツールチェーンをインストールする必要があります。
以下のように実行します。

rustup target add thumbv7em-none-eabihf

C:\Users\xxxxx>rustup target add thumbv7em-none-eabihf

git

gitは今や常識化しているバージョン管理用のツールです。

もし使ったことがなくインストールが必要な方は、例えば Git for Windows からダウンロードしてインストールしておきます。

少々長くなりましたので、この続きは「後編」でご覧ください。
お疲れさまでした。

Rustカテゴリの最新記事