鳥なき里のマイコン屋(59) STM32CubeIDE その1

マイコン開発ツールを毎月1種類使ってみて、これを1年も続けたら開発ツールの「今」が分かるんでないかい、と思って3カ月目なのであります。3つ目インストールせずにはいられません。と言って何に手を出すか?別にSTの回し者ではないのですが、このところSTのNucleoボードを使うことが多いので、まずはこのボードに適合するツールを「網羅」すべくという目標をたてました。しかし、調べると結構いろいろあるんでありますな、開発ツール。この頃、大分淘汰されているのかと思っていたのですが、勢いのあるマイコンはサポートされる、というところなのでしょう。

だいたい、開発ツールといって2つの流れがあると思っております。

  1. 商売でツールやOS、ライブラリなどを売っているサードベンダのツール
  2. マイコンメーカが自社のマイコンをサポートするために提供しているツール

大まかに印象を述べれば、サードベンダのツールは性能なり機能なり、売りになるものが無いと誰もお金を払ってくれないので、コンパイラの性能が良かったり、人が欲しいと思うけれどその辺にはころがっていない機能を提供していたりと特色があるということです。ただし、サードベンダは商売なので、

人気のある(そのサードベンダに注文が入る)マイコンをサポート

するけれども、人気の無いマイコンを自主的にサポートするなどということはあり得ません。マイコンメーカがお金を積んでサポートしてください、とお願いしない限りは。

それに対してマイコンメーカが自社のマイコンのために提供しているツールは、

あまり人気のないマイコンの場合は唯一の選択肢

だったりします。資金力がなくて、何とか最低限のツールチェーンを整備した、という雰囲気の漂うものですね。しかし、中には、他社とは違う独自の世界を構築するために、メーカツールが唯一と言えるケースもあります。

アナログ回路などハードのプログラミングから可能なPSoCのケース

は、独自の世界のために複雑なツールチェーンを自社で構築しているケースだと思います。

さて、本題のNucleoボード、ST MicroelectronicsのSTM32マイコンの場合は、

  1. サードベンダの有償ツール
  2. メーカの無償ツール
  3. それ以外のソースの無償ツール

という3系統のツールを選択可能です。これは、なかなか人気なんでないかい。サードベンダの有償ツールとしては、

  • ご本家ArmのKeil
  • IAR

の2種類が代表的なものではないかと思います。性能も良いと思われるのですが、無償ではお試しできる程度に制限がかかっているので、ほんと、試すだけなので後回しとさせていただきます。それ以外のソースの無償ツールとしては、

  • Arm Mbed Web開発環境
  • SW4STM32

でしょうか。既にArm Mbedにはかなりお世話になっています。SW4STM32は近いうちに試したいと考えています。

さて、メーカの無償ツールとして挙げられるのが、今度のテーマの

  • STM32CubeIDE

です。このツールは名前の上からは最近出てきたようなのですが、どうも履歴的には、

TrueSTUDIO

と呼ばれていたツールにルーツがありそうな感じです。ともあれ、STがわざわざ自社に取り込んで、自社ブランドの元に提供しているので、それなりのことはあるんじゃないかという期待です。STM32CubeIDE自体は、

  • ツールチェーン(コンパイラやリンカなど)は ARM用のgcc
  • デバッガはGDB(デバッグサーバはST独自のST-Link)
  • IDEはEclipse+CDTプラグイン

という、本当に「ありがち」な構成で、特段のことはありません。ここだけで言えば、何の変哲もない。しかし、メーカのブランドを冠した場合、何かしら

自社のマイコンに特化した機能をぶち込んでくる

のがお約束です。サードベンダ製であると、複数社のマイコンをサポートしないとならないことが多いので、あまり特定のマイコンに偏った機能は入れずらいものだと思うのですが、自社マイコンに自社ツールなので、その辺の制限はなく、ここぞとばかりに「特長」を出してきている筈。その辺を探っていこうと思うんであります。

さて、インストールのためのダウンロードは、ST社に登録こそ必要ですが、特段難しいことは何もありません。そしてダウンロードサイズも意外に小さい。

600Mバイト台

しかありません。他の開発ツールなど1G超えるようなものも普通な中でこの大きさはかなり小さい、とその時点では思ってしまいました。しかし、これはあくまで基本セットだったのですよ。

ダウンロードし、インストールして起動。結構充実した案内画面(Information Center)が出てまいります。そこから多数のマニュアル(PDF)へのリンクが張ってあります。充実していますが、読んでいると何日かかるか分かりません。しかし、ちゃんと、Quick startの頭の方にいいこと書いてあります。引用させていただきましょう。

It is not required to read all material before using STM32CubeIDE for the first time. Rather, it is recommended to consider the Information Center as a collection of reference information to return to.

ま、とりあえず読まずに始めても良い、と手前味噌解釈。さっそく、ターゲットを選択いたしましょう。するとね、しばらく時間がかかったのです、何故かというと、

必要な情報をST社のサイトからダウンロードしてくるから

でした。マイコンや開発ボードの情報は常に更新されているので、必要とあればとってきて更新するようです。今回は初回でもあり、現時点の最新リストを取ってきたのでしょうか。よって、このツールはインストール後もネットにつないでおかないとならないと思われます。しかし、ボード選択画面なかなかカッコいいです。手元のNUCLEO-F401REをターゲット指定しましたが、こんな感じ。

プライスまで出てくるのは凄い。日本の会社のツールじゃありえないかも。当然、それだけでなく、マイコンや開発ボードを指定すればいろいろな情報にアクセスできますが、各種機能を選択するだけで、

自動的にブートコードや必要なハードウエアドライバなど

のソースを自動生成してくれるのです。そして、ユーザがコードを書くべきmainプログラムのひな型まで用意してくれます。この辺はMbedやPSoC Creatorなどと同じです。昔のようにあくせくブートからデータシートを見ながらコーディングするのはないのでした。しかし、その為にも該当のファームウエアの情報をまたST社から自動ダウンロードしなければなりません。(多分、次回からは不要になるのだと期待しているけど、更新あればまたかな。)何気にダウンロードを始めた分量を見てちょっと仰け反りました。

667Mバイト、本体に匹敵する大きさのダウンロードを始めました。それだけ、STM32の痒い所に手が届くコードセットを入れてくれているのだと思いますが、なかなかな分量。パソコンも遅いので、Unzipまで相当かかりそう。ということで第1回はここまで。

なお、ダウンロードしてきたファームの中には、Mbedとならぶもう一つのモダンOS、Amazon御用達の

FreeRTOS

が含まれておるようでした。これもやってみたかったのだよね。

鳥なき里のマイコン屋(58) Arduinoシールド用基板など細かい話 へ戻る

鳥なき里のマイコン屋(60) STM32CubeIDE その2 へ進む