DevEnvCubeIde

88x31.png

開発環境を構築する対象は、Windows8.1または10がインストールされたPCです。

コンセプト

CubeIDEはオールインワンなので楽なのですが、それに頼りきっていると以下の問題があります。

  • ファームウェアライブラリとして最新版しか使えない(CubeMX上で古いファームウェアライブラリを選択できない)
  • ファームウェアライブラリのパスがWindowsのログイン名によって異なり、IDEプロジェクトを他人の環境で再現するのが困難
    • プロジェクトのディレクトリにFWライブラリのソースを同梱することもできるが、ソースの版管理が難しくなる

STMicroのファームウェアライブラリはバージョンが上がると新しいバグが入ることが多く、ライブラリのバージョンが固定できないのは「完成したソフトを半年後にリビルドすると動作しないかビルド自体不能」の原因になります。 そこで、バージョンの固定ができる下記のような開発環境を考えました。

  • CubeIDE を使うが、コマンドラインビルドにGUIをかぶせるラッパーとしてだけ使う
  • コンパイラとして GNU Arm Embedded Toolchain を使う

あと、TouchGFX Designer向けの開発環境は、以下の理由で、TouchGFXに依存しない(GUI抜きの)開発環境とは分けて考えることにしました。

  • TouchGFX DesignerはCubeMXやCubeIDEより更新頻度が遅いらしく、さらに、TouchGFX Designerが対応しているCubeIDE1.4.2が2021年1月23日現在は入手不能。

インストールするソフトのバージョンについて

むやみに最新版のソフト群をインストールすればいい、というものではなく、使うバージョンをいちど決めたら理由がない限りそれを使い続けたほうがトラブルを避けられます。 特にチーム開発のときには、環境構築の手引きに「最新版をインストールせよ」と書くのは無謀です。

ソフト名 バージョン 備考
Liberica JDK 11系最新版のFull JREのMSI形式 CubeMXやCubeProgrammerを動かすために必要
CubeMX 6.1.1
CubeFW F4 (stmole32に依存して決定)
Makeコマンド等 ねむいさんの記事に従う
GNU Arm Embedded Toolchain 10-2020-q4-major zip版をダウンロードする
CubeIDE 1.5.1 コンパイラは別に用意するのでIDEのバージョンは気にしない
CubeProgrammer その時点の最新版 バージョンは気にしないが、デフォルトのパスへインストール
ST-Link Utility その時点の最新版 バージョンは気にしないが、デフォルトのパスへインストール

なお、CubeIDEやCubeMXのインストーラは www.st.com から入手できますが、 www.stmcu.jp からも入手可能でダウンロード時間も短くて済むようです。

Liberica JDK

Liberica JDKは、CubeMXやCubeProgrammerを動作させるために必要です。Javaの実行環境がない場合、たとえばCubeMXのインストールに成功しても、CubeMXのアイコンをクリックしても何も起きないという事態になります。

特にCubeProgrammerの動作にはJavaFXが必要なので、Liberica JDKのFull JREを選びました。

そもそもJavaが入っていない環境だと、CubeMXのインストーラの起動にも失敗するようです。 Liberica JDKをインストールしたにもかかわらずCubeMXのインストーラの起動が不能な場合は、コマンドプロンプトから java -jar exeの名前 (例えばSetupSTM32CubeMX-6.1.1.exe) とすればインストーラを起動できます。

CubeMX

CubeMXは、1台のPCに複数バージョンをインストールしても問題なく動作するようです。よって、将来に備えてインストールパスはバージョンを含んだ適当な名前( D:/installed/STM32CubeMX611 など )に変更してください。

ファームウェア展開パスがデフォルトのままだと他人の環境でeclipseプロジェクトを再現するとき困るので、CubeMXのインストール後に、以下の設定を行います。

  1. スタートメニューからSTM32CubeMXを起動
  2. メニューバーのHelp-Updater Settingsを選ぶ
  3. Repository Folderを C:/Dev0/CubeRepo に直す
  4. STM32CubeMXを閉じる

Makeコマンド等 と GNU Arm Embedded Toolchain

  1. ねむいさんのぶろぐ-Windows10対応軽量シンプルなARMマイコンのGCCビルド環境を構築する(2020年度版) の手順に沿ってC:/Devzフォルダを作る
    • GNU Arm Embedded Toolchain には、gcc-arm-none-eabi-10-2020-q4-major-win32.zip を使う
  2. 他のPCにインストールするとき手間を省くために、C:/Devzをzip圧縮して保存しておく

この時点で以下のようなフォルダ構成になります。

C:/
+-Dev0
| +-CubeRepo/
+-Devz/
  +-ARM/
  |  +-launchpad/
  +-Coreutils/

CubeProgramer

CubeProgrammerとST-Link Utilityについては、 https://support.touchgfx.com/docs/introduction/installation に従って デフォルトのパス へインストールしてください。