鳥なき里のマイコン屋(175) STM32、Cube IDEをインストールで吉例Lチカ

Joseph Halfmoon

STMicroelectronics社純正の開発環境のCube IDE、昔一度使ったことがありましたが、その後ご無沙汰。久しぶりに使ってみようと思ったのは、MicroChip社のMPLAB X IDEの影響です。やっぱメーカ純正IDEは「痒い所に手が届く」感が強いです。そこでSTM32でもCube IDEしてみるかと。

※「鳥なき里のマイコン屋」投稿順Indexはこちら

CubeIDE

以前ちょっと触っただけでそれっきりになっておりましたCube IDEデス。その後パソコンも変えてしまったので、手元のPCにはCube IDEは不在。まったくの空白状態から入れなおさないとなりません。それにバージョンも変わっている筈。また以前やったといいつつ、忘却力の年寄はまったく忘れているし。。。

Cube IDEはSTMicroelectronics社の純正開発環境です。STM32マイコンを始めとするST社の各種マイコンのソフト開発を行えるツールです。ST社製と言ってもIDE本体は、Eclipse/CDTで、ツールチェーンは GCC、デバッガは GDB と世間一般に人気の高いオープンなツールを利用してます。今回期待しているのは、初期化コード自動生成ツールであるSTM32CubeMXです。これこそST社が自ら手掛けており、STM32のハードウエアを使いつくすためのノウハウがつまっている筈。他にも「ビルド・アナライザ」とか「スタック・アナライザ」とか御本家ならではのツールを装備しているらしいです。そのうち使うよ。

今回インストールしてみるのは、Windows版の1.13.2 というバージョンです。ICONS

ブラウザ上でSTM32CubeIDEで調べると、上記のように背景が黄色のアイコンのページと、背景が白のページの2つが存在することが分かります。

    • stmcu.jp 白のアイコン
    • www.st.com 黄色のアイコン

ということみたいっす。どちらのルートをたどっても、Cube IDEをインストールすることができるみたいデス。それどころか、黄色ルートでも以下の2つなど、

STM32CubeIDE STM32用統合開発環境

STM32CubeIDE

異なるルートが存在します。奥が深いなST。でも関係ページ多すぎて混乱しない?

ダウンロードしてインストール、起動まで

さて、どのページからインストールしても変わらんでしょう。知らんけど。ダウンロードサイズは、1Gバイト弱でした。手元の環境ではダウンロード、インストールともにストレスなし。サクッと入った感じです。最近のツールとしては、1Gバイトのダウンロードサイズというのは意外と小さい。と思ったら本体のダウンロードの後、必要に応じて追加ダウンロードされるタイプでした。初回、「道」が一通り通じるまで、ファームウエアとかライブラリとか適宜ポロポロと追加ダウンロード。

なお、ST社にアカウントを作らなくてもメールアドレスなどを登録するだけで、本体のダウンロードは可能でした。ただし、上記の必要なファームウエア等の中にはログインしないとダウンロードできないものがあるみたいです。ついでなので、アカウントの作成とログインはしておいた方が無難?

STMCubeIDEのWindows版インストーラの起動画面が以下に。installWizard

インストール環境後、デフォルトでデスクトップにできるIDEのアイコンをクリクリしてやれば、以下の画面でCubeIDEが立ち上がってきます。

上記画面の左上のところに Start new STM32 project というボタンがあるので、これを押せばいいんですよね。

プロジェクトを開始していろいろ引っかかる

新規プロジェクトの作成は、他社ツールと似たようなもんです。プロジェクトのお名前をつけて、どんなプロジェクトにしたいかチェックするっと。BlinkAgain

そして、ターゲットデバイスを選択します。あまりに沢山のターゲットがありますが、よくコーディネートされている画面なので見つけるのは難しくありません。今回は、随分前からお世話になっているST社製

Nucleo-F072RB

ボードをターゲットにしてみます。チップレベルだけでなく、このようなボードレベルでの選択も可能なので設定はお楽。F072RBselected

