鳥なき里のマイコン屋(42) 第2部開発ツール編スタートにあたり

シングルチップ・マイクロコントローラ、MCU、CPUにROM/RAMまたは相当のメモリと周辺回路まで集積した「マイコン」、そのメーカーも一巡できてしまった感じ(もし落ち漏れあったらご指摘ください、慌てて追加いたします)なので、どうしようかとしばらくお休みしておりました。満を持してということはまったく無いのですが、第2部ということで開発ツール編をスタートしたいと思います。今回は、スタートにあたり前置きかな。

個人的には、マイコンの開発ツールにあまり文句をいった経験がありません。あるものの範囲でなんとかする、感じでしょうか。まあ、貧弱なツールで作らざるを得ない環境にいたことが多かったために自然そうなったということかも。でも世間には「この開発ツールでないとダメ」というこだわりを持つ人も結構いらっしゃいます。遥かな昔、ある海外のお客にマイコンを売り込みにいったとき

Codewarrior使えるの?(勿論、原文英語でしたが)

と聞かれ、「いいえ」と言った瞬間に話が終わった経験があります。場合によっては、マイコンそのもののスペックや値段より、慣れ親しんだ開発ツールの方が決め手となる場合もあると。

しかし、開発ツール屋さん(独立した事業体であれ、マイコンの会社の一部門であれ)もここ10年、いやもっとかな、大変じゃないかと思います。第1部(そういうことは言っていなかったが)でマイコンメーカーを経めぐりながらも、

マイコンメーカーの数、めっちゃ減ったじゃん

というのが正直なところ。ざっくり最盛期の数分の1くらいに減ったのでは。会社の合併もあり、商品群や部門が売り渡された場合もあり。でも、そうやって何がしかでも生き残っているケースは、完全消滅のケースよりはまだ良しとせねば。そして、それぞれ開発ツールを必要とするマイコンのアーキテクチャの数も激減しているのでは。かっては、中小のマイコンメーカーでも独自のコアを開発していたものですが、今やArmばかりが目立つ世の中。絶滅の恐れのあるツールも、もう絶滅してしまったツールもあり、職も失われているのではないかと想像します。

景気の悪い話はさておき、今回調べさせていただくマイコン開発ツールとはどんなものか、アウトラインを列挙しておきたいと思います。

  • ソフトウエアツール
  • ハードウエアツール

マイコン開発ツールといった場合、ソフトウエアもあれば、ハードウエアも存在します。まずソフトウエアとしては、以下のような感じでしょうか。

  • コンパイラ
  • アセンブラ
  • リンカ
  • ビルドツール
  • ライブラリアン
  • ローダ
  • デバッガ
  • プロファイラ
  • その他細かなバイナリツール、ユーティリティなど
  • そしてそれらを統合するIDE

場合によっては、特定のMCUやアプリケーションをサポートするためのライブラリやミドルウエア、そしてRTOSといったものも開発ツールに近い存在ですが、あまり手を広げても調べきれなくなるので、開発時に使うけど実行時には使わないソフトウエアを主に見ていきたいと考えます。ゆるゆるなので、必要によっては実行時のソフトも含める場合があるかもしれませんが。

ハードウエア的には

  • 昔風にはフルICE
  • 今では、JTAG-ICEとかシリアル-ICE、プローブの類
  • Flashライタ、ROMライタ類

くらいでしょうか。他に評価ボードとか、開発用のターゲットボードなどというようなものもあるのですが、その辺は種類が多すぎたり、直ぐにディスコンになっていたりするので、特にそのボードがある前提でないと開発が進まんということでなければ、スルーということで。こちらは、対象のマイコンによりかなり落差が大きいような気がします。

調査の方向ですが、大きく3カテゴリでしょうかね。

  1. 自社マイコンに自社で開発ツールを作っているケース
  2. サードベンダ(開発ツール屋さん)が、マイコンチップのメーカとは独立に開発ツールを作っているケース
  3. オープンソースの開発ツールをベースにしているケース

リッチなマイコンは、1,2,3のカテゴリ全てがあったりし、そうでない場合は貧弱な1しかない場合もありですね。しかし、最近は3のカテゴリが充実しているので、ちょっと手をかければそこそこの環境を用意するのは難しくなくなっている気もします。それだけにツールでお金を取るのは大変かも。

次回以降、ゆるゆるとツールを調べていきたいと思います。

鳥なき里のマイコン屋(41) SiFive RISC-V MCUにもなりMCUではなく へ戻る

鳥なき里のマイコン屋(43) Arm Mbed、お手軽すぎて? へ進む