皆さま ご無沙汰しております。
最近人気の言語である「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 からダウンロードしてインストールしておきます。
少々長くなりましたので、この続きは「後編」でご覧ください。
お疲れさまでした。