実際、選択後、Pinコンフィギュレーション画面が現れますが、それをみると、以下のようにPA5がオンボードの緑色LEDに接続とかいうことまで反映済です。LEDPin

上記のSTM32CubeMX画面から各種ペリフェラルの設定などを行い、以下のようなMenuから、Generate Codeすれば必要なAPIなどを自動生成してくれます。この辺は、コンペ?MicroChip社のMPLAB X IDEのMCCというツールと似てます。CodeGeneration

しかし、ここで引っかかりました。以下のようなメッセージが出ます。CodeGeneration_needsLogin

また、以下のようなポップアップも開いてます。LoginNeeded

どうも、mySTページにキチンとログインしてからCubeIDEを使った方が身のためのようです。そこでログインしてみましたぞ。

初心者向けのSTM32CubeIDEの使い方がどこかに無いかなということで探してみました。IDEのManualのリンクに大量の文書があります。その中に以下の文書があったので、それ見れば良いのか?と早合点。しかし期待を裏切られましたぜ。

STM32CubeIDE quick start guide

大抵、quick start guideとかいうものには、吉例Lチカか、Hello Worldやるようなサンプルプロジェクトをこさえる過程が丁寧に説明されているもんです。書いてある通りに見様見真似でやっていれば「動く」ということが多いです。でも上の文書、薄いから簡単に読めるというだけのマニュアルのダイジェスト版っぽいデス。勿論分厚いUser Manuaを端から読むよりはマシですが?

結局、生成されたCのファイル類を読むと、main.c内の以下の /* USER CODE BEGIN 3 */というコメントの直下にLチカ書けばよかろうということが分かります。UserCode3

STM32のHALについては「良く知らん」のでこれから勉強なのですが、まあ、ヘッダなど調べて以下のように「吉例Lチカ」をデッチあげましたです。2秒おきにゆっくりペースで点滅させるつもり。

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
  HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
  HAL_Delay(2000);
}
/* USER CODE END 3 */

さてビルドさせてみるとこんな感じ。ビルドは一発成功。ユーザコードはたった2行だ。あたりまえ。BuildOK

Nucleoボードへの書き込みでまた引っかかる

今回ターゲット機としたNucleoボードは、STM32マイコンの評価用に人気の高い開発ボードです。Arduino互換のピンソケットも搭載。

ターゲットマイコンだけでなく、「デバッグプローブ」的なホストとのIF機能を提供するUSBマイコンも搭載、ホストからはST社のST-LINKに見えるボードです。今回は手元に3種類所持しているNucleoボードの中でも一番「小さめ」なマイコンを搭載し、かつ一番古いNucelo-F072RBボードを選択してみました。

メーカによっては古いデバイスや古い評価ボードなどをディスコンにしてしまうことがあり、そういう表示がでるとガッカリなのですが、ST社は立派っす。F072RBもしっかり現役表示です。やったね。

ただし、ビルドしたオブジェクトをデバッガから書き込もうとしたらボードを認識してくれていないようです。調べたらボード上のFirmwareが古いみたい。以下のウインドウを開きます。

updateFirmware

そして、Open in update modeボタンを押します。すると以下のようになったので、updateFirmware2

Upgradeボタンを押すと、ボード上のデバッグマイコンのファームウエアが書き変えられてOK状態になったみたいデス。

あらためてボードを接続しなおして、Cube IDEからデバッガを開くと以下のような画面となりました。ちゃんとオブジェクトが書き込まれ、頭のところでブレークしてるみたい。

runsDebugger

Continueすれば、ほれこのように、緑色のLED(LD2)が点灯2秒(周期は4秒)でLチカしてますぞ。NucleoF072RB

これでCube IDEを再び練習できる?今回こそ、ちゃんとやれよ。自分。

鳥なき里のマイコン屋(174) マイコンでLISP、吉例Lチカ、Wio Terminal へ戻る

STM32三昧(1) Cube IDEでHello World+GPIO入力、Nucleo へ進む