MCU開発におけるベンダ専用IDEと汎用IDE

MCU:マイコン,LPCマイコン,Kinetisマイコン,STM32マイコン,PSoC/PRoCマイコン,Cortex-M0+コア,Cortex-M0コア,Cortex-M23コアテンプレート,ARMマイコン,Cortex-M0,Cortex-M0+,IoTマイコン,IDE,Cortex-M23

ARM Cortex-M系(M0、M0+、M3、M4…)のMCUを開発する時のIDEは、Eclipse IDEベースが一般的です。同じEclipseを使って各ベンダ専用IDEが開発されますので、ウインド構成や操作性(F5やF7の機能など)は同じです。

MCUXpresso IDE Perspective
NXPのMCUXpresso IDE画面(ユーザカイドより)

今回は、MCU開発スピードを左右する、専用IDEと汎用IDEの差と将来性を考察します。

ARM Cortex-M系のIDE

弊社マイコンテンプレートで使用中の専用IDE(ベンダ)が下記です。いずれもコードサイズ制限はありません。

・MCUXpresso(NXP)
・SW4STM32(STM)
・PSoC Creator(Cypress)
CS+ for CC/CA,CX(Runesas)、64KBコードサイズ制限あり

このうち、CS+ for CC/CA,CXは、ルネサスRL78系MCUなので除外します。今回から、2016年MCUベンダ売上5位のSTM32のマイコンテンプレートも開発しますので、追加しました。

一方、MCUベンダに依存しない汎用IDEで有名なのが、下記です。

・IAR Embedded Workbench for ARM(IAR) (=EWARM)、無償版32KBコードサイズ制限
・uVision(Keil) (=MDK-ARM)、無償版32KBコードサイズ制限
mbed(ARM)、コードサイズ制限なし

残念ながら汎用IDE無償版はコードサイズ制限があります。勿論、商用版は制限なしですが1ライセンスあたり数十万円程度もします。

mbed(ARM)は、サイズ制限なしでベンダにも依存しませんが、ブラウザでコンパイルとダウンロード(=書込み)はできても、デバッグ機能がありませんので、今回は汎用IDEから除外しました。
※IDEへエクスポート(下図)すればデバッグ可能との記載はありますが、今のところ私は成功していません。

mbed Export to IDE
mbedのIDEエクスポート

汎用IDEのメリットは、ベンダが変わっても同じIDEが使えること、開発したソフトのベンダ間流用障壁が専用IDEよりも低い(可能性がある)こと、技術サポートがあることなどです。

Eclipse IDEのプラグイン機能とCMSIS

オープンソースのEclipse IDEは、プラグインで機能を追加できます。もしベンダ専用機能が、全てプラグインで提供されれば、毎年更新される生のEclipse IDEへ、これらを追加すればIDEが出来上がります。これが一番低価格で良いのですが、Unixならともかく、Windowsでの実現性は低いと思います。

一方、CMSISが普及すると、開発ソフトのベンダ間流用問題はいずれ解決します。従って結局、ベンダ専用IDEで最後まで残る差は、コード生成機能になると思います。

同じCortex-M系MCUであっても、周辺回路はベンダ毎に異なる差別化部分です。コード生成機能は、汎用IDEの弱点でもあります。使いやすコード生成を提供できるMCUベンダが、生き残るでしょう。

一長一短があるChrome、Firefox、IE、Edgeなどのブラウザ同様、Cortex-M系MCU開発は、ベンダ専用IDEを使うのが良さそうだと思いました。